电子通讯录的制作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
报告
课程名称:电子通讯录的制作
班级:f3454545
学号:1234566776888
姓名:xxxx
完成日期:2010-7-13
电子通讯录的制作
1概要设计
(1)问题描述
使用单链表实现通讯录管理系统得实现,通过使用单链表申请内存空间来达到存储通讯录信息的目的。程序主要的功能包括通讯录的创建、插入、删除、打印等操作。
(2)基本要求
1、每条信息至少包含:姓名(name)、电话(telephone)、街道(street)、
城市(city)、邮编(eip)、国家(state)这几项;
2、作为一个完整的系统,应具有友好的界面和较强的容错能力;
3、利用单链表作为存储结构
4、上机能正常运行
(3)概要设计
为达到设计要求,本程序采用单链表对通讯录信息进行存储。
功能模块:
通讯录管理系统程序主要包括五个主要的功能模块:
1.通讯录的创建:对姓名和地址等信息的创建;
2.通讯录的插入:对姓名和地址等信息的插入;
3.通讯录的查询:输入查询的姓名查找相关信息;
4.通讯录的删除:输入删除的姓名,删除相关信息;
5.通讯录的显示:对姓名和号码等信息的显示;
系统总的功能图如下图2.1所示:
图2.1功能模块图
2详细设计
数据结构定义:
typedef struct ENode
{ int num;
char Add;//地址
char Name;//名字
char telephone;//电话号码
struct ENode *next;
}ENode,*ENoteBook;
流程图:
(1)通信录的创建:
如图2.2所示
图2.2通讯录创建流程图
总结:通讯录的添加主要是对姓名和地址的添加,通过主函数调用CreatList函数来创建通讯录信息。
(2)通讯录的插入:
如图2.3所示
图2.3通讯录插入流程图
总结:通讯录的插入主要是对姓名和地址的插入,通过主函数调用InsertNoteBook函数来插入通讯录信息。
部分代码:
void Checkmember(ENoteBook &L)//按名字查找函数
{ char str[MAX];ENoteBook Q;
printf("请输入你要查找的名字\n");
gets(str); gets(str);
if (L->next==NULL)
{printf("空链表\n");
}Q=L->next;
while(Q!=NULL)
{ if (strcmp(str,Q->Name)==0)
{
puts(Q->Name);puts(Q->Add);puts(Q->telephone);break;
}
else Q=Q->next;
}
if (Q==NULL) {
printf("没找到该节点!\n");
}
}
void PrintNoteBook(ENoteBook &L)//打印函数
{ ENoteBook P; P=L->next;
if(P!=NULL)
{ printf("\t电子通讯录\n");
printf("名字地址电话\n");
do
{ printf("%s %s %s",P->Name,P->Add,P->telephone);
printf("\n");
P=P->next;
}while(P!=NULL);
}
else
{printf("空表\n");
}
}
3调试报告
本系统已经基本完成通讯录管理系统的基本功能,在编写程序时,不断的添加新成员函数,程序在产生的过程中出现过很多复杂的错误,如程序头结点的是否为空的判断,如果为空则代表此链表为空等问题。这些问题在不断的测试过程中一一地解决了。
1.创建信息如图3.1
图3.1
2.打印信息如图3.2
图3.2 3.插入信息如图3.3
图3.3
4.查找信息如图3.4
图3.4 5.删除信息 3.5
图3.5
4测试结果
程序测试结果如下图所示:
图4.1 程序部分截图
图4.1
5 使用说明
此程序为通讯录管理系统的设计,运行程序后,系统显示选择菜单,第1项为创建通讯录信息,第2项为插入通讯录信息,第3项为打印通讯录信息,第4项为查找通讯录信息,第5项为删除通讯录信息。
根据系统提示:如果在查找的时候没有找到相关的信息,系统提示没有这个通讯录信息。
6总结
这次课程设计我的题目是通讯录管理系统的实现。我们有两个星期的时间来完成预习报告、程序的设计和课程设计报告。第一个星期主要的任务是根据课程设计的要求进行简单的设计并调试程序,初步完成了系统的各项要求,第二个星期主要是完善各个功能函数的设计,并完成课程设计的报告。通过这次的课程设计,我发现自己的在数据结构设计方面有很多的不足,主要体现在对知识点的掌握方面和界面的熟练操作方面。不过令人感到欣慰的是,通过这次课程设计我至少从一个初学者,到现在的自己可以独立阅读程序,掌握了以前