程序设计
来源:互联网 发布:抢网速软件 编辑:程序博客网 时间:2024/05/17 04:00
// atm柜员模拟机程序#include<iostream.h>#include<string.h>#include<stdlib.h>class People; //定义全局类classclass ATM//ATM类{private: int times; People& pl;public: ATM(People& p):pl(p){} void DLJM();//登陆界面 bool HDMM(char ID[],char mima[]);//核对密码 void QK();//取款 void CX();//查询 void GG();//更改密码 void GNJM();//功能界面 void LK();//锁卡 void TC();//退出}; //ATM柜员机模拟程序class People//用户类{private: char ID[20];//卡号 char mima[10];//密码 float money;//卡上余额public: friend class ATM; People(char id[],float Money,char Mima[]); char* get_ID();//获取卡号 char* get_mima();//获取密码 float get_money();//获取余额 void set_mima(char Mima[]);//设置密码 void set_money(float m);}; People:: People(char id[],float Money,char Mima[])//用户的构造函数{ strcpy(ID,id);//strcpy函数是复制两字符串的函数,头文件为<string.h> money=Money; strcpy(mima,Mima);}floatPeople::get_money()//获取余额 函数{ return money;} char*People::get_ID()//获取卡号{ return ID;} voidPeople::set_money(float m){ money-=m;} char*People::get_mima()//获取密码{ return mima;} voidPeople::set_mima(char Mima[])//设置密码 { strcpy(mima,Mima); } void ATM::DLJM()//登陆界面 { times=0; char ID[20],mima[10],ch; int i=0; do { i=0; cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl; cout<<"$$$$$$ $$$$$$"<<endl; cout<<"$$$$ $$$$"<<endl; cout<<"$$$ 欢迎使用信管银行! $$$"<<endl; cout<<"$$$$ $$$$"<<endl; cout<<"$$$$$$ $$$$$$"<<endl; cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl; cout<<" 测试卡号为:123456 "<<endl; cout<<" 测试密码为:123456 "<<endl; cout<<" 测试卡号余额为:10000元 "<<endl; cout<<"请输入您的卡号 "<<endl; cout<<"卡号:"; do { cin.get(ch); ID[i++]=ch; } while(ch!='\n'); ID[i-1]='\0'; i=0; cout<<endl<<" 请输入您的密码 "<<endl; cout<<"密码:"; do { cin.get(ch); mima[i++]=ch; } while(ch!='\n'); mima[i-1]='\0'; if(!HDMM(ID,mima)) { cout<<"对不起,您的卡号或密码有误,请重新输入"<<endl; times++; } else { GNJM(); } } while(times<3); LK(); } bool ATM::HDMM(charID[],char mima[]) {if(strcmp(ID,pl.get_ID())==0&&strcmp(mima,pl.get_mima())==0) return true;else return false; } void ATM::GNJM(){int n; cout<<endl<<endl<<endl; cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl; cout<<"$$$$$$ 请输入你想操作的序号: $$$$$$"<<endl; cout<<"$$$$ (1)取款 $$$$"<<endl; cout<<"$$ (2)查询余额 $$"<<endl; cout<<"$$$$ (3)更改密码 $$$$"<<endl; cout<<"$$$$$$ (4)退出系统 $$$$$$"<<endl; cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl; cin>>n; if(n<0||n>4) { cout<<"您输入的序号不正确,请重新输入:"; cin>>n; } switch(n) { case 1:QK();break; case 2:CX();break; case 3:GG();break; case 4:TC();break; }while(true);} void ATM::QK(){ float m; char ch; do { cout<<endl<<"输入您要取多少钱: "<<endl; cin>>m; while(m<=0) { cout<<"请输入正确的取款数: "<<endl; cin>>m; } if(pl.get_money()-m<0) { cout<<"对不起,您的余额不足!"<<endl; } else { if((int)m%100!=0) { cout<<"对不起,您的取款金额必须为100的倍数!"<<endl; } else { if(m>5000) { cout<<"对不起,您每次只能取5000元!"<<endl; } else { cout<<"操作成功,请稍后!!!"<<endl; pl.set_money(m); } } } cout<<"请输入(y/n)确认是否取钱!"<<endl; cin>>ch; cout<<"您已取款成功!请收好钱!"; GNJM(); while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n') { cin>>ch; } } while(ch=='y'||ch=='Y');} void ATM::CX(){ cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; cout<<" "<<endl; cout<<" 卡号:"<<pl.get_ID()<<endl; cout<<" 余额:"<<pl.get_money()<<"元"<<endl; cout<<" "<<endl; cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; GNJM();} void ATM::GG(){ char mima[10],Xmima[10]; times=0; do { cout<<endl<<"请输入旧密码:"; cin>>mima; if(!HDMM(pl.get_ID(),mima)) times++; else break; } while(times<3); if(times==3) LK(); int t=1;do{ cout<<"请输入新密码并牢记好新密码!"<<endl; cin>>mima; cout<<"请再次输入新密码并牢记好新密码!"<<endl; cin>>Xmima; t=strcmp(mima,Xmima);//对新密码进行比较,如果相等,则返回0 if(t!=0) cout<<"您输入的密码不一致,请重新输入!"<<endl; }while(t!=0);pl.set_mima(mima);cout<<"密码修改成功,请您牢记!"<<endl;GNJM();} void ATM::LK(){ cout<<"对不起,你输入的密码错误已达三次,您的卡已被没收!"<<endl; exit(1);} void ATM::TC(){ cout<<"请取走您的卡,感谢您的使用,欢迎您下次再来!"<<endl; exit(0);} void main(){ Peoplep1("123456",10000,"123456");//创建用户y1 ATM a(p1); a.DLJM(); a.GNJM();}
0 0
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 程序设计
- 关于一维数组与指针一些实践
- 正则表达式简介及应用
- spring aop 实践
- SQL group by使用
- 正则表达式,模拟网络爬虫小例子
- 程序设计
- java的for循环
- iOS C语言2_分支结构
- CentOS 安装软件时,错误Transaction check error ... file...conflicts with file from package zzz的解决
- 获取actionbar上title控件并设置其颜色
- Struts2数据校验详解
- 分布式数据处理解决方案
- js前端动态打开本地文件夹选择本地文件
- pthread_cond_wait的理解