版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+程序设计课程设计说明书题 目模拟ATM取款机的设计学 号姓 名 指导教师日 期目录第1章 需求分析3第2章 总体设计4第3章 类的设计53.1 ATM类的设计53.2 consumer类的设计6第4章 详细设计 74.1 工程视图74.2 类图视图74.3 函数的调用关系84.4 主程序流程图9第5章 测试10第6章 总结14参考文献15附录:程序代码16 第1章 需求的分析课程名称C+语言课程设计设计题目模拟ATM取款机的设计指导教师时间2021-2021春学期 第17、18周一、教学要求1. 巩固和加深学生对C+语言课程的基本知识的理解和掌握2. 掌握C+语言编程和程序调试的基本技能3
2、. 利用C+语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C+语言解决实际问题的能力二、设计资料及参数用C+设计一个系统,能提供下列服务:模拟ATM取款机的操作,:(1) 首先录入账户信息。格式为:帐号姓名身份证密码余额32340102021 6078李四150202198808080088123456450.8(2) 登录功能。输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。(3) 查询功能。查询账户余额。(4) 取款功能。取款,更新余额。(5) 挂失功能。挂失后,该账户不能进行任何操作。(6) 修改密码。输入原密码和新设置密码。(7)
3、转账。输入转账的转出账户和转入账户以及转账金额,进行转账。三、设计要求及成果根据系统功能要求,可以将问题解决分为以下步骤:(1)分析系统中的各个实体之间的关系及其属性和行为;(2)根据问题描述,设计系统的类层次;(3)完成类层次中各个类的描述(包括属性和方法);(4)完成类中各个成员函数的定义;(5)完成系统的应用模块;(6)功能调试;(7)提交课程设计报告:完成系统总结报告以及系统使用说明书 第2章 总体设计2.1总体设计框图:ATM自动取款系统登陆功能查询功能取款功能挂失功能修改密码转账 图 21 atm设计框图2.2文字叙述:Atm自动取款系统,完成以下功能: 登录功能。输入帐号和密码进
4、行登录,如密码错误无示重新输入密码,如帐号错误提示无此帐户。 查询功能。查询账户余额。 取款功能。取款,更新余额。 挂失功能。挂失后,该账户不能进行任何操作。 修改密码。输入原密码和新设置密码。 转账。输入转账的转出账户和转入账户以及转账金额,进行转账。 第3章 类的设计3.1ATM类的设计 在atm类,有数据成员和成员函数,他们被访问的权限又分为三类,private私有类,protected保护类,public公有类。 class ATM / ATM取款机 public: /公有类 ATM(consumer& cn):cnsm(cn) void welcome(); / 登陆界面 b
5、ool check_passwd(char n,char pwd); / 核对密码 void change_passwd(); / 修改密码 void fetchmoney(); / 取款 void information(); / 查询信息 void functionshow(); / 功能界面 void guashi(); / 挂失 void zhuanzhang(); / 转账 void exitATM(); / 退出系统 void lock(); / 锁机 private: / 私有类 int times; / 记录密码输入次数 int money;consumer&cnsm;
6、3.2 consumer 类的设计class consumer/ 用户 public: /公有类friend class ATM; consumer(char Name,char Num,char Nun,float Money,char Password); protected:char* get_name(); / 取得姓名 char* get_num(); / 取得卡号char* get_nun(); /身份证char* get_passwd(); / 取得密码 float get_money(); / 取得余额 void set_passwd(char pwd); / 设置密码 voi
7、d set_money(float m); / 取钱 private: /私有类char passwd8; / 用户密码 char name20; / 用户姓名 char num20; /用户账号char nun20; /用户身份证 float money; /用户余额; 第4章 详细设计4.1工程视图 图 41 工程视图4.2类图视图 图 42 类图视图4.3函数的调用:main()主程序ATM atm(c1)()change_passwd(),getmoney(),fetchmoney(),information(),guashi(),zhuanzhang(),exitATM()welco
8、me() 图 43 函数调用关系图 4.4主程序的流程图:输入卡号和密码正确 否是 服务界面显示用户信息和余额 查询 取款 挂失 修改密码挂式界面输入金额输入旧密码 正确输入新密码 正确 否 是 否输入新密码操作成功取款 挂失 修改密码 挂失 退出 是挂失成功 正确 退卡 修改成功 返回 退出 否 是 返回 退出 转账 转账成功超出余额输入转账金额输入转账卡号 是 否 返回 退出 图 44 程序流程图 第 5章 测试 5.1登陆界面 图 51 登陆界面5.2修改密码 图 52 修改密码界面5.3取款 图 53 取款界面 5.4查询 图 54 查询界面5.5挂失 图 55 挂失界面5.6转账 图
9、 56 转账界面5.7退出系统 图 51 退出系统界面 第6章 总结 自动取款机的虚拟系统主要是模仿银行真的自动取款机的功能而设计的,其功能和真正的自动取款机是有很多的差别的,但对我们来说,此虚拟的自动取款机也是很大的激励,对大家的认识自动取款机也有一定的帮助 。虽然,在功能和界面上和其他的自动取款机系统和很大的差别,但是这个模拟的系统也是很真实。通过这次的模拟ATM取款系统的设计,让我更深了理解了C+程序,对在理论学习时很多不懂得东西,通过这次实践操作,有了新的认识,同时也学会了如何分析问题,将复杂问题的细化分类处理,如何寻找突破口解决难题培养了自己的逻辑思维能力,加深了对面向对象程序设计思
10、想的认识,对类的继承,函数的重载以及多态的应用有了更深入得了解。同时也明白了养成良好的编程习惯。学会了,在编写程序的同时做好文档的记录工作,为日后的调试,复检做准备。通过此次程序设计更明确了日后的目标。 参考文献1. 吴敏,杨国林.C+面向对象程序设计.呼和浩特:内蒙古大学出版社,2021 2. 谭永强.C+程序设计.北京:清华大学出版社,2021 3. 钱能.C+程序设计教程.北京:清华大学出版社,2021 4.谭永强,陈青华,朱红.C+程序设计实践指导.北京:清华大学出版社,2021 附录 程序代码 #include<iostream.h>#include<string.
11、h>#include<stdlib.h>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 functionshow(); / 功能界面 void guashi(); / 挂失 void
12、 zhuanzhang(); / 转账 void exitATM(); / 退出系统 void lock(); / 锁机 private: int times; / 记录密码输入次数 long cardID; long psw; int money; consumer&cnsm;class consumer/ 用户 public:friend class ATM; consumer(char Name,char Num,char Nun,float Money,char Password); protected:char* get_name(); / 取得姓名 char* get_nu
13、m(); / 取得卡号char* get_nun(); /身份证char* get_passwd(); / 取得密码 float get_money(); / 取得余额 void set_passwd(char pwd); / 设置密码 void set_money(float m); / 取钱 private:char passwd8; / 用户密码 char name20; / 用户姓名 char num20;char nun20; float money;consumer:consumer(char Name,char Num,char Nun, float Money,char Pas
14、sword)strcpy(name,Name); strcpy(num,Num); strcpy(nun,Nun); money=Money; strcpy(passwd,Password); char* consumer:get_name()return name; char* consumer:get_num()return num; char* consumer:get_nun()return nun; char* consumer:get_passwd()return passwd; float consumer:get_money()return money; void consum
15、er:set_passwd(char pwd)strcpy(passwd,pwd); void consumer:set_money(float m)money-=m;void ATM:welcome()times=0;cout<<""<<endl;cout<<" 欢迎使用DSJ银行ATM自动取款机 "<<endl;cout<<""<<endl; char pwd8,num20,ch; int i=0; do i=0;cout<<endl<<
16、;"请输入卡号:" docin.get(ch);numi+=ch; while(ch!='n'); numi-1='0'i=0;cout<<"请输入密码:" do cin.get(ch); pwdi+=ch; while(ch!='n');pwdi-1='0' if(!check_passwd(num,pwd) cout<<"你输入的卡号或密码有误,请重新输入"<<endl;times+; elsefunctionshow(); whi
17、le(times=3); lock();bool ATM:check_passwd(char num,char pwd)if(strcmp(num,cnsm.get_num()=0&&strcmp(pwd,cnsm.get_passwd()=0)return true;elsereturn false;void ATM:change_passwd()char pwd8,repwd8; times=0; do cout<<endl<<"请输入旧密码:" cin>>pwd; if(!check_passwd (cnsm.get
18、_num(),pwd)times+;elsebreak; while(times=3); if(times=3)lock(); int t=0; do cout<<"请输入新密码:"cin>>pwd;cout<<"请再输入一次新密码:" cin>>repwd; if(t=strcmp(pwd, repwd)!=0)cout<<"你输入的两次密码不一样,请重新输入!"<<endl; while(t!=0); cnsm.set_passwd(pwd); cout<
19、;<"密码修改成功,请牢记!"<<endl; void ATM:fetchmoney() float m; char ch; docout<<endl<<"你要取多少钱:""n$"<<endl ; cin>>m; while(m<=0)cout<<"请输入正确的数字!"<<endl;cout<<"$ "cin>>m; if(cnsm.get_money()-m<0)cou
20、t<<"对不起,你的余额不足!"<<endl;elsecout<<endl<<"操作成功,请收好钱!"<<endl;cnsm.set_money(m); cout<<"是否要继续该项操作:(Y/N) "<<endl;cout<<"$ " cin>>ch; while(ch!='n'&&ch!='N'&&ch!='Y'&&a
21、mp;ch!='y')cout<<"$ "cin>>ch; while(ch='y'|ch='Y'); void ATM:information()cout<<"*"<<endl;cout<<"*"<<endl;cout<<"* 用户姓名:"<<cnsm.get_name()<<endl;cout<<"* 卡号: "<<
22、;cnsm.get_num()<<endl;cout<<"* 身份证: "<<cnsm.get_nun()<<endl;cout<<"* 余额: "<<cnsm.get_money()<<endl;cout<<"*"<<endl;void ATM:functionshow() int n; docout<<endl<<"请你输入相应的操作序号进行操作:"<<endl;cou
23、t<<"1) 修改密码 "<< endl<<"2) 取款 "<<endl<<"3) 查询余额 "<<endl<<"4) 挂失 "<<endl<<"5) 转账"<<endl<<"6) 退出系统"<<endl; cout<<"$ " cin>>n; while(n<0|n>7) co
24、ut<<"请输入正确的操作序号!"<<endl; cout<<"$ "cin>>n; switch(n) case 1:change_passwd();break; case 2:fetchmoney();break; case 3:information();break; case 4:guashi();break; case 5:zhuanzhang();break; case 6:exitATM();break; while(true); void ATM:guashi() char ch; cout
25、<<"您确定要挂失吗?(Y/N) "<<endl; cout<<"$" ;cin>>ch;if(ch!='n'&&ch!='N')|(ch='Y'&&ch='y') cout<<"挂失成功!请您尽快补办新卡!"<<endl;cout<<endl<<"感谢你对本银行的支持,欢迎下次光临!"<<endl;cout<
26、;<"请取卡"<<endl;exit(0);return; else cout<<"未挂失!"<<endl; void ATM:zhuanzhang() long ID2; int money1; cout<<"请输入您要转账的卡号:"<<endl; cin>>ID2; cout<<"请输入您要转账的金额:"<<endl; cin>>money1;if(money>=money1) money=m
27、oney-money1; cout<<"转账成功,您卡上余额为:"<<money<<endl; else cout<<"金额超出账户余额,请重新输入取款金额:" cin>>money1; money=money-money1; cout<<"转账成功,您卡上余额为:"<<money<<endl; void ATM:lock()cout<<endl<<"对不起,由于你的操作有误,你的卡已经被没收! "
28、;<<endl;exit(1);void ATM:exitATM()cout<<endl<<"感谢你对本银行的支持,欢迎下次光临!"<<endl;cout<<"请取卡"<<endl;exit(0);void main()consumer c1("李四","32340102021 6078","quot;,450.8f,"123456");/ 先构造一个用户ATM atm(c1)
29、;atm.welcome(); 论大学生写作能力 写作能力是对自己所积累的信息进行选择、提取、加工、改造并将之形成为书面文字的能力。积累是写作的基础,积累越厚实,写作就越有基础,文章就能根深叶茂开奇葩。没有积累,胸无点墨,怎么也不会写出作文来的。写作能力是每个大学生必须具备的能力。从目前高校整体情况上看,大学生的写作能力较为欠缺。一、大学生应用文写作能力的定义那么,大学生的写作能力究竟是指什么呢?叶圣陶先生曾经说过,“大学毕业生不一定能写小说诗歌,但是一定要写工作和生活中实用的文章,而且非写得既通顺又扎实不可。” 对于大学生的写作能力应包含什么,可能有多种理解,但从叶圣陶先生的谈话中,我认为:
30、大学生写作能力应包括应用写作能力和文学写作能力,而前者是必须的,后者是“不一定”要具备,能具备则更好。众所周知,对于大学生来说,是要写毕业论文的,我认为写作论文的能力可以包含在应用写作能力之中。大学生写作能力的体现,也往往是在撰写毕业论文中集中体现出来的。本科毕业论文无论是对于学生个人还是对于院系和学校来说,都是十分重要的。如何提高本科毕业论文的质量和水平,就成为教育行政部门和高校都很重视的一个重要课题。如何提高大学生的写作能力的问题必须得到社会的广泛关注,并且提出对策去实施解决。二、造成大学生应用文写作困境的原因: (一)大学写作课开设结构不合理。 就目前中国多数高校的学科设置来看,除了中文
31、专业会系统开设写作的系列课程外,其他专业的学生都只开设了普及性的大学语文课。学生写作能力的提高是一项艰巨复杂的任务,而我们的课程设置仅把这一任务交给了大学语文教师,可大学语文教师既要在有限课时时间内普及相关经典名著知识,又要适度提高学生的鉴赏能力,且要教会学生写作规律并提高写作能力,任务之重实难完成。 (二)对实用写作的普遍性不重视。 “大学语文”教育已经被严重地“边缘化”。目前对中国语文的态度淡漠,而是呈现出全民学英语的大好势头。中小学如此,大学更是如此。对我们的母语中国语文,在大学反而被漠视,没有相关的课程的设置,没有系统的学习实践训练。这其实是国人的一种偏见。应用写作有它自身的规律和方法
32、。一个人学问很大,会写小说、诗歌、戏剧等,但如果不晓得应用文写作的特点和方法,他就写不好应用文。 (三)部分大学生学习态度不端正。 很多非中文专业的大学生对写作的学习和训练都只是集中在大学语文这一门课上,大部分学生只愿意被动地接受大学语文老师所讲授的文学经典故事,而对于需要学生动手动脑去写的作文,却是尽可能应付差事,这样势必不能让大学生的写作水平有所提高。 (四)教师的实践性教学不强。 学生写作能力的提高是一项艰巨复杂的任务,但在教学中有不少教师过多注重理论知识,实践性教学环节却往往被忽视。理论讲了一大堆,但是实践却几乎没有,训练也少得可怜。阅读与写作都需要很强的实践操作,学习理论固然必不可少,但是阅读方法和写作技巧的掌握才是最重要的。 由于以上的原因,我们的大学生的写作水平着实令人堪忧,那么如何走出这一困境,笔者提出一些建议,希望能对大学生写作水平的提高有所帮助。 三、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东深圳市龙岗区宝龙街道第一幼教集团招聘4人笔试备考题库及答案解析
- 2025年金华市婺城区事业单位招聘考试试题及答案解析
- 第2课 信息处理的好助手教学设计-2025-2026学年小学信息技术(信息科技)第一册(供三年级使用)浙教版(广西)
- Unit7 Section A 基础知识讲解(无答案)人教版(2024)七年级英语上册
- 2026北京朝阳区高碑店社区卫生服务中心招聘1人考试参考题库及答案解析
- 2026年天津泰达投资控股有限公司校园招聘笔试备考题库及答案解析
- 2026年云天化集团有限责任公司校园招聘笔试备考试题及答案解析
- 第5课 图层的应用(二)教学设计-2025-2026学年初中信息技术(信息科技)七年级下册人教版
- 内蒙古开鲁县高中生物 第五章 生态系统及其稳定性 5.4 能量之源-光与光合作用 第一课时教学设计 新人教版必修3
- 2026年辽宁省能源产业控股集团有限责任公司校园招聘笔试备考试题及答案解析
- 中国空军发展史
- 医疗机构抗菌药物使用培训计划
- 涂料生产与涂装作业指导书
- 代耕代种合同范本
- 内分泌与代谢系统疾病常见症状或体征的护理内科护理学第七章讲解
- 《智能网联汽车云控系统 第1部分 系统组成及基础平台架构》
- 旅行社企业章程范本
- 弹性延迟退休协议书示范文本
- 2025年湖南出版集团招聘笔试参考题库含答案解析
- 氧化铝制取全套教学教程整套课件全书电子教案
- 肩关节超声检查
评论
0/150
提交评论