面向对象程序设计实验报告

上传人:Sc****h 文档编号:139346518 上传时间:2022-08-22 格式:DOCX 页数:20 大小:338.86KB
收藏 版权申诉 举报 下载
面向对象程序设计实验报告_第1页
第1页 / 共20页
面向对象程序设计实验报告_第2页
第2页 / 共20页
面向对象程序设计实验报告_第3页
第3页 / 共20页
资源描述:

《面向对象程序设计实验报告》由会员分享,可在线阅读,更多相关《面向对象程序设计实验报告(20页珍藏版)》请在装配图网上搜索。

1、面向对象程序设计之课程设计上海电力学院课程设计报告面向对象程序设计(2012 /2013学年第一学期)课题名称模仿ATM机存取款管理系统设计院(系)电子与信息工程学院专 业通信工程学 号姓 名时 间 2013年1月12日至1月18日地 点奋进楼4楼5机房指导教师王剑云面向对象程序设计之课程设计目录一、设计目的与任务 11、 本课程设计的目的 22、 本课程设计的任务 2二、设计方案21. 总体设计22. 系统功能23. 系统截图 44. 核心代码设计 7三、心得体会11、设计目的与任务1、本课程设计的目的(1)课程设计是实践教学环节。设置课程设计的目的是加强学生对本课程及相关课程知识的理解,培

2、养学生综合运用理论知识分析和解决实际问题的方法与能力。有助于提高学生的创新能力和创新意识。搞好课程设计教学工作,对实现专业培养目标,提高学 生全面素质有重要作用。(2) 通过课程设计更进一步理解C+的基础知识。(3)训练用系统的观点及软件开发的一般规范进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。初步掌握软件开发过程中的问题分析、系统设计、程序编码、调试、测试等方面的基本方法和技能。(4)熟练掌握 C+知识在程序中的应用,了解书本知识在解决实际问题中的用途。2、本课程设计的任务模拟银行的自动取款机使用过程中的界面和用户交互过程。实现查询银行卡余额、取款、修改密码、退出系统等功能

3、。功能要求:(1)卡号、密码输入最多三次,否则直接退出系统。(2)取款功能:取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制。(3)查询功能:实现查询余额功能。(4) 更改密码:实现密码更改功能,对于密码要有2次验证。(5)锁卡功能:实现卡被锁的功能。(6)退卡功能:实现退出系统功能。二、设计方案1. 总体设计设计的这个程序是模拟 ATM取款机的使用过程,该程序功能包括:1)卡号、密码输入最多三次,否则直接退出系统。2 )取款功能:取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制。3)查询功能:实现查询余额功能。4)更改密码:实现密码更改功能, 对于密码要有2次验证。5)锁

4、卡功能:实现卡被锁的功能。 6)退卡功能:实现退出系统功2. 系统功能首先编写一个 class consumer(用户类)、class ATM ( ATM取款机类)和一个 main()函数,程序 开始运行时调用 main函数里设置好的用户信息 ,通过main函数来调用class ATM (ATM取 款机类)和class consumer(用户类)中的相关函数和数据来达到程序的要求。class ATM(ATM取款机类)内主要有II登陆界面/核对密码void welcome。;bool check_passwd(char n ,char pwd);15void fetchm on ey();voi

5、d function show();void in formatio n();void cha nge_passwd();void lock();void exitATM();class consumer(用户类)内主要有char* get_ name();char* get_ nu m();char* get_passwd(); float get_ mon ey();void set_passwd(char pwd);void set_ mon ey(float m);通过在主界面的输入指令来实现各个函数的调用,/取款功能/功能界面/查询功能/更改密码/锁卡功能/退卡功能/获取姓名/获取卡

6、号/获取密码/获取余额/设置密码/取款以达到模仿ATM取款机的功能。系统功能图与流程图3.系统截图(1)主界面(2)卡号、密码输入最多三次,否则直接退出系统。(3 )取款功能:取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制。P:、张C + +De bugzl n 9-*xe哉哉 z*z*z*n中国农业無行M 欢迎使用HTH自动柜员机本机可您理以下业埶请你输人相应的操作序号进行操作, *上您要取多少钱匕Geao及不起,徑的余利込足十 皇否要继曇该顶雛:您要取多少乍戋=3RA剜陽的映a(4)查询功能:实现查询余额功能。本机可朴理以下业务请你输入相应的操作序号进行操作: 查询取款_1您当

7、前所剩余額为磁(5) 更改密码:实现密码更改功能,对于密码要有2次验证。本机可住理以下业务请你输入相应的操作序号进行操作:查诲取款更改密码狼出345G亦123456123156(6 )锁卡功能:实现卡被锁的功能本机可亦理以下业务,请你输入相应的操作序号进行操作: 查询取款更改留码狼出请输入旧密码:11 请输入旧密码:222222rdTrdTrdT 密密密 入入认 青青青333333444444444444对不起,由于你的操作有误,您的卡片已被锁?请于柜台办理相关业务?Press any key to continue(7)退卡功能:实现退出系统功能。本机可変理以下业务请你输入相应的操作序号进行

8、操作:取駆更改密码羯出4感谢您支持Pue古s: an# key 七口 ccintinuE.4.核心代码设计(1)类编写通过定义两个类,class consumer(用户类)和class ATM( ATM取款机类),对于class ATM, public有登陆界面,核对密码,取款功能,功能界面,查询功能,更改密码,锁卡功能,退 卡功能。Private有记录密码输入次数。对于class consumer, public有获取姓名,获取卡号,获取密码,获取余额,设置密码,取款。Private有用户密码,用户姓名。(2)类的成员函数class ATM / ATM 取款机类public:ATM(c on

9、 sumer& cn):c nsm(c n)/登陆界面/核对密码/取款功能void welcome。;bool check_passwd(char n ,char pwd);void fetchm on ey();void function show();void in formatio n();void cha nge_passwd();void lock();void exitATM();private:int times; /记录密码输入次数/功能界面/查询功能/更改密码/锁卡功能 /退卡功能con sumer& cnsm;class con sumer/ 用户类public:frie

10、nd class ATM;con sumer(char Name,char Num,float Mon ey,char Password); protected:char* get_ name();/获取姓名char* get_ nu m();/获取卡号char* get_passwd();/获取密码float get_ mon ey();/获取余额void set_passwd(char pwd);/设置密码void set_ mon ey(float m);/取款private:char passwd8; 用户密码char name20; / 用户姓名char num20;float mo

11、n ey;(3) 各个功能的实现(1)卡号、密码输入最多三次,否则直接退出系统。void ATM:exitATM()退卡coute ndl感谢您支持,欢迎下次光临 !e ndl;cout请取回你的卡片e ndl;exit(0);/后面的退卡需要调用此函数void ATM:welcome()times=0;coute ndl;cout=e ndl; cout*中国农业银行*endl;cout欢迎使用ATM自动柜员机endl;cout=e ndl; coute ndl;char pwd8, nu m20,ch;int i=0;doi=0;coutendl请输入卡号:;docin. get(ch);

12、对于键盘字符串的接收!nu mi+=ch;while(ch!=n);n umi-1=0:i=0;cout请输入密码:;docin. get(ch);pwdi+=ch;while(ch!=n);pwdi-1=0;if(!check_passwd( nu m,pwd)cout你输入的卡号或密码有误,请重新输入e ndl;times+;elsefunction show();while(times3);exitATM();(2 )取款功能:取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制。void ATM:fetchmo ney()/ 取款float m;char ch;docoutend

13、l您要取多少钱:endl; /两种情况cinm;while(m=0)cout请输入您的取款金额 !e ndl;cinm;if(cn sm.get_ mon ey()-m0)cout对不起,你的余额不足!e ndl;elsecoutendl操作成功!请于30秒内取走您的钞票!endl;cn sm.set_ mon ey(m);cout是否要继续该项操作:(y/n) ch;while(ch=y|ch=Y);(3) 查询功能:实现查询余额功能。void ATM:i nformatio n()/ 查询cout=e ndl;cnsmcout您当前所剩余额为:cnsm.get_mo ney()e ndl;

14、 必须声明友元才能用 调用其成员函数cout=e ndl;(4) 更改密码:实现密码更改功能,对于密码要有2次验证。void ATM:cha nge_passwd()更改密码char pwd8,repwd8;times=0;docoutendl pwd;if(!check_passwd(c nsm.get_ nu m(),pwd)times+;elsebreak;while(times3);int t=1;docout pwd;cout repwd;t=strcmp(pwd,repwd); / 相同返回 0;if(t!=O)cout对不起,您输入的两次密码不一样,请重新输入!e ndl;whi

15、le(t!=0);cn sm.set_passwd(pwd);cout密码修改成功!endl;(5) 锁卡功能:实现卡被锁的功能。void ATM:lock()/ 锁卡coutendl对不起,由于你的操作有误,你的卡片已被没收! endl;exit(1); /系统非正常退出if(times=3)lock(); /当密码输入三次错误后,进行锁卡(6) 退卡功能:实现退出系统功能。void ATM:exitATM()退卡coute ndl感谢您支持,欢迎下次光临 !e ndl;cout请取回你的卡片e ndl;exit(0);(4) 主函数void mai n()con sumer c(张丽,”2

16、0112218,5000,456258); 先构造一个用户ATM atm(c);atm.welcome();三. 心得体会本次面向对象程序设计实践中,我完成了一个模仿 ATM机存取款管理系统设计,刚开始 时,对于这个课题的设计我首先是先进行功能的分析,针对其功能再设计其函数,在实现各个功能的时候,遇到了许多的问题,比如说取款金额受卡余额、机单笔最大取款金额及机当前剩余金额的限制,在进行设计时,就没有实现机单笔最大取款金额限制这一要求功能,在实验中,有一些问题难以解决,但是通过查询资料,上网搜索,也得到一定程度的解决。在 设计过程中还有其他的各种问题,有请教老师的,老师都对我进行耐心的指导,解决

17、了一些问题,还有问同学的,做相同课题同学们间的互相交流也使我受益匪浅。经过一个星期的上机实验,对于面向程序设计这一门课我从课本上的例题教学,上机实验到现在的设计操作, 明显有不同的感受, 也许在书本上的例题能够看明白看懂, 但是在自 己进行设计并且运行的时候会出现许多的问题, 检验自己许多方面的能力,细心程度,耐心此次课程设计,我对面向对象程序设计的认识得到了一定的提高,其实许多课程也是如此,我们不能单独停留在书本所交给我们的知识里,有时候的很多问题当你通过上机亲自操作,你会发现亲自实践比看书来得直观明了,这次的课程设计的目的也在于此,让我们通过实践来对所学知识进行检验以及深入的理解。源代码#

18、in cludeusing n amespace std;class con sumer;class ATM / ATM 取款机类public:ATM(c on sumer& cn ):c nsm(c n)void welcome。;/登陆界面bool check_passwd(char n ,char pwd);/核对密码void fetchm on ey();/取款功能void function show();/功能界面void in formatio n();/查询功能void cha nge_passwd();/更改密码void lock();/锁卡功能void exitATM();/

19、退卡功能private:int times; /记录密码输入次数con sumer& cn sm;;class con sumer/ 用户类public:frie nd class ATM;con sumer(char Name,char Num,float Mon ey,char Password); protected:char* get_ name();/获取姓名char* get_ nu m();/获取卡号char* get_passwd();/获取密码float get_ mon ey();/获取余额void set_passwd(char pwd);/设置密码void set_ m

20、on ey(float m);/取款private:char passwd8; 用户密码char name20; / 用户姓名char num20;float mon ey;con sumer:c on sumer(char Name,char Num,float Mon ey,char Password) strcpy (n ame,Name);strcpy( nu m,Num);mon ey= Mon ey;strcpy(passwd,Password);float con sumer:get_ mon ey()retur n mon ey;char* con sumer:get_ nam

21、e()对于数组的返回操作返回指针return n ame;char* con sumer:get_ num()return nu m;char* con sumer:get_passwd()return passwd;void con sumer:set_ mon ey(float m)mon ey-=m;void con sumer:set_passwd(char pwd)strcpy(passwd,pwd); void ATM:welcome()times=0;coute ndl;cout=e ndl; cout*中国农业银行*endl;cout欢迎使用ATM自动柜员机endl;cout=

22、e ndl;cout e ndl;char pwd8, nu m20,ch;int i=0;doi=0;coutendl请输入卡号:;docin. get(ch);nu mi+=ch;while(ch!=n);numi-1=0;i=0;cout请输入密码:docin. get(ch);pwdi+=ch;while(ch!=n);面向对象程序设计之课程设计pwdi-1=0:if(!check_passwd( nu m,pwd)cout你输入的卡号或密码有误,请重新输入 e ndl;times+;elsefunction show();while(times3);exitATM(); bool A

23、TM:check_passwd(char nu m,char pwd)if(strcmp( nu m,c nsm.get_ num()=0&strcmp(pwd,c nsm.get_passwd()=O) return true;elsereturn false;void ATM:fu nctio nshow()int n;docoute ndl;cout本机可办理以下业务,请你输入相应的操作序号进行操作:e ndl;cout 查询endl 取款endl 更改密码endl退出endl;cinn;while( n 4)cout对不起,本机无此项操作,请输入正确的操作序号!e ndl;cinn;s

24、witch( n)case 1:i nformati on(); break;case 2:fetchm on ey();break;case 3:cha nge_passwd(); break;case 4:exitATM(); break;while(true);void ATM:i nformatio n()/ 查询cout=e ndl;cnsmcout您当前所剩余额为:cnsm.get_mo ney()e ndl;必须声明友元才能用调用其成员函数cout=e ndl;void ATM:fetchmo ney()/ 取款float m;char ch;docoutendl您要取多少钱:e

25、ndl;/两种情况cinm;while(m=0)cout请输入您的取款金额 !e ndl; cinm;if(cn sm.get_ mon ey()-m0)cout对不起,你的余额不足!e ndl;elsecoutendl操作成功!请于30秒内取走您的钞票!endl; cn sm.set_ mon ey(m);cout是否要继续该项操作:(y/n) ch;while(ch=y|ch=Y);void ATM:cha nge_passwd()更改密码char pwd8,repwd8;times=0;docoutendl pwd;if(!check_passwd(c nsm.get_ nu m(),p

26、wd)times+;elsebreak;while(times3);int t=1;docout pwd;cout repwd;t=strcmp(pwd,repwd); / 相同返回 0;if(t!=0)cout对不起,您输入的两次密码不一样,请重新输入!e ndl;while(t!=0);if(times=3)lock();当密码输入三次错误后,进行锁卡cn sm.set_passwd(pwd);cout密码修改成功!endl;void ATM:lock()/ 锁卡coutendl对不起,由于你的操作有误,您的卡片已被锁e ndl;exit(1); /系统非正常退出void ATM:exitATM()退卡coute ndl感谢您支持,欢迎下次光临cout请取回你的卡片exit(O);void mai n()con sumer c(张丽,”20112218,5000,456258);先构造ATM atm(c);!请于柜台办理相关业务e ndl;e ndl;个用户atm.welcome();19

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!