下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c+课程设计实验报告 系 部: 计算机科学学院 专 业: 计算机科学与技术专业 班 级: 2010级计算机科学与技术4班 姓 名: 课题名称: atm取款机系统 指导老师: 2011年12月 目录一、系统功能分析- 3 -二、 系统设计实现- 3 -三、小组人员构成及任务- 3 -四、uml图- 4 -五、源代码- 4 -六、运行结果- 11 -一、系统功能分析1、 提示用户输入账号和密码,检查输入的账号和密码是否正确。2、 记录用户输入密码错误的次数,当超过三次时锁卡。3、 登陆后,提示用户输入数字进行修改密码,查询账号余额,取款的功能。4、 安全退出。二、 系统设计实现1、 本系统共两个类
2、,分别为atm类和consumer类,并且atm类为consumer类的友元类。2、 atm类中有公有函数成员atm(&cn:consumer)是本类的构造函数;welcome()是登陆界面函数;change passwd核对用户输入的密码是否正确;change_passwd()修改密码;fetchmoney()取款;void information() 查询账户信息;exitatm()退出系统;void functionshow() 功能界面;void lock()记录用户输入密码错误的次数,当超过三次时锁卡。私有成员times记录密码输入次数& cnsm consumer类对象的引用来存放
3、当前用户数据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文件庄典:atm类的实现文荣富:
4、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:char, money:
5、 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 welcome();/ 登
6、陆界面函数 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类的定义public:friend
7、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 num20; float
8、 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; cout; cinn;
9、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(times=3) lock
10、(); 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; else cou
11、tendl操作成功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:lock() co
12、utendl对不起,由于操作有误,你的卡已经被没收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_money()/得
13、到用户余额 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() times=0;cout*
14、欢迎使用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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共安全协议实施手册
- 2026年大学大一(交通运输)城市轨道交通系统基础测试题及答案
- 护理核心制度与应急预案
- 2025年前台电子模拟测试
- 护理教学技能与展示大赛
- 手术室人文护理的创新模式
- 小议小学语文高年级口语交际与写作训练的整合
- 慢性肾功能衰竭的早期识别与护理
- 学校家长陪餐方案及记录表范文
- 血液透析中心血管通路管理指南
- 2026年安徽广播影视职业技术学院单招职业适应性测试题库及参考答案详解一套
- 2026国家外交部所属事业单位招聘126人笔试备考试题及答案解析
- 《民间玩具大集》教案-2025-2026学年冀美版(新教材)小学美术三年级下册
- 医疗危机公关:舆情应对与形象修复
- 春节后复工复产应急处置预案
- 2026年六安职业技术学院单招职业适应性考试题库及答案详解一套
- 2026年南京铁道职业技术学院单招职业技能测试题库含答案详解(研优卷)
- 2026年南京铁道职业技术学院单招职业技能测试题库附参考答案详解(a卷)
- 急性脑梗死临床诊疗指南(2025版)
- 2026商用航空发动机产业链商业模式、估值分布及未来发展前景分析报告
- 模特课基础讲解课件
评论
0/150
提交评论