培养游戏设计与开发精英 网站地图 | 联系我们
首页 | 学校简介 | 课程设置 | 师资力量 | 权威认证 | 开班信息 | 在线服务 | 学员天地 | 就业广场 | 学院新闻 | 媒体关注 | 交通指南
招生办公告栏

报名/咨询热线:

027-87685520、67863577

点此浏览最新一期招生简章 点此直接在线报名
游戏课程体系
汇众益智游戏学院
v4.0专业课程设置
游戏策划课程
游戏美术设计
游戏程序设计
权威专业资格认证
最新开班信息
汇众益智所获荣誉
游戏课程相关
点此浏览汇众益智游戏学院简介
《学校简介》
点此浏览就业广场栏目
《课程设置》
点此浏览最新一期招生简章
《招生简章》
专题讲座
《专题讲座》
点此进入学员天地栏目
《学员天地》
点此浏览就业广场栏目
《就业广场》
你现在的位置:首页 >> 网游 >> 正文 网游
详细解析C++编写的ATM自动取款机模拟程序
发布:武汉游戏学院 来源:www.gamedu.org

学习c++有一段时间了,前两天有个朋友要我帮她做个模拟ATM自动取款机的程序,于是花了一个晚上写了出来,其实这个程序也很简单,但是我觉得它对于刚学c++的人来说比较有用处,因为它可以帮助你更加深刻的理解面向对象程序设计的真谛-------以现实世界为模型编写程序。学习c++的真正目的也就在于此,真正的理解面向对象程序设计!

// ************************************
// * *
// * function.h *
// * *
// ************************************

#include

class 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();
// 功能界面
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[]);
// 设置密码
void set_money(float m);
// 取钱
private:
char passwd[8];
// 用户密码
char name[20];
// 用户姓名
char num[20];
float money;
};


// ************************************
// * *
// * consumer类的成员函数 *
// * *
// ************************************

#include"function.h"
#include

consumer::consumer(char Name[],
char Num[],float Money,char Password[])
{
strcpy(name,Name);
strcpy(num,Num);
money=Money;
strcpy(passwd,Password);
}

float 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"
#include
#include

void ATM::welcome()
{
times=0;
cout<<"$
欢迎使用若雪银行ATM自动取款机!~!
"<
char pwd[8],num[20],ch;
int i=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();
}

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
{
cout< "< cout<<"1) 修改密码 "< <<"2) 取款 "< <<"3) 查询余额 "< <<"4) 退出系统 "< cout<<"$ >\\";
cin>>n;
while(n<1||n>4)
{
cout<<"请输入正确的操作序号!"< cout<<"$ >\\";
cin>>n;
}

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 pwd[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();

int t=0;
do
{
cout<<"请输入新密码:";
cin>>pwd;
cout<<"请再输入一次新密码:";
cin>>repwd;
if((t=strcmp(pwd,repwd))!=0)
cout<<"你输入的两次密码不一样,
请重新输入!"< }while(t!=0);

cnsm.set_passwd(pwd);
cout<<"密码修改成功,请牢记!"<
}

void ATM::fetchmoney()
{
float m;
char ch;
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');

}

void ATM::information()
{
cout<<"**********************************"< cout<<"*"< cout<<"* 用户姓名:"< cout<<"* 卡号: "< cout<<"* 余额: "< cout<<"**********************************"<
}

void ATM::lock()
{
cout< 你的卡已经被没收! "< exit(1);
}

void ATM::exitATM()
{
cout< 欢迎下次光临!"< cout<<"请取卡……"< exit(0);
}


// ************************************
// * *
// * ATM.cpp *
// * *
// ************************************
#include
#include"function.h"

void main()
{
consumer c1("jim","12345",5200.3f,"123");
// 先构造一个用户
ATM atm(c1);
atm.welcome();
}

  • 上一篇文章:
  • 下一篇文章:
  • 常用功能:[收藏本页] [在线咨询] [在线报名] [联系我们] [关于我们]

    联系电话:027-87685520 027-67863577 全省报名咨询电话(免长话费):400-811-8830

    地 址:武汉市洪山区广埠屯资讯广场B座6楼(华中师范大学北门) >> 详细交通指南

    版权声明:Copyright 2008© 汇众益智游戏学院武汉校区.All Rights Reserved