#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
void lock();
void exitt();
void getmoney();
void chioce();
void exitt();
void showmoney();
void transfer();
void regist();
void changepassword();
void logn();
char *passw=new char[6];
char *num=new char[6];
char *name=new char[6];
double total=40000.0;
double leftmoney=40000.0;
double oncemoney=10000.0;
static int count=10; //可以注册10个用户,如果想要注册更多,修改即可。
/*struct user{
char *passw=new char[6];
char *num=new char[6];
char *name=new char[6];
};*/
//typedef struct student student;
void changepassword()
{
char *password=new char[10];
printf("输入修改密码:\n");
scanf("%s",password);
passw=password;
// return password;
}
void getmoney()
{
double m;
char ch;
do
{
printf("要取多少:\n");
scanf("%lf",&m);
while(m<=0.0)
{
printf("输入错误,请重新输入!\n");
scanf("%lf",&m);
}
if(total<m)
printf("余款不足!\n");
else
if(m>oncemoney)
printf("一次性无法提取太多!\n");
else
if(m>leftmoney)
printf("本机不足!\n");
else
{
printf("操作成功,请收好你的钱!\n");
leftmoney=leftmoney-m;
}
printf("是否继续?'y'或'n'\n");
scanf("%c",&ch);
while(ch!='y'&&ch!='n')
{
printf("再选择!\n");
scanf("%c",&ch);
}
}while(ch=='y');
}
void chioce()
{
int m;
do
{
printf("*********************\n");
printf(" 1 修改密码 \n");
printf(" 2 取款 \n");
printf(" 3 查询余额 \n");
printf(" 4 转账 \n");
printf(" 5 退出 \n");
printf("*********************\n");
printf("&&输入操作号: ");
scanf("%d",&m);
switch(m)
{
case 1:
changepassword();
break;
case 2:
getmoney();
break;
case 3:
showmoney();
break;
case 4:
transfer();
break;
case 5:
exitt();
break;
}
}while(true);
}
void lock()
{
printf("非法!\n");
exit(1);
}
void exitt()
{
printf("谢谢使用!\n");
printf("请取卡!\n");
exit(0);
}
void showmoney()
{
printf("|***********************\n");
printf("|**卡号: %s \n",num);
printf("|**姓名: %s \n",name);
printf("|**余额: %f \n",leftmoney);
printf("|**密码: %s \n",passw);
printf("|***********************\n");
}
void transfer(){
char *num1=new char[20];
double t;
char ch;
printf("输入要转账的用户账号:\n");
scanf("%s",num1);
do{printf("需要转多少:\n");
scanf("%lf",&t);
while(t<=0.0)
{
printf("输入错误,请重新输入!\n");
scanf("%lf",&t);
}
if(total<t)
printf("余款不足!\n");
else
if(t>oncemoney)
printf("一次性无法转账太多!\n");
else
if(t>leftmoney)
printf("本机不足!\n");
else
{
printf("操作成功!\n");
leftmoney=leftmoney-t;
}
printf("是否继续?'y'或'n'\n");
scanf("%c",&ch);
while(ch!='y'&&ch!='n')
{
printf("再选择!\n");
scanf("%c",&ch);
}
}while(ch=='y');
}
void regist(){
FILE *fp0,*fp,*fp1;
fp=fopen("bai.txt","a+");
if(!fp){
printf("打开文件失败!\n");
return ;
}
fp0=fopen("bai0.txt","a+");
if(!fp0){
printf("打开文件失败!\n");
return ;
}
fp1=fopen("bai1.txt","a+");
if(!fp1){
printf("打开文件失败!\n");
return ;
}
printf("**********用户开始注册**********\n");
printf("请输入你要注册的姓名:\n");
gets(name);
fputs(name,fp0);
// getchar();
//fwrite(num,sizeof(num),2,fp);
printf("请输入你要注册的卡号:\n");
gets(num);
fputs(num,fp);
printf("请输入注册密码:\n");
gets(passw);
fputs(passw,fp1);
// getchar();
//fwrite(passw,sizeof(passw),2,fp1);
fclose(fp0);
fclose(fp);
fclose(fp1);
printf("**********用户注册结束**********\n");
}
void logn(){
int i=0;
char *password=new char[10];
char *number=new char[18];
printf(" 欢迎使用ATM机 \n");
int times=0;
// regist();
//printf("%d",count);
do{
printf("输入卡号:\n");
scanf("%s",number);
getchar();
printf("输入密码:\n");
scanf("%s",password);
getchar();
FILE *fp,*fp0,*fp1;
fp=fopen("bai.txt","r+");
if(!fp){
printf("打开文件失败!\n");
return ;
}
fp0=fopen("bai0.txt","r+");
if(!fp0){
printf("打开文件失败!\n");
return ;
}
fp1=fopen("bai1.txt","r+");
if(!fp1){
printf("打开文件失败!\n");
return ;
}
do{
fgets(num,7,fp); // fseek(fp,7L,1);
fgets(name,7,fp0);//fseek(fp0,7L,1);
//printf("%s\n",num);
fgets(passw,7,fp1);//fseek(fp1,7L,1);
i++;
if(i>count)
{
rewind(fp);
rewind(fp0);
rewind(fp1);
i=0;
break;
}
}while(strcmp(password,passw)||strcmp(number,num));
//printf("%s\n",passw);
if(strcmp(password,passw)||strcmp(number,num))
{
printf("你输入的账号或密码不正确!\n");
times++;
}
else chioce();
}while(times!=3);
lock();
printf("提示:请取出你的磁卡!\n");
}
void main(){
int n;
int m;
printf("选择1 直接登录 选择2 用户注册\n");
scanf("%d",&m);
do
{
if(m==1){
printf("*********************\n");
printf(" 1 直接登录 \n");
printf("*********************\n");
logn();
}
if(m==2){
printf("*********************\n");
printf(" 1 用户注册 \n");
printf(" 2 退出 \n");
printf("*********************\n");
printf(" 选择操作选项 \n");
scanf("%d",&n);
getchar();
switch(n)
{
case 1:
regist();
count++;
break;
case 2:
exitt();
break;
}
}
else exitt();
}while(true);
}
评论0