目录1设计内容、任务及基本要求1.1设计内容1.2设计任务1.3设计基本要求2总体设计思路2.1系统功能2.2各个模块之间的主要关系2.3总体程序框图2.4系统的总体流程图3功能模块的具体设计3.1main()函数模块3.2银行账户和密码信息函数模块3.3储户身份证验证3.4进入服务主页函数3.5选择服务种类3.6退出服务程序,结束4功能模块的调试与测试4.1主菜单运行界面4.2查询服务项目选择模块运行界面4.3查找用户信息模块运行界面4.4开户信息模块运行界面4.5销户信息模块运行界面4.6结束服务模块信息运行界面5总结6程序清单1.设计内容、任务以及基本要求1.1设计内容主要利用c语言的文件操作能力设计开发一个小型的银行储蓄模拟系统,至少具有如下功能:查询所有储户的信息,通过输入账号、密码来完成查询某一位储户的信息,开户信息、挂失信息、注销信息以及利用储户账号密码实现存取款、转账等一系列的银行业务。操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。1.2设计任务要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。掌握模块化编程的基本方法与步骤;巩固和加深学生对C语言课程基本知识的理解与掌握,培养学生利用C语言进行软件操作的能力和技巧。帮助学生更好地理解和学习C语言。1.3基本要求(1)通过提示菜单选择可以进行的操作。(2)将储户个人的信息存入文件中,并命名为stdio.h。(3)将存储情况的信息存入文件中,并命名为stdlib.h。(4)将查询业务的信息存入文件中,并命名为string.h。(5)在本系统中可以进行管理系统包含的基本操作,其中包括a)显示所有账户,查询所有储户的基本信息。b)查询余额,输入账号密码即可显示出该储户的账户余额。c)存取款管理。输入储户正确的账号密码即可办理存款或取款业务,如果取款额大于账户余额,则提示该账户余额不足。d)注销一位用户的基本信息,通过输入该用户的账号密码,首先查找是否存在该用户的账户信息,如果存在则将该用户信息删除,否则给出提示信息,提示重新输入或者退出此程序,回到主页面。e)转账。首先必须输入该储户的账号密码,输入正确后方可输入对方账号和转账金额,才能完成转账,如果余额不足,系统会给出相应的提示。(6)储户个人信息包括账号、密码、姓名、身份证号、储种、电话、地址、开户日期。(7)储户个人信息文件中每一行存放一位储户的信息。(8)将显示存储信息文件中的每一位储户的账户余额。2总体设计思路2.1系统功能银行储蓄管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。此程序包含了开户人信息的录入、储户信息的浏览、储户的的注销和挂失、余款查询、存取款、转账等。通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。1、开户:根据系统提示依次正确的填写账号、密码、本人正确的信息等。2、显示所有账户:将所有账户信息包括账号、姓名、储种、余额、开户日期、等显示在屏幕上3、存款:通过输入账号密码来确认账户是否存在,然后输入存款金额,如果显示账户与密码不匹配,请选择继续输入或者退出,如果三次都未正确的输入账号密码,则强制退出。4、查询余额:通过输入储户的账户密码,查看该储户的账户余额。5、取款:通过输入账号密码判断账户是否存在,然后再输入所需金额,所取金额必须小于等于该账户现余额。6、转账:通过输入账号密码判断账户是否存在,然后再输入对方的账号,完成后方可输入转账金额,次金额必须小于等于该账户现余额。7、修改密码:通过输入旧账号密码,判断此账户是否存在,存在即可输入新密码,若不存在则提示用户重新输入。8、挂失:如若银行卡丢失,通过输入账号密码挂失,锁定该账户。9、销户:通过输入账号密码撤销账户。10、撤销挂失:通过输入账号密码撤销因损坏、丢失等原因所挂失的账户。11、查看储户个人信息:通过输入账号密码完成个人账户信息的查找,并在屏幕上显示。12、查看利率表:通过输入相应的序号查询相关的利息。13、储户须知:通过输入相应的序号查询相关的信息14、帮助:通过输入相应的序号查询相关信息0、退出程序:返回主页面。注:账号密码的输入只有三次机会,否则强制返回到主菜单。2.2各个模块之间的主要关系银行储蓄管理系统可划分为8个模块:开户模块、存款模块、取款模块、转账模块、余额查询模块、挂失模块、销户模块、储户个人信息模块、储户须知模块。各模块之间均有着或多或少的联系,比如:通过查询余额可以知道存入金额的数目,然后再进行其它操作。理解了各模块之间的主要关系有利于程序的设计与完成,使程序的层次结构清晰,便于程序的编写、阅读和调试。2.3总体程序框图2.4系统的总体流程图3功能模块的具体设计3.1main()函数模块根据图银行信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。运用scanf语句在主函数中将文件中的内容赋给结构体变量,便于在自定义函数中对结构体的调用。具体如下:在structchuhu//储户结构信息{charidnum[11];//帐号charpassword[7];//密码charname[11];//储户姓名charidnumber[19];//储户身份证号码doublecunkuan;//存款金额doublelixi;//利息doubleyu;//余额intlei;//储种charaddress[51];//储户地址charTel[15];//储户的联系电话charkhdate[40];//开户日期intg;//是否挂失(0为未,1为已)}hu[N];//储户结构数组voidwang();//显示“※物联网25小组制作※”的函数intyanzheng();//验证帐号和密码并核查该帐号是否挂失的函数voidli();//计算利息的函数voiddate();//显示当前日期和时间voidinsert();//开户函数voiddisplay();//显示所有帐户信息的函数voidin(int);//存款函数voidfind(int);//查询余额函数voidout(int);//取款函数voidzhuan(int);//转帐函数voidchangepwd(int);//修改密码的函数voidguashi(int);//挂失函数voiddel(int);//销户函数voidlilvbiao();//查看利率表voidcxgs();//撤消挂失的函数voidgrxx(int);//查看个人信息的函数voidhelp();//储户须知函数voidbangzhu();//帮助inti,j,k,A=0,B=0;//i,j控制循环,id为帐号,A、B分别为开户数和销户数doublejin;//存款、取款或转帐金额charch='y';//控制是否继续的变量charid[11],password[7];voidmain()//输出主菜单{主函数中定义一个用户存储的结构体通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。switch(a){case1:insert();break;case2:display();break;case3:b=yanzheng();in(b);break;case4:b=yanzheng();find(b);break;case5:b=yanzheng();out(b);break;case6:b=yanzheng();zhuan(b);break;case7:b=yanzheng();changepwd(b);break;case8:b=yanzheng();guashi(b);break;case9:b=yanzheng();del(b);break;case10:cxgs();break;case11:b=yanzheng();grxx(b);break;case12:lilvbiao();break;case13:help();break;case14:bangzhu();break;case0:system(cls);system(colorf1);date();3.2银行账户和密码信息函数模块viodinsert()通过if语句将所有的储户服务选项显示在桌面上。运用for语句、do…while和printf()实现银行系统的输出显示。3.3储户身份验证函数模块charidnum[11];//帐号charpassword[7];//密码charname[11];//储户姓名charidnumber[19];//储户身份证号码doublecunkuan;//存款金额doublelixi;//利息doubleyu;//余额intlei;//储种charaddress[51];//储户地址charTel[15];//储户的联系电话charkhdate[40];//开户日期intg;关键代码:strcmp(比较字符串)case….break(判断)printf(输出信息)switch(实现选择功能分支)3.4进入服务主页函数system(cls);system(color57);date();输入账号密码方可进入主菜单,由于所需的信息必须通过相应的序号才能了解,所以需要运用case语句和switch()函数选出所需要的办理的业务。其主要流程图如下:储户身份验证查找服务项目是否直接推出是服务完成提示是否继续查找是开始关键代码:printf(输出信息)scanf(输入信息)switch(实现多分支结构程序设计)case-break(实现功能的选择)3.5选择服务种类函数模块printf(请选择功能(0-14):→);fflush(stdin);scanf(%d,&a);switch(a)//选择功能{用户输入所需要服务项目的编号,服务完成后将提示谢谢使用。输入系统账号密码选择所需的业务是输入系统所需的储户的个人信息否结束开始关键代码:strcmp(比较两个字符串的大小)switch(实现多分支结构程序设计)case(条件选择)3.6退出服务程序模块printf(您真的要退出吗(y/n)?);fflush(stdin);scanf(%c,&ch);system(cls);break;default:system(cls);printf(\n\n\t您的输入有误,请正确选择功能!!!……);break;用户先进行身份验证,调用函数查找服务项目主页,完成一项服务后,若继续其输入服务项目进入服务系统谢谢使用完成给出相应的提示是否继续结束开始它服务种类,则返回服务页面选择服务种类继续进行新的服务。关键代码:if-else(实现分支选择)getchar(从键盘上输入一个字符)strcmp(比较两个字符串的大小)4功能模块的调试及测试4.1主菜单运行界面图4.1主页面运行界面图4.2查询服务项目模块运行界面输入登录账户和用户密码,然后回车键进入服务主页面4.3查找用户信息模块运行界面输入序号2然后回车键进入显示所有账户界面4.3显示所有用户运行界面图4.3-1查看储户个人信息运行界面图4.4开户信息模块运行界面4.4开户运行界面图4.5销户信息模块运行界面4.5销户运行界面图4.6结束服务模块信息运行界面4.6结束运行界面图总结在为期近两周的C++课程设计中,我体会颇多,学到了很多东西。我加强了对C++程序设计这门课程的认识,并且复习了自己以前学习到的知识。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以