2012 面向对象程序设计 课程设计题目及要求
使用面对象的方法,分析下列题目,编写程序及说明文档。以下四题任选一个。
开发环境:CODE::BLOCKs
************************************************************************************
以下几个知识点没有细讲,请大家从书上或是网上查找自学并可用于课程设计中:
(1) 动态类型转换:dynamic_cast<...>...
(2) 多重继承,定义,作用,优缺点。
(3) 类中的静态成员 static
**************************************************************************************
提交材料:设计文档+程序
(1)其中设计中的内容为:问题描述、问题分析、问题设计(可选,可参考UML的相关容来写,需自学),编程要点、测试。
(2)提交文档命名要求:
设计文档:学号+姓名.DOC
程序放一个文件夹中,文件夹的名字为:学号+姓名
例如:学号为12345678,姓名为计科,则提交的设计文档的名字为:12345678计科.DOC;提交的程序所在的文件夹名子为:12345678计科。
***************************************************************************************
1. 通讯录管理
问题描述
编写一个简单的通讯录管理程序。通讯录中分为一般条目和朋友条目。一般条目有姓名,地址,电话号码,邮政编码四项。朋友条目除具有一般条目的所有信息之外,还有Email,家庭电话。
基本要求
程序应提供的基本基本管理功能有:
1)添加:即增加一个人的记录到通信录中。(可以是一般条目,也可以是朋友条目。)
2)显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。
3)存储:即将通讯录信息保存在一个文件中。
4)读入:即将文件中的信息读入程序。
5)查询:可根据姓名查找某人的相关信息,若找到显示其姓名、地址、电话号码和邮政编码。
6)修改:可修改一个人的除姓名外其它信息。
7)排序:可以根据据条目的某个项对所有条目进行排序,如姓名,或是邮政编码等。
测试数据
程序应输入不少于10个人员的通讯录信息,应考虑到人员可以同名的情况。
实现提示
… …。
选做内容
为了加快数据定位查找的速度,采用常用优先的方法对所有条目排序。使用次数最多的条目,要排在数据结构的首位,依次类推。这样经过有限次操作,经常查阅的人员的信息就将排在数据结构的前端。这样,但常用的条目排在较靠前的部分,查找时所要走的平均距离较短。
由于本题的雏形,在上课的过程中做过,所以请在文档中重点写自己扩展的那些内容,自己是如何使用面向对象的方法实现这些功能的。
2.图书馆管理系统
可以完成图书的入库管理(添加、修改)。借阅的人员有教师、学生,教师、学生是具有借书资格的人员。借阅人员可以从图书馆借书(借、还、逾期罚款)。在实现上述功能的同时,可以根据理解给程序添加功能。
3. 绘图程序
P编写一个绘图程序,使得可以在屏幕上画各种形状(线、长方型、正方型、圆等)。可以模仿windows中的画笔。如何在CODE::Blocks中画图?可以使用第三方库(Third-party libraries)wxWidgets,参见:http://wiki.codeblocks.org/index.php?title=Using_wxWidgets,更多的使用方法可以google。
4.学生成绩管理系统
OOP编写一个程序,对学生的考试成绩进行管理,其中包括对学生、老师、课程、学生的成绩进行管理。