模拟银行系统
1.实现要求
生成一个1000-1000000之间的随机数来代表账户余额(要求每次生成的数不一样); 实现登录功能:用户有三次输入密码的机会,输入正确的密码才能登录,如果输入错误超过了三次 之后密码还是错,则提示账户被冻结,退出程序。 实现查询账户余额功能:查询账户余额并输出。 实现取款功能:提示用户输入相应的金额,并取款。 实现存款功能:提示用户输入存款金额,并存款。 实现修改密码功能:提示用户输入新的密码,密码修改成功后,退出系统,提示重新登录。 实现退出系统功能。
示例代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu();
int changePwd(int password);
int drawDeposit() ;
void getDeposit() ;
void judgePwd(int password);
void Print();
long saveDeposit();
long deposit;
void getDeposit() {
do {
deposit=rand()%1000000+1;
} while(deposit<1000);
}
void menu() {
printf("\t ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("\t☆※※※※※※※※欢迎使用银行系统※※※※※※※※☆\n");
printf("\t ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n");
printf("银行业务有以下几种:\n");
printf("按键1:查看账户余额\n");
printf("按键2:取款\n");
printf("按键3:存款\n");
printf("按键4:修改密码\n");
printf("按键5:退出系统\n");
}
void judgePwd(int password) {
int input;
int count=0;
printf("请输入您的密码:");
scanf("%d",&input);
count++;
while(input!=password) {
if(count==3) {
printf("你的次数已用完,账户已被冻结!\n");
printf("正在退出系统......\n");
exit(0);
}
printf("密码输入错误,请重新输入:(您还有%d次机会)\n请输入您的密码:",3-count);
scanf("%d",&input);
count++;
}
printf("密码输入正确,登录成功!\n");
printf("\n \n");
}
void Print() {
printf("您的账户余额为:%ld\n",deposit);
}
int drawDeposit() {
long draw;
do {
printf("请输入您的取款金额(本机只能提取100元面值的钞票):");
scanf("%ld",&draw);
if(draw>deposit) {
while(draw>deposit) {
printf("您的余额不足,请重新输入取款金额:");
scanf("%ld",&draw);
}
}
if(draw<100||draw%100!=0) {
printf("输入的取款金额有误,请重新输入取款金额:\n");
}
} while(draw<100||draw%100!=0);
deposit=deposit-draw;
return draw;
}
long saveDeposit() {
long save;
printf("存款时只接受面值为100的钞票。\n") ;
printf("请输入您的存款金额:");
scanf("%ld",&save);
while(save<=0||save%100!=0) {
printf("存款金额不符合规定,请重新输入存款金额:");
scanf("%ld",&save);
}
deposit=deposit+save;
return save;
}
int changePwd(int password) {
int change_pwd,change;
char ch;
printf("您确定要修改密码吗?(Y/y)");
scanf("%c",&ch);
ch=getchar();
if(ch=='y'||ch=='Y') {
printf("请输入新的密码:");
scanf("%d",&change_pwd);
printf("请确认新的密码:") ;
scanf("%d",&change);
if(change_pwd!=change) {
printf("两次密码输入不一致,即将返回主页面...\n");
menu();
return password;
} else {
printf("密码修改成功......\n");
printf("请重新登录:\n");
judgePwd(password);
return change_pwd;
}
} else {
return password;
}
}
int main() {
srand((unsigned)time(NULL));
getDeposit();
menu();
int password=123456;
judgePwd(password);
int ch,statu=0;
while(1) {
printf("--------------------------------------------------------------------------------\n\n");
menu();
printf("请选择你的业务:\n");
scanf("%d",&ch);
switch(ch) {
case 1:
Print();
break;
case 2:
printf("取款成功,金额为:%ld\n",drawDeposit());
break;
case 3:
printf("存款成功,金额为:%ld\n",saveDeposit());
break;
case 4:
password=changePwd(password);
break;
case 5:
statu=-1;
break;
default:
printf("输入有误,请重新输入......\n");
}
if(statu==-1) {
break;
}
}
printf("\n欢迎下次光临,再见\3\3\3\3\3...\n");
}
|