C语言实训ATM机存取款机管理系统.docx
《C语言实训ATM机存取款机管理系统.docx》由会员分享,可在线阅读,更多相关《C语言实训ATM机存取款机管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
C语言实训ATM机存取款机管理系统
/***********************************************/
/*实训案例:
ATM存取款机管理系统*/
/***********************************************/
#include
#include
#include
#include
#include
#defineN3/*用户人数*/
structclients
{
longintcard_number,card_password;
charname[20];
floatmoney;
}yonghu[N];//结构体
FILE*fp;
inti;
voidfuction(float,int);//定义变量
main()//主函数
{
system("color8F");//界面颜色
intj,number,password,times1=3,times2=3,b;
charch;
fp=fopen("clients.txt","a+");//读写文本
if(getw(fp)==EOF)
{
/*欢迎界面进度条*/
inti=0,j=0,k=0;
for(i=0;i<80;i++)
{
printf(">");
for(j=0;j<3000;j++)
for(k=0;k<3000;k++);
}
printf("\n\n");
printf("\t\t\t欢迎使用中国银行\n");
printf("\n\n");
for(i=0;i<80;i++)
{
printf(">");
for(j=0;j<3000;j++)
for(k=0;k<3000;k++);
}
printf("\n");
printf("\n");
/*管理员操作新建用户*/
printf("\n\t\t管理员操作请按1,普通用户登入请按2继续:
");
scanf("%d",&b);
if(b==1)
{
printf("\n\t\t管理员操作中,添加新卡请继续(y/n):
");
ch=getch();
while(ch=='y'||ch=='Y')
{
printf("\n");
printf("\t\t\t银行卡号");
scanf("%d",&yonghu[i].card_number);
printf("\t\t\t密码");
scanf("%d",&yonghu[i].card_password);
printf("\t\t\t用户名");
scanf("%s",yonghu[i].name);
printf("\t\t\t卡内金额");
scanf("%f",&yonghu[i].money);
printf("\n");
fprintf(fp,"%d%d%s%f",yonghu[i].card_number,
yonghu[i].card_password,yonghu[i].name,
yonghu[i].money);
putc('\n',fp);
printf("\t\t你想继续添加新卡吗?
(y/n):
");
ch=getch();
}
}
}
fclose(fp);
/*登录系统,输入卡号和密码*/
system("cls");
printf("\n\t\t\t||====================================||");
printf("\n\t\t\t||------------------------------------||");
printf("\n\t\t\t||---欢迎使用中国银行自助ATM机---||");
printf("\n\t\t\t||------------------------------------||");
printf("\n\t\t\t||====================================||");
printf("\n\n");
printf("\t\t\t请输入您的银行卡号:
");
scanf("%d",&number);
printf("\t\t\t请输入您的密码:
");
scanf("%d",&password);
fp=fopen("clients.txt","r+");
for(i=0;i{
fscanf(fp,"%d%d%s%f",&yonghu[i].card_number,
&yonghu[i].card_password,yonghu[i].name,
&yonghu[i].money);
}
fclose(fp);
/*判断卡号及密码是否匹配*/
for(i=0;i{
if((number!
=yonghu[0].card_number)&&(number!
=yonghu[1].card_number)&&(number!
=yonghu[2].card_number))
{
if((times1-1)!
=0)
{
printf("\t\t\t该用户不存在!
您还有%d次尝试机会\n",times1-1);
printf("\t\t\t请重新输入您的银行卡号:
");
scanf("%d",&number);
printf("\t\t\t请输入您的密码:
");
scanf("%d",&password);
i=-1;
}
else
{
printf("您的磁卡已被冻结请到银行解除:
\n");
exit(0);
}
times1--;
}
else
{
if(number==yonghu[i].card_number)
{
if(password==yonghu[i].card_password)
{system("cls");
printf("\n\n");
printf("\t\t\t%s登陆成功!
请继续您的操作\n",yonghu[i].name);
j=i;
i=5;/*登陆成功,退出循环*/
}
else
{
if((times2-1)!
=0)
{
printf("密码输入错误!
您还有%d次尝试机会\n",times2-1);
printf("\t\t\t请输入您的密码:
\n");
scanf("%d",&password);
i=-1;
}
else
{
printf("尝试失败!
请按任意键退出:
\n");
exit(0);
}
times2--;
}
}
}
}
fuction(yonghu[j].money,j);
}
voidsave(void)//文件文本保存
{
inti;
fp=fopen("clients.txt","w");
for(i=0;i{
fprintf(fp,"%d%d%s%f",yonghu[i].card_number,
yonghu[i].card_password,yonghu[i].name,
yonghu[i].money);
putc('\n',fp);
}
puts("保存成功!
");
fclose(fp);
}
voidfuction(floatm,intk)//功能界面
{
floatsaved_money,fetched_money,payment;
intbank_num,x,old_password,new_password,b,h;
while
(1)
{
system("cls");
printf("\n\t\t请选择操作:
");
printf("\n\t\t||===================================||");
printf("\n\t\t||1.查询2.取款||");
printf("\n\t\t||||");
printf("\n\t\t||3.存款4.修改密码||");
printf("\n\t\t||||");
printf("\n\t\t||5.转帐6.取卡||");
printf("\n\t\t||===================================||");
printf("\n\n");
/******功能实现*********/
scanf("%d",&x);
switch(x)
{
//查询余额
case1:
printf("卡内金额:
%f\n",m);
printf("返回请按1,取卡请按0\n");
scanf("%d",&b);
for(h=1;;h++)
{
if(b!
=1&&b!
=0)
{system("cls");
printf("输入有误请重新输入!
\n");
printf("返回请按1,取卡请按0\n");
scanf("%d",&b);
}
if(b==1)
{
break;
}
else
exit(0);
}
break;
//取款
case2:
printf("卡内金额:
%f\n",m);
printf("请输入取款金额:
\n");
scanf("%f",&fetched_money);
m-=fetched_money;
while((fetched_money<0)||(m<0))
{
system("cls");
printf("输入有误!
请重新输入!
\n");
m+=fetched_money;
printf("输入1重新输入,输入0返回!
\n");
scanf("%d",&h);
if(h==0)
break;
if(h==1)
{
printf("请输入取款金额:
\n");
scanf("%f",&fetched_money);
m-=fetched_money;
if(fetched_money>0)
break;
else
{
printf("输入1重新输入,输入0返回!
\n");
scanf("%d",&h);
}
}
}
while(fetched_money>0)
{
printf("操作成功!
卡内余额为:
%f\n",m);
yonghu[k].money=m;
save();
printf("请输入1继续,0取卡\n");
scanf("%d",&b);
if(b==0)
{
exit(0);
}
else
break;
}
break;
//存款
case3:
printf("卡内金额:
%f\n",m);
printf("请输入存款金额:
\n");
scanf("%f",&saved_money);
while(saved_money<0)
{system("cls");
printf("输入有误!
!
\n");
printf("重新输入请按1,返回请按0\n");
scanf("%d",&h);
getchar();
while(h==1)
{
printf("请输入存款金额:
\n");
scanf("%f",&saved_money);
if(saved_money>0)
{
break;
}
else
{
printf("输入有误!
!
\n");
printf("重新输入请按1,返回请按0\n");
scanf("%d",&h);
if(h==1)
{
break;
}
}
}
if(h==0)
break;
}
while(saved_money>0)
{
m+=saved_money;
printf("操作成功!
卡内余额为:
%f\n",m);
yonghu[k].money=m;
save();
printf("继续请按1,取卡请按0\n");
scanf("%d",&b);
if(b==0)
{
exit(0);
break;
}
else
break;
}
break;
//改密码
case4:
while
(1)
{
printf("继续请按1,返回请按0\n");
scanf("%d",&h);
if(h==1)
{
printf("请输入原密码:
\n");
scanf("%d",&old_password);
if(old_password==yonghu[k].card_password)
{
printf("请输入新密码:
\n");
scanf("%d",&new_password);
printf("密码修改成功!
\n");
yonghu[k].card_password=new_password;
fp=fopen("clients.txt","w+");
for(i=0;i{
fprintf(fp,"%d%d%s%f",yonghu[i].card_number,
yonghu[i].card_password,yonghu[i].name,yonghu[i].money);
putc('\n',fp);
}
fclose(fp);
printf("请输入1继续,0取卡");
scanf("%d",&b);
if(b==0)
{
save();
exit(0);
}
else
break;
}
else
printf("密码输入错误!
\n");
}
elseif(h==0)
{
break;
}
}
break;
//转帐
case5:
printf("卡内金额:
%f\n",m);
printf("请输入银行帐号:
\n");
scanf("%d",&bank_num);
printf("继续请输入1,返回请输入0的数;\n");
scanf("%d",&h);
if(h==1)
{
printf("请输入转帐金额:
");
scanf("%f",&payment);
m-=payment;
while((payment<0)||(m<0))
{
printf("输入有误!
请重新输入!
\n");
m+=payment;
printf("请输入转帐金额:
\n");
scanf("%f",&payment);
m-=payment;
}
yonghu[k].money=m;
save();
printf("操作成功!
卡内余额为:
%f\n",m);
printf("继续请按1,取卡请按0\n");
scanf("%d",&b);
getchar();
while(b==1)
{
break;
}
while(b==0)
{
exit(0);
}
yonghu[k].money=m;
fp=fopen("clients.txt","w+");
for(i=0;i{
fprintf(fp,"%d%d%s%f",yonghu[i].card_number,yonghu[i].card_password,yonghu[i].name,yonghu[i].money);
putc('\n',fp);
}
fclose(fp);
}
break;
//取卡
case6:
system("color2B");
printf("请收好您的磁卡!
");exit(0);break;
default:
printf("输入有误!
请重新输入!
\n");
break;
}
}
}