#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<iostream>
void read();
void kaihu();
int s(int id);
int n(int id,char password[20]);
void denglu();
int tuichu();
void zhuye();
void cunkuan();
void qukuan();
void xiugaimima();
void chaxunyu_e();
void chenggong();
void yemian();
void write();
void zhuanzhang();
void xiaohu();
void chuangli();
int i;
int j=0;
struct member
{
int id;
char password[20];
int yu_e;
};
struct member men[100];
void main()//主函数
{
chuangli();
yemian();
}
void yemian()//主页函数
{
int x;
system("color 8F");
printf("请选择您要办理的业务:\n");
printf("=====================\n");
printf("|1:开户 2:登录|\n");
printf("|3:退出 |\n");
printf("=====================\n");
scanf("%d",&x);
switch(x)
{
case 1:kaihu();break;
case 2:denglu();break;
case 3:tuichu();break;
}
}
void denglu()//登录函数
{
read();
int id;
char password[20];
printf("请输入账号:\n");
scanf("%d",&id);
int c=s(id);
if(c==1)
{
printf("请输入密码:\n");
scanf("%s",&password);
int m=n(id,password);
int t=3;
while(m==0)
{
t--;
system("cls");
printf("密码错误,请重新输入密码\n");
printf("您还有%d次机会:",t);
scanf("%s",&password);
m=n(id,password);
if(m==1)
{
zhuye();
}
if(t==1)
{
printf("您已经输入密码错误三次!\n");
printf("系统即将退回主页!\n");
yemian();
}
}
zhuye();
}
else if(c==0)
{
printf("账号不存在!\n");
}
}
int s(int id)//账号验证函数
{
for(i=0;i<100;i++)
{
if(men[i].id==id)
{
return 1;
}
}
return 0;
}
int n(int id,char password[20])//密码验证函数
{
for(i=0;i<100;i++)
{
if(men[i].id==id && strcmp(men[i].password,password)==0)
{
return 1;
}
}
return 0;
}
void kaihu()//开户函数
{
read();
srand(time(NULL));
int id=rand()%1000000+100000;//随机生成六位数的账号
printf("账号:\n%d\n",id);
int c=s(id);
if(c==1)
{
printf("账号已存在!\n");
_sleep(2000);
yemian();
}
else
{
men[j].id=id;
printf("请输入密码:\n");
scanf("%s",men[j].password);
printf("请输入存款金额:\n");
scanf("%d",&men[j].yu_e);
printf("恭喜您开户成功!\n");
j++;
write();
_sleep(2000);
system("cls");
yemian();
}
}
void write()//文件写入函数
{
FILE *fp;
fp=fopen("ATM.txt","w");
fprintf(fp,"%d\n",j);
for(i=0;i<j+1;i++)
{
fprintf(fp,"%-10d",men[i].id);
fprintf(fp,"%-10s",men[i].password);
fprintf(fp,"%-10d\n",men[i].yu_e);
}
fclose(fp);
}
void read()//读取文件函数
{
FILE *fp;
fp=fopen("ATM.txt","r");
fscanf(fp,"%d",&j);
for(i=0;i<j+1;i++)
{
fscanf(fp,"%d",&men[i].id);
fscanf(fp,"%s",men[i].password);
fscanf(fp,"%d\n",&men[i].yu_e);
}
fclose(fp);
}
int tuichu()//退出函数
{
system("cls");
printf("欢迎下次光临!\n");
return 0;
}
void zhuye()//操作界面函数
{
int x;
system("cls");
printf("请选择您需要的操作:\n");
printf("===============================\n");
printf("|1:存款 2:取款 |\n");
printf("|3:修改密码 4:查询余额|\n");
printf("|5:转账 6:销户 |\n");
printf("|7:退出 |\n");
printf("===============================\n");
scanf("%d",&x);
switch(x)
{
case 1:cunkuan();break;
case 2:qukuan();break;
case 3:xiugaimima();break;
case 4:chaxunyu_e();break;
case 5:zhuanzhang();
case 6:xiaohu();break;
case 7:tuichu();break;
}
}
void cunkuan()//存款函数
{
system("cls");
int n;
printf("请输入您的存款金额:\n");
scanf("%d",&n);
(men[i].yu_e)=(men[i].yu_e)+n;
write();
chenggong();
}
void qukuan()//取款函数
{
system("cls");
int n;
printf("请输入取款金额:\n");
scanf("%d",&n);
if(n>men[i].yu_e)
{
printf("余额不足!\n");
_sleep(2000);
zhuye();
}
else
{
(men[i].yu_e)=(men[i].yu_e)-n;
write();
chenggong();
}
}
void xiugaimima()//修改密码函数
{
system("cls");
char mima[100];
printf("请输入新密码:\n");
scanf("%s",mima);
strcpy(men[i].password,mima);
write();
chenggong();
}
void chaxunyu_e()//查询余额函数
{
system("cls");
int x;
printf("您的余额:%d\n",men[i].yu_e);
printf("====================\n");
printf("|1:取款 2:存款|\n");
printf("|3退出 |\n");
printf("====================\n");
scanf("%d",&x);
switch(x)
{
case 1:qukuan();break;
case 2:cunkuan();break;
case 3:zhuye();break;
}
}
void chenggong()//操作成功函数
{
int x;
system("cls");
printf("操作成功!\n");
printf("1:继续 2:退出\n");
scanf("%d",&x);
switch(x)
{
case 1:cunkuan();break;
case 2:zhuye();break;
}
}
void zhuanzhang()//转账函数
{
int tid,a,g=0,h;
printf("请输入您需要转账的卡号:\n");
scanf("%d",&tid);
for(a=0;a<j+1;a++)
{
if(tid==men[a].id && tid!=men[i].id)
{
g=2;
break;
}
else if(tid==men[i].id)
{
printf("错误转账!\n");
break;
}
if(a==j)
{
printf("用户不存在!\n");
zhuanzhang();
}
}
while(g==2)
{
printf("请输入转账金额:\n");
scanf("%d",&h);
if(h<=men[i].yu_e)
{
men[i].yu_e-=h;
men[a].yu_e+=h;
write();
chenggong();
g=0;
}
else
{
printf("余额不足!");
g=0;
}
}
}
void xiaohu()//销户函数
{
int d;
system("cls");
printf("是否需要销户\n");
printf("======================\n");
printf("|1:确定 2:取消|\n");
printf("======================\n");
scanf("%d",&d);
if(d==1)
{
for(;i<j+1;i++)
{
men[i].id=men[i+1].id;
strcpy(men[i].password,men[i+1].password);
men[i].yu_e=men[i+1].yu_e;
}
j--;
write();
printf("销户成功!\n");
_sleep(2*1000);
system("cls");
yemian();
}
else if(d==2)
{
zhuye();
}
}
void chuangli()
{
FILE *fp;
fp=fopen("ATM.txt","a");
fclose(fp);
}