湖南涉外经济学院课程设计报告
课程名称:面向对象程序设计课程设计
报告题目:通讯录管理
学生姓名:蒋行伍田方成刘倩
所在学院:信息科学与工程学院
专业班级:计应1301 指导教师:
2014 年6月10日
课程设计任务书
摘要
在《面向对象程序设计》课程理论与实验教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统,复习与深入掌握面向对象的程序设计思想与技术方法。同时,作为整个实践教学体系一部分,系统培养学生采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。
本课题要设计的是简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。
程序提供了通信录的基本管理功能。包括添加、显示、存储、装入、查询和修改等功能。
关键词:类;C++;通讯录;结构体
目录
一、概述 (1)
二、方案设计 (2)
1.类设计 (2)
2.特殊设计 (2)
三、系统整体设计及详细设计 (2)
1.整体设计 (2)
2.详细设计 (3)
四、系统测试 (6)
五、结论与心得 (8)
六、参考文献 (10)
七、程序代码 (11)
一、概述
编写一个简单的通讯录管理程序。通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。
程序应提供的以下基本管理功能有:
1)添加:即增加一个人的记录到通信录中
2)显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。
3)存储:即将通讯录信息保存在一个文件中。
4)装入:即将文件中的信息读入程序。
5)查询:可根据姓名查找某人的相关信息,若找到显示其姓名、地址、电话号码和邮政编码。
6)修改:可修改一个人的除姓名外其它信息。
二、方案设计
1.类设计
程序可用一个单向链表来管理人员信息,每个人员的姓名,地址,电话号码和邮政编码用一个类来实现,作为链表的值指针指向这些类对象,通过链表的遍历可以操作这些数据。
首先,本程序中设计如下的结构体存储通信录信息。该结构体重包括了姓名、
基于该结构体,定义了如下通信录类。该类中包括了指向结构体的头指针head。函数InitTeleBook()的功能是初始化head;函数isNameExist的功能是判断名字是否已存在结构体中,如果存在则返回1,否则返回0;函数addTeleBook()的功能是添加通讯录信息;函数findByName()的功能是根据姓名查找某人的相关信息;函数printTeleBook()的功能是在屏幕上显示所有通信录中的人员信息,可以分屏显示;函数writeToFile()的功能是将通讯录信息保存在一个文件中;函数loadFromFile()的功能是将文件中的信息读入程序;函数updateTeleBook()的功能是修改一个人的除姓名外其它信息。
2.特殊设计
本程序为了加快数据定位查找的速度,采用常用优先的方法对链表的各个节点进行排序,即一旦操作了一个人员的数据,他的数据就将被调用到链表的链首。这样经过有限次操作,经常查阅的人员的信息就将排在链表的前端。虽然不能说链首的节点一定是最常用的,但常用的节点一定会排在较靠前的部分,链表查找时所要走的平均距离一定较短。
对于人员重名的情况,本程序会检测到将要添加的人名是否重复,并将提示用户重新输入新的人名。
三、系统整体框架及详细设计
1.总体框架
系统的整体框架如图1所示。
图1 系统总体框架
2.详细设计
显示通讯录功能的实现主要通过遍历链表来实现,主要代码如下所示。
文件的存储和读出主要是通过istream和ostream来完成,具体代码如下所示。