您的位置:首页 > 其它

自动取款机升级版

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: