|
|
|
|
|
#include <conio.h>
|
|
|
#include <string.h>
|
|
|
#include <stdio.h>
|
|
|
#include <stdlib.h>
|
|
|
void yonghudlscreen();
|
|
|
void zhucescreen();
|
|
|
void zhanghuye();
|
|
|
void cunkuan();
|
|
|
void qukuan();
|
|
|
void zhanghucr();
|
|
|
void zhanghuxg();
|
|
|
void zhanghusc();
|
|
|
void gerendlscreen();
|
|
|
void mainscreen();
|
|
|
void saverecords();
|
|
|
int load();
|
|
|
struct person
|
|
|
{
|
|
|
char number[50],password[50],name[50],num[50];
|
|
|
}p1;
|
|
|
int main()
|
|
|
{
|
|
|
mainscreen();
|
|
|
return 0;
|
|
|
}
|
|
|
void mainscreen()
|
|
|
{
|
|
|
int x;
|
|
|
while(1)
|
|
|
{
|
|
|
printf("********** 银行账户管理系统 **********\n");
|
|
|
printf("\n\n\n");
|
|
|
printf("********** 1.用户登录 **********\n");
|
|
|
printf("********** 2.用户注册 **********\n");
|
|
|
printf("********** 0.返回系统 **********\n");
|
|
|
printf("\n\n\n");
|
|
|
printf("请输入操作(0-2);");
|
|
|
scanf("%d",&x);
|
|
|
if(x==0)
|
|
|
break;
|
|
|
switch(x)
|
|
|
{
|
|
|
case 1:yonghudlscreen();break;
|
|
|
case 2:zhucescreen();break;
|
|
|
}
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
void zhucescreen() //用户注册界面
|
|
|
{
|
|
|
FILE *fp;
|
|
|
int flag=1,x;
|
|
|
load();
|
|
|
while(flag==1){
|
|
|
if((fp=fopen("用户信息.txt","a"))==NULL)
|
|
|
{
|
|
|
printf("文件打开错误!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
printf("请输入银行账户:\n");
|
|
|
scanf("\n%s",p1.number);
|
|
|
fprintf(fp,"\n%s ",p1.number);
|
|
|
printf("请输入密码:\n");
|
|
|
scanf(" %s",p1.password);
|
|
|
fprintf(fp,"%s ",p1.password);
|
|
|
printf("请输入姓名:\n");
|
|
|
scanf(" %s",p1.name);
|
|
|
fprintf(fp,"%s ",p1.name);
|
|
|
printf("请输入身份证号:\n");
|
|
|
scanf(" %s",p1.num);
|
|
|
fprintf(fp,"%s 0",p1.num);
|
|
|
if(fclose(fp))
|
|
|
{
|
|
|
printf("文件无法关闭!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
printf("注册成功!\n");
|
|
|
printf("按1再次注册,按0退出\n\n");
|
|
|
printf("下步操作: ");
|
|
|
scanf("%d",&flag);
|
|
|
}
|
|
|
return ;
|
|
|
}
|
|
|
void yonghudlscreen()
|
|
|
{
|
|
|
FILE *fp;
|
|
|
int flag=1,x;
|
|
|
load();
|
|
|
while(flag==1){
|
|
|
if((fp=fopen("用户信息.txt","rb"))==NULL)
|
|
|
{
|
|
|
printf("文件打开错误!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
char mima[32];
|
|
|
printf("请输入银行账户:\n");
|
|
|
scanf("%s",p1.number);
|
|
|
printf("请输入密码:\n");
|
|
|
scanf("%s",mima);
|
|
|
if(strcmp(mima,p1.password)==0)
|
|
|
{
|
|
|
printf("登录成功\n");
|
|
|
gerendlscreen();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("密码错误\n");
|
|
|
system("pause");
|
|
|
}
|
|
|
if(fclose(fp))
|
|
|
{
|
|
|
printf("文件无法关闭!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
void gerendlscreen()
|
|
|
{
|
|
|
int x;
|
|
|
while(1)
|
|
|
{
|
|
|
printf("********** 功能 **********\n");
|
|
|
printf("\n\n\n");
|
|
|
printf("********** 1.查询账户余额 **********\n");
|
|
|
printf("********** 2.存款 **********\n");
|
|
|
printf("********** 3.取款 **********\n");
|
|
|
printf("********** 4.账户插入 **********\n");
|
|
|
printf("********** 5.账户修改 **********\n");
|
|
|
printf("********** 6.账户删除 **********\n");
|
|
|
printf("********** 0.返回系统 **********\n");
|
|
|
printf("\n\n\n");
|
|
|
printf("请输入操作(0-6);");
|
|
|
scanf("%d",&x);
|
|
|
switch(x)
|
|
|
{
|
|
|
case 0:mainscreen();break;
|
|
|
case 1:zhanghuye();break;
|
|
|
case 2:cunkuan();break;
|
|
|
case 3:qukuan();break;
|
|
|
case 4:zhanghucr();break;
|
|
|
case 5:zhanghuxg();break;
|
|
|
case 6:zhanghusc();break;
|
|
|
}
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
void zhanghuye()
|
|
|
{
|
|
|
FILE *fp;
|
|
|
struct zhanghu
|
|
|
{
|
|
|
int ye;
|
|
|
}Zh;
|
|
|
int flag=1,x;
|
|
|
load();
|
|
|
while(flag==1){
|
|
|
if((fp=fopen("用户信息.txt","rb"))==NULL)
|
|
|
{
|
|
|
printf("文件打开错误!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
|
|
|
fscanf(fp,"%d",&Zh.ye);
|
|
|
printf("%d\n",Zh.ye);
|
|
|
if(fclose(fp))
|
|
|
{
|
|
|
printf("文件无法关闭!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
gerendlscreen();
|
|
|
return ;
|
|
|
}
|
|
|
}
|
|
|
void cunkuan()
|
|
|
{
|
|
|
FILE *fp;
|
|
|
struct zhanghu
|
|
|
{
|
|
|
int ye;
|
|
|
}Zh;
|
|
|
int flag=1,a,n;
|
|
|
load();
|
|
|
while(flag==1){
|
|
|
if((fp=fopen("用户信息.txt","wb"))==NULL)
|
|
|
{
|
|
|
printf("文件打开错误!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
printf("请输入存款金额:");
|
|
|
scanf("%d",&a);
|
|
|
fscanf(fp,"%d",&Zh.ye);
|
|
|
Zh.ye=Zh.ye+a;
|
|
|
fprintf(fp,"%d",Zh.ye);
|
|
|
printf("%d\n",Zh.ye);
|
|
|
if(fclose(fp))
|
|
|
{
|
|
|
printf("文件无法关闭!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
gerendlscreen();
|
|
|
return ;
|
|
|
}
|
|
|
}
|
|
|
void qukuan()
|
|
|
{
|
|
|
FILE *fp;
|
|
|
struct zhanghu
|
|
|
{
|
|
|
int ye;
|
|
|
}Zh;
|
|
|
int flag=1,a;
|
|
|
load();
|
|
|
while(flag==1){
|
|
|
if((fp=fopen("用户信息.txt","wb"))==NULL)
|
|
|
{
|
|
|
printf("文件打开错误!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
scanf("%d",&a);
|
|
|
fscanf(fp,"%d",&Zh.ye);
|
|
|
if(a>Zh.ye)
|
|
|
printf("账户余额不足\n");
|
|
|
else{
|
|
|
Zh.ye=Zh.ye-a;
|
|
|
fprintf(fp,"%d",Zh.ye);
|
|
|
}
|
|
|
if(fclose(fp))
|
|
|
{
|
|
|
printf("文件无法关闭!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
gerendlscreen();
|
|
|
return ;
|
|
|
}
|
|
|
}
|
|
|
void zhanghucr()
|
|
|
{
|
|
|
FILE *fp;
|
|
|
int flag=1,x;
|
|
|
load();
|
|
|
while(flag==1){
|
|
|
if((fp=fopen("用户信息.txt","rb"))==NULL)
|
|
|
{
|
|
|
printf("文件打开错误!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
char mima[32];
|
|
|
printf("插入新的账户\n");
|
|
|
printf("请输入银行账户:\n");
|
|
|
scanf("%s",p1.number);
|
|
|
printf("请输入密码:\n");
|
|
|
scanf("%s",mima);
|
|
|
if(strcmp(mima,p1.password)==0)
|
|
|
{
|
|
|
printf("登录成功\n");
|
|
|
gerendlscreen();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
printf("密码错误\n");
|
|
|
system("pause");
|
|
|
}
|
|
|
if(fclose(fp))
|
|
|
{
|
|
|
printf("文件无法关闭!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
gerendlscreen();
|
|
|
return;
|
|
|
}
|
|
|
}
|
|
|
void zhanghuxg()
|
|
|
{
|
|
|
FILE *fp;
|
|
|
int flag=1,x;
|
|
|
load();
|
|
|
while(flag==1)
|
|
|
{
|
|
|
if((fp=fopen("用户信息.txt","wb"))==NULL)
|
|
|
{
|
|
|
printf("文件打开错误!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
printf("请输入银行账户:\n");
|
|
|
scanf("\n%s",p1.number);
|
|
|
printf("请输入新密码:\n");
|
|
|
scanf(" %s",p1.password);
|
|
|
fprintf(fp,"%s ",p1.password);
|
|
|
if(fclose(fp))
|
|
|
{
|
|
|
printf("文件无法关闭!\n");
|
|
|
exit (0);
|
|
|
}
|
|
|
printf("修改成功!\n");
|
|
|
printf("按1继续修改,按0退出\n\n");
|
|
|
printf("下步操作: ");
|
|
|
scanf("%d",&flag);
|
|
|
}
|
|
|
gerendlscreen();
|
|
|
return;
|
|
|
}
|
|
|
void zhanghusc()
|
|
|
{
|
|
|
int i,j,n;
|
|
|
char number[50];
|
|
|
int k=-1;
|
|
|
FILE *fp;
|
|
|
n=load();
|
|
|
printf("\n\n输入要删除的账户:");
|
|
|
scanf("%s",&number);
|
|
|
if((fp=fopen("用户信息.txt","w"))==NULL)
|
|
|
{
|
|
|
printf("\n\n打开文件失败\n\n");
|
|
|
}
|
|
|
for(j=0;j<n;j++)
|
|
|
if(strcmp(p1.number,number)==1)
|
|
|
{
|
|
|
k=0;
|
|
|
break;
|
|
|
}
|
|
|
if(k==-1)
|
|
|
{
|
|
|
printf("该账户不存在!\n");
|
|
|
}
|
|
|
for(i=0;i<n;i++) if(i!=j)
|
|
|
/********删除选项,并自动调整其他所有选项*************/
|
|
|
fprintf(fp,"%s %s %s %s\n",p1.number,p1.password,p1.name,p1.num);
|
|
|
fclose(fp);
|
|
|
|
|
|
|
|
|
return;
|
|
|
}
|
|
|
int load()//**********加载函数**********/
|
|
|
/***********加载所有记录,并且可以返回所有记录的个数********/
|
|
|
{
|
|
|
FILE *fp;
|
|
|
int i;
|
|
|
if((fp=fopen("用户信息.txt","r"))==NULL)
|
|
|
{
|
|
|
printf("\n打开文件失败!\n");
|
|
|
return 0;
|
|
|
}
|
|
|
for(i=0;!feof(fp);i++)
|
|
|
fscanf(fp,"%s%s%s%s",&p1.number,&p1.password,&p1.name,&p1.num);
|
|
|
fclose(fp);
|
|
|
return(i);
|
|
|
}
|