1、数据结构课程设计报告数据结构课程设计报告 1 电子与信息工程学院电子与信息工程学院 数据结构课程设计报告数据结构课程设计报告 ( 20122013 年度第一学期年度第一学期) 课程名称:课程名称: 数据结构课程设计数据结构课程设计 题题 目目 一一: 2.2 学生通讯录管理系统学生通讯录管理系统 题题 目目 二二: 2.4.3 城市链表城市链表 2012 年年 月月 日日 数据结构课程设计报告数据结构课程设计报告 2 设计题目设计题目: 2.2 学生通讯录管理系统学生通讯录管理系统 一、一、设计要求设计要求 1问题描述问题描述 纸质的通讯录系统已经不能满足大家的要求,容易丢失、查找困难等问题是
2、纸质通讯 录所不能克服的缺点。 “学生通讯管理系统”是为了帮助老师、同学,或者其他一些需要使 用通讯录的人员进行管理和分析的一种应用程序。 2需求分析需求分析 (1) 输入数据建立通讯录 (2) 查询通讯录系统中满足要求的信息 (3) 插入新的通讯录信息 (4) 删除不需要的通讯录信息 (5) 查看所有通讯录信息 二、二、概要设计概要设计 为了实现需求分析的功能,可以从三个方面着手设计。 1主界面设计主界面设计 为了实现学生通讯录管理系统各功能的管理, 设计一个含有多个菜单项的主控菜单子 程序以链接系统的各项子功能,方便用户使用本系统。本系统主控菜单运行界面如图 2-3 所示。 图 2-3 “
3、学生通讯录管理系统”主菜单 2存储结构设计存储结构设计 本系统主要采用链表结构类型来表示存储在“学生通讯录管理系统”中的信息。其 中,链表结点由四个分量构成:通讯录成员学号、通讯录成员姓名、通讯录成员电话号码、 指向该结构体的指针。此外,本系统还设置了一个全局变量 seat,表示通讯录中成员的序 号。 数据结构课程设计报告数据结构课程设计报告 3 3系统功能设计系统功能设计 本系统设置了 5 个子功能菜单,5 个子功能的设计描述如下。 (1)建立通讯录系统 。可以一次输入多个成员通讯录的信息,建立通讯录。该功能由 creatIncreLink( )函数实现。 (2)插入通讯记录。 每次可以插入
4、一个成员通讯录的信息。 如果要连续插入多个成员通讯 录信息必须多次选择该功能。该功能有 insertYouXu( )函数实现。 (3)查询通讯记录。可以按两种方式查询所需要的通讯录成员记录,一是按学号查询,二 是按姓名查询。分别由 seartNum( )和 seartName( )函数实现。 (4)删除通讯记录。可以对通讯录中不再需要的信息进行删除。有三种删除方式:按序号 进行删除,按学号进行删除和按姓名进行删除。分别由 deleteElem( )函数,delNum( )函数 和 delName( )函数实现。 (5)显示通讯录系统。可以查看通讯录中所有的通讯录成员记录。该功能由 printL
5、ist( )函 数实现。 三、模块三、模块设计设计 1模块设计模块设计 本程序包含两个模块:主程序模块和链表操作模块。其调用关系如图 2-4 所示。 图 2-4 模块调用示意图 2系统子程序及功能设计系统子程序及功能设计 本系统共设置 10 个子程序, 各程序的函数名及功能说明如下, 其中大部分函数都是链 表的基本操作函数。 (1) LinkList creatIncreLink( ) /链表的创建 (2)deleteElem( LinkList L,int i) /从通讯录中按序号删除第 i个元素 (3)delName(LinkList L,char n ) /按姓名删除通讯录记录 (4)d
6、elNum( LinkList L,int n) /按学号删除通讯录记录 (5)void insertYouXu(LinkList L,LinkList Elem ) /插入一条通讯录 (6)printList( LinkList L) /打印指针地址为 L 的通讯录 (7)prior ( LinkList L,LinkList p) / 查找位于当前地址元素的前一元素的地址 主程序模块 链表操作模块 数据结构课程设计报告数据结构课程设计报告 4 (8)searchName( LinkList L,int n) /按姓名查找通讯录记录 (9)int searchNum( LinkList L,int n) / 按学号查找查找通讯录记录 (10) void main( ) /主函数。设定界面的颜色和大小,调用链表操作模块