自动取款机升级版
2015-06-19 08:43
337 查看
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<conio.h>
struct User
{
long bankcard;
char username[30];
char password[20];
char homeaddress[50];
char phone[12];
char idnumber[19];
long money;
int freeze;
};User user[10000000];
char name[30],word[20],phone[12],idnumber[19];
int welcome110();//、、、、、、、、 登陆前界面********
void findpassword();
void freeze();//冻结
void free_();//解冻
void creat();//开户
long entry();//登陆
int welcome2();//*************////////登陆后页面
void search(long m);//查询余额
void deposit(long m);//存款
void draw(long m);//取钱
void del(long m);//销户
void transfer(long m);//转账
void changepassword(long m);/////修改密码
int main()
{
int j,i;
long count=0;
while(1)
{
system("color e9");
j=welcome110();
if(j==0)
break;
switch(j)
{
case 1:creat();break; //////开户
case 2:count=entry();break;//////登录
case 3:freeze();break;//////冻结
case 4:free_();break; /////////解冻
case 5:findpassword();break;////////找回密码
default:printf("你输入的选项号不正确,请重新输入!"); system("pause");break;
}
if(count!=0)
break;
}
///////////////////////////////////////////////////////////登陆后//////////////////////////////////////////////////////////////////////
while(j!=0)
{
i=welcome2();//进入主页面
if(i==0)
break;
switch(i)
{
case 1:search(count);break;////查询余额
case 2:deposit(count);break;////存款
case 3:draw(count);break; /////取款
case 4:transfer(count);break;/////转账
case 5:changepassword(count);break;////////修改密码
case 6:del(count);count=0;main(); break;////////销户
default:printf("你输入的选项号不正确,请重新输入!"); system("pause");break;
}
}
printf("感谢您的使用,欢迎下次使用。\n");
system("pause");
return 0;
}
///////////////////////////////////////函数实现、/////////////////////////////////////
int welcome110()/////////////////////////登陆前界面//////////////////////////////////////////////
{
system("cls");
printf(" *********************************************************************** \n");
printf(" * * \n");
printf(" * 欢迎进入银行管理系统 * \n");
printf(" * * \n");
printf(" *********************************************************************** \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 1.开户 $ 2.登陆 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 3 冻结 $ 4.解冻 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 5 找回密码 $ 0 退出 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf("*请选择您要的功能:");
int i;
scanf("%d",&i);
return i;
}
void creat()///////////////////////////开户////////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==0)
{
sum--; break;
}
}
i=j;
fclose(fp1);
user[i].bankcard=i+1;//使得银行卡号不会重复,
printf("卡号为:");
printf("%09ld",user[i].bankcard);//卡号非用户输入,避免重复
printf("\n请输入姓名:");
scanf("%s",user[i].username);
printf("\n请输入密码:");
for (j=0; j<20; j++)
{
user[i].password[j] = getch(); /*逐次赋值,但不回显*/
if (user[i].password[j]==' '||user[i].password[j]==13)/*回车则终止循环*/
{
user[i].password[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(user[i].password);
for(int k=0;k<len;k++)
user[i].password[k]=user[i].password[k]^1010;//异或 加密
printf("\n请输入住址:");
scanf("%s",user[i].homeaddress);
printf("\n请输入手机号:");
scanf("%s",user[i].phone);
printf("\n请输入身份证号码:");
scanf("%s",user[i].idnumber);
printf("\n请输入存款金额:");
scanf("%ld",&user[i].money);
user[i].freeze=1;
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
return;
}
long entry()////////////////////////////////////登陆/////////////////////////////
{
system("cls");
FILE *fp1;
int i=0,k=0;
char word[20];
long card;
printf("请输入卡号:");
scanf("%ld",&card);
fp1=fopen("d:\\file1.txt","r");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
{
if(card==user[i].bankcard)
{ k=1; break;}
}
if(k==0)
{
printf("您输入的卡号不存在。\n");
system("pause");
return 0;
}
if(user[i].freeze==0)
{
printf("该卡号已经被冻结,不可用\n");
system("pause");
return 0;
}
printf("\n请输入密码:") ;
for(int j=0;j<20;j++)
{
word[j] = getch(); /*逐次赋值,但不回显*/
if (word[j]==' ' || word[j]==13)/* 则终止循环*/
{
word[j]='\0';
break;
}
printf("*");/*以星号代替字符个数*/
}
int len=strlen(word);
for(k=0;k<len;k++)
word[k]=word[k]^1010;
if(strcmp(word,user[i].password)==0)
{
printf("\n恭喜你,登陆成功。\n");
system("pause");
return card; //////////////////////////////////////
}
printf("密码错误,请注意大小写。");
system("pause");
return 0; /////////////////////////////////////
}
void freeze()////////////////////////////////冻结////////////////////////////////////////////
{
system("cls");
int i=0,j=0,t=0,sum=1;
int m;
char word[20];
printf("请输入要冻结的卡号:");
scanf("%d",&m);
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
t=1; break;
}
}
i=j;
fclose(fp1);
if(t==0 || user[j].freeze==0)
{
printf("输入的卡号不存在。\n");
system("pause");
return;
}
printf("\n请再次输入密码:");//密码验证
for (j=0; j<20; j++)
{
word[j] = getch(); /*逐次赋值,但不回显*/
if (word[j]==' '||word[j]==13)/* 则终止循环*/
{
word[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(word);
for(int k=0;k<len;k++)
word[k]=word[k]^1010;
printf("\n请输入姓名:");
scanf("%s",name);
printf("\n请输入身份证号:");
scanf("%s",idnumber);
printf("\n请输入手机号:");
scanf("%s",phone);
if(strcmp(word,user[m-1].password)==0 && strcmp(name,user[m-1].username)==0 && strcmp(phone,user[m-1].phone)==0 && strcmp(idnumber,user[m-1].idnumber)==0 )
user[m-1].freeze=0;//冻结
else
{
printf("\n输入信息错误,冻结失败。\n");
system("pause");
return;
}
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("恭喜你,冻结成功。\n");
system("pause");
return;
}
void free_()////////////////////////解冻//////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1,y,t=0;
int m;
printf("请输入要解除冻结的卡号:");
scanf("%d",&m);
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
t=1; break;
}
}
if(t==0)
{
printf("输入的卡号不存在。\n");
system("pause");
return;
}
i=j;
fclose(fp1);
if(user[i].freeze==1 ||user[i].bankcard==0)
{
printf("输入的卡号未被冻结 或 已销户\n");
printf("重输请输入:1\n 输入其他则退出\n");
scanf("%d",&y);
if(y==1)
free_();
else return;///////////////////////
}
printf("\n请再次输入密码:");//密码验证
for (j=0; j<20; j++)
{
word[j] = getch(); /*逐次赋值,但不回显*/
if (word[j]==' '||word[j]==13)/* 则终止循环*/
{
word[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(word);
for(int k=0;k<len;k++)
word[k]=word[k]^1010;
printf("\n请输入姓名:");
scanf("%s",name);
printf("\n请输入身份证号:");
scanf("%s",idnumber);
printf("\n请输入手机号:");
scanf("%s",phone);
if(strcmp(word,user[m-1].password)==0 && strcmp(name,user[m-1].username)==0 && strcmp(phone,user[m-1].phone)==0 && strcmp(idnumber,user[m-1].idnumber)==0 )
user[m-1].freeze=1;//jie冻
else
{
printf("\n输入信息错误,解除冻结失败。");
system("pause");
return;
}
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("恭喜你,解冻成功。\n");
system("pause");
return;
}
void findpassword()/////////////////////找回密码///////////////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
int m,t=0;
printf("请输入要找回密码的卡号:");
scanf("%d",&m);
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
t=1; break;
}
}
if(t==0)
{
printf("输入的卡号不存在\n");
system("pause");
return;
}
i=j;
fclose(fp1);
printf("\n请输入姓名:");
scanf("%s",name);
printf("\n请输入身份证号:");
scanf("%s",idnumber);
printf("\n请输入手机号:");
scanf("%s",phone);
if(strcmp(name,user[m-1].username)==0 && strcmp(phone,user[m-1].phone)==0 && strcmp(idnumber,user[m-1].idnumber)==0 && user[m-1].freeze==0 )
{
printf("\n请输入新密码:");
for ( int j=0; j<20; j++)
{
user[m-1].password[j] = getch(); /*逐次赋值,但不回显*/
if (user[m-1].password[j]==' '||user[m-1].password[j]==13)/* 则终止循环*/
{
user[m-1].password[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(user[m-1].password);
for(int k=0;k<len;k++)
user[m-1].password[k]=user[m-1].password[k]^1010;
}
else
{
printf("\n输入信息错误或未冻结,销户失败。");
system("pause");
return;
}
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("\n恭喜你,找回密码成功。\n");
system("pause");
return;
}
/////////////////////////////登陆后//////////////////////////////////////////////////////
int welcome2()///////////////登陆后界面///////////////////////////////////////////////////////
{
system("color ec");
system("cls");
printf(" *********************************************************************** \n");
printf(" * * \n");
printf(" * 恭喜你成功登陆银行管理系统 * \n");
printf(" * * \n");
printf(" *********************************************************************** \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 1.查询余额 $ 2.存款 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 3.取款 $ 4.转账 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 5.修改密码 $ 6. 销户 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ \n");
printf(" $ 0.退出 $ \n");
printf(" $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf("*请选择您要的功能:");
int i;
scanf("%d",&i);
return i;
}
void search(long m)////////////////////查询余额/////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
FILE *fp1;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
printf("%ld\n",user[j].money);
system("pause");
return;
}
}
}
void deposit(long m)///////////////////////存款////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
long money;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
if(user[j].bankcard==m)
break;
i=j;
printf("请输入存款金额:");
scanf("%ld",&money);
user[i].money+=money;
fclose(fp1);
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
return;
}
void draw(long m)/////////////////////取款//////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
long money;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
break;
}
}
i=j;
printf("请输入取款金额:");
scanf("%ld",&money);
if(money>user[i].money)
{
printf("余额不足。");
system("pause");
return;
}
user[i].money-=money;
fclose(fp1);
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
return;
}
void transfer(long m)//////////////////////转账////////////////////////////////////////////
{
system("cls");
int i=0,j=0,r=0;
int sum=1,o=0;
long money,card;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
printf("请输入要转入的卡号:");
scanf("%ld",&card);
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
{
i++; sum++;
}
fclose(fp1);
for(j=0;j<sum-1;j++)
if(card==user[j].bankcard)
{
o=1;break;
}
if(o!=1)
{
int out1;
printf("输入的卡号不存在。\n重新输入请输入:1.\n输入其他则退出\n");
scanf("%d",&out1);
if(out1==1)
transfer(m);
else return;
}
if(user[j].freeze==0)
{
printf("该卡号已经被冻结,转账失败.\n");
system("pause");
return;
}
printf("姓名:%s\n",user[j].username);
printf("确定请输入:1 \n输入其他则退出\n");
scanf("%d",&r);
if(r==1)
{
printf("请输入转账金额:");
scanf("%ld",&money);
if(money>user[i].money)
{
printf("余额不足。");
system("pause");
return;
}
user[j].money+=money;
user[m-1].money-=money;
}
else return;
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
return;
}
void del(long m)/////////////////////销户///////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
if(user[j].bankcard==m)
break;
i=j;
fclose(fp1);
printf("\n请再次输入密码:");//密码验证
for (j=0; j<20; j++)
{
word[j] = getch(); /*逐次赋值,但不回显*/
if (word[j]==' '||word[j]==13)/* 则终止循环*/
{
word[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(word);
for(int k=0;k<len;k++)
word[k]=word[k]^1010;
printf("\n请输入姓名:");
scanf("%s",name);
printf("\n请输入身份证号:");
scanf("%s",idnumber);
printf("\n请输入手机号:");
scanf("%s",phone);
if(strcmp(word,user[m-1].password)==0 && strcmp(name,user[m-1].username)==0 && strcmp(phone,user[m-1].phone)==0 && strcmp(idnumber,user[m-1].idnumber)==0 )
{
user[m-1].bankcard=0;
user[m-1].money=0;
// user[m-1].freeze=0;
}
else
{
printf("\n输入信息错误,销户失败。");
system("pause");
return;
}
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("\n恭喜你,销户成功。\n");
system("pause");
return;
}
void changepassword(long m)/////////////////////修改密码///////////////////////////////////////////////////////////
{
system("cls");
int i=0,j=0,t=0,sum=1;
int k;
char word[20];
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
if(user[j].bankcard==m)
break;
i=j;
fclose(fp1);
printf("\n请输入旧密码:");//密码验证
for (int k1=0;k1<20;k1++)
{
word[k1] = getch(); /*逐次赋值,但不回显*/
if (word[k1]==' '||word[k1]==13)/* 则终止循环*/
{
word[k1]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(word);
for(k=0;k<len;k++)
word[k]=word[k]^1010;
//puts(word);
if(strcmp(word,user[i].password)!=0)
{
printf("\n密码输入错误。\n");
system("pause");
return;
}
printf("\n请输入新密码:");
for (j=0; j<20; j++)
{
user[m-1].password[j] = getch(); /*逐次赋值,但不回显*/
if (user[m-1].password[j]==' '||user[m-1].password[j]==13)/* 则终止循环*/
{
user[m-1].password[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len1=strlen(user[m-1].password);
for(int k2=0;k2<len1;k2++)
user[m-1].password[k2]=user[m-1].password[k2]^1010;
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("\n恭喜你,修改密码成功。\n");
system("pause");
return;
}
#include <stdlib.h>
#include<string.h>
#include<conio.h>
struct User
{
long bankcard;
char username[30];
char password[20];
char homeaddress[50];
char phone[12];
char idnumber[19];
long money;
int freeze;
};User user[10000000];
char name[30],word[20],phone[12],idnumber[19];
int welcome110();//、、、、、、、、 登陆前界面********
void findpassword();
void freeze();//冻结
void free_();//解冻
void creat();//开户
long entry();//登陆
int welcome2();//*************////////登陆后页面
void search(long m);//查询余额
void deposit(long m);//存款
void draw(long m);//取钱
void del(long m);//销户
void transfer(long m);//转账
void changepassword(long m);/////修改密码
int main()
{
int j,i;
long count=0;
while(1)
{
system("color e9");
j=welcome110();
if(j==0)
break;
switch(j)
{
case 1:creat();break; //////开户
case 2:count=entry();break;//////登录
case 3:freeze();break;//////冻结
case 4:free_();break; /////////解冻
case 5:findpassword();break;////////找回密码
default:printf("你输入的选项号不正确,请重新输入!"); system("pause");break;
}
if(count!=0)
break;
}
///////////////////////////////////////////////////////////登陆后//////////////////////////////////////////////////////////////////////
while(j!=0)
{
i=welcome2();//进入主页面
if(i==0)
break;
switch(i)
{
case 1:search(count);break;////查询余额
case 2:deposit(count);break;////存款
case 3:draw(count);break; /////取款
case 4:transfer(count);break;/////转账
case 5:changepassword(count);break;////////修改密码
case 6:del(count);count=0;main(); break;////////销户
default:printf("你输入的选项号不正确,请重新输入!"); system("pause");break;
}
}
printf("感谢您的使用,欢迎下次使用。\n");
system("pause");
return 0;
}
///////////////////////////////////////函数实现、/////////////////////////////////////
int welcome110()/////////////////////////登陆前界面//////////////////////////////////////////////
{
system("cls");
printf(" *********************************************************************** \n");
printf(" * * \n");
printf(" * 欢迎进入银行管理系统 * \n");
printf(" * * \n");
printf(" *********************************************************************** \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 1.开户 $ 2.登陆 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 3 冻结 $ 4.解冻 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 5 找回密码 $ 0 退出 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf("*请选择您要的功能:");
int i;
scanf("%d",&i);
return i;
}
void creat()///////////////////////////开户////////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==0)
{
sum--; break;
}
}
i=j;
fclose(fp1);
user[i].bankcard=i+1;//使得银行卡号不会重复,
printf("卡号为:");
printf("%09ld",user[i].bankcard);//卡号非用户输入,避免重复
printf("\n请输入姓名:");
scanf("%s",user[i].username);
printf("\n请输入密码:");
for (j=0; j<20; j++)
{
user[i].password[j] = getch(); /*逐次赋值,但不回显*/
if (user[i].password[j]==' '||user[i].password[j]==13)/*回车则终止循环*/
{
user[i].password[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(user[i].password);
for(int k=0;k<len;k++)
user[i].password[k]=user[i].password[k]^1010;//异或 加密
printf("\n请输入住址:");
scanf("%s",user[i].homeaddress);
printf("\n请输入手机号:");
scanf("%s",user[i].phone);
printf("\n请输入身份证号码:");
scanf("%s",user[i].idnumber);
printf("\n请输入存款金额:");
scanf("%ld",&user[i].money);
user[i].freeze=1;
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
return;
}
long entry()////////////////////////////////////登陆/////////////////////////////
{
system("cls");
FILE *fp1;
int i=0,k=0;
char word[20];
long card;
printf("请输入卡号:");
scanf("%ld",&card);
fp1=fopen("d:\\file1.txt","r");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
{
if(card==user[i].bankcard)
{ k=1; break;}
}
if(k==0)
{
printf("您输入的卡号不存在。\n");
system("pause");
return 0;
}
if(user[i].freeze==0)
{
printf("该卡号已经被冻结,不可用\n");
system("pause");
return 0;
}
printf("\n请输入密码:") ;
for(int j=0;j<20;j++)
{
word[j] = getch(); /*逐次赋值,但不回显*/
if (word[j]==' ' || word[j]==13)/* 则终止循环*/
{
word[j]='\0';
break;
}
printf("*");/*以星号代替字符个数*/
}
int len=strlen(word);
for(k=0;k<len;k++)
word[k]=word[k]^1010;
if(strcmp(word,user[i].password)==0)
{
printf("\n恭喜你,登陆成功。\n");
system("pause");
return card; //////////////////////////////////////
}
printf("密码错误,请注意大小写。");
system("pause");
return 0; /////////////////////////////////////
}
void freeze()////////////////////////////////冻结////////////////////////////////////////////
{
system("cls");
int i=0,j=0,t=0,sum=1;
int m;
char word[20];
printf("请输入要冻结的卡号:");
scanf("%d",&m);
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
t=1; break;
}
}
i=j;
fclose(fp1);
if(t==0 || user[j].freeze==0)
{
printf("输入的卡号不存在。\n");
system("pause");
return;
}
printf("\n请再次输入密码:");//密码验证
for (j=0; j<20; j++)
{
word[j] = getch(); /*逐次赋值,但不回显*/
if (word[j]==' '||word[j]==13)/* 则终止循环*/
{
word[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(word);
for(int k=0;k<len;k++)
word[k]=word[k]^1010;
printf("\n请输入姓名:");
scanf("%s",name);
printf("\n请输入身份证号:");
scanf("%s",idnumber);
printf("\n请输入手机号:");
scanf("%s",phone);
if(strcmp(word,user[m-1].password)==0 && strcmp(name,user[m-1].username)==0 && strcmp(phone,user[m-1].phone)==0 && strcmp(idnumber,user[m-1].idnumber)==0 )
user[m-1].freeze=0;//冻结
else
{
printf("\n输入信息错误,冻结失败。\n");
system("pause");
return;
}
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("恭喜你,冻结成功。\n");
system("pause");
return;
}
void free_()////////////////////////解冻//////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1,y,t=0;
int m;
printf("请输入要解除冻结的卡号:");
scanf("%d",&m);
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
t=1; break;
}
}
if(t==0)
{
printf("输入的卡号不存在。\n");
system("pause");
return;
}
i=j;
fclose(fp1);
if(user[i].freeze==1 ||user[i].bankcard==0)
{
printf("输入的卡号未被冻结 或 已销户\n");
printf("重输请输入:1\n 输入其他则退出\n");
scanf("%d",&y);
if(y==1)
free_();
else return;///////////////////////
}
printf("\n请再次输入密码:");//密码验证
for (j=0; j<20; j++)
{
word[j] = getch(); /*逐次赋值,但不回显*/
if (word[j]==' '||word[j]==13)/* 则终止循环*/
{
word[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(word);
for(int k=0;k<len;k++)
word[k]=word[k]^1010;
printf("\n请输入姓名:");
scanf("%s",name);
printf("\n请输入身份证号:");
scanf("%s",idnumber);
printf("\n请输入手机号:");
scanf("%s",phone);
if(strcmp(word,user[m-1].password)==0 && strcmp(name,user[m-1].username)==0 && strcmp(phone,user[m-1].phone)==0 && strcmp(idnumber,user[m-1].idnumber)==0 )
user[m-1].freeze=1;//jie冻
else
{
printf("\n输入信息错误,解除冻结失败。");
system("pause");
return;
}
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("恭喜你,解冻成功。\n");
system("pause");
return;
}
void findpassword()/////////////////////找回密码///////////////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
int m,t=0;
printf("请输入要找回密码的卡号:");
scanf("%d",&m);
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
t=1; break;
}
}
if(t==0)
{
printf("输入的卡号不存在\n");
system("pause");
return;
}
i=j;
fclose(fp1);
printf("\n请输入姓名:");
scanf("%s",name);
printf("\n请输入身份证号:");
scanf("%s",idnumber);
printf("\n请输入手机号:");
scanf("%s",phone);
if(strcmp(name,user[m-1].username)==0 && strcmp(phone,user[m-1].phone)==0 && strcmp(idnumber,user[m-1].idnumber)==0 && user[m-1].freeze==0 )
{
printf("\n请输入新密码:");
for ( int j=0; j<20; j++)
{
user[m-1].password[j] = getch(); /*逐次赋值,但不回显*/
if (user[m-1].password[j]==' '||user[m-1].password[j]==13)/* 则终止循环*/
{
user[m-1].password[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(user[m-1].password);
for(int k=0;k<len;k++)
user[m-1].password[k]=user[m-1].password[k]^1010;
}
else
{
printf("\n输入信息错误或未冻结,销户失败。");
system("pause");
return;
}
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("\n恭喜你,找回密码成功。\n");
system("pause");
return;
}
/////////////////////////////登陆后//////////////////////////////////////////////////////
int welcome2()///////////////登陆后界面///////////////////////////////////////////////////////
{
system("color ec");
system("cls");
printf(" *********************************************************************** \n");
printf(" * * \n");
printf(" * 恭喜你成功登陆银行管理系统 * \n");
printf(" * * \n");
printf(" *********************************************************************** \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 1.查询余额 $ 2.存款 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 3.取款 $ 4.转账 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ $ \n");
printf(" $ 5.修改密码 $ 6. 销户 $ \n");
printf(" $ $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" $ $ \n");
printf(" $ 0.退出 $ \n");
printf(" $ $ \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf("*请选择您要的功能:");
int i;
scanf("%d",&i);
return i;
}
void search(long m)////////////////////查询余额/////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
FILE *fp1;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
printf("%ld\n",user[j].money);
system("pause");
return;
}
}
}
void deposit(long m)///////////////////////存款////////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
long money;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
if(user[j].bankcard==m)
break;
i=j;
printf("请输入存款金额:");
scanf("%ld",&money);
user[i].money+=money;
fclose(fp1);
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
return;
}
void draw(long m)/////////////////////取款//////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
long money;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
{
if(user[j].bankcard==m)
{
break;
}
}
i=j;
printf("请输入取款金额:");
scanf("%ld",&money);
if(money>user[i].money)
{
printf("余额不足。");
system("pause");
return;
}
user[i].money-=money;
fclose(fp1);
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
return;
}
void transfer(long m)//////////////////////转账////////////////////////////////////////////
{
system("cls");
int i=0,j=0,r=0;
int sum=1,o=0;
long money,card;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
printf("请输入要转入的卡号:");
scanf("%ld",&card);
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
{
i++; sum++;
}
fclose(fp1);
for(j=0;j<sum-1;j++)
if(card==user[j].bankcard)
{
o=1;break;
}
if(o!=1)
{
int out1;
printf("输入的卡号不存在。\n重新输入请输入:1.\n输入其他则退出\n");
scanf("%d",&out1);
if(out1==1)
transfer(m);
else return;
}
if(user[j].freeze==0)
{
printf("该卡号已经被冻结,转账失败.\n");
system("pause");
return;
}
printf("姓名:%s\n",user[j].username);
printf("确定请输入:1 \n输入其他则退出\n");
scanf("%d",&r);
if(r==1)
{
printf("请输入转账金额:");
scanf("%ld",&money);
if(money>user[i].money)
{
printf("余额不足。");
system("pause");
return;
}
user[j].money+=money;
user[m-1].money-=money;
}
else return;
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
return;
}
void del(long m)/////////////////////销户///////////////////////////////////////////////
{
system("cls");
int i=0,j=0;
int sum=1;
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
if(user[j].bankcard==m)
break;
i=j;
fclose(fp1);
printf("\n请再次输入密码:");//密码验证
for (j=0; j<20; j++)
{
word[j] = getch(); /*逐次赋值,但不回显*/
if (word[j]==' '||word[j]==13)/* 则终止循环*/
{
word[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(word);
for(int k=0;k<len;k++)
word[k]=word[k]^1010;
printf("\n请输入姓名:");
scanf("%s",name);
printf("\n请输入身份证号:");
scanf("%s",idnumber);
printf("\n请输入手机号:");
scanf("%s",phone);
if(strcmp(word,user[m-1].password)==0 && strcmp(name,user[m-1].username)==0 && strcmp(phone,user[m-1].phone)==0 && strcmp(idnumber,user[m-1].idnumber)==0 )
{
user[m-1].bankcard=0;
user[m-1].money=0;
// user[m-1].freeze=0;
}
else
{
printf("\n输入信息错误,销户失败。");
system("pause");
return;
}
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("\n恭喜你,销户成功。\n");
system("pause");
return;
}
void changepassword(long m)/////////////////////修改密码///////////////////////////////////////////////////////////
{
system("cls");
int i=0,j=0,t=0,sum=1;
int k;
char word[20];
FILE *fp1,*fp2;
fp1=fopen("d:\\file1.txt","a+");
if(!fp1)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
while(fscanf(fp1,"%ld %s %s %s %s %s %ld %d\n",&user[i].bankcard,user[i].username,user[i].password,user[i].homeaddress,user[i].phone,user[i].idnumber,&user[i].money,&user[i].freeze)!=EOF)
//每次读取一行,读取出文件中所有的数据
{
i++; sum++;
}
for(j=0;j<sum-1;j++)
if(user[j].bankcard==m)
break;
i=j;
fclose(fp1);
printf("\n请输入旧密码:");//密码验证
for (int k1=0;k1<20;k1++)
{
word[k1] = getch(); /*逐次赋值,但不回显*/
if (word[k1]==' '||word[k1]==13)/* 则终止循环*/
{
word[k1]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len=strlen(word);
for(k=0;k<len;k++)
word[k]=word[k]^1010;
//puts(word);
if(strcmp(word,user[i].password)!=0)
{
printf("\n密码输入错误。\n");
system("pause");
return;
}
printf("\n请输入新密码:");
for (j=0; j<20; j++)
{
user[m-1].password[j] = getch(); /*逐次赋值,但不回显*/
if (user[m-1].password[j]==' '||user[m-1].password[j]==13)/* 则终止循环*/
{
user[m-1].password[j]='\0';
break;
}
printf("*"); /*以星号代替字符个数*/
}
int len1=strlen(user[m-1].password);
for(int k2=0;k2<len1;k2++)
user[m-1].password[k2]=user[m-1].password[k2]^1010;
fp2=fopen("d:\\file1.txt","w+");/////再次写入
if(!fp2)//打开失败
{
printf("file1.txt cannot open!\n");//输出打开错误
exit(0);//结束
}
for(int num=0;num<sum-1;num++)
fprintf(fp1,"%09ld %s %s %s %s %s %ld %d\n",user[num].bankcard,user[num].username,user[num].password,user[num].homeaddress,user[num].phone,user[num].idnumber,user[num].money,user[num].freeze);
//将数据写入文件
fclose(fp2);
printf("\n恭喜你,修改密码成功。\n");
system("pause");
return;
}
相关文章推荐
- DSP与FPGA通信调试笔记之一——通过GPMC接口用EDMA传送
- 盘点那些不曾被遗忘的细节设计
- IOS 实现控制器翻页的简单解决方法
- 【转】iOS高级向的十道面试问题
- 《梦断代码》读后感三
- 近期的职业规划
- Objective-C 2.0的运行时编程
- 入行几年后,互联网人的未来应该在哪里?
- HDU 1281(棋盘游戏)二分匹配+暴力
- Ubuntu 用户安装时钟软件 Up Clock 5.5
- java4Android(8)包、打包、包的命名规范(9)包和访问权限(10)继承和访问权限
- dedecms系统后台登陆提示用户名密码不存在
- Tutorial 4: Shaders
- C++ 用libcurl库进行http 网络通讯编程
- codeforces #308C C. Vanya and Scales(数制转换)
- 胃癌的分子标记的整合的转录组和计算分析
- C#创建与Excel打印输出(转载)
- UITableView学习笔记
- Java连接数据库
- JavaScriptSerializer 序列化json 时间格式