今天依旧还是银行基本演示的程序,只是用了几种不同的方法。
了解的东西,scanf函数的返回值的0或者1,vs2017如果要用scanf函数要加#pragma warning(蒂萨比例:4996)
函数的不同调用,获取输入字符长度的方法:
int count = scanf(“%等,X”)X为输入
int int count = strlen(X);
还有在switch里不能申明东西。下面是不用函数。函数的我再看看(一个周返回这里。心月狐)
#include "pch.h"
#include <iostream>
int main(int argc, const char * argv[]) {
//保存原始密码
int password = 123;
int inputPwd = 0;
int totalTime = 4;
int totalMoney = 1000;
printf("**************\n");
printf(" 欢迎使用\n");
printf("**************\n");
//一个模块完成一个功能 耦合性降低
printf("请输入密码:");
while (1) {
scanf_s("%d", &inputPwd);
if (inputPwd == password) {
//密码正确
break;
}
else {
totalTime--;
if (totalTime == 0) {
printf("此卡已冻结 请联系客服!\n");
//退出
exit(EXIT_FAILURE);
}
else {
printf("密码不正确 请重新输入:");
}
}
}
//密码正确
char choice;
while (1) {
printf("**************\n");
printf("1.取款\n");
printf("2.存款\n");
printf("3.设置密码\n");
printf("4.退出\n");
printf("**************\n");
//判断输入是否合法
char ch[20] = {};
while (1) {
//去掉上一次输入的回车符 \n
printf("请选择操作:");
int count = strlen(ch);
if (count != 1) {
printf("输入不合法 ");
}
else {
//获取第一个字符
choice = ch[0];
if (choice == '1' || choice == '2' || choice == '3' || choice == '4') {
break;
}
else {
printf("输入不合法 ");
}
}
}
//检测到底选择的是什么操作
char choice2;
int newPassword1 = 0;
int newPassword2 = 0;
int inputMoney = 0;
switch (choice) {
case '1':
//取款
while (1) {
int outMoney = 0;
printf("请输入取款金额:");
scanf_s("%d", &outMoney);
if (outMoney > totalMoney) {
//金额不足
printf("余额不足是否继续(y/n):");
getchar();
choice2 = getchar();
if (choice2 == 'n') {
break;
}
}
else {
totalMoney -= outMoney;
printf("取款成功 余额为:%d\n", totalMoney);
break;
}
}
break;
case '2':
printf("请输入存款金额:");
scanf_s("%d", &inputMoney);
totalMoney += inputMoney;
printf("存款成功 余额为:%d\n", totalMoney);
break;
case '3':
while (1) {
printf("请输入新密码:");
scanf_s("%d", &newPassword1);
printf("请确认密码:");
scanf_s("%d", &newPassword2);
if (newPassword1 == newPassword2) {
password = newPassword1;
printf("更改密码成功\n");
break;
}
else {
printf("两次密码不一致 ");
}
}
break;
default:
printf("感谢你的使用 再见!!!\n");
exit(EXIT_SUCCESS);
break;
}
}
return 0;
}