C++实验2—模拟ATM

/* 
* 文件名称:exe1 
* 作    者:张宇恒  
* 完成日期:2016  年  4   月  2  日 
* 版 本 号:v1.0 
* 对任务及求解方法的描述部分:

请输入密码:用户输入密码(真正的自动取款机上,输入的密码显示为*,不让人看见的,此处先不作处理。暂时用整数当密码,当然,真正的自动取款机上,这需要检查密码是否正确!)

显示功能选项
1.查询
2.取款
3.存款
4.转帐
0.退出
用户输入功能选择
显示:谢谢,您选择了 x 号功能(现在的程序,当输入不是 0-4 都可以接受,以后再说)
程序结束


* 输入描述: 密码   1 2 3 0
* 问题描述:输入密码      请选择功能
* 程序输出:密码正确      谢谢,您选择了X号功能。
* 问题分析:略 
* 算法设计:略  
*/  

#include<iostream>  
using namespace std;  
int main()
{
int a,b;
cout<<"张氏银行欢迎您!"<<endl;
cout<<"请输入密码:"<<endl;
cin>>a;
if(a==961023)
{
cout<<"密码正确,请您选择您要办理的业务:"<<endl;
cout<<"1查询\n"<<"2取款\n"<<"3存款\n"<<"4转账\n"<<"0退出\n";
cin>>b;
switch(b)
{case 1:cout<<"谢谢,您选择了1号功能,程序结束";break;
case 2:cout<<"谢谢,您选择了2号功能,程序结束";break;
case 3:cout<<"谢谢,您选择了3号功能,程序结束";break;
case 4:cout<<"谢谢,您选择了4号功能,程序结束";break;
case 0:cout<<"谢谢,您选择了0号功能,程序结束";break;
default:cout<<"暂时还未开通此功能,请重新选择";break;
}
}
else
cout<<"密码错误"<<endl;
return 0;
}






心得体会:这次实验让我熟悉了switch语句,解决这种问题确实很方便,而且很美观。

总结:if和switch语句的结合能解决很多类似的问题,从而是问题简单化,条理化。不过编写时,我还是遇到了很多麻烦,所以还得多练习。

#include #include using namespace std; class Consumer { private: long Accnumber; string conname; double Balance; long password; public: Consumer(); void login(); int Query(); int transfer(); int withdraw(); int update();//修改密码 void choose(); }; Consumer::Consumer() { Accnumber=1030070128; conname="林杰东"; Balance=10000.00; password=123456; } void Consumer::login() { long password0; int i=0; cout<<"**********欢迎登入林杰东银行**********"<<endl; cout<<endl; cout<<endl; cout<<endl; cout<<"请输入您的6位密码(错误输入不得超过3次):"; cout<<endl; cout<<endl; cout<<endl; cout<<endl; cout<<"**********欢迎登入林杰东银行**********"<<endl; while(i<3) { cout<>password0; i++; if(password0!=password) { cout<<"对不起,您的输入有误,请重新输入!!!"<<endl; if(i==3) { cout<<"您的错误输入已满3次,请取出您的银行卡,以免被吞卡!!!"<<endl; login(); break; } } else { cout<<"登入成功!!!"<<endl; break;} } } int Consumer::Query() { cout<<"您的用户名:"; cout<<conname<<endl; cout<<"您的账号:"; cout<<Accnumber<<endl; cout<<"您的当前余额:"; cout<<Balance<<endl; cout<<"密码:"; cout<<password<<endl; return 1; } int Consumer::transfer() { long Accnumber1,Accnumber2; double money; cout<>Accnumber1; if(Accnumber1==Accnumber) { cout<<"对不起,您要转入的账号是当前银行卡的账号,无法转账!!!请重新输入其他账号!!!"<<endl; return transfer(); } else { cout<>Accnumber2; if(Accnumber1==Accnumber2 ) { cout<>money; cout<=money) { Balance=Balance-money; cout<<"转账成功!!!"<<endl; cout<<"您的当前余额:"; return Balance; } else { cout<<"对不起,您当前余额不足,请重新转账!!!"<<endl; return transfer(); } } else { cout<<"您两次输入的账号有误,请重新输入!!!"<<endl; return transfer(); } } } int Consumer::update() { long password1; long password2; long password3; cout<>password1; if(password1!=password) { cout<<"对不起,您的输入有误,请重新输入!!!"<<endl; return update(); } else { cout<>password2; cout<>password3; if(password2==password3) { password=password3; cout<<"恭喜您,您的密码修改成功!!!"<<endl; cout<<"您的新密码:"; return password; } else { cout<<"对不起,您的两次输入有误,请重新输入!!!"<<endl; return update(); } } } int Consumer::withdraw() { double number; cout<>number; if(Balance<number) { cout<<"你的账号余额不足 "<<number<<"."<<endl; cout<<"取款失败!"<<endl; return withdraw(); } else { cout<<"取款成功!!!"<<endl; Balance=Balance-number; cout<<"您的当前账号余额为:"; return Balance; } } void Consumer::choose() { cout<<"1.查 询"<<endl; cout<<"2.转 账"<<endl; cout<<"3.修改密码"<<endl; cout<<"4.取 款"<<endl; cout<<"0.退出系统"<<endl; } class ATM { public: Consumer c; int menu(); }; int ATM::menu() { c.login(); int choice=0; while(choice!=5) { cout<<"**********欢迎登入林杰东银行**********"<<endl; c.choose(); cout<<"**********欢迎登入林杰东银行**********"<<endl; cout<>choice; switch(choice) { case 1: cout<<c.Query()<<endl; break; case 2: cout<<c.transfer()<<endl; break; case 3: cout<<c.update()<<endl; break; case 4: cout<<c.withdraw()<<endl; break; case 0: cout<<"请取出您的银行卡,欢迎下次使用!!!"<<endl; return 0; break; default: cout <<"输入错误!请重新输入!\n\n"; break; } } } int main() { ATM atm; atm.menu(); return 0; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值