详细解析C++编写的ATM自动取款机模拟程序
来源:互联网 发布:linux snmp yum 编辑:程序博客网 时间:2024/05/16 15:43
// ************************************
// * *
// * function.h *
// * *
// ************************************
#include<iostream.h>
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;
};
// * *
// * function.h *
// * *
// ************************************
#include<iostream.h>
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<string.h>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 <string.h>#include<stdlib.h>void ATM::welcome(){ times=0; cout<<"$ 欢迎使用若雪银行ATM自动取款机!~! "<<endl; char pwd[8],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_num())==0&&strcmp (pwd,cnsm.get_passwd())==0) return true; else return false;}void ATM::functionshow(){ int n; do { cout<<endl<<"请你输入相应的操作序号进行操作: "<<endl; cout<<"1) 修改密码 "<<endl <<"2) 取款 "<<endl <<"3) 查询余额 "<<endl <<"4) 退出系统 "<<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: information(); break; case 4: exitATM(); break; } }while(true); }void ATM::change_passwd(){ char pwd[8],repwd[8]; times=0; do { cout<<endl<<"请输入旧密码:"; 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<<"你输入的两次密码不一样, 请重新输入!"<<endl; }while(t!=0); cnsm.set_passwd(pwd); cout<<"密码修改成功,请牢记!"<<endl;}void ATM::fetchmoney(){ float m; char ch; do { cout<<endl<<"你要取多少钱:" <<"/n___FCKpd___1gt;//"<<endl ; cin>>m; while(m<=0) { cout<<"请输入正确的数字!"<<endl; cout<<"$ >// "; cin>>m; } 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::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(){ cout<<endl<<"对不起,由于你的操作有误, 你的卡已经被没收! "<<endl; exit(1);}void ATM::exitATM(){ cout<<endl<<"感谢你对本银行的支持, 欢迎下次光临!"<<endl; cout<<"请取卡……"<<endl; exit(0);}
// ************************************// * *// * ATM.cpp *// * *// ************************************ #include<iostream.h>#include"function.h"void main(){ consumer c1("jim","12345",5200.3f,"123"); // 先构造一个用户 ATM atm(c1); atm.welcome();}
- 详细解析C 编写的ATM自动取款机模拟程序
- 详细解析C++编写的ATM自动取款机模拟程序
- 详细解析C++编写的ATM自动取款机模拟程序
- 详细解析C++编写的ATM自动取款机模拟程序
- C++编写的ATM自动取款机模拟程序
- Java编写的模拟ATM取款机程序
- Java编写的模拟ATM取款机程序
- c语言编写的ATM取款机程序
- 模拟ATM自动取款机系统
- 模拟ATM自动取款机功能
- ATM取款机模拟
- 模拟ATM取款机
- 模拟ATM取款机
- 模拟ATM取款机
- ATM自动取款机
- ATM 自动取款机
- c语言ATM取款机程序
- 模拟ATM机取款的过程
- 关于volatile——编写多线程程序的好帮手
- 用VC++6.0 Sockets API实现聊天室程序
- 建立tcp/ip连接,vc6实现客户端(发送数据)
- socket实现tcp/ip服务端源码,无线程
- 很巧妙的进程防杀方法
- 详细解析C++编写的ATM自动取款机模拟程序
- 句柄与指针
- 句柄
- ASP 验证码的程序及原理
- Let's see 2005 Year-end Zeitgeist. What's for 2006? Is it * 2.0?
- 英语学习的六大要诀[转载]
- 动态增加删除行
- 今天看到几个正则表达式 - [转贴]
- 梦见牡丹亭