c语言程序设计atm自动取款机实验报告.doc_第1页
c语言程序设计atm自动取款机实验报告.doc_第2页
c语言程序设计atm自动取款机实验报告.doc_第3页
c语言程序设计atm自动取款机实验报告.doc_第4页
c语言程序设计atm自动取款机实验报告.doc_第5页
免费预览已结束,剩余74页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告课程类别:本科课程名称:程序设计基础(C语言)课程代号:指导教师:银行ATM自动取款机系统课程设计姓名: 学号:姓名: 学号:姓名: 学号:学院:班级:程序设计基础-C语言课程设计报告 第 79 页,共 79 页目 录1.课程设计内容2.课程设计要求3可行性研究4需求分析5.概要设计5.1 功能模块图5.2 功能模块描述5.3数据结构6.详细设计6.1 功能流程图6.2 重点设计7.测试与调试8.总结8.1 心得体会8.2 不足与改进9.参考文献1.课程设计内容模拟银行的自动取款机ATM使用过程中的界面和用户交互过程2课程设计要求(1)要求利用面向过程的方法以及C语言的编程思想来完成系统的设计; (2)在系统的设计中,要求运用菜单和文件实现系统功能。(3)在基本要求达到后,可进行创新设计,如存款、代缴电话费等,或设计友好的界面等。3可行性研究系统是一个基于局域网、互联网和WINDOWS操作的系统,现有技术已较为成熟,利用现有技术完全可以实现系统开发目标。同时具有优秀的软件需求人员、软件设计人员、和具有丰富经验的软件测试人员。4需求分析在市场经济的蓬勃发展和人们日益繁忙的条件下,现有的银行系统往往需 要客户在办理手续时等待很长的时间,这不仅会浪费很多宝贵的时间,也 会使得银行的业务人员十分的繁忙,需要很大的人力和财力。5概要设计5.1 功能模块图此处除了系统的模块划分,还要重点描述三人分工情况,分工一定要明确。储户信息类 设 置 储 户 信 息 修 改 密 码 查 询 余 额取 款取 密 码取储 户 名转 账5.2 功能模块描述银行自动取款机菜单界面设 置 储 户 信 息修 改 密 码查 询 余 额取 款转 账取储户 名5.3 数据结构#include#include void main() int Num,a,code,ll=0,l=0,p,n,r=0,x,m,Num1,Num2; int num10,feng10,money10,s6,t6; int i=0; for(p=0;p9;p+) nump=000000; moneyp=5000; fengp=0; loop: /首先.请陈老师原谅我N多的goto. printf( _n); printf(| |n); printf(| 欢迎使用ATM自动取款机 |n); printf(| |n); printf(| 第一小组热情开发 |n); printf(|_|n); printf( 请输入卡号:); scanf(%d,&Num); fflush(stdin); if(Num=00) printf(是否进入管理员模式?1/2:);/是否进入管理员模式。 scanf(%d,&a); fflush(stdin); switch(a) case 1: printf(请输入管理员密码(6位):); scanf(%d,&code); fflush(stdin); if(code!=num0) printf(密码不正确!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto loop; else guanlimoshi:/密码输入正确后,进入管理模式. system(cls); printf(|-欢迎进入管理员模式-|n); printf(| 1:查询用户帐户信息 |n); printf(| 2:返回欢迎界面 |n); printf(|_|n); printf( 请选择:); scanf(%d,&n); fflush(stdin); switch(n) case 1:system(cls);goto guanli;break; case 2:system(cls);goto loop;break; case 2: system(cls); goto loop; break; default:printf(输入错误!n);break; else if(fengNum=1)/如果输入的不是管理员帐号,则判断该帐号是否被封. printf(该帐号已被封存!n);/如果被封,则返回开头. printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto loop; else/如果没被封,则开始输入密码. printf(请输入密码:);state: scanf(%d,&code); fflush(stdin); if(code!=numNum) printf(密码不正确!请重新输入:); i+;/计算输入错误几次. if(i3) goto state; else printf(连续三次出错!n); +r;/计算连续三次出错共有几次. if(r5000)/判断累计取款额. printf(累计取款超过5000元,系统出错.n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto shuru; else/若低于5000,则开始取款. if(moneyNum100)/判断此时余额,进行屏幕打印. printf(余额不足.n);/以下N个疯狂的循环道理同此. printf(按任意键返回。n); while(getchar()!=EOF) system(cls);/原谅我吧蒋老师.我实在没想出啥好方法. goto shuru; else if(moneyNum200)/现金在0200元之间时。 printf(请选择:1.100元 2.返回上一级n); scanf(%d,&n); fflush(stdin); switch(n) case 1: printf(正在取款,请稍候.n); moneyNum-=100; l+=100; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 2:goto shuru;break; default: printf(输入错误!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; else if(moneyNum500)/现金在0500元之间时。 printf(请选择:1.100元 2.200元 3.返回上一级.n); scanf(%d,&n); fflush(stdin); switch(n) case 1: printf(正在取款,请稍候.n); moneyNum-=100; l+=100; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 2: printf(正在取款,请稍候.n); moneyNum-=200; l+=200; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 3:goto shuru;break; default: printf(输入错误!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; else if(moneyNum1000)/现金在01000元之间时。 printf(请选择:1.100元 2.200元 3.500元 4.返回上一级.n); scanf(%d,&n); fflush(stdin); switch(n) case 1: printf(正在取款,请稍候.n); moneyNum-=100; l+=100; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 2: printf(正在取款,请稍候.n); moneyNum-=200; l+=200; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 3: printf(正在取款,请稍候.n); moneyNum-=500; l+=500; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 4:goto shuru;break; default: printf(输入错误!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; else if(moneyNum2000)/现金在02000元之间时。 printf(请选择:1.100元 2.200元 3.500元 4.1000元 5.返回上一级.n); scanf(%d,&n); fflush(stdin); switch(n) case 1: printf(正在取款,请稍候.n); moneyNum-=100; l+=100; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 2: printf(正在取款,请稍候.n); moneyNum-=200; l+=200; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 3: printf(正在取款,请稍候.n); moneyNum-=500; l+=500; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 4: printf(正在取款,请稍候.n); moneyNum-=1000; l+=1000; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 5:goto shuru;break; default: printf(输入错误!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; else/现金在2000元以上时。 printf(请选择:1.100元 2.200元 3.500元 4.1000元 5.2000元 6.返回上一级.n); scanf(%d,&n); fflush(stdin); switch(n) case 1: printf(正在取款,请稍候.n); moneyNum-=100; l+=100; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 2: printf(正在取款,请稍候.n); moneyNum-=200; l+=200; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 3: printf(正在取款,请稍候.n); moneyNum-=500; l+=500; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 4: printf(正在取款,请稍候.n); moneyNum-=1000; l+=1000; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 5: printf(正在取款,请稍候.n); moneyNum-=2000; l+=2000; printf(取款成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; case 6:goto shuru;break; default: printf(输入错误!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; break; case 2:goto shuru;break; default: printf(输入错误!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto qukuan; break; mimaxiugai:/进入修改密码页面。 printf(|-修改密码-|n); printf(| 请选择: |n); printf(| 1.修改密码。 |n); printf(| 2.返回上一级。 |n); printf(|_|n); scanf(%d,&x); fflush(stdin); switch(x) case 1: printf(请输入新密码(六位):n);/第一次输入。 for(m=0;m=5;m+) sm=getch();/这里,输入时可以显示*,但是不能用退格健。 printf(*);/退格键会被当作一个字符输入。问题有待解决 printf(请重新输入密码(六位):n);/第二次输入。 for(m=0;m=5;m+) tm=getch(); printf(*); for(m=0;m=ll) moneyNum-=ll; moneyNum1+=ll; printf(转账成功!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto zhuanzhang; else printf(余额不足!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto zhuanzhang; break; else /输入不同,则返回。 printf(账号确认失败!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto zhuanzhang; case 2:system(cls);goto shuru;break; default: printf(输入错误!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto zhuanzhang; break; yuechaxun:/进入余额查询页面。直接打印出余额。 printf(|-余额查询-|n); printf(|当前余额:%6d-|n,moneyNum); printf(| 按0返回上一级 |n); printf(|_|n); scanf(%d,&x); fflush(stdin); switch(x)/按0返回。 case 0:system(cls);goto shuru;break; default: printf(输入错误!请重新输入。n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto yuechaxun; break; guanli:/进入管理员页面。可以查询用户信息。 printf(|-查询用户信息-|n); printf(| 1.输入账号. |n); printf(| 2.返回上一级. |n); printf(|_|n); printf(请输入选项:); scanf(%d,&x); switch(x) case 1: printf(请输入账号:); scanf(%d,&Num); fflush(stdin); printf(|-用户名称:%06d-|n,Num); printf(| 用户密码:%06d |n,numNum); printf(| 用户余额:%6d |n,moneyNum); printf(|_|n); if(fengNum=1) printf(该账号已被封存!n); printf(是否解封?(Y/N)n); scanf(%c,&x); if(x=y)|(x=Y) fengNum=0; printf(账号已解封!n); else break; printf(按0返回上一级。); scanf(%d,&x); fflush(stdin); switch(x) case 0: system(cls); goto guanli; break; default:break; case 2:system(cls);goto guanlimoshi;break; default: printf(输入错误!请重新输入:); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto guanli; break; lishijilu: printf(|-历史纪录-|n); printf(| 对不起,本功能尚未完善,敬请期待后续|n); printf(| * _ * |n); printf(|_|n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto shuru; 6详细设计6.1 功能流程图(1)设子储户信息流程从bank银行类中输入储户信息添加到consumer储户类中(2)修改密码流程输入原密码输入新密码与原先存储密码比对YN退出系统(一次机会)取代原密码6.2 重点设计主要函数main,enter, getmoney, changepassword, yuerchaxun, banksaves, transaccount, exitcaozuo.7测试与调试欢迎界面功能界面取款界面取款结束界面余额查询界面修改密码界面转账界面#include#include void main() int Num,a,code,ll=0,l=0,p,n,r=0,x,m,Num1,Num2; int num10,feng10,money10,s6,t6; int i=0; for(p=0;p9;p+) nump=000000; moneyp=5000; fengp=0; loop: /首先.请陈老师原谅我N多的goto. printf( _n); printf(| |n); printf(| 欢迎使用ATM自动取款机 |n); printf(| |n); printf(| 第一小组热情开发 |n); printf(|_|n); printf( 请输入卡号:); scanf(%d,&Num); fflush(stdin); if(Num=00) printf(是否进入管理员模式?1/2:);/是否进入管理员模式。 scanf(%d,&a); fflush(stdin); switch(a) case 1: printf(请输入管理员密码(6位):); scanf(%d,&code); fflush(stdin); if(code!=num0) printf(密码不正确!n); printf(按任意键返回。n); while(getchar()!=EOF) system(cls); goto loop; else guanlimoshi:/密码输入正确后,进入管理模式. system(cls); printf(|-欢迎进入管理员模式-|n); printf(| 1:查询用户帐户信息 |n); printf(| 2:返回欢迎界面 |n); printf(|_|n); printf( 请选择:); scanf(%d,&n); fflush(stdin); switch(n) case 1:system(cls);goto

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论