求一个模拟实现银行atm自动取款机系统(高分)

--Margarita-- 2024-05-04 15:01:01
最佳回答
#include<iostream>using namespace std;class consumer;class atm{public: atm(consumer & cn):cnsm(cn){ } void welcome(); //登面 bool check_passwd(char n[],char pwd[]); //核对密码 void change_passwd(); //修改密码 void fetchmoney(); //取款 void zhuan(); //转账 void **rmation(); //查息 void exitatm(); //退出系统 void functionshow(); //功能界面 void lock(); //private: int times; //记录密入次数 consumer &cnsm; };class consumer //用户{public: friend class atm; consumer(char name[],char num[], float money,char password[]);protected: char* get_name(); //取得姓名 char* get_kahao(); //取得** char* get_passwd(); //取得密码 float get_money(); //取得余额 void set_passwd(char pwd[]); //设置密码 void set_money(float m); //取钱 private: char passwd[20]; //用户密码 char name[20]; //用户姓名 char kahao[20]; //用户** float money; //用户余额 };consumer::consumer(char name[],char kahao[], float money,char password[]) //构造函数,建立账户{ strcpy(name,name); strcpy(kahao,kahao); money=money; strcpy(passwd,password);}float consumer::get_money() //取得余额{ return money;}char*consumer::get_name() //取得姓名{ return name;}char*consumer::get_kahao() //取得**{ return kahao;}char*consumer::get_passwd() //取得密码{ return passwd;}void consumer::set_passwd(char pwd[])//设置密码{ strcpy(passwd,pwd);}void atm::welcome() //登录界面{ times=0; cout<<"*欢迎使用银行atm自动取款机*"<<endl; char pwd[10],num[20],ch; int i=0; do { i=0; cout<<endl<<"请输入**:"; do { cin.get(ch); num[i++]=ch; }while(ch!='\n'); num[i-1]='\0'; i=0; cout<<"请输入密码:"; do { cin.get(ch); pwd[i++]=ch; }while(ch!='\n'); pwd[i-1]='\0'; if(!check_passwd(num,pwd)) {cout<<"你输入的**或密码有误,请从新输入"<<endl; times++; } else{functionshow();} }while(times<3); lock();}bool atm::check_passwd(char num[],char pwd[]){ if(strcmp(num,cnsm.get_kahao())==0&&strcmp(pwd,cnsm.get_passwd())==0) return true; else return false;}void atm::functionshow(){ int n; do {cout <<endl<<"请输入相应的操作序号进行操作: "<<endl; cout<<"**************************************"<<endl; cout<<"1)修改密码 "<<" "<<"2)取款 "<<endl <<"3)转账 "<<" "<<"4)余额查询 "<<endl <<"5)退出系统 "<<endl; cout<<"**************************************"<<endl; cout<<"项目>"; cin>>n; while(n<1||n>4) { cout<<"请输入正确的操作序号!"<<endl; cout<<"项目>"; cin>>n; } switch(n) { case 1: change_passwd(); break; case 2: fetchmoney(); break; case 3: zhuan(); break; case 4: **rmation(); break; case 5: exitatm(); break; } }while(true);}void atm::change_passwd(){ char pwd[10],repwd[10]; int k; times=0; do { cout<<endl<<"请输入旧密码:"; cin>>pwd; if(!check_passwd(cnsm.get_kahao(),pwd)) times++; else break; }while(times<3); if(times==3) lock(); int t=0;do { int l=0; k=0; cout<<"请输入新密码:"; cin>>pwd; l=strlen(pwd); if(l<6) { k=1; cout<<"密码不能小于6位"<<endl; } else { cout<<"请再输入一次新密码:"; cin>>repwd; if((t=strcmp(pwd,repwd))!=0) { cout<<"你输入的两次密码不一样,请重新输入!"<<endl;} } }while(t!=0||k==1); cnsm.set_passwd(pwd); cout<<"密码修改成功,请牢记!"<<endl;}void atm::fetchmoney( ){float m;char ch; do{cout<<endl<<"你要取多少钱:"<<"\n$>\\"; cin>>m; while(m<=0) {cout<<"请输入正确的数字!"<<endl; cout<<"金额>"; cin>>m;} if(m>5000) {cout<<"对不起,每次最多取5000元"<<endl; } else{ if((int)m%100!=0) {cout<<"对不起,取款金额为100的倍数"<<endl;} else{ if(cnsm.get_money()-m<0) {cout<<"对不起,你的余额不足!"<<endl;} else{ cout<< endl<<"操作成功,请收好钱!" <<endl; cnsm.set_money( m );} } }cout<<"是否要继续该项操作:(y/n)"<<endl; cout<<"项目>"; cin>>ch; while(ch!='n'&&ch!='n'&&ch!='y'&&ch!='y') { cout<<"选择>"; cin>>ch; } }while(ch=='y'||ch=='y');}void atm::zhuan(){ char z[20]; float num;cout<<"请输入所转账号:"<<endl;cin>>z;cout<<"请输入所转钱数:"<<endl;cin>>num;if(cnsm.money>num){ cnsm.money-=num; cout<<"转账成功!"<<"您的余额:"<<cnsm.money<<endl;}else cout<<"余额不足!"<<endl;}void atm::**rmation(){ cout<<"**************************"<<endl; cout<<"* 用户姓名:"<<cnsm.get_name()<<endl; cout<<"* **: "<<cnsm.get_kahao()<<endl; cout<<"* 余额: "<<cnsm.get_money()<<endl; cout<<"**************************"<<endl;}void atm::lock(){ cout<<endl<<"对不起,由于你的操作有误,你的卡已经被没收! "<<endl; exit(1); // 系统非正常退出}void atm::exitatm(){ cout<<"成功退出系统!谢谢惠顾!"<<endl; exit(0);}void consumer::set_money (float m){ money=money-m;}int main(){ consumer c1("王小姐","123456",100000.00f,"123456");//先构造一个用户 atm atm(c1); atm.welcome(); return 0;} 20210311
汇率兑换计算器

类似问答
  • **一天能取10万元吗。分五个**,一个取现两万?
    • 2024-05-04 18:13:05
    • 提问者: 未知
    **一天能取10万元吗。分五个**,一个取现两万?限制死 atm取现每张卡每限额2万 柜面取 要预约 不可以那样去的在所有atm总共可以取20000.建议到人工取款.一、找到...
  • 银行**系统维护一般要多久
    • 2024-05-04 02:02:20
    • 提问者: 未知
    这个根据银行消息的通知才知道更新多久 比如前边我这边的邮政 更新了24小时也没更新好 找别人借钱才度过了那几天 一般银行都有更新通告的 最少24小时更新完成 有时候更新3-4天也没更新完
  • 自动取款机有没有分银行的
    • 2024-05-04 08:26:42
    • 提问者: 未知
    1、自动取机不行.你的卡上有的标志,都可以在银联的取款机上取款.2、你说的建行卡在的取上取款。是要收手续费的,手续费分本地和跨省两种。各省的收费是不一样的。看你在那个地方。本地取款最高不超过20元。跨省最高不我还不清楚,应该不超过500元。(看你是那个行的卡,有的卡在取款机上机取款有上线。所以相对的手续费就少。)
  • 招行**能在atm自动取款机上取现吗?
    • 2024-05-04 02:27:51
    • 提问者: 未知
    当然可以啦,取现金额是你自己额度的50%,取现手续费1%,最低10rmb,取现当天开始计算日息万分之五的滚息。
  • 西班牙使用银行atm自动取款机指南
    • 2024-05-04 03:47:33
    • 提问者: 未知
    1首先是插入**“inserte su tarjeta”2然后是输入密码“introduzca su pin”3再然后选择服务项目界面“seleccione la operación”4供选择的项目有: transferencias 转账 cambiar contraseña 修改密码 prestamos/ otros servicios 贷款/其他服务 ...
  • 天津银行 的**有自动存款机么
    • 2024-05-04 04:00:15
    • 提问者: 未知
    有存取款一体机,没有单独的存款机。肯定有的,哪个银行都有。
  • 编写一个c语言程序,模拟银行帐户交易管理系统
    • 2024-05-04 11:21:48
    • 提问者: 未知
    代码呢?有什么问题qq联系吧,资料里有
  • 银行自动取款机
    • 2024-05-04 21:05:04
    • 提问者: 未知
    自动柜员机每次取款的额度,不同银行以及不同型号的柜员机,规定也有所不同。北京地区,有1000元/次的、有2000元/次的、有2500元/次的、也有3000元/次的。目前,每天的取款...
  • 2求大神 j**a自动取款机模拟程序报告含源代码
    • 2024-05-04 07:59:25
    • 提问者: 未知
    http://wenku.baidu.com/link?url=ffbp1rk1dwzxdah3txdkwwabnj0hxhfzhw7y_bcbaypltsuh4vrydtefgoxhwh7wagfm_ezxt3qdqgxzyjffxtu9wnh1ioplqoa9mtxg67a
  • **农业银行从atm自动取款机上转账到另外一个卡要多久?
    • 2024-05-04 22:53:18
    • 提问者: 未知
    同行之间,你转过去了,对方马上就可以收到了,如果是跨行之间一般要五六个小时,最慢的话也要两天,所以最好是同行转帐。那你就是同行汇款,你把密码输入时,提示你转帐成功了,那么对方就已经...
汇率兑换计算器

热门推荐
热门问答
最新问答
推荐问答
新手帮助
常见问题
房贷计算器-九子财经 | 备案号: 桂ICP备19010581号-1 商务联系 企鹅:2790-680461

特别声明:本网为公益网站,人人都可发布,所有内容为会员自行上传发布",本站不承担任何法律责任,如内容有该作者著作权或违规内容,请联系我们清空删除。