#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
struct customer
{
char number[21];
char password[7];
int money;
};
customer person[100];
int n;
int log;
char nownum[21];
char nowpass[7];
int nowmonye;
void writefile()
{
FILE *fp;
if((fp=fopen("data.txt","w"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
int i=0;
while (i<n)
{
fprintf(fp,"账户%s 密码%s 余额%d\n",person[i].number,person[i].password,person[i].money);
i++;
}
fclose(fp);
}
void readfile()
{
FILE *fp;
if((fp=fopen("data.txt","r"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
int i=0;
while (fscanf(fp,"账户%s 密码%s 余额%d\n",&person[i].number,&person[i].password,&person[i].money)!=EOF)
{
i++;
}
n=i;
fclose(fp);
}
void Find()
{
void Menu();
system("cls");
printf("\n\n账户%s 余额%d\n",person[log].number,person[log].money);
printf("\n按任意键返回菜单!\n");
getch();
Menu();
}
void Deposit()
{
void Menu();
system("cls");
int money;
printf("\n\n请输入取款金额!\n");
scanf("%d",&money);
person[log].money=person[log].money-money;
writefile();
printf("\n是否打印凭条?\n");
printf("\n1.打印凭条 2. 不打印凭条\n");
char c;
c=getch();
switch(c)
{
case '1':
printf("\n\n请保存好您的凭条!\n");
printf("——————————————————\n");
printf("||\t\t\t\t||\n");
printf("||\t\t\t\t||\n");
printf("||账户%s\t||\n",person[log].number);
printf("||\t\t\t\t||\n");
printf("||取款前余额%d\t\t||\n",person[log].money+money);
printf("||\t\t\t\t||\n");
printf("||本次取款金额%d\t\t||\n",money);
printf("||\t\t\t\t||\n");
printf("||取款后余额%d\t\t||\n",person[log].money);
printf("||\t\t\t\t||\n");
printf("——————————————————\n");
printf("\n\n按任意键返回菜单!\n");
getch();
Menu();
break;
case '2':
printf("\n按任意键返回菜单!\n");
getch();
Menu();
}
}
void Withdraw()
{
void Menu();
system("cls");
int money;
printf("\n\n请输入存款金额!\n");
scanf("%d",&money);
person[log].money=person[log].money+money;
writefile();
printf("\n是否打印凭条?\n");
printf("\n1.打印凭条 2. 不打印凭条\n");
char c;
c=getch();
switch(c)
{
case '1':
printf("\n\n请保存好您的凭条!\n");
printf("——————————————————\n");
printf("||\t\t\t\t||\n");
printf("||\t\t\t\t||\n");
printf("||账户%s\t||\n",person[log].number);
printf("||\t\t\t\t||\n");
printf("||存款前余额%d\t\t||\n",person[log].money-money);
printf("||\t\t\t\t||\n");
printf("||本次存款金额%d\t\t||\n",money);
printf("||\t\t\t\t||\n");
printf("||存款后余额%d\t\t||\n",person[log].money);
printf("||\t\t\t\t||\n");
printf("——————————————————\n");
printf("\n\n按任意键返回菜单!\n");
printf("\n按任意键返回菜单!\n");
getch();
Menu();
break;
case '2':
printf("\n按任意键返回菜单!\n");
getch();
Menu();
}
}
void Changepassword()
{
void Menu();
system("cls");
printf("\n\n请输入您的新密码!\n");
LOOP3:
scanf("%s",&nowpass);
if(strlen(nowpass)!=6)
{
printf("\n输入的银行卡密码不是6位,请按重新输入!\n");
goto LOOP3;
}
strcpy(person[n].password,nowpass);
writefile();
printf("\n按任意键返回菜单!\n");
getch();
Menu();
}
void Login()
{
void Menu();
system("cls");
printf("\n\n欢迎使用myATM存取款一体机^-^\n");
printf("\n欢迎登录!\n");
printf("\n请输入银行卡号:\n");
scanf("%s",&nownum);
if(strlen(nownum)!=20)
{
printf("\n您输入的银行卡号不是20位,请按任意键重新登录!\n");
getch();
Login();
}
int i=0;
while (i<n)
{
if(strcmp(nownum,person[i].number)==0)
{
int t=0;
printf("\n请输入密码:\n");
while(t<3)
{
scanf("%s",&nowpass);
if(strlen(nowpass)!=6)
{
printf("\n您输入的银行卡密码不是6位,请按任意键重新登录!\n");
getch();
Login();
}
if(strcmp(nowpass,person[i].password)==0)
{
log=i;
break;
}
else
{
printf("\n密码错误,请重新输入密码:\n");
t++;
}
if(t==3)
{
printf("\n错误超过三次,您的卡将在三秒后爆炸(^_^)\n");
printf("\n系统即将关闭!\n");
getch();
exit(1);
}
}
break;
}
else
i++;
}
if(log==-1)
{
printf("\n该账户不存在!\n");
printf("\n请选择服务:\n");
printf("\n1.重新登录 2.注册当前输入的银行卡\n");
LOOP1:
char c;
c=getch();
switch(c)
{
case '1': Login(); break;
case '2':
printf("\n您的当前要注册的银行卡号为%s!\n请输入六位初始密码!\n",nownum);
LOOP2:
scanf("%s",&nowpass);
if(strlen(nowpass)!=6)
{
printf("\n您输入的银行卡密码不是6位,请按重新输入!\n");
goto LOOP2;
}
n++;
strcpy(person[n].number,nownum);
strcpy(person[n].password,nowpass);
printf("\n注册成功,请记好您的账户和密码!\n");
printf("\n登录成功,按任意键进入菜单!\n");
getch();
Menu();
break;
default:
printf("\n您的按键有误,按任意键重新选择!\n");
getch();
goto LOOP1;
}
}
else
{
printf("\n登录成功,按任意键进入菜单!\n");
getch();
Menu();
}
}
void Menu()
{
system("cls");
printf("\n\n欢迎进入!^-^\n");
printf("\n请选择服务:\n");
printf("\n1.查询余额 2.取款\n");
printf("\n3.存款 4.修改密码\n");
printf("\n5.退出系统");
char c;
c=getch();
switch(c)
{
case '1': Find(); break;
case '2': Deposit(); break;
case '3': Withdraw(); break;
case '4': Changepassword(); break;
case '5': exit(0); break;
default:
printf("\n您的按键有误,按任意键重新选择!\n");
getch();
Menu();
}
}
void main()
{
readfile();
log=-1;
Login();
}
C语言:ATM银行管理
最新推荐文章于 2021-07-29 22:30:38 发布