ATM自动取款机
算是用c写的一个小程序吧,大家有兴趣的可以看一下,代码比较长希望大家有耐心。
#include<stdio.h>
#include<malloc.h>
#include<string.h>
void home();//主界面
void set_up();//创建帐号
int judge(char *ch);//核对输入的数字是否是数字
int repetition(char*ch);//判断是否已存在帐号
void enter();//登录帐号
int check(char *accounts,char *password);//核对密码
void first_inter_home(char *accounts);
void inter_home(char *accounts);//登录界面
void deposit(char *accounts);//存款界面
void put_money(char *accounts,float num);//存款
char *show_name(char *accounts);//显示用户名
void withdrawal(char *accounts);//取款界面
int examine(char *accounts,float num);//查看余额是否够取
void get_money(char *accounts,float num);//取款修改金额
void balance_enquiry(char *accounts);//余额查询
void balance_enquiry_2(char *accounts);//余额查询
void change_password_interface(char *accounts);//修改密码界面
void change_password(char *accounts);//修改密码
void transfer(char *accounts);//转帐界面
void no_deposit();//无卡存款
struct userinfo
{
char accounts[20];//用户帐号
char name[20];//用户名
char password[20];//密码
float balance;//余额
};
int main()
{
FILE *ur;
ur=fopen("F:\\user.txt","w");
if(ur==0)
printf("创建文件失败!\n");
fclose(ur);
home();
return 0;
}
void home()//主界面
{
int i;
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t=====请选择服务:\n\n\n");
printf("\t\t\t\t\t=====1-创建帐户\t2-登录帐户=====\n\n\n");
printf("\t\t\t\t\t=====3-无卡存款\t4-退出系统=====\n\n\n");
printf("\t\t\t\t\t");
scanf("%d",&i);
switch(i)
{
case 1:system("CLS");set_up();break;//创建帐号
case 2:system("CLS");enter();break;//登录帐号
case 3:system("CLS");no_deposit();break;//无卡存款
case 4:system("CLS");exit(0);//退出系统 */
default:
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("cls");home();
}
return ;
}
int user_counts=0;
void set_up()
{
FILE *ur;
ur=fopen("F:\\user.txt","a+");
if(ur==0)
printf("打开失败!\n");
struct userinfo *p;
char ch[20];//临时储存密码
int num,flag;
p=(struct userinfo *)malloc(sizeof(struct userinfo));
user_counts++;
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入要创建的帐号:\n");
printf("\t\t\t\t\t");
do
{
scanf("%s",p->accounts);
if(judge(p->accounts))
{
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
do
{ system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("重新输入请输入1\n\n");
printf("\t\t\t\t\t");
printf("返回主界面请输入2\n\n");
printf("\t\t\t\t\t");
scanf("%d",&num);
switch(num)
{
case 1:system("CLS");flag=0;break;
case 2:system("CLS");home();break;
default:
{
flag=1;
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
}
}
}while(flag);
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请重新输入:\n");
printf("\t\t\t\t\t");
}
}while(judge(p->accounts));
if(user_counts>=2)
{
while(repetition(p->accounts))
{
printf("\t\t\t\t\t");
printf("帐号重复!\n");
printf("\t\t\t\t\t");
system("PAUSE");
system("CLS");
user_counts--;
home();
}
}
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入用户名:\n");
printf("\t\t\t\t\t");
scanf("%s",p->name);
system("CLS");
ANEW:
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入密码:\n");
printf("\t\t\t\t\t");
do
{
scanf("%s",p->password);
if(judge(p->password))
{
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请重新输入:\n");
printf("\t\t\t\t\t");
}
}while(judge(p->password));
printf("\t\t\t\t\t");
printf("请确认密码:\n");
printf("\t\t\t\t\t");
while(strcmp(p->password,ch))
{
scanf("%s",ch);
if(strcmp(p->password,ch))
{
printf("\t\t\t\t\t");
printf("密码错误,请重新设置密码:\n");
printf("\t\t\t\t\t");
system("PAUSE");
system("CLS");
if(getchar())
{
goto ANEW;
}
}
}
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("创建帐号成功!\n");
printf("\t\t\t\t\t");
system("PAUSE");
p->balance=0.0;
system("CLS");
fprintf(ur,"%20s%20s%20s%20f",p->accounts,p->name,p->password,p->balance);
fclose(ur);
free(p);
home();
}
int repetition(char *ch)
{
FILE *pb;
int flag=0;
pb=fopen("F:\\user.txt","r");
struct userinfo *q;//定义一个结构指针来存放帐号的值
q=(struct userinfo *)malloc(sizeof(struct userinfo));
while(!feof(pb))
{
fscanf(pb,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if(strcmp(ch,q->accounts)==0)flag=1;
}
free(q);
fclose(pb);
return flag;
}
int judge(char *ch)
{
int i;
for(i=0;ch[i]!='\0';i++)
{
if(ch[i]<'0'||ch[i]>'9')
return 1;
}
return 0;
}
int proofread(char *ch1,char *ch2)
{
int i;
for(i=0;i<20;i++)
{
if(ch1[i]!=ch2[i])
{
return 1;
}
}
return 0;
}
void enter()
{
int put_counts=0;
if(user_counts==0)
{
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("未创建任何帐号!\n");
printf("\t\t\t\t\t");
system("pause");
system("cls");
home();
}
char accounts[20],password[20],password2[20];//储存输入的帐号
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入您的帐号:\n");
printf("\t\t\t\t\t");
scanf("%s",accounts);
if(repetition(accounts)==0)
{
printf("\t\t\t\t\t");
printf("帐号不存在 !\n");
printf("\t\t\t\t\t");
system("pause");
system("cls");
home();
}
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入密码:\n");
printf("\t\t\t\t\t");
QUEREN:
scanf("%s",password);
printf("\t\t\t\t\t");
printf("请确认密码:\n");
printf("\t\t\t\t\t");
scanf("%s",password2);
printf("\t\t\t\t\t");
if(strcmp(password,password2))
{
system("cls");
printf("\t\t\t\t\t");
printf("确认错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请重新输入密码:\n");
printf("\t\t\t\t\t");
goto QUEREN;
}
if(check(accounts,password))
{
printf("\t\t\t\t\t");
printf("帐号或密码不正确!\n");
printf("\t\t\t\t\t");
if(put_counts++==3)
{
printf("\t\t\t\t\t");
printf("您已三次输入错误!\n");
printf("\t\t\t\t\t");
system("paser");
system("CLS");
home();
}
system("pause");
system("CLS");
enter();
}
first_inter_home(accounts);
}
int check(char *accounts,char *password)
{
FILE *pb;
int flag=1;
pb=fopen("F:\\user.txt","r");
struct userinfo *q;//定义一个结构指针来存放密码的值
q=(struct userinfo *)malloc(sizeof(struct userinfo));
while(!feof(pb))
{
fscanf(pb,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if(!(strcmp(accounts,q->accounts))&&!(strcmp(password,q->password)))flag=0;
}
free(q);
fclose(pb);
return flag;
}
void first_inter_home(char *accounts)
{
system("pause");
system("CLS");
int d;
printf("\n\n\n\n");
printf("\t\t\t\t\t");
printf("尊敬的\"%s\"\n\n",show_name(accounts));
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t=====请选择服务:\n\n\n");
printf("\t\t\t\t\t=====1-存款业务\t2-取款业务=====\n\n\n");
printf("\t\t\t\t\t=====3-查询余额\t4-修改密码=====\n\n\n");
printf("\t\t\t\t\t=====5-转帐业务\t6-退出登录\n\n\n");
printf("\t\t\t\t\t");
scanf("%d",&d);
switch(d)
{
case 1:system("CLS");deposit(accounts);break;
case 2:system("CLS");withdrawal(accounts);break;
case 3:system("CLS");balance_enquiry_2(accounts);break;
case 4:system("CLS");change_password_interface(accounts);break;
case 5:{
system("CLS");
if(user_counts==1)
{
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("只有一个帐户,不能转帐给自己!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("返回登录界面请输入1\n\n\n");
printf("\t\t\t\t\t");
printf("返回主界面请输入2\n");
printf("\t\t\t\t\t");
do
{
scanf("%d",&d);
switch(d)
{
case 1:system("CLS");inter_home(accounts);break;
case 2:system("CLS");home();break;
default:
{
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请重新输入:\n");
printf("\t\t\t\t\t");
}
}
}while(1);
}
transfer(accounts);break;
}
case 6:system("CLS");home();break;
default:
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
inter_home(accounts);
}
}
void inter_home(char *accounts)
{
int d;
printf("尊敬的\"%s\"\n\n",show_name(accounts));
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t=====请选择服务:\n\n\n");
printf("\t\t\t\t\t=====1-存款业务\t2-取款业务=====\n\n\n");
printf("\t\t\t\t\t=====3-查询余额\t4-修改密码=====\n\n\n");
printf("\t\t\t\t\t=====5-转帐业务\t6-退出登录\n\n\n");
printf("\t\t\t\t\t");
scanf("%d",&d);
switch(d)
{
case 1:system("CLS");deposit(accounts);break;
case 2:system("CLS");withdrawal(accounts);break;
case 3:system("CLS");balance_enquiry_2(accounts);break;
case 4:system("CLS");change_password_interface(accounts);break;
case 5:
{
system("CLS");
if(user_counts==1)
{
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("只有一个帐户,不能转帐给自己!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("返回登录界面请输入1\n\n\n");
printf("\t\t\t\t\t");
printf("返回主界面请输入2\n");
printf("\t\t\t\t\t");
do
{
scanf("%d",&d);
switch(d)
{
case 1:system("CLS");inter_home(accounts);break;
case 2:system("CLS");home();break;
default:
{
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请重新输入:\n");
printf("\t\t\t\t\t");
}
}
}while(1);
}
transfer(accounts);break;
}
case 6:system("CLS");home();break;
default:
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
inter_home(accounts);
}
}
void deposit(char *accounts)
{
int put_num,flag;//保存输入的数字 、其它金额
int number;
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t=====请选择存款金额:\n\n\n");
printf("\t\t\t\t\t=====1- 200 \t2- 400 =====\n\n\n");
printf("\t\t\t\t\t=====3- 700 \t4- 1000 =====\n\n\n");
printf("\t\t\t\t\t=====5- 1500 \t6- 2000 =====\n\n\n");
printf("\t\t\t\t\t=====7- 3000 \t8- 其它金额===\n\n\n");
printf("\t\t\t\t\t");
scanf("%d",&put_num);
switch(put_num)
{
case 1:system("CLS");number=200;break;
case 2:system("CLS");number=400;break;
case 3:system("CLS");number=700;break;
case 4:system("CLS");number=1000;break;
case 5:system("CLS");number=1500;break;
case 6:system("CLS");number=2000;break;
case 7:system("CLS");number=3000;break;
case 8:
{
do
{
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入你要存款的金额:\n");
printf("\t\t\t\t\t");
scanf("%d",&number);
if(number%100!=0)
{
printf("\t\t\t\t\t");
printf("输入错误!只能输入整百数!\n");
printf("\t\t\t\t\t");
system("PAUSE");
flag=1;
}
else flag=0;
} while(flag);
}
break;
default:
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
deposit(accounts);
}
put_money(accounts,number);
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("存款成功!\n");
printf("\t\t\t\t\t");
NEW_2:
system("pause");
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("返回用户界面请输入1\n\n");
printf("\t\t\t\t\t");
printf("返回主界面请输入2\n\n");
printf("\t\t\t\t\t");
scanf("%d",&put_num);
switch(put_num)
{
case 1:system("cls");inter_home(accounts);break ;
case 2:system("cls");home();break;
default:system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("cls");
goto NEW_2;
}
}
void put_money(char *accounts,float num)
{
printf("%s",accounts);
struct userinfo *q;//定义一个结构指针来存放密码的值
q=(struct userinfo *)malloc(sizeof(struct userinfo));
FILE *pb,*pb2;
pb=fopen("F:\\user.txt","r");
pb2=fopen("F:\\user_2.txt","w");
while(!feof(pb))
{
fscanf(pb,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if((strcmp(accounts,q->accounts)==0)){
q->balance+=num;
fprintf(pb2,"%20s%20s%20s%20f",q->accounts,q->name,q->password,q->balance);
}
else{
fprintf(pb2,"%20s%20s%20s%20f",q->accounts,q->name,q->password,q->balance);
}
}
fclose(pb);
fclose(pb2);
pb=fopen("F:\\user.txt","w");
pb2=fopen("F:\\user_2.txt","r");
while(!feof(pb2))
{
fscanf(pb2,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
fprintf(pb,"%20s%20s%20s%20f",q->accounts,q->name,q->password,q->balance);
}
free(q);
fclose(pb);
fclose(pb2);
}
char *show_name(char *accounts)
{
char *name;
FILE *pb;
pb=fopen("F:\\user.txt","r");
struct userinfo *q;//定义一个结构指针来存放帐号的值
q=(struct userinfo *)malloc(sizeof(struct userinfo));
while(!feof(pb))
{
fscanf(pb,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if(strcmp(accounts,q->accounts)==0)
{
name=q->name;
}
}
free(q);
fclose(pb);
return name;
}
void withdrawal(char *accounts)
{
int put_num,flag;
int number;
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t=====请选择取款金额:\n\n\n");
printf("\t\t\t\t\t=====1- 200 \t2- 400 =====\n\n\n");
printf("\t\t\t\t\t=====3- 700 \t4- 1000 =====\n\n\n");
printf("\t\t\t\t\t=====5- 1500 \t6- 2000 =====\n\n\n");
printf("\t\t\t\t\t=====7- 3000 \t8- 其它金额===\n\n\n");
printf("\t\t\t\t\t");
scanf("%d",&put_num);
switch(put_num)
{
case 1:number=200;break;
case 2:number=400;break;
case 3:number=700;break;
case 4:number=1000;break;
case 5:number=1500;break;
case 6:number=2000;break;
case 7:number=3000;break;
case 8:
{
do
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入需要取款的金额:\n");
printf("\t\t\t\t\t");
scanf("%d",&number);
if(number%100!=0)
{
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!请输入整数!\n");
printf("\t\t\t\t\t");
system("pause");
system("cls");
flag=1;
}
else flag=0;
}while(flag);
}break;
default:
{
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
withdrawal(accounts);
}
}
if(examine(accounts,number)==0)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
balance_enquiry(accounts);
printf("\t\t\t\t\t");
do
{
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("继续取款请输入1\n\n");
printf("\t\t\t\t\t");
printf("返回用户界面请输入2\n\n");
printf("\t\t\t\t\t");
scanf("%d",&put_num);
switch(put_num)
{
case 1:system("CLS");withdrawal(accounts);
case 2:system("CLS");inter_home(accounts);
default:
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
}
}
}while(1);
}
get_money(accounts,number);
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("取款成功!您已成功取出%d元。\n",number);
printf("\t\t\t\t\t");
system("pause");system("CLS");inter_home(accounts);
}
int examine(char *accounts,float num)
{
int flag=0;
FILE *pb;
pb=fopen("F:\\user.txt","r");
struct userinfo *q;//定义一个结构指针来存放帐号的值
q=(struct userinfo *)malloc(sizeof(struct userinfo));
while(!feof(pb))
{
fscanf(pb,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if(strcmp(accounts,q->accounts)==0)
{
if((q->balance)>=num)
{
flag=1;
}
}
}
free(q);
fclose(pb);
return flag;
}
void get_money(char *accounts,float num)
{
struct userinfo *q;//定义一个结构指针来存放密码的值
q=(struct userinfo *)malloc(sizeof(struct userinfo));
FILE *pb,*pb2;
pb=fopen("F:\\user.txt","r");
pb2=fopen("F:\\user_2.txt","w");
while(!feof(pb))
{
fscanf(pb,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if((strcmp(accounts,q->accounts)==0)){
q->balance-=num;
fprintf(pb2,"%20s%20s%20s%20f",q->accounts,q->name,q->password,q->balance);
}
else{
fprintf(pb2,"%20s%20s%20s%20f",q->accounts,q->name,q->password,q->balance);
}
}
fclose(pb);
fclose(pb2);
pb=fopen("F:\\user.txt","w");
pb2=fopen("F:\\user_2.txt","r");
while(!feof(pb2))
{
fscanf(pb2,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
fprintf(pb,"%20s%20s%20s%20f",q->accounts,q->name,q->password,q->balance);
}
free(q);
fclose(pb);
fclose(pb2);
}
void balance_enquiry(char *accounts)
{
FILE *pb;
pb=fopen("F:\\user.txt","r");
struct userinfo *q;//定义一个结构指针来存放帐号的值
q=(struct userinfo *)malloc(sizeof(struct userinfo));
while(!feof(pb))
{
fscanf(pb,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if(strcmp(accounts,q->accounts)==0)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("您的余额为%.2f元\n",q->balance);
printf("\t\t\t\t\t");
printf("您的余额不足!\n");
printf("\t\t\t\t\t");
}
}
free(q);
fclose(pb);
system("pause");
system("CLS");
inter_home(accounts);
}
void balance_enquiry_2(char *accounts)
{
FILE *pb;
pb=fopen("F:\\user.txt","r");
struct userinfo *q;//定义一个结构指针来存放帐号的值
q=(struct userinfo *)malloc(sizeof(struct userinfo));
while(!feof(pb))
{
fscanf(pb,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if(strcmp(accounts,q->accounts)==0)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("您的余额为%.2f元\n",q->balance);
printf("\t\t\t\t\t");
}
}
free(q);
fclose(pb);
system("pause");
system("CLS");
inter_home(accounts);
}
void change_password_interface(char *accounts)
{
int num,flag;
change_password(accounts);
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("修改成功!\n");
printf("\t\t\t\t\t");
system("PAUSE");
system("CLS");
inter_home(accounts);
}
void change_password(char *accounts)
{
int flag;
char old_password[20],password[20],password_2[20];//存放输入的新密码
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入原密码:\n");
printf("\t\t\t\t\t");
scanf("%s",old_password);
if(check(accounts,old_password))
{
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("密码错误!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
inter_home(accounts);
}
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入新密码:\n\n");
printf("\t\t\t\t\t");
scanf("%s",password);
do
{
printf("\t\t\t\t\t");
printf("确认密码:\n");
printf("\t\t\t\t\t");
scanf("%s",password_2);
if(strcmp(password,password_2))
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请重新输入密码:\n");
printf("\t\t\t\t\t");
flag=1;
}
else flag=0;
}while(flag);
struct userinfo *q;//定义一个结构指针来存放密码的值
q=(struct userinfo *)malloc(sizeof(struct userinfo));
FILE *pb,*pb2;
pb=fopen("F:\\user.txt","r");
pb2=fopen("F:\\user_2.txt","w");
while(!feof(pb))
{
fscanf(pb,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if((strcmp(accounts,q->accounts)==0))
{
fprintf(pb2,"%20s%20s%20s%20f",q->accounts,q->name,password,q->balance);
}
else{
fprintf(pb2,"%20s%20s%20s%20f",q->accounts,q->name,q->password,q->balance);
}
}
fclose(pb);
fclose(pb2);
pb=fopen("F:\\user.txt","w");
pb2=fopen("F:\\user_2.txt","r");
while(!feof(pb2))
{
fscanf(pb2,"%20s%20s%20s%20f",&q->accounts,&q->name,&q->password,&q->balance);
if((strcmp(accounts,q->accounts)==0)){
fprintf(pb,"%20s%20s%20s%20f",q->accounts,q->name,q->password,q->balance);
}
}
free(q);
fclose(pb);
fclose(pb2);
}
void transfer(char *accounts)
{
char accounts_2[20];
int d,flag;
float num;
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入您要转帐的用户:\n");
printf("\t\t\t\t\t");
scanf("%s",accounts_2);
if(strcmp(accounts,accounts_2)==0)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("不能转帐给自己!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
transfer(accounts);
}
if(repetition(accounts_2)==0)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("不存在这个帐号\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
inter_home(accounts);
}
while(1)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入您要转帐的金额:\n");
printf("\t\t\t\t\t");
scanf("%f",&num);
if(examine(accounts,num))
{
break;
}
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("您的余额不够转!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
do
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("返回登录界面请输入1\n\n");
printf("\t\t\t\t\t");
printf("继续转帐请输入2\n\n");
printf("\t\t\t\t\t");
scanf("%d",&d);
switch(d)
{
case 1:system("CLS");inter_home(accounts);break;
case 2:system("CLS");flag=0;break;
default:
{
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
flag=1;
system("pause");
system("CLS");
}
}
}while(flag);
}
do
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("是否确认转给\"%s\"%.2f元?\n\n",show_name(accounts),num);
printf("\t\t\t\t\t");
printf("确认请输入1\n\n");
printf("\t\t\t\t\t");
printf("否请输入2\n");
printf("\t\t\t\t\t");
scanf("%d",&d);
switch(d)
{
case 1:flag=0;break;
case 2:inter_home(accounts);
default:
{
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
flag=1;
system("pause");
system("CLS");
}
}
}while(flag);
put_money(accounts_2,num);
get_money(accounts,num);
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("转帐成功!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
inter_home(accounts);
}
void no_deposit()
{
if(user_counts==0)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("未创建任何帐号!\n");
printf("\t\t\t\t\t");
system("pause");
system("cls");
home();
}
char accounts[20];//储存输入的帐号
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入您的帐号:\n");
printf("\t\t\t\t\t");
scanf("%s",accounts);
if(repetition(accounts)==0)
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("帐号不存在 !\n");
printf("\t\t\t\t\t");
system("PAUSE");
system("CLS");
home();
}
int put_num,flag;//保存输入的数字 、其它金额
int number;
system("cls");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t=====请选择服务:\n\n\n");
printf("\t\t\t\t\t=====1- 200 \t2- 400 =====\n\n\n");
printf("\t\t\t\t\t=====3- 700 \t4- 1000 =====\n\n\n");
printf("\t\t\t\t\t=====5- 1500 \t6- 2000 =====\n\n\n");
printf("\t\t\t\t\t=====7- 3000 \t8- 其它金额===\n\n\n");
printf("\t\t\t\t\t");
scanf("%d",&put_num);
switch(put_num)
{
case 1:system("CLS");number=200;break;
case 2:system("CLS");number=400;break;
case 3:system("CLS");number=700;break;
case 4:system("CLS");number=1000;break;
case 5:system("CLS");number=1500;break;
case 6:system("CLS");number=2000;break;
case 7:system("CLS");number=3000;break;
case 8:
{
do
{
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("请输入你要存款的金额:\n");
printf("\t\t\t\t\t");
scanf("%d",&number);
if(number%100!=0)
{
printf("\t\t\t\t\t");
printf("输入错误!只能输入整百数!\n");
printf("\t\t\t\t\t");
system("PAUSE");
flag=1;
}
else flag=0;
} while(flag);
}
break;
default:
system("CLS");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
system("pause");
deposit(accounts);
}
do
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("是否确认存入\"%s\"%d元?\n\n",show_name(accounts),number);
printf("\t\t\t\t\t");
printf("返回登录界面请输入1\n\n");
printf("\t\t\t\t\t");
printf("继续转帐请输入2\n\n");
printf("\t\t\t\t\t");
scanf("%d",&put_num);
switch(put_num)
{
case 1:flag=0;break;
case 2:system("CLS");home();
default:
{
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("输入错误!\n");
printf("\t\t\t\t\t");
flag=1;
system("pause");
system("CLS");
}
}
}while(flag);
put_money(accounts,number);
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t\t========欢迎使用ATM~_~========\t\t\t\t\n\n\n");
printf("\t\t\t\t\t");
printf("存款成功!\n");
printf("\t\t\t\t\t");
system("pause");
system("CLS");
home();
}
这是一个纯c的程序,希望大家支持我,关注我,谢谢。