C语言课程设计 ATM机模拟操作附源码.docx
《C语言课程设计 ATM机模拟操作附源码.docx》由会员分享,可在线阅读,更多相关《C语言课程设计 ATM机模拟操作附源码.docx(12页珍藏版)》请在冰豆网上搜索。
![C语言课程设计 ATM机模拟操作附源码.docx](https://file1.bdocx.com/fileroot1/2022-12/13/528cff59-ee3a-4f9b-99f6-aa623f965380/528cff59-ee3a-4f9b-99f6-aa623f9653801.gif)
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.
存款转出转入登录时账号密码的核对验证;较为突出的功能是注册、金额的核对。
是否超过余额,是否不符合格式,是否为冲突操作。
;100字)50
(2)程序运行截图及说明(每图限到menu1可选择登录、注册功能。
进入程序,
选择登录,输入账号密码,通过输入内容与文件的匹配,判断是
否成功登录。
若登录失败,则重新选择。
选择注册,输入账号密码,写入文件中。
有五大功能选择,输入对应的序列号进入。
menu2,进入
余额查询功能输出账号所对应的余额。
取款功能,需要安装要求取出格式化的金额。
存款功能,选择金额,若超过存款,自动报错。
存储成功后,在
中看到对应数目的增加。
屏幕上显示余额并可在txt
修改密码功能,输入当前密码,输入新密码,并进行确认。
即修改成功。
.
转账功能,输入对方卡号,核程序核对卡号是否存在,选择金额
转账,对应存款的减少会反映在屏幕的余额上。
退出功能,任意键退出程序。
帮助功能,介绍了本程序的相关信息。
;200(3)采用的主要技术(限150到字)运用文件操作相关函数如使用结构体对文本信息进行操作、答:
主要采用模块化管理代码。
fwrite()、fread()、fgets()、fputs()、fclose()......fopen()、fgetc()、fputc()、并使用指针操作数值。
附:
程序代码#include<>#include<>#include<>#include<>#include<>
#defineN3
voidenterzhanghao();um))
{
N;k++)for(k=1;k<
{
(user==(ATM[k].num))if
inputmima();
}
捜獬system();printf(\\t\t\t\t*账户不存在,请从新输入);尪瑜屜屴瑜屜屴瑜屜屮enterzhanghao();}
else
inputmima();}flesh()void{
捜獬);system(
printf(\\t\t\t\t请输入账号:
);,&ATM[k].num);scanf(╜屦);\\t\t\t\t请输入密码:
printf(,&ATM[k].password);scanf(╜屦write();
}
assword){
temp--;
);system(捜獬
);尪瑜屜屴瑜屜屴湜密码错误,请重新输入printf(\\t\t\t\t*
?
printf(\\t\t\t\t*您还有);printf(╜層,temp);
尪湜);次机会printf(,&code);╜層scanf(if(temp==1)
{
system(捜獬);printf(\\t\t\t\t*您已经);尪瑜屜屴瑜屜屴湜次输入密码错误3
);尪瑜屜屴瑜屜屴湜系统将退出操作printf(\\t\t\t\t*
daly();enterzhanghao();
}
}menu();
}ccounte&&i!
=0){
ATM[k].accounte=ATM[k].accounte-i;
取款成功!
你的余额为:
);\\t\t\t\tprintf(,ATM[k].accounte);printf(╜屦i=i*(-1);
write2(i);
}
else);余额不足!
\\t\t\t\tprintf(
write();},ATM[k].num,ATM[k].accounte);晬屜屮湜屜屮湜屜屮
}ccounte=i+ATM[k].accounte;,ATM[k].accounte);printf(╜屦write();
write2(i);
}assword){);请输入新的密码:
loop:
printf(\\t\t\t\tscanf(,&password2);╜層
);printf(屜湜请再次输入新的密码:
);printf(\\t\t\t\t
&password3);scanf(╜層
(password2==password3)if
{ATM[k].password=password2;);屜屮密码修改成功!
\\t\t\t\t\nprintf(
}else{密码不一致!
屜屮);\\t\t\t\t\nprintf(
printf(屜屮!
请重新输入!
\\t\t\t\t);loop;goto}}else{printf(屜屮输入错误\\t\t\t\t);
change();
}write();
}um));╜層fscanf(fp,,&(ATM[i].password));
&(ATM[i].accounte));╜晬屜屮fscanf(fp,
}fclose(fp);}um);,ATM[i].password);╜?
層fprintf(fp,
fprintf(fp,╜晬屜屮,ATM[i].accounte);
}
fclose(fp);
});回菜单);请输要对方的账号:
\
\n\n\n\n\n\t\t\tprintf(
回um);,other_num[10]);scanf(╜層um)um)
\t\t\t9.菜单确认);scanf(╜層);,&c);回菜单请输入转账金额(整百数)printf(\
\n\n\n\n\n\t\t:
);
&q);getchar();scanf(╜層ccounte)ccounte-=tran;(q)ifATM[k].accounte+=tran;
);继续转账回菜单menu();\t\t\t9.c=_getch();
输入//'9'if(c==)就行转账9{
?
卌system();
}else
0为//c'0'(c==if)返回菜单{
?
卌system();menu();}
else
{
输入错误,请重新输入!
printf();屜屮
system();?
卌
}
}
else
{
system(?
卌);
对不起,一次最多能printf(\
\n\n\n\n\n\t\t
);元,请重新输入!
3000转账);屜屮\
\n\n\n\nprintf(按任意键返回!
_getch();
);?
卌system(
}
}
else
{
?
卌system();
请重新输您的余额不足,\
\n\n\n\n\n\t\t\tprintf(
入!
);\
\n\n\n\nprintf(按任意键返回!
屜屮);
_getch();
system(?
卌);
}
}
else
{
);system(?
卌
请输入正确的金额!
请重新输\
\n\n\n\n\n\t\t\tprintf(
);入!
);\
\n\n\n\n按任意键返回!
屜屮printf(
_getch();
);system(?
卌
}
}
else
{
system(?
卌);
menu();}
(1);}while
}
else
'0')if(c==
menu();
}
}
}{);system(?
卌printf(\
\n\n\n\n\n\t\t\t用户不存在!
请重新输入!
);printf(\
\n\n\n\n按任意键返回!
屜屮);_getch();
?
卌);system(递归调用//tran_account();
}}
}帮助//help()void
{system(?
卌);printf(屜瑜屜屴瑜屜屴瑜?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
屜屮);
?
屜屮);printf(\\t\t\t\t->码字不易,我可以在你心里跑一圈吗);1、可以?
屜屮printf(\\t\t\t\t->
?
屜屮);2printf(\\t\t\t\t->、当然可以
);printf(屜瑜屜屴瑜屜屴瑜?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
屜屮?
屜屮);你要选哪个\\t\t\t\t->printf(intk;╜層,&k);scanf(switch(k){);_getch();menu();1:
{printf(case蟹蟹你繾?
屜屮break};;等下我,第十圈了!
屜渳);_getch();menu();case2:
{printf(
;}break
}
}