网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.使用纯粹的C++语言编写COM组件.
.让程序在前端显示和最小化时在系.
.链表的c语言实现(八).
.在CB中进行DirectX编程.
.在C/C++中如何构造通用的对象链表.
..
.Windows Sockets:阻塞.
.C语言中的面向对象(2)-C语言的多.
.学C++不得不看的一篇文章.
.C语言中的面向对象思想.
.怎样在DELPHI中实现文件切割/组合.
.Unix下用C编写类Windows菜单.
.简单的画笔.
.用C++ Builder编写Tray程序.
.socket编程原理.
.C++程序设计从零开始之何谓编程.
.为VC++应用程序对话框添加透明位.
.C++基础:常量成员函数特殊说明.
.关闭DOS窗口.
.C++箴言:将强制转型减到最少.

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

发表日期:2008-3-8



  学习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自动取款机!~! "<\\"; cin>>n; while(n<1n>4) { 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<>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<<"你输入的两次密码不一样, 请重新输入!"<\\"<>m; while(m<=0) { cout<<"请输入正确的数字!"<\\ "; cin>>m; } if(cnsm.get_money()-m<0) { 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<<"* 卡号: "<


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

上一篇:橡皮筋画线法 人气:665
下一篇:限次使用新法 人气:415
浏览全部C/C++的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐