接上一篇成功写出输入密码以及判断正误之后,这是它的升级版,输入密码正确之后的4个操作
题设要求:**** 欢迎光临 ****
请输入密码:
失败:密码错误 请重新输入您还有2次机会(总共三次机会,逐次递减);
成功:密码正确,显示新的操作界面;
密码正确,请选择操作:1. 取款 2. 存款 3. 更改密码 4. 退出
具体操作:
2. 存款。 请输入存款金额:300; 存款成功,按任意键返回;
3. 更改密码。 请输入原始密码:1234; 请输入新密码:5678; 密码更改成功 按任意键返回
4. 退出。 退出程序
以下是具体代码,保姆式教学:
#include <stdio.h>
int main(int argc, const char * argv[]) {
//定义初始变量
int password = 1234;
int inputPswd = 0;
int totalMoney = 2000;
int time = 3;
int choice = 0;
//提示用户操作
printf("*******欢迎光临!*******\n");
printf("请输入密码:\n");
scanf("%d",&inputPswd);
while (1) {
if (inputPswd == password) {
printf("密码正确,请选择操作:\n");
printf("1. 取款\n2. 存款\n3. 更改密码\n4. 退出\n");
scanf("%d",&choice);
if (choice < 0 || choice > 4){ //确保输入的编号为合法编号,也就是1——4之间的数
printf("请输入正确的编号!\n");
}
int cunkuan = 0;
if (choice == 2) { //存款选项
printf("请输入存款金额:\n");
scanf("%d",&cunkuan);
totalMoney += cunkuan; //等同于totalMoney = totalMoney + cunkuan
printf("显示余额:%d\n",totalMoney);
printf("存款成功,按任意键返回上一页\n");
getchar();
getchar(); //有scanf时要加两个get char();
}
if (choice == 3) { //更改密码选项
printf("请输入原始密码:\n");
scanf("%d",&password);
printf("请输入新密码:\n");
scanf("%d",&inputPswd);
printf("密码更改成功,按任意键返回上一页!\n");
getchar();
getchar();
}
if (choice == 4) { //退出选项
printf("退出\n");
getchar();
}
}else { // 输入密码错误时的操作
time--;
if (time == 0) {
printf("次数已用完,结束此次操作.\n");
break;
}
printf("密码错误,请重新输入密码,您还%d次机会\n",time);
scanf("%d",&inputPswd);
}
}
return 0;
}
这段代码除了可以用 if语句,还可以用 switch语句来实现。下面为这几个选择操作用switch写的一小段代码:
//判断用户的选择
//int char
switch (choice){
case 1:
//取款
break;
case 2:
//存款
printf("请输入存款金额:");
int money;
scanf("%d", &money);
totalMoney += money;
printf("存款成功 余额:%d 按回车键返回:",totalMoney);
getchar();
getchar();
break;
case 3:
//更改密码
printf("请输入原始密码:");
while (1) {
scanf("%d", &inputPwd);
//比较密码是否正确
if (inputPwd == password) {
printf("请输入新密码:");
scanf("%d", &password);
printf("更改密码成功 按回车键返回");
getchar();
getchar();
break;
} else {
printf("输入密码错误 请重新输入:");
}
}
break;
case 4:
//退出
exit(EXIT_SUCCESS);
break;
default:
break;
}
注意:switch语句中
- case后面是冒号
- 每个case语句中一定要加break;
- 最好将switch语句中的数据类型变为 int型或者 char型;
if——else 语句与 switch语句的区别: 1. 两者本质的区别是 if-else语句更适合于对区间(范围)的判断,而switch语句更适合于对离散值的判断 2. 示例 判断60到80之间的学生有哪些适合用if-else语句,因为[65,85]是区间; 而判断一个学生的班级是一班、二班还是三班适合用switch语句,因为一班、二班、三班是离散值 3 扩展 if-else语句可以替换所有的 switch语句(因为if-else语句只需对每个离散值分别做判断即可), 但switch语句不能用来替换 if——else语句(因为区间里值的个数是无限的并且switch所接受的值只能是整型或枚举型, 所以不能用case来一一列举)。
要是有不同意见欢迎私信或者评论指出,本人小白一只,接受诚心的批评指正,但不接受挑刺,谢谢!