1、目录 1 设计内容、任务及基本规定 1.1 设计内容 1.2 设计任务 1.3 设计基本规定 2 总体设计思绪 2.1 系统功能 2.2 各个模块之间的重要关系 2.3 总体程序框图 2.4 系统的总体流程图 3 功能模块的具体设计 3.1 main() 函数模块 3.2银行账户和密码信息函数模块 3.3储户身份证验证 3.4进入服务主页函数 3.5选择服务种类 3.6退出服务程序,结束 4 功能模块的调试与测试 4.1主菜单运营界面 4.2查询服务项目选择模块运营界面 4.3查找用户信息模块运营界面 4.4 开户信息模块运营界面 4.5 销户
2、信息模块运营界面 4.6 结束服务模块信息运营界面 5 总结 6程序清单 1.设计内容、任务以及基本规定 1.1设计内容 重要运用c语言的文献操作能力设计开发一个小型的银行储蓄模拟系统,至少具有如下功能:查询所有储户的信息,通过输入账号、密码来完毕查询某一位储户的信息,开户信息、挂失信息、注销信息以及运用储户账号密码实现存取款、转账等一系列的银行业务。操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。 1. 2设计任务 规定:明确课程设计的目的,能根据课程设计的规定,查阅相关文献,为完毕设计准备必要的知识; 提高学生用高级语言进行程序
3、设计的能力,重点提高用C语言进行文献操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和环节; 提高撰写技术文档的能力。掌握模块化编程的基本方法与环节;巩固和加深学生对C语言课程基本知识的理解与掌握,培养学生运用C语言进行软件操作的能力和技巧。帮助学生更好地理解和学习C语言。 1.3基本规定 (1)通过提醒菜单选择可以进行的操作。 (2)将储户个人的信息存入文献中,并命名为stdio.h。 (3)将存储情况的信息存入文献中,并命名为stdlib.h。 (4)将查询业务的信息存入文献中,并命名为string.h。 (5)在本系统中可以进行管理系统包含的基本操作,其中涉及
4、a)显示所有账户,查询所有储户的基本信息。 b)查询余额,输入账号密码即可显示出该储户的账户余额。 c)存取款管理。输入储户对的的账号密码即可办理存款或取款业务,假如取款额大于账户余额,则提醒该账户余额局限性。 d)注销一位用户的基本信息,通过输入该用户的账号密码,一方面查找是否存在该用户的账户信息,假如存在则将该用户信息删除,否则给出提醒信息,提醒重新输入或者退出此程序,回到主页面。 e)转账。一方面必须输入该储户的账号密码,输入对的后方可输入对方账号和转账金额,才干完毕转账,假如余额局限性,系统会给出相应的提醒。 (6)储户个人信息涉及账号、密码、姓名、身份证号、储种、
5、电话、地址、开户日期。 (7)储户个人信息文献中每一行存放一位储户的信息。 (8)将显示存储信息文献中的每一位储户的账户余额。 2 总体设计思绪 2.1系统功能 银行储蓄管理在生活中运用非常广泛,因此需要用许多的程序来对它们进行管理。此程序包含了开户人信息的录入、储户信息的浏览、储户的的注销和挂失、余款查询、存取款、转账等。通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们可以简易、快捷的了解并找到自己所学要的信息的功能。 1、 开户:根据系统提醒依次对的的填写账号、密码、本人对的的信息等。 2、 显示所有账户:将所有账户信息涉及账号
6、姓名、储种、余额、开户日期、等显示在屏幕上 3、 存款:通过输入账号密码来确认账户是否存在,然后输入存款金额,假如显示账户与密码不匹配,请选择继续输入或者退出,假如三次都未对的的输入账号密码,则强制退出。 4、 查询余额:通过输入储户的账户密码,查看该储户的账户余额。 5、 取款:通过输入账号密码判断账户是否存在,然后再输入所需金额,所取金额必须小于等于该账户现余额。 6、 转账:通过输入账号密码判断账户是否存在,然后再输入对方的账号,完毕后方可输入转账金额,次金额必须小于等于该账户现余额。 7、 修改密码:通过输入旧账号密码,判断此账户是否存在,存在即可输入新密码,若不存在则提醒
7、用户重新输入。 8、 挂失:如若银行卡丢失,通过输入账号密码挂失,锁定该账户。 9、 销户:通过输入账号密码撤消账户。 10、 撤消挂失:通过输入账号密码撤消因损坏、丢失等因素所挂失的账户。 11、 查看储户个人信息:通过输入账号密码完毕个人账户信息的查找,并在屏幕上显示。 12、 查看利率表:通过输入相应的序号查询相关的利息。 13、 储户须知:通过输入相应的序号查询相关的信息 14、 帮助:通过输入相应的序号查询相关信息 0、 退出程序:返回主页面。 注:账号密码的输入只有三次机会,否则强制返回到主菜单。 2.2各个模块之间的重要关系 银行储蓄管理系统可划分为8
8、个模块:开户模块、存款模块、取款模块、转账模块、余额查询模块、挂失模块、销户模块、储户个人信息模块、储户须知模块。各模块之间均有着或多或少的联系,比如:通过查询余额可以知道存入金额的数目, 然后再进行其它操作。理解了各模块之间的重要关系有助于程序的设计与完毕,使程序的层次结构清楚,便于程序的编写、阅读和调试。 2.3总体程序框图 2.4系统的总体流程图 3 功能模块的具体设计 3.1 main() 函数模块 根据图银行信息管理系统的规定,可设计一个主函数,及定义多个用户自定义函数。在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文献,在整
9、个程序内可以多次被引用。通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。运用scanf语句在主函数中将文献中的内容赋给结构体变量,便于在自定义函数中对结构体的调用。 具体如下: 在struct chuhu //储户结构信息 { char idnum[11]; //帐号 char password[7];
10、 //密码 char name[11]; //储户姓名 char idnumber[19]; //储户身份证号码 double cunkuan; //存款金额 double lixi; //利息 double yu;
11、 //余额int lei; //储种 char address[51]; //储户地址 char Tel[15]; //储户的联系电话 char khdate[40]; //开户日期 int
12、 g; //是否挂失(0为未,1为已) }hu[N]; //储户结构数组 void wang(); //显示“※物联网25小组制作※”的函数 int yanzheng(); //验证帐号和密码并核查该帐号是否挂失的函数 void li();
13、 //计算利息的函数 void date(); //显示当前日期和时间 void insert(); //开户函数 void display(); //显示所有帐户信息的函数 void in(int); //存款函数 void find(int);
14、 //查询余额函数 void out(int); //取款函数 void zhuan(int); //转帐函数 void changepwd(int); //修改密码的函数 void guashi(int);
15、 //挂失函数 void del(int); //销户函数 void lilvbiao(); //查看利率表 void cxgs(); //撤消挂失的函数 void grxx(int); //查看个人信息的函数 void help();
16、 //储户须知函数 void bangzhu(); //帮助 int i,j,k,A=0,B=0; //i,j控制循环,id为帐号,A、B分别为开户数和销户数 double jin; //存款、取款或转帐金额 char ch='y'; //控制是否继续的变量 char id[11]
17、password[7]; void main() //输出主菜单 { 主函数中定义一个用户存储的结构体通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。 switch(a) { case 1: insert(); break; case 2: display(); break;
18、 case 3: b=yanzheng(); in(b); break; case 4: b=yanzheng(); find(b); break; case 5: b=yanzheng(); out(b); break; case 6: b=yanzheng(); zhuan(b); break; case 7: b=yanzheng(); changepwd(b); break; case 8: b=yanzheng(); guashi(b); break; case 9: b=yanzheng(); del(
19、b); break; case 10: cxgs(); break; case 11: b=yanzheng(); grxx(b); break; case 12: lilvbiao(); break; case 13: help(); break; case 14: bangzhu(); break; case 0: system("cls"); system("color f1"); date(); 3.2银行账户和密码信息函数模块 viod insert() 通过if语句将所有的储户服务选项显示在桌面上。运用
20、for语句、do…while和printf()实现银行系统的输出显示。 3.3储户身份验证函数模块 char idnum[11]; //帐号 char password[7]; //密码 char name[11]; //储户姓名 char idnumber[19];
21、 //储户身份证号码 double cunkuan; //存款金额 double lixi; //利息 double yu; //余额 int lei; //储种 ch
22、ar address[51]; //储户地址 char Tel[15]; //储户的联系电话 char khdate[40]; //开户日期 int g; 储户身份验证 查找服务项目 是否直接推出 是 服务完毕 提醒是否继续查找 是 开始 关键代码:strcmp(比较字符串) case….break(判断)
23、 printf(输出信息) switch(实现选择功能分支) 3.4进入服务主页函数 system("cls"); system("color 57"); date(); 输入账号密码方可进入主菜单,由于所需的信息必须通过相应的序号才干了解,所以需要运用case语句 和switch()函数选出所需要的办理的业务。 其重要流程图如下: 输入系统账号密码 选择所需的业务 是 输入系统所需的储户的个人信息 否 结束 开始 关键代码: prin
24、tf(输出信息) scanf (输入信息) switch(实现多分支结构程序设计) case-break (实现功能的选择) 3.5选择服务种类函数模块 printf("请选择功能(0-14):→ "); fflush(stdin); scanf("%d",&a); switch(a) //选择功能 { 用户输入所需要服务项目的编号,服务完毕后将提醒谢谢使用。 输入服务项目 进入服务系统 谢谢使用 完毕 给出相应的提醒 是否继续 结束 开始
25、 关键代码: strcmp(比较两个字符串的大小) switch(实现多分支结构程序设计) case(条件选择) 3.6 退出服务程序模块 printf("您真的要退出吗(y/n)? "); fflush(stdin); scanf("%c",&ch); system("cls"); break; default: system("cls"); printf("\n\n\t您的输入有误,请对的选择功能!!!……"); break; 用户先进行身份验证
26、调用函数查找服务项目主页,完毕一项服务后,若继续其它服务种类,则返回服务页面选择服务种类继续进行新的服务。 关键代码:if-else(实现分支选择) getchar (从键盘上输入一个字符) strcmp (比较两个字符串的大小) 4功能模块的调试及测试 4.1主菜单运营界面 图4.1 主页面运营界面图 4.2查询服务项目模块运营界面 输入登录账户和用户密码,然后回车键进入服务主页面 4.3查找用户信息模块运营界面 输入序号2然后回车键进入显示所有账户界面 4.3显示所有用户
27、运营界面图 4.3-1查看储户个人信息运营界面图 4.4 开户信息模块运营界面 4.4开户运营界面图 4.5 销户信息模块运营界面 4.5销户运营界面图 4.6 结束服务模块信息运营界面 4.6结束运营界面图 总 结 在为期近两周的C++课程设计中,我体会颇多,学到了很多东西。我加强了对C++程序设计这门课程的结识,并且复习了自己以前学习到的知识。这些都使得我对计算机语言的学习有了更进一步的结识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的能力,进一步
28、培养了独立思考问题和解决问题的能力。特别是学会了在Visual C++中如何调试程序的方法。当然,两位老师的指导帮助也是不可忽视的,他们给了我许多提醒和帮助,教会了我编译复杂程序的方法。 在老师帮助下,通过自己的努力,终于完毕了这次课程设计。我通过这段时间的编程,对其中的艰辛,我是深有体会。从刚开始的选择程序、理解程序到后来的调试程序以及改善程序这个过程中,我碰到了各种各样的困难和挫折。但是我坚定信念,对自己充满了信心,想尽一切办法克服重重困难。 通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程
29、序之前,要有明确的目的和整体的设计思想。此外某些具体的细节内容也是相称的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大的帮助的,我要好好运用。 虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。我很欣慰自己能在程序中加入自己的想法和有关程序内容,也就是对它的程序改善了一番改善,并有创新。但是我感觉自己的创新还不够典型,总之还不是很满意。此外由于时间的紧迫和对知识的了解不够广泛,导致了系统中还存在许多局限性,功能上还不够完善。以后我会继续努力,大胆创新,争取能编写出透射着自己思想的程序。这次课程
30、设计让我充足结识到了自己的局限性,结识到了动手能力的重要性。我会在以后的学习中更加努力锻炼自己,提高自己,让自己写出更好更完善的程序,为以后的编程打好基础!
总而言之,这次C++程序设计实践让我收获很大。
程序清单:
#include
31、t chuhu //储户结构信息 { char idnum[11]; //帐号 char password[7]; //密码 char name[11]; //储户姓名 char idnumber[1
32、9]; //储户身份证号码 double cunkuan; //存款金额 double lixi; //利息 double yu; //余额 int lei;
33、 //储种 char address[51]; //储户地址 char Tel[15]; //储户的联系电话 char khdate[40]; //开户日期 int g; //是
34、否挂失(0为未,1为已) }hu[N]; //储户结构数组 void wang(); //显示“※物联网25小组制作※”的函数 int yanzheng(); //验证帐号和密码并核查该帐号是否挂失的函数 void li();
35、 //计算利息的函数 void date(); //显示当前日期和时间 void insert(); //开户函数 void display(); //显示所有帐户信息的函数 void in(int); //存款函数 void
36、find(int); //查询余额函数 void out(int); //取款函数 void zhuan(int); //转帐函数 void changepwd(int); //修改密码的函数
37、 void guashi(int); //挂失函数 void del(int); //销户函数 void lilvbiao(); //查看利率表 void cxgs(); //撤消挂
38、失的函数 void grxx(int); //查看个人信息的函数 void help(); //储户须知函数 void bangzhu(); //帮助 int i,j,k,A=0,B=0; //i,j控制循环,id为帐号,A、B分别为开户数和
39、销户数 double jin; //存款、取款或转帐金额 char ch='y'; //控制是否继续的变量 char id[11],password[7]; void main() //输出主菜单 { int a,b; //选择功能的变量 char dlzh[11],pwor
40、d[7]; system("color 79"); date(); printf("\n\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("\t\t※ ※\n"); //界面1 printf("\t\t※ ※\n"); printf("\t\t※ 银行储蓄管理模拟系统 ※\n"); printf(
41、"\t\t※ ※\n"); printf("\t\t※ ※\n"); printf("\t\t※ 物联网25小组制作 ※\n"); printf("\t\t※ ※\n"); printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n\n"); wang()
42、 printf("按ENTER键进入下一界面。。。→"); fflush(stdin); scanf("%c",&ch); do{ system("cls"); system("color f3"); date(); printf("\n\n\n\t\t\t"); for(i=0;i<10000000;i++) { if(i%340000==0) printf(">"); } printf("\t\t \n")
43、 //界面2 printf("\t\t 欢迎使用本系统!!! \n"); printf("\n\n\t\t 请输入您的登陆帐号: "); fflush(stdin); gets(dlzh); printf("\n\n\t\t 请输入您的密码: "); for(i=0;i<6;i++) { fflush(stdin); pword[i]=getch(); printf("*"); } pword[6]='\0'; fflush(stdin
44、); scanf("%c",&ch); printf("\t\t \n"); printf("\t\t ※物联网25小组※ \n"); printf("\n\t\t\t"); for(i=0;i<10000000;i++) { if(i%340000==0) printf(">"); } if(strcmp(dlzh,"wulianwang")!=0||strcmp("123456",
45、pword)!=0) { printf("\n\n\t\t您输入的登陆帐号或密码不对的,请重新输入:\n\n"); printf("\t\t按ENTER键进入重新输入界面。。。→"); fflush(stdin); scanf("%c",&ch); } }while(strcmp(dlzh,"wulianwang")!=0||strcmp("123456",pword)!=0); do{ wang(); printf("\n\n按ENTER键进入/返回主菜单→:"); fflush(stdin); scanf("%c"
46、ch); system("cls"); //清屏 system("color 57"); date(); printf("\t\t\t主菜单\n\n"); printf("\t\t★★★★★★★★★★★★★★★★★★★★★★\n"); //主菜单界面(界面3) printf("\t\t● ●\n"); printf("\t\t● ◆ 1、 开户
47、 ●\n"); printf("\t\t● ◆ 2、 显示所有帐户 ●\n"); printf("\t\t● ◆ 3、 存款 ●\n"); printf("\t\t● ◆ 4、 查询余额 ●\n"); printf("\t\t● ◆ 5、 取款 ●\n"); printf("\t\t● ◆ 6、 转帐
48、 ●\n"); printf("\t\t● ◆ 7、 修改密码 ●\n"); printf("\t\t● ◆ 8、 挂失 ●\n"); printf("\t\t● ◆ 9、 销户 ●\n"); printf("\t\t● ◆ 10、撤消挂失 ●\n"); printf("\t\t● ◆ 11、查看储户个人信息 ●\n"); printf(
49、"\t\t● ◆ 12、查看利率表 ●\n"); printf("\t\t● ◆ 13、储户须知 ●\n"); printf("\t\t● ◆ 14、帮助 ●\n"); printf("\t\t● ◆ 0、退出程序 ●\n"); printf("\t\t● ●\n"); printf("\t\t★★★★★★★★
50、★★★★★★★★★★★★★★"); wang(); printf("请选择功能(0-14):→ "); fflush(stdin); scanf("%d",&a); switch(a) //选择功能 { case 1: //选择功能后调用相应的函数 insert(); break; case 2: display(); break; ca






