C语言ATM程序设计之欧阳引擎创编_第1页
C语言ATM程序设计之欧阳引擎创编_第2页
C语言ATM程序设计之欧阳引擎创编_第3页
C语言ATM程序设计之欧阳引擎创编_第4页
C语言ATM程序设计之欧阳引擎创编_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、C语言程序实践欧阳引擎(2021.01.01)实验报告姓名学 号班级指导教师开设学期开设时间实验题目自动取款机程序设计实验日期评定成绩评定人签字评定日期一、实验目的1函数的调用2. 结构体的使用3. 文件的应用:打开、关闭、输入、输出等4. 宏定义二、实验内容与实验步骤实验内容、原理分析1. 给出数据结构或函数定义结构体:stiuct clientslongintcard_number,card_password;char name20;float money;yonghu3;card_nu mber:银行卡号card_password:密 码name:用户名money:卡内金额自定义函数:v

2、oidfuction();用于登陆后的操作2. 用流程图表示出来程序设讣的思想显示菜单输 馭21取款3. 给出具体实验步骤include include /*用户人数可#define N 3struct clientslongintcard】umbcr,card_password:char name20|;float money;yonghuN;FILE *fp;inti;voidfuction(float,int): void main() int j.number.password.tinies 1 =3,times2=3;printfC1欢迎使用中国建设银行自动取款机!

3、n);fp = fopen(Mclients.txtM;,a+,r);if(getw(fp)=EOF)printfC*用户文件未设置!n”);for(i=0;iN;i卄)/*文件不存在时,输入用户信息*/printfCit输入第d位用户的信息:n ,i+1);printfC*银行卡号密码用户名卡内金额5);scanf(%d%d %s %f&yonghui.card_number,&yonghui.card_.& yonghui.money);if(i=l)Iwhile(yonghui.card_numbcr=yonghui-1 .card_number

4、)ll(yonghui .card_password=yonghui-1 .card_password)printfC*输入信息有重复!请重新输入n);printf(请输入第d位用户的信息:n,i+l);printfC*银行卡号密码用户名卡内金额5);scanf(%d %d %s %f&yonghui.card_numbcr.&yonghui.card_password.yonghui.namc, &yonghui.money);if(i=2)(while(yonghui.card_nuinber=yonghui-1 .card_number)ll(yonghui .card_password

5、=yonghui-1 .card_password)ll(yonghu(i.cardiumbcr=yonghui2 .card_number)ll(yonghui.card_password=yonghui-2.card_password)printf(输入信息有重复!请重新输入n);printF(请输入第d位用户的信息:n,i+l);printfC*银行卡号密码用户名卡内金额n);scanf(H%d %d %s %f&yonghui.card_numbcr.&yonghui.card_passwordyonghuinamc. &y onghui.money);fprintf(fp/*%d %

6、d %s %fyonghui.cardiumbcr,yonghuicard_passwordyonghuinamc,y onghu(ij.money);putcC.fp);fclose(fp);printf(nn请登录系统n);/*登录系统,输入卡号和密码*/printf(请输入您的银行卡号:n);scanf(,%d,&numbcr);printf(请输入您的密码:n);scanf(H%d&password);fp = fopen(Hclients.txt,Hr+,r);for(i=0;iN;i+)fscanf(fp.H%d %d %s %f&yonghuicard_numbc匚&yonghu

7、icard_password.yonghuinam c.&y onghui.moncy);fclose(fp);for(i=0;iN;i+)/*判断卡号及密码是否匹配*/if(number!=yonghu0.card_number)&(number!=yonghu 1 .card_numbcr)&gum bcr!=yonghu|2.card_nuinbcr)(if(timesl-l)!=0)(printfC*该用户不存在!您还有%d次尝试机会n,times 1-1);printfC*请输入您的银行卡号:n);scanf(%d&number);printfC*请输入您的密码:n);scanf(%

8、d.&password);i=-l;else(printfC*尝试失败!请按任意键退出:n”);exit(0);times 1-;elseif(number=yonghui.card】umber)if(password=yonghui.card_passvord)printfC*%s登陆成功!请继续您的操作n,); jn;i=5;戶登陆成功,退出循环引elseif(times2-l)!=0)(printfC*密码输入错误!您还有d次尝试机会ntimes2-l);printfC*请输入您的密码:n);scanf(%d,&password);i=-l;elseprintfC

9、*尝试失败!请按任意键退出:n”);exit(0);times2-;fuction(yonghuj.moncy.j);voidfuction(float mint k)floatsaved_moneyjetched_money,payment;intphone_num.x,old_password,new_password;while(l)printfC11.存款An2 取款An3 充话费An4 修改密码An5 显示菜单AnO 退出系统An”); scanf(”d”,&x);switch(x)case 0:printf(”退出系统!”);exit(0);case 1:printf(M卡内金额:

10、printfC*请输入存款金额:n);scanf(n%f&savcd_nioney);while(saved_money0)printf(输入有误!请重新输入!n”);printfC*请输入存款金额:n);scanf(N%f&saved_money);m += saved_money;printf(操作成功!卡内余额为:%fn,m);yonghuk.money = m;fp = fopen(Hclients.txt,;,w+M);for(i=0;iN;i+)fprintf(fp,N%d %d %s %fyonghui.cardiumbcr,yoi】ghuicard_password,yongh

11、ui.namc,y onghuij.money);piHc(n;fp);fclose(fp);break;case 2:printf(H卡内金额:%Anm);printfCiu输入取款金额:n);scanf(M%f&fetched_money);m =fetched_money;while(fetched_money0)ll(m0)(printfC*输入有误!请重新输入!n);m += fetchcd_money;printfC*请输入取款金额:n);scanf(N%f&fctchcd_moncy);m -= fetched_money;primf(操作成珈卡内余额为:yonghuk.mone

12、y = m;fp = fopen(Hclients.txt,;,w+M);for(i=0;iN;i+)(fprintf(fp,N%d %d %s %fyonghui.cardiumbcr,yoi】ghuicard_password,yonghui.namc,y onghuij.money);piHc(n;fp);fclose(fp);break;case 3:printfC卡内金额:%fn,m);printfC请输入电话号码:S);scanf(”cf,&phonc_niim);primf(请输入所交话费金额:n);scanf(N%f&paynient);m -= payment;while(p

13、ayment0)ll(m0)printf(输入有误!请重新输入!n”);m += payment;printfC*请输入所交话费金额:n);scanf(N%f&paynient);m -= payment;printfC*操作成功!卡内余额为:yonghuk.money = m;fp = fopen(Mclients.txt,Mw+n);for(i=0;iN;i+)fprintf(fp,n%d %d %s %fyonghui.card_number,yonghui.card_.y onghu|i.money);putcW.fp);fclose(fp);

14、break;case 4:while(l)printf(请输入原密码:n);scanf(%d,&old_password);if(old_password=yonghuk.card_password)Iprimf(请输入新密码:n);scanf(%d.&new_password):printf(H密码修改成功!nj;yonghuk.card_password = new_password:fp = fopen(Hclients.txt,;,w+M);for(i=0;iN;i+)(fprintf(fp,N%d %d %s %fyonghui.card】umbcr,yonghuicard_pass

15、word,yonghuinamcy onghuij.money);piHc(n;fp);fclose(fp);break;elseprintf(”密码输入错误!n);break:case 5:break:default:printf(输入有误!请重新输入!n);break:三、实验过程与结果分析1. 现象:输入用户信息后,在登录系统时,输入第一个用户的信息,提示该用户不存在解决方法:fp = fopenCclients.txt,r+);for(i=0;i0时,提示剩余尝试机会,times-1=0时,退出程序3. 现象:存取款或充话费时,输入负数仍能运行解决方法:增加循环:while(saved

16、_money0)printf(输入有误!请重新输入!n”);printf(请输入存款金额:n);scanf(%f,&saved_money);while(fetchcd_money0)ll(m0)printf(输入有误!请重新输入!n”);m += fetched_money;printfC请输入取款金额:n”);scanf(n%f.&fetched_money);m -= fetched_money;while(payment0)ll(in0)printf(”输入有误!请重新输入!n”); m += payment;printf(请输入所交话费金额:n);scanf(H%f&payment)

17、;m -= payment;四、实验结果总结c:* *C:Progra* FilesWicrosoft Visual StudioMyProjects.bDebugb. exe*欢迎使用中国建设银行自动取款机?用户名卡内金额9999用户名卡内金额用户名卡内金额请登录系统lirtinze登陆成功?请继续您的操作.000000000000码龍码888證码77?aw甩44用45用46祕位22位22位I322V46文入卡 户输行输行益行- 曙银120蠶120请银一入卡幘输入您的银行卡号:20112244肾输入您的密码,2244 9 一Ist 上3 -K- 统款! 统款彳住 费密菜系额存功费密菜系额取功

18、:费密菜 款款话改示出金入; 存取充修显退嘉-1.ii2.|3,|4,5,0,1 卡请 1 換|2,|3,|4,5,0,2 j金入成款款话改示 鳶呢琴取充修並 卡主诣10揉B-L L L-2345c:* C:PrograM FilesWicrosoft Visual StudioMyProjects.bDebugb. exe*.000000continue峯统 费密菜系 话改示出 充修显退搖901竝 論电78所 金入56入 鳶34输睾统功费密菜系成款款话改示岀 霄取充修显退输44输11码存取充修显退功成改费密菜系 修款款话改示岀|3,4,5,乩 3 卡请U-2请10操|2,3,4,5,0,4 请122请120密12, 费密砖冇系 款款话改一下出 巒皆苕修显退入存取充修显退岀 N 入 y 输an 新

温馨提示

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

最新文档

评论

0/150

提交评论