题目:通讯录管理子系统
一、问题描述
1. 题目内容:使用有关单链表的操作来实现通讯录信息系统的管理。
2. 基本要求:首先设计一个含有多个菜单项的主控菜单程序,然后再为这些菜单项配上
相应的功能。这几种操作功能包括单通讯录链表的建立,通讯者的插入,通讯者的删
除,通讯者的查询,通讯录表的输出,通讯者人数的统计以及按通讯者编号排序等。
3. 实验目的:掌握线性表这一数据结构中最简单、最常用的一种线性结构既线性表的顺
序存储结构。
4. 数据测试:见(七.测试结果)
5. 完成人员:
完成日期:
二、需求分析
1. 本程序的功能包括单通讯录链表的建立,通讯录的插入,通讯者的删除,通讯者的查
询,通讯录表的输出,通讯者人数的统计以及按通讯者编号排序等。
2. 程序运行后显现提示信息,等候用户输入 0—7 以进入相应的操作功能。
3. 用户输入数据完毕,程序将输出运行结束。
4. 测试数据应为通讯者的编号、姓名、性别、联系电话、地址。
三、概要设计
1. 带头结点的单链表抽象数据类型定义为:
ADT hlink_list{
数据集合 K:K={k1,k2,…,kn},n≥0,K 中的元素是 DataType 类型;
数据关系 R:R={r}
r={<ki,ki+1>|i=1,2,…,n-1}。
操作集合:
(1)LinkList CreateList(void) 建立一个带头结点的通讯录单链表;
(2)void InserNode(LinkList head ,ListNode *p) 在带头结点的通讯录链表中插入结点;
(3)ListNode *ListFind(LinkList head) 在带头结点的通讯录链表中查找结点;
(4)void DelNode(LinkList head) 在带头结点的通讯录链表中删除结点;
(5)void PrintList(LinkList head) 输出带头结点的通讯录链表中各个结点的值;
(6)void Bubblesort(LinkList head) 将带头结点的通讯录链表中各个结点按通讯者编号排
序。
}ADT hlink_list;