C语言课程设计ATM机模拟操作附源码.docx
《C语言课程设计ATM机模拟操作附源码.docx》由会员分享,可在线阅读,更多相关《C语言课程设计ATM机模拟操作附源码.docx(14页珍藏版)》请在冰豆网上搜索。
C语言课程设计ATM机模拟操作附源码
C语言-ATM机模拟操作
程序实现功能点:
a.查询:
查询帐户的存款余额。
按任意键返回主菜单;
b.取款:
输入100、500、1000、2000、5000、其它金额为取款金额,取款金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单;
c.存款:
输入100、500、1000、2000、5000、其它金额为存款金额,存款金额不超过20000元,操作后帐户余额应相应增加。
之后可返回主菜单;
d.转帐:
输入一个帐户号,程序判断与文件信息是否相符,储户确认无误后,再输入100、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。
e.修改密码:
连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到帐户信息文件中。
f.退出:
退出系统;
g.帮助:
增加趣味性;
h.存款时,可正可负,正表示存款,负表示取款;
i.帐户信息存放在文件,储户存取款记录保存在中;(在目录下创建这两个文件)
j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用;
k.储户一天内输错密码的次数不能超过3次,否则无法进入系统;
l.有效避免输入存款金额、取款金额为负数等异常情况的出现。
较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。
是否超过余额,是否不符合格式,是否为冲突操作。
(2)程序运行截图及说明(每图限50到100字);
进入程序,menu1可选择登录、注册功能。
选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。
若登录失败,则重新选择。
选择注册,输入账号密码,写入文件中。
进入menu2,有五大功能选择,输入对应的序列号进入。
余额查询功能输出账号所对应的余额。
取款功能,需要安装要求取出格式化的金额。
存款功能,选择金额,若超过存款,自动报错。
存储成功后,在屏幕上显示余额并可在txt中看到对应数目的增加。
修改密码功能,输入当前密码,输入新密码,并进行确认。
即修改成功。
转账功能,输入对方卡号,核程序核对卡号是否存在,选择金额转账,对应存款的减少会反映在屏幕的余额上。
退出功能,任意键退出程序。
帮助功能,介绍了本程序的相关信息。
(3)采用的主要技术(限150到200字);
答:
主要采用模块化管理代码。
使用结构体对文本信息进行操作、运用文件操作相关函数如fwrite()、fread()、fgets()、fputs()、fgetc()、fputc()、fopen()、fclose()......
并使用指针操作数值。
附:
程序代码
#include<>
#defineN3
voidenterzhanghao();um))
{
for(k=1;k{if(user==(ATM[k].num))inputmima();}system("cls");printf("\t\t\t\t\t*账户不存在,请从新输入*\t\t\t\t\t\n");enterzhanghao();}elseinputmima();}voidflesh(){system("cls");printf("\t\t\t\t\t请输入账号:");scanf("%f",&ATM[k].num);printf("\t\t\t\t\t请输入密码:");scanf("%f",&ATM[k].password);write();}assword){temp--;system("cls");printf("\t\t\t\t\t*密码错误,请重新输入*\t\t\t\t\n");printf("\t\t\t\t\t*您还有:");printf("%d",temp);printf("次机会*\n");scanf("%d",&code);if(temp==1){system("cls");printf("\t\t\t\t\t*您已经3次输入密码错误*\t\t\t\t\n");printf("\t\t\t\t\t*系统将退出操作*\t\t\t\t\n");daly();enterzhanghao();}}menu();}ccounte&&i!=0){ATM[k].accounte=ATM[k].accounte-i;printf("\t\t\t\t\t取款成功!你的余额为:");printf("%f",ATM[k].accounte);i=i*(-1);write2(i);}elseprintf("\t\t\t\t\t余额不足!");write();}lf\n\n\n\n\n",ATM[k].num,ATM[k].accounte);}ccounte=i+ATM[k].accounte;printf("%f",ATM[k].accounte);write();write2(i);}assword){loop:printf("\t\t\t\t\t请输入新的密码:");scanf("%d",&password2);printf("\n");printf("\t\t\t\t\t请再次输入新的密码:");scanf("%d",&password3);if(password2==password3){ATM[k].password=password2;printf("\t\t\t\t\t\n密码修改成功!\n");}else{printf("\t\t\t\t\t\n密码不一致!\n");printf("\t\t\t\t\t请重新输入!!\n");gotoloop;}}else{printf("\t\t\t\t\t输入错误\n");change();}write();}um));fscanf(fp,"%d",&(ATM[i].password));fscanf(fp,"%lf\n",&(ATM[i].accounte));}fclose(fp);}um);fprintf(fp,"%-8d",ATM[i].password);fprintf(fp,"%lf\n",ATM[i].accounte);}fclose(fp);}回菜单");printf("\n\n\n\n\n\n\t\t\t请输要对方的账号:");scanf("%d",other_num[10]);um)um)um);回菜单\t\t\t9.确认");scanf("%d",&c);回菜单");printf("\n\n\n\n\n\n\t\t请输入转账金额(整百数):");scanf("%d",&q);getchar();if(q)ccounte)ccounte-=tran;ATM[k].accounte+=tran;menu();回菜单\t\t\t9.继续转账");c=_getch();if(c=='9')//输入9就行转账{system("CLS");}elseif(c=='0')//c为0返回菜单{system("CLS");menu();}else{printf("输入错误,请重新输入!\n");system("CLS");}}else{system("CLS");printf("\n\n\n\n\n\n\t\t对不起,一次最多能转账3000元,请重新输入!");printf("\n\n\n\n\n按任意键返回!\n");_getch();system("CLS");}}else{system("CLS");printf("\n\n\n\n\n\n\t\t\t您的余额不足,请重新输入!");printf("\n\n\n\n\n按任意键返回!\n");_getch();system("CLS");}}else{system("CLS");printf("\n\n\n\n\n\n\t\t\t请输入正确的金额!请重新输入!");printf("\n\n\n\n\n按任意键返回!\n");_getch();system("CLS");}}else{system("CLS");menu();}}while(1);}elseif(c=='0')menu();}}}{system("CLS");printf("\n\n\n\n\n\n\t\t\t用户不存在!请重新输入!");printf("\n\n\n\n\n按任意键返回!\n");_getch();system("CLS");tran_account();//递归调用}}}//帮助voidhelp(){system("CLS");printf("\t\t\t\t\t**************************************\n");printf("\t\t\t\t\t->码字不易,我可以在你心里跑一圈吗<-\n");printf("\t\t\t\t\t->1、可以<-\n");printf("\t\t\t\t\t->2、当然可以<-\n");printf("\t\t\t\t\t**************************************\n");printf("\t\t\t\t\t->你要选哪个<-\n");intk;scanf("%d",&k);switch(k){case1:{printf("蟹蟹你~~~!\n");_getch();menu();};break;case2:{printf("等下我,第十圈了!\3n");_getch();menu();}break;}}
if(user==(ATM[k].num))
inputmima();
}
system("cls");
printf("\t\t\t\t\t*账户不存在,请从新输入*\t\t\t\t\t\n");
enterzhanghao();
else
voidflesh()
printf("\t\t\t\t\t请输入账号:
");
scanf("%f",&ATM[k].num);
printf("\t\t\t\t\t请输入密码:
scanf("%f",&ATM[k].password);
write();
assword)
temp--;
printf("\t\t\t\t\t*密码错误,请重新输入*\t\t\t\t\n");
printf("\t\t\t\t\t*您还有:
printf("%d",temp);
printf("次机会*\n");
scanf("%d",&code);
if(temp==1)
printf("\t\t\t\t\t*您已经3次输入密码错误*\t\t\t\t\n");
printf("\t\t\t\t\t*系统将退出操作*\t\t\t\t\n");
daly();
menu();
ccounte&&i!
=0)
ATM[k].accounte=ATM[k].accounte-i;
printf("\t\t\t\t\t取款成功!
你的余额为:
printf("%f",ATM[k].accounte);
i=i*(-1);
write2(i);
printf("\t\t\t\t\t余额不足!
lf\n\n\n\n\n",ATM[k].num,ATM[k].accounte);
ccounte=i+ATM[k].accounte;
loop:
printf("\t\t\t\t\t请输入新的密码:
scanf("%d",&password2);
printf("\n");
printf("\t\t\t\t\t请再次输入新的密码:
scanf("%d",&password3);
if(password2==password3)
ATM[k].password=password2;
printf("\t\t\t\t\t\n密码修改成功!
\n");
printf("\t\t\t\t\t\n密码不一致!
printf("\t\t\t\t\t请重新输入!
!
gotoloop;
printf("\t\t\t\t\t输入错误\n");
change();
um));
fscanf(fp,"%d",&(ATM[i].password));
fscanf(fp,"%lf\n",&(ATM[i].accounte));
fclose(fp);
um);
fprintf(fp,"%-8d",ATM[i].password);
fprintf(fp,"%lf\n",ATM[i].accounte);
回菜单");
printf("\n\n\n\n\n\n\t\t\t请输要对方的账号:
scanf("%d",other_num[10]);um)um)um);回菜单\t\t\t9.确认");
scanf("%d",&c);回菜单");
printf("\n\n\n\n\n\n\t\t请输入转账金额(整百数):
scanf("%d",&q);getchar();
if(q)ccounte)ccounte-=tran;
ATM[k].accounte+=tran;
menu();回菜单\t\t\t9.继续转账");
c=_getch();
if(c=='9')//输入9就行转账
system("CLS");
if(c=='0')//c为0返回菜单
printf("输入错误,请重新输入!
printf("\n\n\n\n\n\n\t\t对不起,一次最多能转账3000元,请重新输入!
printf("\n\n\n\n\n按任意键返回!
_getch();
printf("\n\n\n\n\n\n\t\t\t您的余额不足,请重新输入!
printf("\n\n\n\n\n\n\t\t\t请输入正确的金额!
请重新输入!
}while
(1);
if(c=='0')
printf("\n\n\n\n\n\n\t\t\t用户不存在!
tran_account();//递归调用
//帮助
voidhelp()
printf("\t\t\t\t\t**************************************\n");
printf("\t\t\t\t\t->码字不易,我可以在你心里跑一圈吗<-\n");
printf("\t\t\t\t\t->1、可以<-\n");
printf("\t\t\t\t\t->2、当然可以<-\n");
printf("\t\t\t\t\t->你要选哪个<-\n");
intk;
scanf("%d",&k);
switch(k){
case1:
{printf("蟹蟹你~~~!
\n");_getch();menu();
};break;
case2:
{printf("等下我,第十圈了!
\3n");_getch();menu();
}break;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1