#include<stdio.h>
//全局变量
int key; //循环条件
int n = 0;//账户数
int s = 0; //用 0 和 1 表示退出和进入
int index; //用来表示存款的账户
struct acount {
int text; //账号
int password; //密码
int money; //余额
}person[10];
void zhuce() { //注册
printf("请输入要注册的账号:");
scanf_s("%d", &person[n].text);
printf("请输入要注册的密码:");
scanf_s("%d", &person[n].password);
printf("******注册成功******");
n++;
}
void Login() { //登录
int t, p,flag=0;
if (s == 0) {
printf("请输入账号:");
scanf_s("%d", &t);
printf("请输入密码:");
scanf_s("%d", &p);
for (int i = 0; i < n; i++) {
if (t == person[i].text && p == person[i].password) {
printf("******登录成功******");
index = i;
s = 1;
break;
}
else if (t == person[i].text && p != person[i].password) {
printf("******密码错误******");
break;
}
else {
flag++;
}
}
if (flag == n) {
printf("******该账户不存在******");
}
}
else {
printf("******您已经登录了系统,请先退出******");
}
}
void Display() { //查看用户
printf("*******************银行账户信息********************\n\n");
for (int i = 0; i < n; i++) {
printf("用户账号:%d\t用户密码:%d\t金钱:%d\n",person[i].text,person[i].password,person[i].money);
}
printf("***************************************************");
}
void changePassword() { //改密码
int t, p; //p原密码,t账号
int f = 0; //看账户是否存在
printf("请输入要修改密码的账号:");
scanf_s("%d", &t);
printf("请输入原密码:");
scanf_s("%d", &p);
for (int i = 0; i < n; i++) {
if (t == person[i].text) {
if (p == person[i].password) {
printf("请输入新密码:");
scanf_s("%d", &person[i].password);
printf("******修改成功******");
}
else {
printf("******密码错误******");
}
}
else {
f++;
}
}if (f == n) {
printf("******该账户不存在******");
}
}
void saveMoney() { //存钱
int c;
if (s != 0) {
printf("请输入存款的数目(元):");
scanf_s("%d",&c);
person[index].money += c;
printf("******存款成功*******");
}else {
printf("******请先登录账户*******");
}
}
void exit() { //退出
char c = NULL;
if (s != 0) {
printf("\n请输入是否要退出当前账户(y/n):");
while (c != 'y' && c != 'n') {
scanf_s("%c", &c);
}
if (c != 'n') {
printf("******退出成功*******");
s = 0;
}
}
else {
printf("******退出失败,你还未登录******");
}
}
void quqian() { //取款
int m; //取款数
if (s != 0) {
printf("请输入存款的数目(元):");
scanf_s("%d",&m);
if (m<=person[index].money) {
person[index].money-= m;
printf("******取款成功******");
}
else {
printf("******余额不足******");
}
}
else {
printf("******请先登录账户*******");
}
}
void zhuanqian() { //转账
int z; //转账的账号
int f = 0; //看账户是否存在
int m; //转账的金额
int flag;
if (s != 0) {
printf("请输入要转账的账号:");
scanf_s("%d", &z);
for (int i = 0; i < n; i++) {
if (z == person[i].text) {
flag = i;
printf("请输入转账金额:");
scanf_s("%d",&m);
if (m <= person[index].money) {
person[flag].money += m;
person[index].money -= m;
printf("******转账成功******");
}
else {
printf("******余额不足******");
}
}
else{
f++;
}
}
if (f == n) {
printf("******该账户不存在******");
}
}
else {
printf("******请先登录******");
}
}
void Menu() { //操作菜单
printf("\n\n==========银行转账系统==========");
printf("\n0.退出登录");
printf("\n1.注册账号");
printf("\n2.登录账号");
printf("\n3.修改密码");
printf("\n4.用户取款");
printf("\n5.用户存款");
printf("\n6.用户转账");
printf("\n7.查看所有用户");
printf("\n请输入您的选择(0-7):");
scanf_s("%d",&key);
switch (key) {
case 0:exit(); break;
case 1:zhuce(); break;
case 2:Login(); break;
case 3:changePassword(); break;
case 4:quqian(); break;
case 5:saveMoney(); break;
case 6:zhuanqian(); break;
case 7:Display(); break;
default:printf(" 操作失败!");
}
}
int main() {
while (1) {
Menu();
}
return 0;
}