C++编写的ATM自动取款机模拟程序分析

2016-02-19 19:14 43 1 收藏

下面请跟着图老师小编一起来了解下C++编写的ATM自动取款机模拟程序分析,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

学习c++有一段时间了,前两天有个朋友要我帮她做个模拟ATM自动取款机的程序,于是花了一个晚上写了出来,其实这个程序也很简单,但是我觉得它对于刚学c++的人来说比较有用处,因为它可以帮助你更加深刻的理解面向对象程序设计的真谛-------以现实世界为模型编写程序。 !-- frame contents -- !-- /frame contents -- 学习c++的真正目的也就在于此,真正的理解面向对象程序设计!
  
  // ************************************ // * * // * 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(); // 功能界面 void lock(); // 锁机 private: int times; // 记录密码输入次数 consumer& cnsm; }; class consumer // 用户 { public: friend class ATM; consumer(char Name[],char Num[], floatMoney,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" #includestring.hconsumer::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 #includevoid ATM::welcome() { times=0; cout"$ 欢迎使用若雪银行ATM自动取款机!~! ""; cinn; while(n1n4) { 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 pwd[8],repwd[8]; times=0; do { coutpwd; if(!check_passwd(cnsm.get_num(),pwd)) times++; else break; }while(times3); if(times==3) lock(); int t=0; do { cout"请输入新密码:"; cinpwd; cout"请再输入一次新密码:"; cinrepwd; if((t=strcmp(pwd,repwd))!=0) cout"你输入的两次密码不一样, 请重新输入!""m; while(m=0) { cout"请输入正确的数字!" "; cinm; } if(cnsm.get_money()-m0) { cout"对不起,你的余额不足!" "; cinch; while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y') { cout"$ "; cinch; } }while(ch=='y'ch=='Y'); } void ATM::information() { cout"**********************************"
  
  
  
// ************************************ // * * // * ATM.cpp * // * * // ************************************ #include#include"function.h" void main() { consumer c1("jim","12345",5200.3f,"123"); // 先构造一个用户 ATM atm(c1); atm.welcome(); }
更多内容请看ATM网络技术教程  ATM协议  ATM应用和解决方案专题,或

来源:https://www.tulaoshi.com/n/20160219/1620417.html

延伸阅读
在一些论坛上经常会看到一些各语言的优劣比较,知道自己所学语言的优劣也好,但是假如一味停留在这个层面就没有用了。任何语言都只是工具而已。重要的是使用工具的人!就我个人的经验来讲,真正处于业界搞开发的人都愿意使用成熟的、为自己所熟知的技术来完成工作。 !-- frame contents -- !-- /frame contents -- 而新手都喜欢用一...
在高级语言中,程序的优化主要应该从数据结构、算法、控制流程等方面入手。各种语言各有它自身的特点,我们只能根据具体的语言来说明代码优化的方法。当然,高级语言太多,不可能把每一种语言都拉进来,主要就谈谈C,C++,JAVE,Delphi等语言相关的 代码优化。而对于其它一些语言,也 可以从这些方面中找到适合自己的优化方案。 对C++程...
处理 C++ 中的异常会在语言级别上碰到少许隐含限制,但在某些情况下,您可以绕过它们。学习各种利用异常的方法,您就可以生产更可靠的应用程序。 保留异常
简介 C++/CLI代表 ISO-C++标准语言的一个动态编程泛型扩展 (dynamic programming paradigm extension)。在原版语言设计 (V1) 中有许多显著的弱点,我们觉得在修订版语言设计 (V2) 中已经修正了这些弱点。本文列举了 V1 版本语言的功能和它们在 V2 版本中的对应功能(如果存在);并指出了其对应功能不存在的构造。对于有兴趣的读者,可以查看附...
    C++ Builder提供了所有开始设计应用程序所必需的工具: · 一个称为“窗体”的空白窗口,作为用于设计应用程序的用户界面。 · 一个包容许多可重用的对象的扩展的类库。 · 一个对象观察器,用于检查和改变对象的特性。 · 用于直接访问基本程序逻辑的源代码编辑器。 ·一个可以治理多个工程...

经验教程

947

收藏

72
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部