课程题目:模拟ATM柜员机程序
内容要求:使用文本命令行设计模拟ATM柜员机程序。
要求使用文本命令行界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:
(1)查询余额:初始余额为10000元
(2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
(3)ATM存款:不能出现负存款。
(4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
代码如下:
#include <iostream>
#include<windows.h>
#include <string>
using namespace std;
class User
{
private:
string userName = "123456";
double balance = 10000;
string password = "123456";
public:
void menu();
void inquire();
void save();
void draw();
void change();
};
void User::inquire()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
cout << " 查询成功!您的余额为:" << balance << "元" << endl << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |
FOREGROUND_BLUE | FOREGROUND_RED);
}
void User::save()
{
double a;
part5:
cout << "请输入您的存款金额:";
cin >> a;
if (a > 0)
{
balance += a;
cout << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
cout << " 存款成功,您已存入" << a << "元。" << " " << "卡内余额为:" << balance << "元!" << endl << endl << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |
FOREGROUND_BLUE | FOREGROUND_RED);
}
else
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
cout << endl << " 对不起,存款金额不可为负值,请重新输入" << endl << endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN |
FOREGROUND_BLUE | FOREGROUND_RED);
goto part5;
}
}
void User::draw()
{
int b;
part6:
cout << "请输入您要取款的金额(注:取款金额需为100的倍数):"