C语言课程设计ATM机模拟操作附源码文档格式.docx
《C语言课程设计ATM机模拟操作附源码文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计ATM机模拟操作附源码文档格式.docx(12页珍藏版)》请在冰点文库上搜索。
k.储户一天内输错密码的次数不能超过3次,否则无法进入系统;
l.有效避免输入存款金额、取款金额为负数等异常情况的出现。
较为突出的功能是注册、登录时账号密码的核对验证;
存款转出转入金额的核对。
是否超过余额,是否不符合格式,是否为冲突操作。
(2)程序运行截图及说明(每图限50到100字);
进入程序,menul可选择登录、注册功能。
选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。
若登录失败,则重新选择。
IG\V/lNDOV/S\iy%tem32\cmdrxe
_□
选择注册,输入账号密码,写入文件中。
□<
a..
IG\V/1NDOV/S\iyitem32\cmdrxr
-□
进入menu2,有五大功能选择,输入对应的序列号进入。
A/S\system32\cmd.exe
余额査询功能输出账号所对应的余额O
item32\cmd.exe
帐号10001,余额:
10000.00
育询余额取款存款
修改密码转账
退出登录
取款功能,需要安装要求取出格式化的金额。
m32\cmd.exe
iff输入你要取款的金额:
100
200
500
1000
2000其他金额
请输入对应序列号:
•2\cmd.exe
取款成功!
你的余额为:
9900.000000
』、、・、、
123456
询款款改账出查取存修转退
存款功能,选择金额,若超过存款,自动报错。
存储成功后,在屏幕上显示余额并可在txt中看到对应数目的增加。
n32\cmd.exe
请输入你要取款的金额:
修改密码功能,输入当前密码,输入新密码,并进行确认。
即修改成功。
▼林
31CAV/INDOWS\sy5tem32\cmd.exe
:
mm
请输入新的密码:
222222
请再次输入新的密码:
码修改成功!
勺£
左一询款款改账出一S取存修转退一
一
-
-123456-
转账功能,输入对方卡号,核程序核对卡号是否存在,选择金额转账,对应存款的减少会反映在屏幕的余额上。
o•返回菜单
请输要对方的账号:
退出功能,任意键退出程序。
曲C:
\WINDOWS\$^tem32\cmd^xe
按任总健继续
帮助功能,介绍了本程序的相关信息。
何BSCAWINDOWSUystem32\cmd.exe
额码录余密登询歉歉改账出助直取存修转退帮一
(3)采用的主要技术(限150到200字);
答:
主要采用模块化管理代码。
使用结构体对文本信息进行操作、运用文
件操作相关函数如fwrite()>
fread()、fgets()、fputs()>
fgetc()>
fputc()、fopen()、fclose()
并使用指针操作数值。
附:
程序代码
ftincludeO
tiincludeO
ttincludeO
ttdefineN3
voidenterzhanghao():
um))
{
for(k=1;
k<
N;
k++)
if(user==(ATM[k].num))
inputmimaO;
}
system("
cis"
);
请从新输入
printf("
\t\t\t\t\t*账户不存在,
*\t\t\t\t\t\n"
enterzhanghao();
voidflesh()
cls〃);
printf(z,\t\t\t\t\t请输入账号:
”);
scanf&
ATM[k].num);
\t\t\t\t\t请输入密码:
"
ATM[kJ.password);
write();
}assword)
temp——;
systemCcls"
printf(〃\t\t\t\t\t*
密码错误,请重新输入
printf(〃\t\t\t\t\t*
您还有:
〃);
printftemp);
printfC次机会*\n"
scanf&
code);
if(temp==1)
cls"
\t\t\t\t\t*您已经3次输入密码错误
*\t\t\t\t\n,z);
\t\t\t\t\t*系统将退出操作
daly();
menu();
ccounte&
&
i!
==0)
ATM[kJ.accounte=ATM[k].accounte-i:
printf(,z\t\t\t\t\t取款成功!
printfATM[k].accounte);
i=i*(-1);
write2(i);
lf\n\n\n\n\nz,,ATM[k]・num,ATMLk]・accounte);
ccounte二i+ATM[k]・accounte:
printfATM[kJ.accounte);
assword)
loop:
printf(,z\t\t\t\t\t请输入新的密码:
”);
scanf(“%d"
&
password?
printf("
\n"
printf(zz\t\t\t\t\t请再次输入新的密码:
scanf(z,%d/z,&
password3);
if(password2二二password3)
ATM[k]・password二password2;
printfC\t\t\t\t\t\n密码不一致!
\rT);
printf("
\t\t\t\t\t请重新输入\n"
gotoloop;
else
printfC\t\t\t\t\t输入错误\iT);
change();
fscanf(fp,&
(ATMLi]・password));
(ATM[i].accounte));
fclose(fp);
um);
回菜单〃);
\n\n\n\n\n\n\t\t\t请输要对方的账号:
scanfC%d,z,other_num[10]):
um)um)
回菜单\t\t\t9.确认"
);
scanf&
c);
回菜单"
\n\n\n\n\n\n\t\t请输入转账金额(整
百数):
q);
getchar();
if(q)ccounte)ccounte-二tran;
ATM[k]・accounte+二tran;
menu();
回菜单\t\t\t9.继续
转账〃);
c=_getch();
if(c='
9'
)〃输入9就行
转账
CLS〃);
if(c=P)〃c为0返回菜单
CLS"
printf(,z输入错误,请重新输入!
\n〃);
\n\n\n\n\n\n\t\t对不起,一次最多能转账3000元,请重新输入!
〃);
回!
\n〃);
system(,/CLS,/);
printf(,z\n\n\n\n\n\n\t\t\t您的余额不足,请重新输入!
\n\n\n\n\n按任意键返回
_getch();
system(/,CLS,/);
printf(z/\n\n\n\n\n\n\t\t\t请输入正确的金额!
请重新输入!
}whi.le
(1);
if(c=='
O'
)
printf(z,\n\n\n\n\n\n\t\t\t用户不存在!
请重新输入!
“);
tran_account();
//递归调用
〃帮助
voidhelp()
printf(/z\t\t\t\t\t->
码字不易,我可以在你心电跑一圈吗
<
-\n,0;
printf(,,\t\t\t\t\t~>
可以
-\n,z);
printf(z,\t\t\t\t\t->
当然可以
-\n0;
你要选哪个
printf(〃\t\t\t\t\t-〉
intk;
k);
switch(k){
case1:
{printf("
蟹蟹你、\n〃);
_getch();
};
break;
_getch();
menu();
case2:
{printf("
等下我,第十圈了!
\3n"
}break;