目标
在电脑上简单运行ATM机存款、取款、查询余额等功能。
思路
首页面:输入密码,假如密码错误,则重新输入密码,密码错误次数达3次,则退出程序。密码正确,则进入选择页面。
选择页面:分别为 存款、取款、查询余额、更改密码、退出 5个选项。
在完成每个选项的内容后,需要继续进行选择是否继续,是则重新进入选择页面,否则退出程序。
使用的函数
if函数:在需要判断的地方出现。
for函数:该函数主要用于需要循环的部分,例如:
1.在首页面输入密码错误时,则需要重新输入密码,若输错3次则跳出循环。
int wrongTime = 1; int input;
switch函数: 在选择页面时,用于选择选项。
scanf("%d",&choice);
//判断操作
switch(choice){ // int choice;
case 1: //存款
int temp;
printf("请输入存款金额:");
scanf("%d",&temp);
total += temp;
printf("存款成功!可用余额为:%d\n",total);
break;
case 2: //取款
int temp2;
for(;1 < 2;) {
printf("请输入取款金额:");
scanf("%d",&temp2);
if(temp2 > total){
printf("余额不足");
}else{
total -= temp2;
printf("取款成功,余额为%d",total);
}
break;
}
case 3: //查询余额
printf("当前余额为:%d\n",total);
break;
case 4: //更改密码
int n1;
int n2;
for(;1 < 2;){
printf("请输入新密码:");
scanf("%d",&n1);
printf("请确认新密码:");
scanf("%d",&n2);
if(n1 == n2){
printf("密码设置成功!");
old = n1;
break;
} else{
printf("两次输入不一致! ");
}
}
break;
default: //退出
exit(EXIT_SUCCESS); //exit(EXIT_FAILURE);
break;
}
因为在完成一个选项的内容后,都需要用户选择是否继续,所以可以在switch区域后加一个for函数。
//提示是否继续操作
for(;1 < 2;){
printf("是否继续(y/n):");
getchar(); //清除缓存区里的内容
scanf("%c",&goon);
if(goon == 'y' ){
break;
}
if(goon == 'n');{
exit(EXIT_SUCCESS);
}
printf("输入无效 ");
}
该程序的所有代码为:
#include
#include
int main(){
int old = 123; //原始密码
int input ;
int wrongTime = 3;
int total = 1000; //余额
printf("----------------------\n");
printf(" 欢迎使用建设银行 \n");
printf("----------------------\n");
printf(" 请输入密码:");
for(int i = 1;i <= wrongTime; i++){
scanf("%d",&input); //接受用户输入的密码
if(old == input){
break; //密码正确,跳转页面
}
if(i == wrongTime){ //判断密码错误的次数
printf("密码错误次数过多,请联系客服\n");
return 0;
}
printf("密码错误,请重新输入:\n");
}
int choice; //接受用户是否继续的输入
char goon;//是否继续
for(;1 < 2;){
//主界面
printf("-------------------\n");
printf(" 1.存款 \n");
printf(" 2.取款 \n");
printf(" 3.查询余额 \n");
printf(" 4.更改密码 \n");
printf(" 5.退出 \n");
printf("-------------------\n");
//提示用户选择
printf("请选择操作:");
scanf("%d",&choice);
//判断操作
switch(choice){ // int choice;
case 1: //存款
int temp;
printf("请输入存款金额:");
scanf("%d",&temp);
total += temp;
printf("存款成功!可用余额为:%d\n",total);
break;
case 2: //取款
int temp2;
for(;1 < 2;) {
printf("请输入取款金额:");
scanf("%d",&temp2);
if(temp2 > total){
printf("余额不足");
}else{
total -= temp2;
printf("取款成功,余额为%d",total);
}
break;
}
case 3: //查询余额
printf("当前余额为:%d\n",total);
break;
case 4: //更改密码
int n1;
int n2;
for(;1 < 2;){
printf("请输入新密码:");
scanf("%d",&n1);
printf("请确认新密码:");
scanf("%d",&n2);
if(n1 == n2){
printf("密码设置成功!");
old = n1;
break;
} else{
printf("两次输入不一致! ");
}
}
break;
default: //退出
exit(EXIT_SUCCESS); //exit(EXIT_FAILURE);
break;
}
//提示是否继续操作
for(;1 < 2;){
printf("是否继续(y/n):");
getchar();
scanf("%c",&goon);
if(goon == 'y' ){
break;
}
if(goon == 'n');{
exit(EXIT_SUCCESS);
}
printf("输入无效 ");
}
}
return 0;
}
展示图