收藏 分销(赏)

程序设计基础课程设计报告-内容样例.doc

上传人:Fis****915 文档编号:551936 上传时间:2023-12-06 格式:DOC 页数:28 大小:275KB
下载 相关 举报
程序设计基础课程设计报告-内容样例.doc_第1页
第1页 / 共28页
程序设计基础课程设计报告-内容样例.doc_第2页
第2页 / 共28页
程序设计基础课程设计报告-内容样例.doc_第3页
第3页 / 共28页
程序设计基础课程设计报告-内容样例.doc_第4页
第4页 / 共28页
程序设计基础课程设计报告-内容样例.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、2017级本科程序设计基础课程设计报告 第一章 目的与要求书上有。第二章 需求分析软件设计的一个重要的环节就是需求分析。本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。以下是ATM取款机管理系统所需要的需求分析。ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。登录: 输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面挂失功能:确认是否对银行卡进行挂失,挂失后账户无法操作修改密码: 用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码取款功能: 用

2、户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内转账功能: 用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账号查询功能: 用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额模拟ATM取款机的操作:首先录入账户信息,格式如下帐号姓名身份证密码余额323401020056078李四150201198808080088123456450.8、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。、查询功能:查询账户余额。、取款功能:取款,更新余额。、挂失功能:挂失后,该账户不能进行任何操作。、修改密码:输入原密码

3、和新设置密码。、转账功能:输入转账的转出账户以及转账金额,进行转账。第三章 设计分析3.1、ATM系统管理3.1.1系统基本功能 首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并与ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。基本功能 :登录功能-输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。查询功能-查询账户余额。取款功能-取款,更新余额。挂失功能-挂失后,该账户不能进行任何操作。修改密码-输入

4、原密码和新设置密码。转账功能-输入转账的转出账户以及转账金额,进行转账。、系统功能如图3-1:取款挂失查询ATM管理系统修改密码退出系统登陆转账图3-1 ATM系统的基本功能分类3.1.2相关数据结构的说明信息的载体用对象数组。系统录入信息的操作非常枯燥,所以创建一个文件,把每次录入的信息保存入文件,在下一次进入系统时,它会默认读取文件原有的信息,当然也可以随时添加录入ATM信息。然后系统的各个功能仅仅是通过查询找到具体对象的具体数据进行操作。用户姓名:Name 字符型。用户账号:Num 字符型。用户密码:Password 字符型。身份证号:Id 字符型。存款数额:Money 实型。3.1.3

5、类的设计1) 定义了一个ATM取款机类,类中包括以下几部分:公有段:依次为登陆界面,核对密码,挂失,修改密码,取款,转账,查询信息,退出系统,功能界面,锁机。私有段:记录密码输入次数以及变量j。友元函数:取款,转账,查询信息,账号,密码。2) 定义了一个consumer 类,类中包括以下几部分:公有继承了ATM类私有段:用户密码,用户姓名,用户身份证号,卡号,存款钱数保护段:取得姓名,取得卡号,取得身份证号,取得密码,取得余额,设置密码,取钱3.2系统流程图利用流程图来说明系统各个部分之间如何协调来完成任务。1) 登录流程如图3-2输入账号输入密码主界面开始结束图3-2 登陆的基本流程2)查询

6、功能图3-3 图中显示的是查询的基本流程 : 主界面选择查询的操作序号图3-3 图中显示的是查询的基本流程开始结束3)挂失功能 图3-4 图中显示的是挂失的基本流程: 主界面选择查询的操作序号是否挂失挂失成功开始图3-4 图中显示的是挂失的基本流程4)修改密码图3-5 图中显示的是修改密码的基本流程: 主界面选择查询的操作序号请输入新密码请输入旧密码请再次输入新密码图3-5 图中显示的是修改密码的基本流程结束开始5)取款功能图3-6 图中显示的是取款的基本流程: 主界面选择需要的操作序号是否继续取款额数结束图3- 6 取款的基本流程开始结束6)转账功能图3-7 图中显示的是转账的基本流程: 主

7、界面请输入所转账号余额不足转账成功,余额选择查询的操作序号 请输入所转金额图3-7 转账的基本流程开始3.3参数说明全局变量,重要形式参数、全局变量局部变量等等,它们的命名及用途解释bool j: 全局变量。char m,t,ch: 全局变量。int times : 重要形式参数。第四章 系统实现对运行及测试结果进行说明,并添加运行界面的截图。4.1、登录主界面 图4-1 主界面登录窗口图4-2 登录主界面时,账号或密码出错时系统自动锁机图4-3 成功登录后,主界面所显示的窗口4.2、挂失功能图4-4 根据所选代码进行挂失,挂失后系统将退出主界面4.3、修改密码图4-5 xxxx图4-6 图为

8、更改密码功能界面,更改后的密码为新密码4.4、取款功能图4-7为图为取款功能界面,图中显示为成功取款图4-8 图为取款失败后的功能界面4.5、转账功能图4-9 图为转账功能界面,图中显示为转账成功后的界面图4-10 图为转账失败后的功能界面4.6、查询功能图4-11 图中所示为用户个人信息,包括用户姓名、身份证号、银行卡号以及存款余额4.7、退出系统图4-12图为选择序号后系统退出的页面第五章 总结课程设计旨在锻炼学生的实际动手能力和解决真实问题的能力。并在其中掌握和熟练所学的知识,并能够运用所学知识解决比较简单的现实模拟问题。本次课程设计在老师的帮助和自己的努力下终于能够成功运行,使我感到非

9、常高兴以及提高了自己的编程信心,虽然这次课程设计的题目实现比较简单和不实用但毕竟是自己将近两个星期的努力地结果。在期间我对编程的理念理解又加深了一点,课程设计使我明白好的算法或者是好的逻辑思维对编程的重要性,在调试期间我自卑过、高兴过、平静过。可以说是我经历了比较大的情感波动。当费很大劲才把程序调运行的时候那种感觉实在是太好了。在本次课程设计活动中,我明显的感觉到自己知识的欠缺和实际动手能的差劲。尤其是在传值传参的函数调用时更体现的非常明显,感觉自己的书本学的不透、学的不扎实。有些地方更本就不会,不如说文件的操作,比如说系统时间的获取等以前在上课或作习题时更本就不会考虑的问题在课程设计当中完全

10、暴露出来。通过本次试验,主要加深了对于友元函数,友元类使用的熟练程度。程序功能相对比较简单,没有设计复杂的继承和重载函数,完成的比较轻松!参考文献1吴敏,杨国林.C+面向对象程序设计 内蒙古大学出版社.2康晓林,汪涛.标准C+使用教程 电子工业出版社附录以下是程序的源代码,并且加上了详细的注释:/=hcsdkhfsk=#includeiostreamusing namespace std;class consumer;class ATM / ATM取款机类public: ATM(consumer& cn):cnsm(cn) j=true; void welcome(); / 登陆界面 bool

11、 check_passwd(char n,char pwd);/ 核对密码 bool check_zhang(char num);/核对转入账号 bool gua();/挂失 void change_passwd(); / 修改密码 void fetchmoney(); / 取款 void zhuan();/转账 void information(); / 查询信息 void exitATM(); / 退出系统 void functionshow(); / 功能界面 void lock();/锁机private: bool j; int times; / 记录密码输入次数 consumer&

12、cnsm;class consumer/ 用户类public:friend class ATM; consumer(char Name,char Num,char Id20,float Money,char Password);protected:char* get_name(); / 取得姓名 char* get_num(); / 取得卡号char* get_id();/取得身份证号char* get_passwd();/ 取得密码 float get_money(); / 取得余额void set_passwd(char pwd);/ 设置密码void set_money(float m)

13、;/ 取钱private:char passwd8;/ 用户密码char name20; / 用户姓名char id20;/用户身份证号char num20;/float money;/;consumer:consumer(char Name,char Num,char Id20,float Money,char Password)strcpy(name,Name); strcpy(num,Num);strcpy(id,Id);money=Money;strcpy(passwd,Password);float consumer:get_money()return money;char* con

14、sumer:get_name() / 对于数组的返回操作 返回指针return name;char* consumer:get_num()return num;char* consumer:get_id()return id;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欢迎使用银行ATM自动取款机endl;cha

15、r pwd8,num120,ch;int i=0;doi=0;coutendl请输入卡号:;docin.get(ch); /对于键盘字符串的接收!num1i+=ch;while(ch!=n);num1i-1=0;i=0;cout请输入密码:;docin.get(ch);pwdi+=ch;while(ch!=n);pwdi-1=0;if(!check_passwd(num1,pwd)cout你输入的卡号或密码有误,请重新输入endl;times+;elsefunctionshow();while(times3);lock(); bool ATM:check_passwd(char num,cha

16、r pwd)if(strcmp(num,cnsm.get_num()=0&strcmp(pwd,cnsm.get_passwd()=0)return true;else return false;void ATM:functionshow()int n;do cout本机可办理以下业务:endl;cout*endl; cout endl;cout挂 失 修改密码endl; cout endl; cout取 款 转 账endl; cout endl; cout查询余额 退出系统endl; cout endl;cout*endl; coutendl请您输入相应的操作序号进行操作:n; while(

17、n6)cout请输入正确的操作序号!n;switch(n)case 1: gua(); break;case 2: change_passwd(); break;case 3: fetchmoney(); break;case 4: zhuan(); break;case 5: information(); break;case 6: exitATM(); break; while(true);bool ATM:gua()char a;do cout是否确认挂失:(y/n) 继续请按y 退出请按n a;if(a=y)cout您已挂失成功!endl; exit(2);else cout您已选择退

18、出!endl;while(a=y);return j=true;void ATM:change_passwd()char pwd8,repwd8;times=0;docoutendlpwd;if(!check_passwd(cnsm.get_num(),pwd) times+;elsebreak;while(times3);if(times=3)lock();int t=1;docoutpwd;coutrepwd;t=strcmp(pwd,repwd); / 相同返回0;if(t!=0)cout你输入的两次密码不一样,请重新输入!endl;while(t!=0);cnsm.set_passwd

19、(pwd);cout密码修改成功,请牢记!endl;void ATM:fetchmoney()float m;char ch;docoutendl你要取多少钱:m;while(m=0)cout请输入正确的数字!m;if(cnsm.get_money()-m0)cout对不起,你的余额不足!endl;elsecoutendl取款成功,请收好钱!endl;cnsm.set_money(m);cout是否要继续取款:(y/n) ch;while(ch=y|ch=Y);void ATM:zhuan() char z20; float num; cout请输入所转账号:z; cout请输入所转钱数:nu

20、m; cnsm.money-=num; if(cnsm.money0) cout转账成功!您的余额:cnsm.moneyendl; else cout余额不足!endl;void ATM:information()cout*endl;cout* 用户姓名: cnsm.get_name()endl;cout* 身份证号: cnsm.get_id()endl;cout* 银行卡号: cnsm.get_num()endl; /必须声明友元才能用cnsm调用其成员函数cout* 存款余额: cnsm.get_money()endl;cout*endl;void ATM:lock()coutendl对不起,由于你的操作有误,你的卡已经被没收! endl;exit(1); / 系统非正常退出void ATM:exitATM()coutendl感谢你对本银行的支持,欢迎下次光临!endl;cout请取卡endl;exit(0);void main()consumer c1(李四,323401020056078,150201198808080088,450.8,123456);/ 先构造一个用户ATM atm(c1);atm.welcome();28

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服