1、C+编写的ATM自动取款机模拟程序分析/ */ * */ * function.h */ * */ *#includeclass consumer;class ATM/ ATM取款机public: ATM(consumer& cn):cnsm(cn)void welcome();/ 登陆界面bool check_passwd(char n,char pwd);/ 核对密码void change_passwd();/ 修改密码 void fetchmoney();/ 取款void information();/ 查询信息void exitATM();/ 退出系统void functionshow
2、();/ 功能界面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_num();/ 取得卡号char* get_passwd();/ 取得密码float get_money();/ 取得余额void set_passwd(char pwd);/ 设置密
3、码void set_money(float m);/ 取钱private:char passwd8;/ 用户密码char name20;/ 用户姓名char num20;float money;/ */ * */ * consumer类的成员&函数 */ * */ * #includefunction.h#includeconsumer:consumer(char Name,char Num,float Money,char Password) strcpy(name,Name); strcpy(num,Num); money=Money; strcpy(passwd,Password);fl
4、oat consumer:get_money()return money;char* consumer:get_name()return name;char* consumer:get_num()return num;char* consumer:get_passwd()return passwd;void consumer:set_money(float m)money-=m;void consumer:set_passwd(char pwd)strcpy(passwd,pwd);/ */ * */ * ATM类的成员&函数 */ * */ *#include function.h#incl
5、ude #includevoid ATM:welcome()times=0;cout$欢迎使用若雪银行ATM自动取款机!endl;char pwd8,num20,ch;int i=0;do i=0; coutendl请输入卡号:; do cin.get(ch); numi+=ch; while(ch!=n); numi-1=0; i=0; cout请输入密码:; do cin.get(ch); pwdi+=ch; while(ch!=n); pwdi-1=0; if(!check_passwd(num,pwd) cout你输入的卡号或密码有误, 请重新输入endl; times+; else
6、functionshow(); while(times3); lock();bool ATM:check_passwd(char num,char pwd)if(strcmp(num,cnsm.get_num()=0&strcmp(pwd,cnsm.get_passwd()=0) return true;else return false;void ATM:functionshow() int n; do coutendl请你输入相应的操作序号进行操作: endl; cout1) 修改密码 endl 2) 取款 endl 3) 查询余额 endl 4) 退出系统 endl; cout; cin
7、n; while(n4) cout请输入正确的操作序号!endl; cout; cinn; switch(n) case 1: change_passwd(); break; case 2: fetchmoney(); break; case 3: information(); break; case 4: exitATM(); break; while(true);void ATM:change_passwd()char pwd8,repwd8;times=0;docoutendlpwd; if(!check_passwd(cnsm.get_num(),pwd) times+;else br
8、eak;while(times3);if(times=3) lock();int t=0; do coutpwd; coutrepwd; if(t=strcmp(pwd,repwd)!=0) cout你输入的两次密码不一样, 请重新输入!endl;while(t!=0);cnsm.set_passwd(pwd);cout密码修改成功,请牢记!endl;void ATM:fetchmoney() float m; char ch; do coutendl你要取多少钱: m; while(m=0) cout请输入正确的数字!endl; cout ; cinm; if(cnsm.get_money(
9、)-m0) cout对不起,你的余额不足! endl; else coutendl操作成功,请收好钱! endl; cnsm.set_money(m); cout是否要继续该项操作:(Y/N) endl; cout ; cinch; while(ch!=n&ch!=N&ch!=Y&ch!=y) cout; cinch; while(ch=y|ch=Y);void ATM:information()cout*endl;cout*endl;cout* 用户姓名:cnsm.get_name()endl;cout* 卡号: cnsm.get_num()endl;cout* 余额: cnsm.get_money()endl;cout*endl;void ATM:lock()coutendl对不起,由于你的操作有误,你的卡已经被没收! endl;exit(1);void ATM:exitATM()coutendl感谢你对本银行的支持,欢迎下次光临!endl;cout请取卡endl;exit(0);/ */ * */ * ATM.cpp */ * */ *#include#includefunction.hvoid main() consumer c1(jim,12345,5200.3f,123); / 先构造一个用户 ATM atm(c1); atm.welcome();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1