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