资源预览内容
第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
第9页 / 共12页
第10页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C+程序设计实践教材第四章 课程设计-面向对象实用系统分析与设计实践教材第一章介绍了面向对象的软件工程方法,软件设计应遵循分层抽象、逐步细化的原则,软件开发过程包括面向对象的分析(OOA)、面向对象的设计(OOD)、面向对象的编程(OOP)、面向对象的测试(OOT)、面向对象的维护(OOM)五个阶段。教材从第五到九章的最后一节是利用面向对象系统分析与设计方法进行程序设计的示例,并由简单到复杂地应用了类、数组、类模板、继承与派生、虚函数与多态性以及用流类进行输入输出等内容。本章作为课程所学内容的实践,要求采用面向对象系统分析与设计方法,首先对问题进行需求分析,识别类与对象,设计合理的类结构与程序结构实现程序功能(恰当应用教材所介绍的各种数据结构和算法),用C+语言编写程序;然后设计各种可能的数据(测试对象)对程序进行测试,观察运行结果是否正确,确保在可见范围内的测试对象都能得到正确结果。下面的课程设计题目分管理系统(题目一题目十)和计算、图形与多媒体系统(其余)两大类,管理系统要求尽量用MFC应用程序实现,其余题一定用MFC应用。使用文档/视图结构,用文档类存储数据,用序列化方法保存文档;使用统一的Windows图形用户界面,对话框中用合适的控件,如按钮、编辑框、组合框、列表框、单选钮、复选钮等。采用控制台应用程序形式时,设计合理的程序完成题目要求的功能,输入输出信息时注意输入输出的格式,应该在输入前提示输入的格式和内容;将程序的各项信息保存到文件并能打开,可为各类重载提取和插入运算符,用C+的输入输出流实现。每个同学可以在管理系统题和其余类型中各选作一题。题目一: 银行定期储蓄管理系统要求 该系统存贮以下信息:1每笔存款的储户信息和办理该笔存款的营业员信息,这些信息存放于存款文件中。其中,储户信息包括:帐号,姓名,密码,地址,储种(定期1年、3年、5年),本金,收储日期,是否已挂失和挂失日期,营业员信息包括:接待该储户的营业员的姓名与工号。2每笔取款的储户信息和办理该笔取款的营业员信息,这些信息存放于取款文件中。 系统功能要求如下; 1创建存款文件(第一次输入储户信息时); 2创建取款文件(第一次办理取款时); 3接收储蓄。接收储户与营业员信息并将以上信息添加到存款文件中; 4处理挂失。根据储户提供的帐号、姓名、密码、地址、储种,储金核查有无此项存款,有则对此帐号加入挂失标记,若无此项存款,则需判断是否领走还是未发生过这笔存款。 5办理取款:(1)根据储户提供的存款单(上面有帐号、姓名、储种、本金、日期)判断是否到期,检查有否挂失,根据储户提供的密码判断是否正确。若以上判断通过,执行以下三步。(2)在取款文件中添加这笔取款的储户和营业员的所有信息和取款日期,以便复查。(3)打印利息单,其内容包括:帐号、姓名、储种、起息日期,支取日期、本金、利息和支取金额。利息计算方法如下:1年到期利率1.98;3年到期利率2.25:5年到期利率.5,每逾期一天,每天利率005;若未到期提前支取,按每天利率005计,利息税按20%扣除。(4)在存款文件中对这笔存款删除。6统计今后3天每天到期的储金数,以便备款。提示 1.MFC应用:创建一个存款信息类,包含储户信息和营业员信息,派生自CObject类,并实现序列化操作;创建取款信息类,包含必要信息,也应是可序列化的类;在文档类中添加存储存款信息类和取款信息类的链表或数组(用MFC的集合类),在文档类Serialize函数中实现序列化;存款取款都通过菜单或工具栏按钮打开对话框,在对话框中输入信息;每发生一次存款,向存款链表中添加一个对象,每发生一次取款,从存款链表中删除一个对象,向取款链表中添加一个对象。2.控制台应用:创建一个存款信息类和取款信息类;定义存款信息类和取款信息类的链表或数组,每发生存款或取款,添加或删除相应对象。设计指导:可不按上面的要求作,难度上可适当降低(可不建营业员信息类)。1) 建立储户信息类,加入表示储户信息的帐号,姓名,密码,地址,储种(定期1年、3年、5年),本金,收储日期,是否已挂失和挂失日期的成员变量;2) 建立每笔存取款的信息类,加入表示存取款的金额、营业员工号,日期、存取类别(如用TRUE表示存款、用FALSE表示取款)的成员变量;3) 在文档类中加入关于储户信息类的集合类,管理所有储户信息;4) 在储户信息类中加入关于每笔存取款的信息类的集合类,管理该储户的所有存取款信息。题目二: 汽车客运公司售票系统要求 设某客运公司每日向10个城市发一个直达班车(中途不停留下客)。每天都发售今、明、后三天的车票。该系统在磁盘上存贮以下信息:1. 今、明、后三天每个班次的基本信息,包括:每个班次的班次号、发车时间、终点城市,座位数量;2今、明、后三天每个班次的旅客登记表,表项有:姓名、身份证号、座号。 系统功能要求如下: 1创建存贮一天(开始时创建今、明、后三天的,以后每天创建后天的)每个班次的基本信息的存贮系统; 2创建每个班次的旅客登记表(每次售该班次的客票时创建);3办理售票,即在旅客登记表中添加旅客信息(座位号不能重);4办理退票,即在旅客登记表中删除旅客信息; 5. 可查询当前指定班次的余票数和座位号;6输出指定班次的旅客登记表(发车前交驾驶员用)。提示 1.MFC应用:创建一个班次信息类,包含每个班次的班次号、发车时间、终点城市,座位数量、已售数量,应派生自CObject类,并实现序列化操作;在文档类中添加存储班次类的链表或数组(可用MFC的集合类或直接定义班次数组),在文档类Serialize函数中实现序列化;通过菜单打开对话框,在对话框中创建班次信息、售票、退票,并更新文档数据;每当班次信息发生变化(有新班次增加或售票或退票),输出一次当前班次信息(用多个对话框);实现班次查询功能,视图类显示查询结果;班次信息可保存到文件并可读出。 2.控制台应用:创建班次信息类,类似提示1;定义存储班次信息的链表或数组,每当有新班次增加或售票或退票情况发生,添加或删除相应对象。设计指导:可不按上面的要求作,难度上可适当降低。1) 建立班次类,加入表示班次的班次号、发车时间、终点城市,座位数量的成员变量;2) 建立座位类,加入表示座位的顾客姓名、身份证号、座号的成员变量;3) 在文档类中加入关于班次类的集合类,管理所有班次信息;4) 在班次类中加入关于每个座位的集合类,管理所有座位信息。题目三:西文图书室管理系统 该系统存贮以下信息:1、对于同一作者同一书名的书,存贮书名、书目编号、作者名、库存册数(不包括已借出的)、已借出册数。2、对于每一本书还要存贮一个登录号(这是区别每一本书的唯一标志)、当前借阅该书的读者姓名与借书证号、借阅日期。 系统功能要求如下: 1创建存贮系统; 2增加新书; 3删去无使用价值的旧书; 4处理借书。要求读者提供书目号与登录号一位读者限借2册。(应检查库中有无读者要求借阅的图书,检查该读者已借阅图书数量); 5处理还书;6查询某登录号的书是谁借了。提示 1.MFC应用:创建书信息类,包括书名、书目编号、作者名、登录号(这是区别每一本书的唯一标志)、当前借阅该书的读者姓名与借书证号、借阅日期,还定义两个静态数据成员库存册数(不包括已借出的)、已借出册数,用于记录同一作者同一书名的书的借阅情况,应派生自CObject类,并实现序列化操作;在文档类中添加表示库存书和已借出书的链表或数组(可用MFC的集合类),在文档类Serialize函数中实现序列化;通过菜单打开对话框,在对话框中实现增加新书、借书、还书和查询功能并及时更新文档(用多个对话框);视图类显示查询结果;库存书和已借出书的信息可保存到文件并可读出。 2.控制台应用:创建书信息类,类似提示1;定义存储库存书和借出书信息的链表或数组,每当借阅情况发生变化,添加或删除相应对象。设计指导: 1) 建立书籍类,加入表示该书的书名、作者名的成员变量;2) 建立一本书的登录类,加入表示登录号、借出标志、读者姓名与借书证号、借阅日期的成员变量;3) 在文档类中加入关于书籍类的集合类,管理所有(同一作者同一书名)书籍信息;4) 在书籍类中加入关于每本书登录类的集合类,管理该书籍所有登录书的信息。通过集合类(登录类的借出标志)计算库存册数和已借出册数。题目四:职工信息管理系统 该系统在磁盘上存贮某单位所有职工的基本信息,对于每一个职工存贮:职工编号、姓名、性别、出生年月、职称、最后学历,工资和婚否。 系统功能要求如下: 1创建存贮该单位职工信息的存贮系统。(第一次输入职工基本信息时); 2增加职工信息,增加新职工时辖人新职工的基本信息; 3删除某职工的基本信息。(如,死亡或离职); 4修改某职工(指定职工编号)的某些信息(如,加工资、获得新学位、晋升职称、结婚或离婚)。 5. 可以输出符合某种特征的职工信息列表: *全体职工信息列表; *某职称的职工信息列表; *某年月以后出生的职工信息列表; *某年月以前出生的职工信息列表;*未婚职工信息列表。提示 1.MFC应用:创建职工信息类,包括职工编号、姓名、性别、出生年月、职称、最后学历、工资和婚否,应派生自CObject类,并实现序列化操作;在文档类中添加存储在职职工的链表或数组(可用MFC的集合类),在文档类Serialize函数中实现序列化;通过菜单打开对话框,在对话框中实现增加新职工、删除某个职工、修改信息和查询功能并及时更新文档(用多个对话框);视图类显示查询结果;职工信息可保存到文件并可读出。 2.控制台应用:创建职工信息类,类似提示1;定义存储在职职工的链表或数组,每当职工信息发生变化,添加或删除或修改相应对象。设计指导: 1) 建立职工类,加入表示该职工的编号、姓名、性别、出生年月、职称、最后学历,工资和婚否的成员变量;2) 在文档类中加入关于职工类的集合类,管理所有职工信息;题目五:教学事务管理系统 该系统要求存贮如下信息:1注册信息。每个学期的注册信息应包括每个已注册学生的班级代号,学号、姓名、注册的学期。2. 选课信息。包括已注册的每个学生每个学期所选课程,本程序仅限一年级两个学期。3成绩。每个学生所选的课程的考核成绩,包括补考成绩。 系统功能要求如下: 1能输入注册信息、选课信息和成绩; 2能输出以下表格: *分班的某门课程不及格的名单(含学号、姓名、成绩); *某门课程全年级前5名的学号、姓名、成绩; *某门课程的选修者名单(含学号); *某个学生本学期的成绩单; *某门课程每个班的总平均分(从高到低排列);*某门课程某班的成绩单(按学号排列)。提示 1.MFC应用:创建学生信息类,包括注册信息、选课信息和成绩,派生自CObject类,并实现序列化操作;在文档类中添加存储注册学生的链表或数组(可用MFC的集合类),在文档类Serialize函数中实现序列化;通过菜单打开对话框,在对话框中输入注册、选课、输入成绩、查询要求(用多个对话框);视图类显示查询结果;职工信息可保存到文件并可读出(序列化)。 2.控制台应用:创建学生信息类,包括注册信息、选课
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号