版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c+课程设计实验报告c+课程设计实验报告 系 部: 计算机科学学院 专 业: 计算机科学与技术专业 班 级: 2010级计算机科学与技术4班 姓 名: 课题名称: atm取款机系统 指导老师: 2011年12月 目录一、系统功能分析- 3 -二、 系统设计实现- 3 -三、小组人员构成及任务- 3 -四、uml图- 4 -五、源代码- 4 -六、运行结果- 11 -一、系统功能分析1、 提示用户输入账号和密码,检查输入的账号和密码是否正确。2、 记录用户输入密码错误的次数,当超过三次时锁卡。3、 登陆后,提示用户输入数字进行修改密码,查询账号余额,取款的功能。4、 安全退出。二、 系统设计实现
2、1、 本系统共两个类,分别为atm类和consumer类,并且atm类为consumer类的友元类。2、 atm类中有公有函数成员atm(&cn:consumer)是本类的构造函数;welcome()是登陆界面函数;change passwd核对用户输入的密码是否正确;change_passwd()修改密码;fetchmoney()取款;void information() 查询账户信息;exitatm()退出系统;void functionshow() 功能界面;void lock()记录用户输入密码错误的次数,当超过三次时锁卡。私有成员times记录密码输入次数& cnsm consume
3、r类对象的引用来存放当前用户数据3、 consumer类中有公有成员atm为本类的友元类;consumer()为本类的构造函数;保护成员* get_name()取得用户姓名;* get_num()取得卡号;* get_passwd()取得密码;get_money()取得余额;set_passwd()设置密码;set_money()取款。有私有成员passwd8用来存放用户密码;name20存放用户姓名;num20存放用户卡号;money存放用户余额。三、小组人员构成及任务刘辉:系统的构思、绘制uml图、系统的调试、编写实验报告杨钊:编写atm.h文件杨树仁:编写consumer.h文件庄典:a
4、tm类的实现文荣富:consumer类的实现杨竹:编写主函数四、uml图atm+atm(&cn :consumer)+ welcome() : void+check_passwd(n:char, pwd:char):bool+change_passwd():void+ fetchmoney():void+ information():void+ exitatm():void+ functionshow():void+ lock() : void-times: int-& cnsm: consumer consumer+ atm: class+consumer(name:char, num:ch
5、ar, money: float, password:char)#* get_name(): char#* get_num(): char#* get_passwd(): char#get_money():float#set_passwd(pwd: char): void#set_money(m: float) : void-passwd8:char-name20: char-num20: char-money: floa t五、源代码/atm.hclass consumer;class atm / atm取款机 public: atm(consumer &cn);/构造函数 void wel
6、come();/ 登陆界面函数 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;/当前用户数据;/consumer.hclass consumer / consumer类的定义publ
7、ic: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 passwd8;/ 用户密码 char name20;/ 用户姓名 char nu
8、m20; float money;/atm.cpp atm类以及consumer类的实现# include # include atm.h# include consumer.h/包涵两个类的头文件using namespace std;void atm:functionshow() int n; do coutendl请你输入相应的操作序号进行操作:endl; cout1) 修改密码 endl 2) 取款 endl 3) 查询余额 endl 4) 退出系统 endl; cout; cinn; while(n!=1&n!=2&n!=3&n!=4) cout请输入正确的操作序号!endl; co
9、ut; 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 pwd8,repwd8; times=0; do coutendlpwd;if(!check_passwd(cnsm.get_num(),pwd) times+; else break; while(times3); if(tim
10、es=3) lock(); int t=0;docoutpwd;coutrepwd;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 coutendl请输入金额: m; while(m=0) cout金额不能小于零,请继续输入endl;cout ;cinm; if(cnsm.get_money()-m0) cout对不起,你的余额不足!endl
11、; else coutendl操作成功endl; cnsm.set_money(m); cout是否要继续取钱:(y/n) endl; cout ; cinch; while(ch!=n&ch!=n&ch!=y&ch!=y) cout; cinch; 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
12、:lock() coutendl对不起,由于操作有误,你的卡已经被没收endl; exit(1);void atm:exitatm()coutendl*谢谢使用,欢迎下次光临!*endl;cout请取卡endl;exit(0);atm:atm(consumer &cn):cnsm(cn) consumer:consumer(char name,char num,float money,char password) strcpy(name,name); strcpy(num,num); money=money; strcpy(passwd,password);float consumer:get
13、_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);void atm:welcome() tim
14、es=0;cout*欢迎使用atm自动取款机系统*endl;cout*n;cout*本系统由10级计科四班 刘辉 文荣富 杨钊 庄典 杨树仁 杨竹共同开发*n;cout*nnn; char pwd8,num20,ch; int i=0; do i=0; coutendl请输入卡号:;docin.get(ch);/获取一个字符numi+=ch;/将卡号放入num数组while(ch!=n);/回车键结束numi-1=0;/最后一位为空字符i=0;cout请输入密码:;docin.get(ch);pwdi+=ch;while(ch!=n);pwdi-1=0;if(!check_passwd(num,pwd) cout你输入的卡号或密码有误,请重新输入endl; times+;else functionshow(); while(times3);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 retu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 可再生能源电解水制氢耦合合成氨系统集成与技术经济评价
- 二零二五年度汽车维修保养套餐销售代理居间服务合同
- 应急预案落地实施
- 科技行业的会计工作总结
- 二零二五个人向金融机构借款合同终止条件合同模板4篇
- 二零二五年度钢构桥梁建造与维护服务合同
- 游戏中心前台工作心得
- 工业园区综治工作中心上墙制度
- 二零二五版石料运输车辆运输责任保险合同范本6篇
- 进出口行业客户开发总结
- TD/T 1044-2014 生产项目土地复垦验收规程(正式版)
- 2024年湖南现代物流职业技术学院单招职业适应性测试题库及答案1套
- 垃圾桶创新设计说明书
- 蔚来汽车技术
- 浙教版劳动二年级上册全册教案
- 智能衣服方案
- 李克勤红日标准粤语注音歌词
- 基于视觉的工业缺陷检测技术
- 军事英语词汇整理
- DB31-T 1440-2023 临床研究中心建设与管理规范
- 老客户维护方案
评论
0/150
提交评论