C语言课程设计 ATM机模拟操作附源码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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<>
#define N 3
void enterzhanghao(); 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\t printf(, ATM[k].accounte);printf( ╜屦i = i*(-1);
write2(i);
}
else);余额不足!\\t\t\t\t printf(
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\t scanf(, &password2); ╜層
); printf(屜湜请再次输入新的密码:);printf(\\t\t\t\t
, &password3);scanf( ╜層
(password2 == password3)if
{ATM[k].password = password2;);屜屮密码修改成功!\\t\t\t\t\n printf(
}else{密码不一致!屜屮);\\t\t\t\t\n printf(
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\t printf(
回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) if ATM[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\n printf(按任意键返回!
_getch();
); ?卌system(
}
}
else
{
?卌system();
请重新输您的余额不足,\
\n\n\n\n\n\t\t\t printf(
入!);\
\n\n\n\n printf(按任意键返回!屜屮);
_getch();
system(?卌);
}
}
else
{
); system(?卌
请输入正确的金额!请重新输\
\n\n\n\n\n\t\t\t printf(
);入!);\
\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->
?屜屮); 2 printf(\\t\t\t\t-> 、当然可以
);printf(屜瑜屜屴瑜屜屴瑜???????????????????屜屮?屜屮);你要选哪个\ \t\t\t\t-> printf(int k;╜層, &k);scanf(switch(k){); _getch(); menu(); 1:{printf(case蟹蟹你繾?屜屮
break }; ;等下我,第十圈了!屜渳); _getch(); menu();case 2:{printf( ;}break
}
}。