您的位置:首页 > 其它

模拟ATM取款机

2017-04-09 18:53 393 查看
此程序具有查询余额,取款,存款功能。
/*模拟ATM取款机*/
/*2017年4月8日*/
/*西安科技大学 汪强*/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int m=1;//控制系统退出
struct user//定义结构体
{
char a[20];//用户账号
char b[10];//用户密码
float d;//余额
}s;

void file3()//写余额
{
FILE *in;
if((in=fopen("file2.dat","w"))==NULL)
{
printf("无法打开此文件!\n");
exit(0);
}
fprintf(in,"%f ",s.d);
fclose(in);
}

void file1()//读余额
{
FILE *out;
if((out=fopen("file2.dat","w"))==NULL)
{
printf("无法打开此文件!\n");
exit(0);

}

fscanf(out,"%f ",&s.d);

}

void file()//写入账号和密码
{
FILE *p; char z[20],m[10];
if((p=fopen("file1.dat","w"))==NULL)
{
printf("无法打开此文件!");
exit(0);

}
printf("请输入您的账号:");
scanf("%s",z);
fprintf(p,"%s ",z);
printf("请设置您的密码:");
scanf("%s",m);
fprintf(p,"%s",m);
fclose(p);
}

void file2()//读取账号和密码
{
FILE *q;
if((q=fopen("file1.dat","r"))==NULL)
{
printf("无法打开此文件!\n");
exit(0);

}
fscanf(q,"%s",s.a);
fscanf(q,"%s",s.b);
fclose(q);
}

void like()//是否注册账号
{
int choose;
printf("如需注册账户请按'1',否则请按'0'\n");
scanf("%d",&choose);
while(choose)
{
file();
choose=0;
}

}

void meun()//主界面
{
printf("\t\t\t*************************************************\n");
printf("\t\t\t*                                               *\n");
printf("\t\t\t* 1.查询余额                     2.存款         *\n");
printf("\t\t\t* 3.取款                                        *\n");
printf("\t\t\t* 0.退出系统                                    *\n");
printf("\t\t\t*************************************************\n");
}

void key()//账号登录
{
int flag=1; char code[10],number[20];
while(flag)
{
printf("账号:");

scanf("%s",number);
printf("\n");
printf("密码:");

scanf("%s",code);

if(strcmp(s.a,number)!=0)
{printf("账号输入错误!  ");flag=1;}
if(strcmp(s.b,code)!=0)
{printf("密码输入错误!\n");flag=1;}
if((strcmp(s.a,number)==0)&&(strcmp(s.b,code)==0))
flag=0;
}
}

void cun()//存款
{
float money;
printf("请输入您的存款金额:");
scanf("%f",&money);
printf("\n");
s.d+=money;
printf("存款成功!\n");

}

void qu()//取款
{
float money;
printf("请输入您的取款金额:");
scanf("%f",&money);
printf("\n");
if(money>s.d)
printf("余额不足!\n");
else {s.d-=money;printf("取款成功!\n");}

}

void check()//打印当前余额
{
printf("您当前的余额为:%f",s.d);
printf("\n");
}

void jinru()
{

int choose;
meun();
printf("请输入你要选择的业务(序号):");
scanf("%d",&choose);
switch(choose)
{
case 1:file1();check();break;
case 2:cun();file3();break;
case 3:file1();qu();file3();break;
case 0:m=0;break;
default:printf("输入错误请重新输入!");break;
}

}

int main()//主函数
{
like();
file2();
printf("请登录!\n");
key();
printf("登陆成功!\n");
while(m)
{
jinru();

}
system("pause");
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: