




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计课程设计一、课程设计的目的1、培养学生面向对象编程的思想;2、使学生熟悉C+语言的使用;3、培养学生C+编程的思想和方法;4、使学生掌握C+编程调试的基本技能;5、培养学生分析、解决问题的能力。二、课程设计内容与要求1、内容一:模拟实现银行ATM自动取款机系统。系统至少包括以下几方面的功能:(1) 用户登录功能:通过输入用户名和密码,正确时进入系统,错误则提示相应的错误信息并提示重新输入。(程序中可以初始几个用户对象,包括用户的姓名,账号,密码,余额等基本数据)(2)修改密码功能:设置初始密码,当输入错误时提示信息并提示重新输入,当输入的次数超过2次则冻结银行卡,自动退出系统;(3)余额查询功能:显示当前用户银行卡的余额数目;(4)取款功能:通过输入金额,对存款进行扣款工作,当输入的金额大于余额时,则提示余额不足的信息,并重新输入;(5)转账功能:当前用户可以向已经存在的某个用户进行转账,退出当前用户,通过登录对方账户查询余额检验转账操作是否成功。(6)退出; 内容二: 模拟实现高校学籍管理系统。系统主要功能有:(1)学生基本信息的录入:录入新数据(包括学号、姓名、英语、语文、数学),当录入重复的学号时,提示错误信息并取消录入;(2)学生基本信息的查询:显示所有学生的信息,除了以上的数据项外,还应自动显示每个学生的各科成绩的平均分和总分,能够按照学号、姓名对学生的信息进行查询并显示在屏幕上,检索不到信息则提示错误信息并提示重新输入查询;(3)学生基本信息的修改:修改前显示所有学生信息,通过选择需要修改的学生学号或者姓名,对学生的信息重新修改;(4)学生基本信息的删除:删除信息前显示所有学生信息,通过选择学生的学号或姓名对学生的信息进行删除;(5)学生成绩统计功能:通过选择总分的降序或升序,显示所有学生的信息,并在学生学号前加上编号以显示学生的排名情况。(6)退出; 内容三:模拟实现图书借阅系统。系统主要功能有:(1)图书信息的添加:录入图书的信息(包括图书编号、书名、单价、库存量);(2)读者信息的添加:录入读者的信息(包括读者的学号码、姓名、);(3)图书信息的查询:显示所有图书的信息,可通过图书编号或书名进行选择录入查询,若录入错误,则提示错误信息并重新输入查询;(4)借书:选择某个学生对某本图书进行借阅,当成功借出时,提示借阅成功的信息,并对该图书的库存量作出相应修改,若借阅的图书库存量为0则提示图书被借出;(5)还书:选择某个学生对借阅的图书进行还书,当还书成功,提示还书成功的信息,并对图书的库存量作出相应修改;(6)退出;内容四:模拟实现手机通讯录管理。主要功能有:(1)查看功能:选择此功能时,列出手机通讯录的分类,如A同事、B家人、C朋友、D同学等分类,当选中某类时,显示出此类所有数据中的姓名和电话号码;(2)增加功能:录入新数据(包括姓名、电话号码、分类),当录入重复的姓名和电话号码时,提示错误信息并取消录入;(3)拨号功能:能显示通讯录中所有人的姓名,当选择某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字;(4)删除功能:选择某个人的姓名,可对此人的相应数据进行删除;2、设计要求:(1)分析数据对象及其联系;(2)实现相关类的设计;(3)分析系统功能构成;(4)对应用系统编程并运行调试附:课程设计报告格式C+面向对象程序设计课程设计报告题目: 银行ATM自动取款机系统 专业: 计算机科学与技术 班级: 1301 学号: 3138903106 姓名: 周珠联 指导教师: 甘秋云 完成日期:2015年 6 月 16日C+面向对象程序设计课程设计一、系统中所使用的数据对象及说明1、用户user类属性属性名称类型描述cardnumlong卡号connamestring姓名passwordlong密码balancedouble余额方法方法名称功能login登陆系统select余额显示modifi修改密码withdraw取款transfer转账2、取款机ATM类属性属性名称类型描述无无无方法方法名称功能menu显示ATM的功能3、各类之间的关系在ATM类中声明user类的对象u1,再通过ATM类中的u1调用user类中的成员函数。二、系统功能结构及相关算法描述1、系统功能结构 2、相关算法流程图三、程序源码#include#include #includeusing namespace std; class User /定义用户 User 类 public: long cardnum; string conname; long password; double balance;public: User();/声明无参构造函数 User(long c,string n,long pwd,double ba);/声明普通构造函数void login();/声明登入函数 int select();/声明查询函数 int transfer();/声明转账函数 int withdraw();/声明取款函数 int modifi();/声明修改密码函数 ;User us2;User:User()/定义无参构造函数 cardnum=11111111; conname=zzl; balance=5000; password=123456; User:User(long c,string n,long pwd,double ba)/定义有参构造函数 cardnum=c; conname=n; password=pwd; balance=ba; void writefile()/把数据写进磁盘文件ofstream outfile(D:f1.dat,ios:binary);if(!outfile)cerr打开失败!endl;exit(1);for(int q=0;q2;q+) outfile.write(char*)&usq.cardnum,sizeof(long);outfile.write(char*)&usq.conname,sizeof(string);outfile.write(char*)&usq.password,sizeof(long);outfile.write(char*)&usq.balance,sizeof(double);outfile.close();void readfile()/从磁盘文件读数据ifstream infile(D:f1.dat,ios:binary);if(!infile)cerr打开失败endl;abort();for(int i=0;i2;i+) infile.read(char*)&usi.cardnum,sizeof(long);infile.read(char*)&usi.conname,sizeof(string);infile.read(char*)&usi.password,sizeof(long);infile.read(char*)&usi.balance,sizeof(double);infile.close();void User:login()/定义登入函数 long password0; int i=0; cout*欢迎登入中国工商银行*endl;cout*endl; coutendl; cout请输入您的 6 位密码(错误输入不得超过 3 次):; coutendl; coutendl; cout*endl;cout*欢迎登入中国工商银行*endl; while(i3) coutpassword0; i+; if(password0!=password) cout对不起,您的输入有误,请重新输入!endl; if(i=3) cout您的错误输入已满 3 次,请取出您的银行卡,以免被锁住!endl; login(); break; else cout登入成功!endl; break; int User:select()/定义查询函数 cout您的用户名:; coutconnameendl; cout您的账号:; coutcardnumendl; cout您的当前余额:; coutbalanceendl; cout密码:; coutpasswordendl; return 1; int User:transfer()/定义转账函数 long cardnum1,cardnum2; double money; readfile();coutcardnum1; if(cardnum1=cardnum) cout对 不起, 您要 转入 的账 号是当 前银 行卡 的账 号 ,无 法 转账 !请重 新输 入其 他账 号!endl; return transfer(); else coutcardnum2; if(cardnum1=cardnum2 ) coutmoney; cout=money) balance=balance-money; cout转账成功!endl; cout您的当前余额:; writefile();return balance; else cout对不起,您当前余额不足,请重新转账!endl;return transfer(); elsecout您两次输入的账号有误,请重新输入!endl; return transfer(); int User:modifi()/定义更改密码函数 writefile();readfile();long password1; long password2; long password3; coutpassword1; if(password1!=password) cout对不起,您的输入有误,请重新输入!endl; return modifi(); else coutpassword2; coutpassword3; if(password2=password3) password=password3; cout恭喜您,您的密码修改成功!endl; cout您的新密码:; return password; else cout对不起,您的两次输入有误,请重新输入!endl; return modifi(); int User:withdraw()/定义取款函数 double number; coutnumber; if(balancenumber) cout你的账号余额不足 number.endl; cout取款失败!endl; return withdraw(); else cout取款成功!endl; balance=balance-number; cout您的当前账号余额为:; return balance; class ATM /定义取款机 ATM 类 public: User u1;/声明用户 User 类的对象 u1 int menu();/声明菜单函数 ; int ATM:menu()/定义菜单函数 u1.login(); int choice=0; while(choice!=5) cout*欢迎登入中国工商银行*endl; cout1.查询 endl;cout2.转账 endl;cout3.修改密码endl; cout4.取款 endl;cout0.退出系统endl; cout*欢迎登入中国工商银行*endl; coutchoice; switch(choice) case 1: coutu1.select()endl; break; case 2: coutu1.transfer()endl; break; case 3: coutu1.modifi()endl; break; case 4: coutu1.withdraw()endl; break; case 0: cout请取出您的银行卡,欢迎下次再使用!endl; break; default: cout 输入错误!请重新输入!nn; break;return 0; int main() ATM a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能养老服务驿站建设与社区治理创新研究
- 2025年水上乐园游乐设施市场竞争格局与品牌分析报告
- 2025年广播媒体融合传播中的媒体融合政策与监管研究报告
- 米面粮油采购合同范本
- 线上签署合同终止协议
- 济南铁路正式合同范本
- 酒店投资建设合同范本
- 银行双控账户合同范本
- 样品加工采购合同范本
- 法人之间借款合同范本
- 食品生产监管能力大比武理论考试题及答案
- 2024玻璃钢贮罐拆除解体施工合同
- 2022年中国居民膳食指南
- 2024-2030年中国病理检查市场专题研究及市场前景预测评估报告
- 第3章 即时定位与地图构建技术课件讲解
- 汽车用品采购合同
- P.E.T.父母效能训练
- 《研学旅行课程设计》课件-了解研学旅行概念
- 传统中医针灸技术操作规范
- 沅陵旅游宣传方案
- 个人防护用品使用和检查知识
评论
0/150
提交评论