C++编写的ATM自动取款机模拟程序分析.docx
- 文档编号:3907743
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:7
- 大小:16.03KB
C++编写的ATM自动取款机模拟程序分析.docx
《C++编写的ATM自动取款机模拟程序分析.docx》由会员分享,可在线阅读,更多相关《C++编写的ATM自动取款机模拟程序分析.docx(7页珍藏版)》请在冰豆网上搜索。
C++编写的ATM自动取款机模拟程序分析
//************************************
//* *
//* function.h *
//* *
//************************************
#include
classconsumer;
classATM
//ATM取款机
{
public:
ATM(consumer&cn):
cnsm(cn)
{
}
voidwelcome();
//登陆界面
boolcheck_passwd(charn[],charpwd[]);
//核对密码
voidchange_passwd();
//修改密码
voidfetchmoney();
//取款
voidinformation();
//查询信息
voidexitATM();
//退出系统
voidfunctionshow();
//功能界面
voidlock();
//锁机
private:
inttimes;
//记录密码输入次数
consumer&cnsm;
};
classconsumer
//用户
{
public:
friendclassATM;
consumer(charName[],charNum[],
floatMoney,charPassword[]);
protected:
char*get_name();
//取得姓名
char*get_num();
//取得卡号
char*get_passwd();
//取得密码
floatget_money();
//取得余额
voidset_passwd(charpwd[]);
//设置密码
voidset_money(floatm);
//取钱
private:
charpasswd[8];
//用户密码
charname[20];
//用户姓名
charnum[20];
floatmoney;
};
//************************************
//* *
//* consumer类的成员&&函数 *
//* *
//************************************
#include"function.h"
#include
consumer:
:
consumer(charName[],
charNum[],floatMoney,charPassword[])
{
strcpy(name,Name);
strcpy(num,Num);
money=Money;
strcpy(passwd,Password);
}
floatconsumer:
:
get_money()
{
returnmoney;
}
char*consumer:
:
get_name()
{
returnname;
}
char*consumer:
:
get_num()
{
returnnum;
}
char*consumer:
:
get_passwd()
{
returnpasswd;
}
voidconsumer:
:
set_money(floatm)
{
money-=m;
}
voidconsumer:
:
set_passwd(charpwd[])
{
strcpy(passwd,pwd);
}
//************************************
//* *
//* ATM类的成员&&函数 *
//* *
//************************************
#include"function.h"
#include
#include
voidATM:
:
welcome()
{
times=0;
cout<<"$
欢迎使用若雪银行ATM自动取款机!
~!
"< charpwd[8],num[20],ch; inti=0; do { i=0; cout< "; 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<<"你输入的卡号或密码有误, 请重新输入"< times++; } else { functionshow(); } }while(times<3); lock(); } boolATM: : check_passwd(charnum[], charpwd[]) { if(strcmp(num,cnsm.get_num())==0&&strcmp (pwd,cnsm.get_passwd())==0) returntrue; else returnfalse; } voidATM: : functionshow() { intn; do { cout< "< cout<<"1)修改密码"< <<"2)取款 "< <<"3)查询余额"< <<"4)退出系统"< cout<<"$>\\"; cin>>n; while(n<1||n>4) { cout<<"请输入正确的操作序号! "< cout<<"$>\\"; cin>>n; } switch(n) { case1: change_passwd(); break; case2: fetchmoney(); break; case3: information(); break; case4: exitATM(); break; } }while(true); } voidATM: : change_passwd() { charpwd[8],repwd[8]; times=0; do { cout< "; cin>>pwd; if(! check_passwd(cnsm.get_num(),pwd)) times++; else break; }while(times<3); if(times==3) lock(); intt=0; do { cout<<"请输入新密码: "; cin>>pwd; cout<<"请再输入一次新密码: "; cin>>repwd; if((t=strcmp(pwd,repwd))! =0) cout<<"你输入的两次密码不一样, 请重新输入! "< }while(t! =0); cnsm.set_passwd(pwd); cout<<"密码修改成功,请牢记! "< } voidATM: : fetchmoney() { floatm; charch; do { cout< " <<"\n$>\\"< cin>>m; while(m<=0) { cout<<"请输入正确的数字! "< cout<<"$>\\"; cin>>m; } if(cnsm.get_money()-m<0) { cout<<"对不起,你的余额不足! " < } else { cout< " < cnsm.set_money(m); } cout<<"是否要继续该项操作: (Y/N)" < cout<<"$>\\"; cin>>ch; while(ch! ='n'&&ch! ='N'&&ch! ='Y'&&ch! ='y') { cout<<"$>\\"; cin>>ch; } }while(ch=='y'||ch=='Y'); } voidATM: : information() { cout<<"**********************************"< cout<<"*"< cout<<"* 用户姓名: "< cout<<"* 卡号: "< cout<<"* 余额: "< cout<<"**********************************"< } voidATM: : lock() { cout< 你的卡已经被没收! "< exit (1); } voidATM: : exitATM() { cout< 欢迎下次光临! "< cout<<"请取卡……"< exit(0); } //************************************ //* * //* ATM.cpp * //* * //************************************ #include #include"function.h" voidmain() { consumerc1("jim","12345",5200.3f,"123"); //先构造一个用户 ATMatm(c1); atm.welcome(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 编写 ATM 自动 取款 模拟 程序 分析