




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 销户信息模块运行界面4.6 结束服务模块信息运行界面5 总结6程序清单1.设计内容、任务以及基
2、本要求1.1设计内容主要利用c语言的文件操作能力设计开发一个小型的银行储蓄模拟系统,至少具有如下功能:查询所有储户的信息,通过输入账号、密码来完成查询某一位储户的信息,开户信息、挂失信息、注销信息以及利用储户账号密码实现存取款、转账等一系列的银行业务。操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。1. 2设计任务要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。掌握模块化编程的
3、基本方法与步骤;巩固和加深学生对C语言课程基本知识的理解与掌握,培养学生利用C语言进行软件操作的能力和技巧。帮助学生更好地理解和学习C语言。1.3基本要求(1)通过提示菜单选择可以进行的操作。(2)将储户个人的信息存入文件中,并命名为stdio.h。(3)将存储情况的信息存入文件中,并命名为stdlib.h。(4)将查询业务的信息存入文件中,并命名为string.h。(5)在本系统中可以进行管理系统包含的基本操作,其中包括a)显示所有账户,查询所有储户的基本信息。b)查询余额,输入账号密码即可显示出该储户的账户余额。c)存取款管理。输入储户正确的账号密码即可办理存款或取款业务,如果取款额大于账
4、户余额,则提示该账户余额不足。d)注销一位用户的基本信息,通过输入该用户的账号密码,首先查找是否存在该用户的账户信息,如果存在则将该用户信息删除,否则给出提示信息,提示重新输入或者退出此程序,回到主页面。e)转账。首先必须输入该储户的账号密码,输入正确后方可输入对方账号和转账金额,才能完成转账,如果余额不足,系统会给出相应的提示。 (6)储户个人信息包括账号、密码、姓名、身份证号、储种、电话、地址、开户日期。(7)储户个人信息文件中每一行存放一位储户的信息。(8)将显示存储信息文件中的每一位储户的账户余额。2总体设计思路2.1系统功能 银行储蓄管理在生活中运用非常广泛,因此需要用许多的程序来对
5、它们进行管理。此程序包含了开户人信息的录入、储户信息的浏览、储户的的注销和挂失、余款查询、存取款、转账等。通过编译一个C语言函数,其中包含一个主函数,多个子函数,主函数调用其余的子函数实现人们能够简易、快捷的了解并找到自己所学要的信息的功能。1、 开户:根据系统提示依次正确的填写账号、密码、本人正确的信息等。2、 显示所有账户:将所有账户信息包括账号、姓名、储种、余额、开户日期、等显示在屏幕上3、 存款:通过输入账号密码来确认账户是否存在,然后输入存款金额,如果显示账户与密码不匹配,请选择继续输入或者退出,如果三次都未正确的输入账号密码,则强制退出。4、 查询余额:通过输入储户的账户密码,查看
6、该储户的账户余额。5、 取款:通过输入账号密码判断账户是否存在,然后再输入所需金额,所取金额必须小于等于该账户现余额。6、 转账:通过输入账号密码判断账户是否存在,然后再输入对方的账号,完成后方可输入转账金额,次金额必须小于等于该账户现余额。7、 修改密码:通过输入旧账号密码,判断此账户是否存在,存在即可输入新密码,若不存在则提示用户重新输入。8、 挂失:如若银行卡丢失,通过输入账号密码挂失,锁定该账户。9、 销户:通过输入账号密码撤销账户。10、 撤销挂失:通过输入账号密码撤销因损坏、丢失等原因所挂失的账户。11、 查看储户个人信息:通过输入账号密码完成个人账户信息的查找,并在屏幕上显示。1
7、2、 查看利率表:通过输入相应的序号查询相关的利息。13、 储户须知:通过输入相应的序号查询相关的信息14、 帮助:通过输入相应的序号查询相关信息0、 退出程序:返回主页面。注:账号密码的输入只有三次机会,否则强制返回到主菜单。2.2各个模块之间的主要关系 银行储蓄管理系统可划分为8个模块:开户模块、存款模块、取款模块、转账模块、余额查询模块、挂失模块、销户模块、储户个人信息模块、储户须知模块。各模块之间均有着或多或少的联系,比如:通过查询余额可以知道存入金额的数目, 然后再进行其它操作。理解了各模块之间的主要关系有利于程序的设计与完成,使程序的层次结构清晰,便于程序的编写、阅读和调试。2.3
8、总体程序框图2.4系统的总体流程图3 功能模块的具体设计3.1 main() 函数模块根据图银行信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。在主函数中定义全局变量,即是在函数外部定义的变量,其不属于某一个函数,而属于一个源程序文件,在整个程序内可以多次被引用。通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。运用scanf语句在主函数中将文件中的内容赋给结构体变量,便于在自定义函数中对结构体的调用。具体如下: 在struct chuhu /储户结构信息char idnum11; /帐号char password7; /密码char name11;
9、 /储户姓名char idnumber19; /储户身份证号码double cunkuan; /存款金额double lixi; /利息double yu; /余额int lei; /储种char address51; /储户地址char Tel15; /储户的联系电话char khdate40; /开户日期int g; /是否挂失(0为未,1为已)huN; /储户结构数组 void wang(); /显示“物联网25小组制作”的函数int yanzheng(); /验证帐号和密码并核查该帐号是否挂失的函数void li(); /计算利息的函数void date(); /显示当前日期和时间vo
10、id insert(); /开户函数void display(); /显示所有帐户信息的函数void in(int); /存款函数void find(int); /查询余额函数 void out(int); /取款函数void zhuan(int); /转帐函数void changepwd(int); /修改密码的函数 void guashi(int); /挂失函数 void del(int); /销户函数void lilvbiao(); /查看利率表void cxgs(); /撤消挂失的函数void grxx(int); /查看个人信息的函数void help(); /储户须知函数void
11、bangzhu(); /帮助 int i,j,k,A=0,B=0; /i,j控制循环,id为帐号,A、B分别为开户数和销户数double jin; /存款、取款或转帐金额char ch='y' /控制是否继续的变量char id11,password7; void main() /输出主菜单主函数中定义一个用户存储的结构体通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。 switch(a) case 1: insert();break;case 2: display(); break;case 3: b=yanzheng();in(b); brea
12、k;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(b);break;case 10: cxgs();break;case 11: b=yanzheng();grxx(b);break;case 12: lilvbiao();bre
13、ak;case 13: help();break;case 14: bangzhu();break;case 0:system("cls");system("color f1");date();3.2银行账户和密码信息函数模块viod insert() 通过if语句将所有的储户服务选项显示在桌面上。运用for语句、dowhile和printf()实现银行系统的输出显示。33储户身份验证函数模块char idnum11; /帐号char password7; /密码char name11; /储户姓名char idnumber19; /储户身份证号码dou
14、ble cunkuan; /存款金额double lixi; /利息double yu; /余额int lei; /储种char address51; /储户地址char Tel15; /储户的联系电话char khdate40; /开户日期int g; 储户身份验证查找服务项目是否直接推出是 服务完成提示是否继续查找是开始关键代码:strcmp(比较字符串) case.break(判断) printf(输出信息) switch(实现选择功能分支)3.4进入服务主页函数system("cls"); system("color 57");date();输入
15、账号密码方可进入主菜单,由于所需的信息必须通过相应的序号才能了解,所以需要运用case语句 和switch()函数选出所需要的办理的业务。其主要流程图如下: 输入系统账号密码选择所需的业务是输入系统所需的储户的个人信息否结束开始关键代码: printf(输出信息)scanf (输入信息)switch(实现多分支结构程序设计) case-break (实现功能的选择)3.5选择服务种类函数模块printf("请选择功能(0-14): ");fflush(stdin);scanf("%d",&a);switch(a) /选择功能用户输入所需要服务项目
16、的编号,服务完成后将提示谢谢使用。输入服务项目进入服务系统谢谢使用完成给出相应的提示 是否继续结束开始关键代码: strcmp(比较两个字符串的大小) switch(实现多分支结构程序设计) case(条件选择)3.6 退出服务程序模块printf("您真的要退出吗(y/n)? ");fflush(stdin);scanf("%c",&ch);system("cls");break;default:system("cls");printf("nnt您的输入有误,请正确选择功能!");br
17、eak;用户先进行身份验证,调用函数查找服务项目主页,完成一项服务后,若继续其它服务种类,则返回服务页面选择服务种类继续进行新的服务。关键代码: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 销户信息
18、模块运行界面4.5销户运行界面图4.6 结束服务模块信息运行界面4.6结束运行界面图总 结 在为期近两周的C+课程设计中,我体会颇多,学到了很多东西。我加强了对C+程序设计这门课程的认识,并且复习了自己以前学习到的知识。这些都使得我对计算机语言的学习有了更深入的认识!总之,通过这次课程设计,我收获颇丰,相信会为自己以后的学习和工作带来很大的好处。锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的能力,进一步培养了独立思考问题和解决问题的能力。特别是学会了在Visual C+中如何调试程序的方法。当然,两位老师的指导帮助也是不可忽视的,他们给了我许多提示和帮助,教会了我编译复杂程序
19、的方法。 在老师帮助下,通过自己的努力,终于完成了这次课程设计。我经过这段时间的编程,对其中的艰辛,我是深有体会。从刚开始的选择程序、理解程序到后来的调试程序以及改进程序这个过程中,我遇到了各种各样的困难和挫折。但是我坚定信念,对自己充满了信心,想尽一切办法克服重重困难。 通过课程设计的训练,我进一步学习和掌握了对程序的设计和编写,从中体会到了面向对象程序设计的方便和巧妙。懂得了在进行编写一个程序之前,要有明确的目标和整体的设计思想。另外某些具体的细节内容也是相当的重要。这些宝贵的编程思想和从中摸索到的经验都是在编程的过程中获得的宝贵财富。这些经验对我以后的编程会有很大
20、的帮助的,我要好好利用。 虽然这次课程设计是在参考程序的基础之上进行的,但是我觉得对自己是一个挑战和锻炼。我很欣慰自己能在程序中加入自己的想法和有关程序内容,也就是对它的程序改进了一番改进,并有创新。但是我感觉自己的创新还不够典型,总之还不是很满意。另外由于时间的紧迫和对知识的了解不够广泛,造成了系统中还存在许多不足,功能上还不够完善。以后我会继续努力,大胆创新,争取能编写出透射着自己思想的程序。这次课程设计让我充分认识到了自己的不足,认识到了动手能力的重要性。我会在以后的学习中更加努力锻炼自己,提高自己,让自己写出更好更完善的程序,为以后的编程打好基础! 总而言之,这次
21、C+程序设计实践让我收获很大。程序清单:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <conio.h>#define N 10000 struct chuhu /储户结构信息char idnum11; /帐号char password7; /密码char name11; /储户姓名char idnumber19; /储户身份证号码double cunkuan; /存款金额double lixi; /利息double yu; /余额int lei; /储种char
22、 address51; /储户地址char Tel15; /储户的联系电话char khdate40; /开户日期int g; /是否挂失(0为未,1为已)huN; /储户结构数组 void wang(); /显示“物联网25小组制作”的函数int yanzheng(); /验证帐号和密码并核查该帐号是否挂失的函数void li(); /计算利息的函数void date(); /显示当前日期和时间void insert(); /开户函数void display(); /显示所有帐户信息的函数void in(int); /存款函数void find(int); /查询余额函数 void out(
23、int); /取款函数void zhuan(int); /转帐函数void changepwd(int); /修改密码的函数 void guashi(int); /挂失函数 void del(int); /销户函数void lilvbiao(); /查看利率表void cxgs(); /撤消挂失的函数void grxx(int); /查看个人信息的函数void help(); /储户须知函数void bangzhu(); /帮助 int i,j,k,A=0,B=0; /i,j控制循环,id为帐号,A、B分别为开户数和销户数double jin; /存款、取款或转帐金额char ch='
24、y' /控制是否继续的变量char id11,password7; void main() /输出主菜单int a,b; /选择功能的变量char dlzh11,pword7;system("color 79");date();printf("nnnttn");printf("tt n"); /界面1printf("tt n");printf("tt 银行储蓄管理模拟系统 n");printf("tt n");printf("tt n");prin
25、tf("tt 物联网25小组制作 n");printf("tt n");printf("ttnnnn");wang();printf("按ENTER键进入下一界面。");fflush(stdin);scanf("%c",&ch);dosystem("cls");system("color f3");date();printf("nnnttt");for(i=0;i<10000000;i+)if(i%340000=0)pri
26、ntf(">");printf("tt n"); /界面2printf("tt欢迎使用本系统! n");printf("nntt 请输入您的登陆帐号: ");fflush(stdin);gets(dlzh);printf("nntt 请输入您的密码: ");for(i=0;i<6;i+)fflush(stdin);pwordi=getch();printf("*");pword6='0'fflush(stdin);scanf("%c&qu
27、ot;,&ch); printf("tt n");printf("tt 物联网25小组 n");printf("nttt");for(i=0;i<10000000;i+)if(i%340000=0)printf(">");if(strcmp(dlzh,"wulianwang")!=0|strcmp("123456",pword)!=0)printf("nntt您输入的登陆帐号或密码不正确,请重新输入:nn");printf("
28、tt按ENTER键进入重新输入界面。");fflush(stdin);scanf("%c",&ch);while(strcmp(dlzh,"wulianwang")!=0|strcmp("123456",pword)!=0);dowang();printf("nn按ENTER键进入/返回主菜单:");fflush(stdin);scanf("%c",&ch);system("cls"); /清屏system("color 57")
29、;date();printf("ttt主菜单nn");printf("ttn"); /主菜单界面(界面3)printf("tt n");printf("tt 1、 开户 n");printf("tt 2、 显示所有帐户 n");printf("tt 3、 存款 n");printf("tt 4、 查询余额 n");printf("tt 5、 取款 n");printf("tt 6、 转帐 n");printf(&qu
30、ot;tt 7、 修改密码 n");printf("tt 8、 挂失 n");printf("tt 9、 销户 n");printf("tt 10、撤消挂失 n");printf("tt 11、查看储户个人信息 n");printf("tt 12、查看利率表 n");printf("tt 13、储户须知 n");printf("tt 14、帮助 n");printf("tt 0、退出程序 n");printf("tt
31、 n");printf("tt");wang();printf("请选择功能(0-14): ");fflush(stdin);scanf("%d",&a);switch(a) /选择功能case 1: /选择功能后调用相应的函数insert();break;case 2: display(); break;case 3: b=yanzheng();in(b); break;case 4:b=yanzheng();find(b); break;case 5: b=yanzheng();out(b); break;cas
32、e 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(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&q
33、uot;);system("color f1");date();printf("nnnt=n");printf("t n");printf("t 谢 谢 使 用 n");printf("t n");printf("t 物联网25小组 n");printf("t n");printf("t 组长: n");printf("t 周莉华 n");printf("t n");printf("t
34、组员: n");printf("t 周莉华、程彬、张家贺 n");printf("t n");printf("t 2006年 9月 23日 制作 n");printf("t n");printf("t=");wang();printf("您真的要退出吗(y/n)? ");fflush(stdin);scanf("%c",&ch);system("cls");break;default:system("cls&
35、quot;);printf("nnt您的输入有误,请正确选择功能!");break;if(a=0&&(ch='y'|ch='Y')system("color 0c");date();printf("nnnnt 欢 迎 下 次 再 使 用 ! ");wang();break;while(1);void insert() /开户 wang();do system("cls"); /清屏system("color f0");date();printf(&
36、quot;nntt请输入新储户的信息:");doprintf("nntt储户帐号(10位): ");fflush(stdin);gets(huA-B.idnum);if(strlen(huA-B.idnum)!=10)system("cls");printf("ntt输入错误!ntt帐号请输入10位数字或字母");for(i=0;i<A-B;i+)if(strcmp(huA-B.idnum,hui.idnum)=0)break;if(i<A-B)printf("nntt该帐户已存在,请重新输入帐号&qu
37、ot;);while(strlen(huA-B.idnum)!=10|i<A-B);printf("ntt储户密码(6位): ");for(i=0;i<6;i+)fflush(stdin);huA-B.passwordi=getch();printf("*");huA-B.password6='0'fflush(stdin);scanf("%c",&ch);printf("ntt姓名: ");fflush(stdin);gets(huA-B.name);doprintf("ntt储户身份证号码(18位): ");fflush(stdin);gets(huA-B.idnumber);if(strlen(huA-B.idnumber)!=18)printf("ntt输入错误!ntt身份证请输入18位数字或字母n");for(i=0;i<A-B;i+)if(strcmp(huA-B.idnumber,hui.idnumber)=0&&strcmp(huA-B.name,)!=0)break;if(i<A-B)printf("nntt前面已有一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 住宅房屋租赁合同标准文本
- 福建省南平市2024-2025学年高二上学期期末质量检测政治试题 无答案
- 公司物品采购合同范例
- 买卖车合同标准文本6
- 协议价合同标准文本
- 卖给车贩子合同标准文本
- 劳动洗衣服课件
- 汽车交付流程介绍
- 个人租房合同范例 1
- 大班海上运动课件
- 电影后期制作服务合同样本
- 2025届河北省石家庄市高三下学期一模政治试题(原卷版+解析版)
- 2025年皖西卫生职业学院单招职业适应性测试题库及参考答案
- 2025年江苏苏州吴江区消防安全委员会招聘专职工作人员12人历年高频重点模拟试卷提升(共500题附带答案详解)
- 《移动通信技术简介》课件
- 《城市规划与发展趋势》课件
- 智慧海防管控平台建设方案
- 病人私自外出护理不良事件
- 克服考试紧张情绪的技巧
- 中学教育《养成好习惯》主题班会课件
- 出警民警自身安全课件
评论
0/150
提交评论