C手机通讯录课程设计报告书

发布时间 : 星期日 文章C手机通讯录课程设计报告书更新完毕开始阅读

通讯录管理系统

1、 设计目的

1.通过实验实现对通讯录系统的管理操作; ○

2.进一步掌握和利用C++进行程设计的能力; ○

3.进一步理解和运用结构化程序设计的思想和方法; ○

4.初步掌握开发一个小型实用系统的基本方法; ○

5.学会利用流程图或N-S图表示算法; ○

6.掌握书写程设计开发文档的能力(书写课程设计报告); ○

2、总体设计

通讯录管理系统 3、详细设计:

3.1、程序具体功能:

1、排序

利用冒泡排序,根据链表中的联系人的姓名进行排序。主要用于修改联系人,修改的可能是联系人的名字,为保证链表中的联系人是按姓名排序,需要对联系人进行整体排序;添加联系人时,为降低代码的时间复杂度,将联系人插入到合适位置来实现链表的有序。 2、添加联系人

将要插入的联系人的姓名和链表中联系人的姓名依次进行比较,将联系人姓名插入到合适的位置,插入后保存联系人到文件并提示添加成功。 3、查找

从键盘上输入联系人名字中的字(一个或多个),根据输入的字,将通讯录中所有联系人姓名和该字进行匹配,从而输出所有包含该字的联系人的信息。 4、删除

根据要删除的姓名,和链表中的联系人姓名一一比较,找到后提示是否确定将联系人的信息删除,选择确定则删除联系人信息并提示删除成功,否则放弃删除操作。删除后保存剩下的联系人到文件。 5、修改

将要修改的姓名和链表中的联系人姓名一一比较,找到要修改的联系人后,显示修改的选项,包括修改姓名,修改地址,修改手机号,修改邮箱和修改完毕选项。修改完毕后对将联系人进行排序,保证链表中的联系人按姓名有序排列,同时保存联系人到文件并提示修改成功。 6、统计

统计联系人的个数。

7、保存

将链表里的联系人保存到文件里。 8、浏览

将保存在文件里的联系人读取出来,带有相应的界面,实现联系人信息的遍历。

3.2、调试分析

调试前先初始化一个链表,链表包含5个联系人记录。

1.调试排序

用冒泡排序法将链表按照姓名进行排序,运行程序,观察链表是否排序成功。

2.添加联系人调试

根据联系人的姓名进行插入,调试包括将联系人添加到开始位置,中间位置和最后位置,添加后将所有联系人信息输出,运行程序,观察是否调试成功。 3.查找调试

输入要查找联系人姓名的一部分,看能不能将所有包含该输入字符串的联系人输出来。 4.删除调试

首先遍历所有联系人信息,分别调试删除开始位置,中间位置,最后位置的联系人,观察是否将联系人正确删除。 5.修改调试

修改调试包括修改姓名、手机号、地址、邮箱的调试以及同时修改多个属性的调试,修改后遍历所有联系人,观察是否修改成功。如果修改了姓名,还要观察修改后是否进行了相应的排序。 6.统计调试

数一下遍历输出的联系人,观察是否和统计出来的相同。同时还要测试删除、添加后统计出的数是不是正确的。 7.保存调试

运行程序后,打开保存联系人的文件夹,观察文件的内容是否正确。

8.浏览调试

运行程序,观察是不是文件中的联系人正确读出。

9.界面调试

运行程序,观察界面是否满意,如果不满意,一直调试到满意为止。

10.异常处理调试

运行程序,从键盘上随便输入数据,观察程序是否出现bug。 11.通讯录为空调试

当通讯录为空时,对于执行查询操作、修改操作、删除操作、浏览所有联系人操作、以及查看联系人个数操作,系统均提示“通讯录为空!”。

4、源程序和运行结果

4.1、源程序

头文件(a.h):

#include using namespace std; template struct Node { };

class Person { };

template class Telebook {

public:

Telebook();//无参构造函数

Telebook(DataType a[],int n);//有参构造函数 ~Telebook(){};//析构函数 public:

char name[10];//姓名 char address[15];//地址 string phone;//手机号码 string mail;//邮箱 { }

Person(char *nam,char *addr,string phone,string mail) { }

strcpy(name,nam); strcpy(address,addr); this->phone=phone; this->mail=mail;

DataType data; Node *next;

Person()

联系合同范文客服:xxxxx#qq.com(#替换为@)