/*
模拟银行ATM机
*/
#include <iostream>
#include <iomanip>//输出流控制符setw(n)函数所在头文件
#include <conio.h>//getch()函数所在头文件
#include <windows.h>
using namespace std;
int password=666666;//定义全局变量,设置银行卡密码
double balance=50000;//定义全局变量,设置银行卡额度
/*编译器编译一个cpp源文件时,采取顺序执行的方式。因此在主函数前将所有功能函数模块进行声明,以便了解函数的详细信息,在后续代码中遇到对该函数的调用时,编译器可以提前备案*/
bool input_pass();//判断银行卡密码输入是否正确
void bank_card();//显示银行卡信息
void work();//业务模块(包含下面的查询,存款,取款,转账,改密以及菜单选择模块)
void menu_select();//菜单选择模块
void display_balance();//查询模块
void save_money();//存款模式
void draw_money();//取款模式
void transfer_Accounts();//转账模块
void updatePassword();//改密模块
void color(int c); //自定义文字,背景颜色模块
int main(int argc, char** argv) {
bank_card();
if(input_pass())//此处调用的函数体内需要用户输入字符串,程序中断
{
work();
}
else
{
cout<<"密码错误已超出当天上限,请联系银行工作人员!"<<endl;
}
return 0;
}
bool input_pass()
{
bool pass=false;//while循环条件变量,假设密码不正确
int Ipassword;//定义输入密码变量
int num=1;
do
{
cout<<"请输入密码:";
cin>>Ipassword;
cout<<"(温馨提示:这是您第"<<num<<"次输入密码,三次输入密码不正确将没收银行卡)"<<endl;
num++;
if(Ipassword==password)
{
pass=true;
}
}
while(!pass&&num<4);//密码不正确并且输入次数小于4,一直循环 ,有一个条件不满足,退出while循环
system("cls");
return pass;//在3次输入内密码正确 返回true,否则返回false
}
void bank_card()
{
cout<<"*********************银行卡*********************"<<endl;
cout<<"* *"<<endl;
cout<<"*"<<setw(20)<<"密码:"<<password<<setw(21)<<"*"<<endl;
cout<<"*"<<setw(20)<<"余额:"<<balance<<setw(22)<<"*"<<endl;
cout<<"* *"<<endl;
cout<<"************************************************"<<endl;
}
void work()
{
int select;//保存用户输入的业务选项
bool exit=false;//while循环条件控制变量
color(0xC);
cout<<"欢迎使用银行储蓄系统!"<<endl<<endl;
color(0xF);
do
{
system("cls");
menu_select();
cout<<endl<<"请选择需要办理的业务:";
cin>>select;
switch(select)
{
case 1:
display_balance();
system("pause");
break;
case 2:
save_money();
system("pause");
break;
case 3:
draw_money();
system("pause");
break;
case 4:
transfer_Accounts();
system("pause");
break;
case 5:
updatePassword();
system("pause");
break;
case 6:
system("cls");
bank_card();
cout<<"温馨提示:请取回您的银行卡!"<<endl<<endl;
exit=true;
}
}while(!exit);
}
void menu_select()
{
cout<<"**********银行储蓄系统v1.0**********"<<endl;
cout<<"* 1.查询 *"<<endl;
cout<<"* 2.存款 *"<<endl;
cout<<"* 3.取款 *"<<endl;
cout<<"* 4.转账(待完善) *"<<endl;
cout<<"* 5.改密 *"<<endl;
cout<<"* 6.退出 *"<<endl;
cout<<"************************************"<<endl;
}
void display_balance()
{
system("cls");
cout<<"您的当前余额是:"<<balance<<"元"<<endl;
}
void save_money()
{
system("cls");
double money;
cout<<"请输入存款金额:";
cin>>money;
balance+=money;
cout<<"存款后,您的余额是:"<<balance<<"元"<<endl;
}
void draw_money()
{
double money;
cout<<"请输入取款金额:";
cin>>money;
if(money<=balance)
{
balance-=money;
cout<<"取款后您的余额是:"<<balance<<"元"<<endl;
}
else
{
cout<<"您的余额不足,取款失败"<<endl;
}
}
void transfer_Accounts()
{
double money;
int account;
cout<<"请输入转账金额:";
cin>>money;
cout<<"请输入对方账户:";
cin>>account;//需要判断对方账户的有效性,待完善
if(money<=balance)
{
balance-=money;
cout<<"转给"<<account<<"后,您的余额是:"<<balance<<"元"<<endl;
}
else
{
cout<<"您的余额不足,转账失败"<<endl;
}
}
void updatePassword()
{
int p1,p2;
cout<<"请输入旧密码:";
cin>>p1;
if(p1!=password)
{
cout<<"旧密码输入不正确,不允许修改密码!"<<endl;
}
else
{
cout<<"请输入新密码:";
cin>>p1;
cout<<"请确认新密码:";
cin>>p2;
if(p1==p2)
{
password=p1;
cout<<"修改密码成功!"<<endl;
}
else
{
cout<<"两次输入不一致,修改密码失败"<<endl;
}
}
}
void color(int c)
{
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, c);
}
输出:
资源下载:
https://download.csdn.net/download/weixin_42124234/11646967