ATM管理系统

这个作业属于哪个课程 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/ |
| 姓名 | 周茂兰 |
| 班级 | 软件192 |
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11477 |
| 这个作业的目标 | <编写一个ATM管理系统> |
| 学号 | <3190704229> |

头文件

include <stdio.h>

include <string.h>

include <stdlib.h>

define N 100

定义结构体和函数
void Transaccount();//转账
void Menu(); //菜单
void Close_account(); //销户
void Save_money();//存钱
void Withdraw_money();//取钱
void Show(); //查询
void Open_account();//开户
void save(int m); //存入文件
int read(); //读取文件

struct Person
{
char Id_number[20];//身份证号
char name[10];//姓名
char password[20];//密码
char Repassword[20];//再次确认输入的密码
float balance;//余额
}Person[N],P[2];

主函数与菜单
void Menu()
{
system("color 3F");//设置文字背景颜色
printf("\n");
printf("
欢迎使用ATM管理系统
\n");
printf("
***********************************************\n");
printf("------------------------------------------------------------------\n");
printf(": 1. 开户 :\n");
printf("------------------------------------------------------------------\n");
printf(": 2. 销户 :\n");
printf(":-----------------------------------------------------------------\n");
printf(": 3.查询用户余额 :\n");
printf(":-----------------------------------------------------------------\n");
printf(": 4.存款 :\n");
printf("------------------------------------------------------------------\n");
printf(": 5.取款 :\n");
printf("------------------------------------------------------------------\n");
printf(": 6.转账 :\n");
printf("------------------------------------------------------------------\n");
printf(": 7.退出系统 :\n");
printf("------------------------------------------------------------------\n");
printf("请选择功能:\n");
}

int main()
{
int a;
do
{
Menu();
scanf("%d",&a);
if(a>8||a<0)
{
system("cls");
printf("输入错误! \a\n");
continue;
}
system("cls");
switch(a)
{
case 1:
Open_account();// 开户
break;
case 2:
Close_account();//销户
break;
case 3:
Show();//查询用户余额
break;
case 4:
Save_money();//存款
break;
case 5:
Withdraw_money();//取款
break;
case 6:
Transaccount();//转账
break;
case 7:
exit(0);//退出系统
break;
}

}while(1);

开户
//初始开户
void Open_account()
{
int x,j,i,k,sum;
printf("请输入你需要开户的人数:\n");
scanf("%d",&x);
for(i=0;i<x;i++)
{
printf("请输入第%d个开户的身份证号码\n",i+1);
scanf("%s",&Person[i].Id_number);
for(j=0,sum=0;j<x;j++)
{
for(k=0;k<10;k++)
{
if(j!=i&&Person[i].Id_number[k]Person[j].Id_number[k])
sum+=0;
else
sum+=1;
}
if(Person[j+1].Id_number
NULL)
break;
while(sum0)
{
system("cls");
printf("你输入的身份证号重复!请重新输入:\n");
printf("请输入第%d个客户身份证号\n",i+1);
scanf("%s",&Person[i].Id_number);
for(k=0;k<10;k++)
{
if(j!=i&&Person[i].Id_number[k]
Person[j].Id_number[k])
sum+=0;
else
sum+=1;
}
if(Person[j+1].Id_number==NULL)
break;
}
}
printf("请输入第%d个客户姓名\n",i+1);
scanf("%s",&Person[i].name);
printf("请输入第%d个客户密码\n",i+1);
scanf("%s",&Person[i].password);
printf("请再次输入第%d个客户密码\n",i+1);
scanf("%s",&Person[i].Repassword);
printf("请输入第%d个客户的存入余额\n",i+1);
scanf("%f",&Person[i].balance);
system("cls");
}
save(x);
printf("恭喜!开户完成,请登录!\n");
}

销户
void Close_account()
{
int i,j,n;
int m=read();
char password[20],Id_number[20];
printf("请输入要销户的身份证号:\n");
scanf("%s",Id_number);
getchar();
printf("请输入密码:");
scanf("%s",password);
getchar();
for(i=0;i<N;i++)
{
if(Person[i].Id_number[0]'\0')
continue;
if(strcmp(Id_number,Person[i].Id_number)
0 && strcmp(password,Person[i].password)0)
{
for(j=i;j<i+1;j++)
Person[j]=P[0];
printf("客户信息已经销户成功!\n");
save(m);
return;
}
}
if(i
N)
printf("没有这位客户的信息!\n");

printf("%s\t%s\t%f\n",Person[i].Id_number,Person[i].name,Person[i].balance);
	save(m);

}
查询
void Show()
{
int i,j,n;
int m=read();
char password[20],Id_number[20];
printf("请输入你要查询的身份证号:\n");
scanf("%s",Id_number);
getchar();
printf("请输入密码:");
scanf("%s",password);
getchar();
for(i=0;i<N;i++)
{
if(Person[i].Id_number[0]'\0')
continue;
if(strcmp(Id_number,Person[i].Id_number)
0 && strcmp(password,Person[i].password)0)
{
printf("%s\t%s\t%f\n",Person[i].Id_number,Person[i].name,Person[i].balance);
return;
}
else
printf("你输入的密码错误!\n");
}
if(i
N)
printf("没有这位客户的信息!\n");

}

存款
void Save_money()
{
int i,j,n;
int m=read();
float sav_mon;
char password[20],Id_number[20];
printf("请输入要存款的身份证号:\n");
scanf("%s",Id_number);
getchar();
printf("请输入密码:");
scanf("%s",password);
getchar();
for(i=0;i<N;i++)
{
if(Person[i].Id_number[0]'\0')
continue;
if(strcmp(Id_number,Person[i].Id_number)
0 && strcmp(password,Person[i].password)==0)
{
printf("输入要存入的款数:\n");
scanf("%f",&sav_mon);
Person[i].balance = Person[i].balance + sav_mon;
printf("客户已存款成功!\n");
save(m);//储存修改后的数据
printf("%s\t%s\t%f\n",Person[i].Id_number,Person[i].name,Person[i].balance);

			return;
		}
	}
	if(i==N)
		printf("无此客户资料!\n");

	save(m);

}

取款
void Withdraw_money()
{
int i,j,n;
int m=read();
float withdraw_mon;
char password[20],Id_number[20];
printf("请输入要取款的身份证号:\n");
scanf("%s",Id_number);
getchar();
printf("请输入密码:");
scanf("%s",password);
getchar();
for(i=0;i<N;i++)
{
if(Person[i].Id_number[0]'\0')
continue;
if(strcmp(Id_number,Person[i].Id_number)
0 && strcmp(password,Person[i].password)==0)
{
printf("输入要取出的款数:\n");
scanf("%f",&withdraw_mon);
if(Person[i].balance >= withdraw_mon)
{
Person[i].balance = Person[i].balance - withdraw_mon;
printf("客户已取款成功!\n");
save(m);//储存修改后的数据
}
else
printf("账户余额不足!");

			printf("%s\t%s\t%f\n",Person[i].Id_number,Person[i].name,Person[i].balance);		
			return;
		}
	}
	if(i==N)
		printf("没有这位客户的信息!\n");

	save(m);

}

转账

void Transaccount()
{
int i,j,n;
int m=read();
float trans_mon;
char password[20],Id_number[20],Id_number2[20];
printf("请输入要转账的身份证号:\n");
scanf("%s",Id_number);
getchar();
printf("请输入密码:");
scanf("%s",password);
getchar();
for(i=0;i<N;i++)
{
if (Person[i].Id_number[0]'\0')
continue;
if(strcmp(Id_number,Person[i].Id_number)
0 && strcmp(password,Person[i].password)0)
{
printf("登录成功,请输入要转入的身份证号:\n");
scanf("%s",Id_number2);
getchar();
for(j=0;j<N;j++)
{
if(Person[j].Id_number[0]
'\0')
continue;
if(strcmp(Id_number2,Person[j].Id_number)0)
{
printf("输入要转账的金额:\n");
scanf("%f",&trans_mon);
if(Person[i].balance >= trans_mon)
{
Person[i].balance = Person[i].balance - trans_mon;
Person[j].balance = Person[j].balance + trans_mon;
printf("转账成功!\n");
save(m);
printf("%s\t%s\t%f\n",Person[i].Id_number,Person[i].name,Person[i].balance);
printf("%s\t%s\t%f\n",Person[j].Id_number,Person[j].name,Person[j].balance);
}
else
printf("账户余额不足!");
}
}
if(j
N)
printf("没有这位转入客户的信息!\n");
}
}
if(i==N)
printf("没有这位客户的信息!\n");

	save(m);

}

运行截图
菜单

开户

销户

查询

存款

取款

转账

posted @ 2020-11-17 22:57  等风`  阅读(155)  评论(0)    收藏  举报