此程序具有查询余额,取款,存款功能。
/*模拟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;
}
模拟ATM取款机
最新推荐文章于 2022-11-25 08:30:00 发布