ATMC语言编程源代码说课讲解Word下载.docx
- 文档编号:16966767
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:21
- 大小:19.39KB
ATMC语言编程源代码说课讲解Word下载.docx
《ATMC语言编程源代码说课讲解Word下载.docx》由会员分享,可在线阅读,更多相关《ATMC语言编程源代码说课讲解Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
structZhangHu/*定义账户结构体*/
charxingming[17];
/*姓名*/
charzhanghao[12];
/*账号*/
charshenfenzheng[19];
/*身份证*/
charmima[7];
/*密码*/
floatyue;
/*余额*/
structJiaoYijiaoyi[JIAOYISHU];
/*在账户的结构体中在定义交易的结构体*/
intjiaoyishu;
structZhangHuzhanghu[ZHANGHUSHU];
/*定义账户数来确定账户这一结构体中有多少个体*/
intj;
/*当前账户*/
intzhanghushu;
intk;
/*交易帐号*/
voidxianshizhanghu();
intcaidan()/*菜单函数*/
charc;
do
{
system("
cls"
);
/*每次选择运行前清屏*/
printf("
\t\t=================欢迎使用ATM系统===============\n\n"
/*菜单选择*/
\t\t*1.注册**\n"
\t\t*2.登录*\n"
\t\t*3.保存数据*\n"
\t\t*0.退出*\n"
\t\t===============================================\n"
\t\t\t请作出选择(0-3):
"
c=getchar();
/*读入选择*/
}
while(c<
'
0'
||c>
3'
return(c-'
/*c变为空后返回重新选择*/
}/*根据主菜单的返回值来确定主函数的值*/
voidzhuce()
\n\t\t请输入姓名:
scanf("
%s"
zhanghu[zhanghushu].xingming);
\n\t\t请输入帐号:
zhanghu[zhanghushu].zhanghao);
\n\t\t请输入身份证:
zhanghu[zhanghushu].shenfenzheng);
if(strlen(zhanghu[zhanghushu].shenfenzheng)==18)
break;
else
\n\t\t身份证必须是18,请重新输入!
while
(1);
{printf("
\n\t\t请输入密码:
zhanghu[zhanghushu].mima);
if(strlen(zhanghu[zhanghushu].mima)==6)
\n\t\t密码必须是6位,请重新输入!
zhanghu[zhanghushu].yue=0;
zhanghu[zhanghushu].jiaoyishu=0;
zhanghushu++;
xianshizhanghu();
}
voidxianshizhanghu()/*显示账户函数来显示所输入的账户*/
inti;
for(i=0;
i<
zhanghushu;
i++)
\n\n\t帐号\t姓名\t身份证\t\t密码\t余额\n"
\t%s\t%s\t%s\t%s\t%.2f\n"
zhanghu[i].zhanghao,zhanghu[i].xingming,zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue);
pause"
voiddenglu()/*登录函数*/
charzhanghao[12],mima[7];
inti=0;
intmimacishu=1;
zhanghao);
while(strcmp(zhanghao,zhanghu[i].zhanghao)!
=0&
&
zhanghushu)
i++;
/**/
if(i==zhanghushu)
return;
mima);
if(strcmp(mima,zhanghu[i].mima)!
=0)
if(mimacishu==3)
你已输入错误三次,你不能在输."
密码错误请重新输入:
mimacishu++;
for(;
;
)
switch(menu())/*选择判断*/
case1:
cunkuan();
case2:
qukuan();
case3:
zhuanzhang();
case4:
chaxun();
case5:
xiugaimima();
case0:
voidbaocunshuju()/*保存数据*/
inti,j;
FILE*fp;
charfilename[20];
\t\t\t将数据保存到一个文本文件中\n"
/*输入文件名*/
\t\t\t请输入文件名"
fflush(stdin);
filename);
if((fp=fopen(filename,"
w"
))==NULL)/*打开文件*/
无法创建此文件\n"
fprintf(fp,"
%d\n"
zhanghushu);
/*循环写入数据*/
\t帐号\t\t姓名\t\t身份证\t\t密码\t余额\t交易数"
\t%15s%10s%20s%10s\t%10.2f\t%5d\n"
zhanghu[i].zhanghao,zhanghu[i].xingming,zhanghu[i].shenfenzheng,zhanghu[i].mima,zhanghu[i].yue,zhanghu[i].jiaoyishu);
for(j=0;
j<
zhanghu[i].jiaoyishu;
j++)
%30s%10s%10.2f%10.2f\n"
zhanghu[i].jiaoyi[j].shijian,zhanghu[i].jiaoyi[j].leixing,zhanghu[i].jiaoyi[j].jine,zhanghu[i].jiaoyi[j].yue);
fclose(fp);
voidduqushuju()
\n\n\n\t请输入欲读入数据的文件名:
\n"
gets(filename);
if(strlen(filename)==0)
r"
无法打开此文件\n"
\t\t成功打开文件.\n"
getch();
fscanf(fp,"
%15s%10s%20s%10f\t%10f%5d\n"
zhanghu[i].zhanghao,
zhanghu[i].xingming,
zhanghu[i].shenfenzheng,
zhanghu[i].mima,
&
zhanghu[i].yue,
zhanghu[i].jiaoyishu);
fgets(zhanghu[i].jiaoyi[j].shijian,30,fp);
%5s%10f\t%10f\n"
zhanghu[i].jiaoyi[j].leixing,
(zhanghu[i].jiaoyi[j].jine),
(zhanghu[i].jiaoyi[j].yue));
intmenu()
printf("
\n\n\t=================欢迎使用XXX银行ATM==================\n\n"
\t=====================请选择服务=====================\n"
\t**\n"
\t*1实时存款2取款服务*\n"
\t*3转账服务4查询*\n"
\t*5修改密码6退出*\n"
\t====================================================\n"
\t\t\t请作出选择(1-7):
c=getchar();
system("
1'
7'
voidcunkuan()/*存款函数*/
floatcunkuanjine;
/*输入的存款金额*/
intk;
chart[30];
time_trawtime;
structtm*timeinfo;
time(&
rawtime);
timeinfo=localtime(&
strcpy(t,asctime(timeinfo));
t[i]!
='
\0'
if(t[i]=='
\n'
{
t[i]='
请输入存款金额(存款金额必须大于0,不超过10000,必须是100元的面额\n"
%f"
&
cunkuanjine);
if(cunkuanjine<
=0||cunkuanjine>
1000||(int)cunkuanjine%100!
金额不符合要求,请重新选择"
k=zhanghu[j].jiaoyishu;
strcpy(zhanghu[j].jiaoyi[k].shijian,t);
strcpy(zhanghu[j].jiaoyi[k].leixing,"
存"
zhanghu[j].jiaoyi[k].jine=cunkuanjine;
zhanghu[j].yue+=cunkuanjine;
zhanghu[j].jiaoyi[k].yue=zhanghu[j].yue;
zhanghu[j].jiaoyishu++;
\n\\t\t\t您本次存了%.2f元\n"
cunkuanjine);
\n\\t\t\t您的余额为%.2f元\n"
zhanghu[j].yue);
\n时间为:
%s\n"
zhanghu[j].jiaoyi[k].shijian);
\n类型为:
zhanghu[j].jiaoyi[k].leixing);
voidqukuan()/*取款函数*/
/*交易下标*/
floatqukuanjine;
}
取款服务\n"
\t*11002200*\n"
\t*350041000*\n"
\t*5其他金额6返回主菜单*\n"
qukuanjine);
if(qukuanjine<
=0||qukuanjine>
10000||(int)qukuanjine%100!
if(zhanghu[j].yue<
qukuanjine)
你的账户余额不足,不能完成这项操作。
{
取"
zhanghu[j].jiaoyi[k].jine=qukuanjine;
zhanghu[j].yue-=qukuanjine;
\n\\t\t\t您本次取款%.2f元\n"
qukuanjine);
voidzhuanzhang()
floatzhuanzhangjine;
intl=0;
chart[30],zhuanzhangzhanghao[12];
charsign='
n'
请输入你要转入的帐号:
zhuanzhangzhanghao);
while(strcmp(zhanghu[l].zhanghao,zhuanzhangzhanghao)!
l<
l++;
if(l==zhanghushu)
你输入的用户不存在!
\n该账户户主姓名为%s\n,是否确认转账Y/N?
zhanghu[j].xingming);
\t\t%c"
sign);
/*输入判断*/
if(sign!
y'
sign!
Y'
)/*判断*/
\n请输入转账金额(大于100不超过5000):
zhuanzhangjine);
if(zhuanzhangjine<
100||zhuanzhangjine>
5000)
输入金额不对,请重新输入!
=0||zhanghu[j].yue<
zhuanzhangjine)
账户余额不足\n"
转账"
zhanghu[j].jiaoyi[k].jine=zhuanzhangjine;
zhanghu[j].yue-=zhuanzhangjine;
\n\t\t你本次转了%0.2f元\n"
zhuanzhangjine);
\n\t\t你的余额为%0.2f元\n"
\n\t\t时间为:
\n\t\t类型为:
}while(0);
\n\n\t\t转账成功\n\n"
}
voidxiugaimima()/*修改密码函数*/
charmima1[7],mima2[7];
\n\n\n\t\t请输入密码:
mima1);
if(strlen(mima1)==6)
\n\n\t\t密码必须是6位,请重新输入!
}while
(1);
\n\n\n\t\t请确认密码:
mima2);
if(strlen(mima2)==6)
输入密码必须是6位请输入密码:
}while
(1);
if(strcmp(mima1,mima2)==0)/*判断第二次输入的密码是否与第一次的一致*/
\n\n\t\t*|两次密码不相等请重新输入:
\n\n"
strcpy(zhanghu[j].mima,mima1);
\n\n\t\t修改密码成功\n\n"
intchaxuncaidan();
/*查询菜单*/
voidchaxunyue();
voidchaxuncunkun();
voidchaxunqukun();
voidchaxunzhuangzhan();
voidchaxunjiaoyi();
voidduqushuju();
voidchaxun()/*查询函数*/
switch(chaxuncaidan())/*选择判断*/
chaxunyue();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATMC 语言 编程 源代码 讲解