欢迎来到天天文库
浏览记录
ID:12979356
大小:55.00 KB
页数:13页
时间:2018-07-20
《数据结构课程实践之通讯录程序报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、哈尔滨理工大学管理学院信息系课程设计(数据结构)班级_信息11-2班姓名学号110604022013年6月30日目录第1章:问题描述2第2章.算法设计22.1数据结构设计22.2算法设计4第3章.运行与设计11第4章.设计心得12通讯录管理系统的设计与实现第1章:问题描述通讯录管理系统一般包括通讯者结点信息的插入、查询、删除、更新以及通讯录信息的输出等功能。而通讯者的信息一般包括编号、姓名、性别、电话以及地址等项。现假设链表结点仅含有一个数据域和一个指针域。数据域是为了描述通讯者的有关信息,定义一个通讯者的结点类型:Typedefstruct{Ch
2、arnum[5];Charname[9];Charsex[3];Charphone[13];Charaddr[31];}DataType;因此,线性表的链式存储结构定义如下:Typedefstructnode{DataTypedata;Structnode*next;}ListNode*LinkList;ListNode*p;LinkListhead;第2章.算法设计2.1数据结构设计管理信息系统的设计一般都采用自顶向下的设计方法,它是一种逐步求精的设计程序的过程和方法,即对要完成的任务进行分解,先对最高层次中的问题进行定义、设计、编程和测试,而将
3、其中未解决的问题作为一个子任务放到下一层次中去解决,这样逐层、逐个的进行定义、设计、编程和测试,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。1.顶层主控菜单设计(1)设计菜单内容程序运行后,给出6个菜单项的内容和输入提示。1.通讯录链表的建立2.通讯者信息的插入1.通讯者信息的查询2.通讯者信息的修改3.通讯者信息的删除4.通讯者链表的输出0.退出管理系统请选择0-6:(2)实现循环和功能选择假设输入选择用变量sn存储,它作为menu_select函数的返回值提供给switch语句。使用for循环实现重复选择,并在主函数m
4、ain()中实现。#include#includeVoidmain(){For(;;){Switch(menu_select()){Case1:Printf(“通讯录链表的建立”);Break;Case2:Printf(“通讯者信息的插入”);Break;Case3:Printf(“通讯者信息的查询”);Break;Printf(“通讯者信息的修改”);Break;Case4:Printf(“通讯者信息的修改”);Break;Case5:Printf(“通讯者信息的删除”);Break;
5、Case6:Printf(“通讯录链表的输出”);Break;Case0:Printf(“再见!”);Return;}}}(3)得到sn的合理值如前所述,应该设计一个函数用来输出提示信息和处理输入,这个函数应该返回一个数值sn,以便供给switch语句使用。假设函数名为menu_select,设计的参考程序如下:Intmenu_select(){Intsn;Printf(“通讯录管理系统”);Printf(“===========================”);Printf(“1.通讯录链表的建立”);Printf(“2.
6、通讯者信息的插入”);Printf(“3.通讯者信息的查询”);Printf(“4.通讯者信息的修改”);Printf(“5.通讯者信息的删除”);Printf(“6.通讯者信息的输出”);Printf(“0.退出管理系统”);Printf(“===========================”);Printf(“请选择0-6”);For(;;){Scanf(“%d”,&sn);If(sn<0
7、
8、sn>6)Printf(“t输入错误,重选0-6”);ElseBreak;}Returnsn;}对于sn输入值,在s
9、witch中case语句对应数字1-6,对于不符合要求的输入,提示输入错误并要求重新输入。2.2算法设计功能模块函数设计(1)通讯录链表的建立这个实际上是要求建立一个带头结点的单链表。这里介绍尾插法建立链表的算法设计思想及具体算法实现。尾插法建立链表的算法描述如下:1)使链表的头尾指针head.rear指向新生成的头结点(也是为结点)2)至结束标志为03)设计循环语句While(结束标志不为真){循环语句;}4)尾结点指针域置空值NULL(2)通讯者信息的插入插入结点的基本思想是:使用两个指针变量p1和p2分别向当前刚访问过的结点和下一个带访问的结
10、点,循环顺序查找链表,寻找插入结点的位置,其中p1指向待插入位置的前一个结点。插入操作时非常简单的。其实现算法描述如下:1
此文档下载收益归作者所有