
设计开发
数据结构在通讯录管理系统设计中的应用
赵梦龙
(贵州职业技术学院贵州贵阳550004)
数字共本与或用
摘要:现阶段随着人们在生活中信息交流日益增多,信息通试的重要性已逐渐现出来,人们在日常工作中对通试工具的功能需求电越来越高,但无论何种通讯工具,其最主要的功能就是记录通试者的信息,方便于日后通讯时使用。本文利用数据结构以及C语言的相关知识,进行设计通试录管理系统,以达到快速了解联系人信息,方便管理通试录的日的,
关键词:数据结构通讯录管理程序设计软件调试
中图分类号:TP309 1系统设计
1.1功能方案设计
文献标识码:A
本设计主要利用单链表做存储结构,主要实现以下功能,
(1)通讯录链表的建立;(2)通讯者结点的插人;(3)通讯者结点的查询;(4)通讯者联系人的删除。(5)通讯录链表的输出在本模板中能过显示系统中已有所有联系人的相关信息;(6退出通讯录管理系统本模板功能是实现退出本系统的功能。
1.2程序详细设计
1.2.1结构体及链系氢据类型定文(1)/*定义用户登陆信息数据结构*/
typedef struct Z1 char name[20]; char pw[10],
struct LOGIN+next; LOGIN;
用该结构体建立一个链表用来记录用户注册时输人的数据,该数据用来在用户登陆时进行验证。
(2)/*定义用户数据结构*/
typedef struct Z2 char name[20];
char tel[20] char qq[20]; char addr[50]
struct PEOPLE+next PEOPLE
用该结构体建立一个链表用来记录通讯录中的联系人和相关信息。
1.2.2详细设计
(1)createlist:此函数的功能是实现通信录的初始建立。 If(head)
intc:printf("通讯录已经存在!是否要重新建立!>n1or0:");scanf("%d",&c),if(c==0)returmhead,}//如果通信录存在,则由用户作出决定是否重新建立,
(2)insertnode:此函数的功能是实现联系人的添加功能。
while(p2!=NULL&&strcmp(p2>data,num, P>data.num)<0)//用于判断所添加的联系人的位置,并使其插人到合适的位置。
(3)listfind;此函数的功能是实现联系人的查找功能。 if(!head)(
printf("尚未建立任何通讯录!"); return head,
//用于判断通信录是否为空,这样有利于程序的健壮性。
while(q&&strcmp(q>data .num,num)<0) q=q>next:
if(q==NULLIlstrcmp(q>data . num, num)>0)
q-NULL,//用来查找所需要的人的节点位置,并由此函数返回。(4)delnode:此函数的功能是实现联系人的删除操作。
通过调用listind函数来对需要修改删除的联系人存储位置节点收移日期:20150315
文章编号:1007-9416(2015)03-0168-0)
进行查找,如果返回值不为空,则表示该联系人在通讯录中存在,并会给用户提示说明是否删除该联系人,用户如果选择删除项,则free(P);
(5)printlist:此函数的功能是实现联系人的全部输出。 if(!head>next)
Drintf("当前通讯录中还没有任何信息>n");//用于判断通信录是否为空。
else采用链表的一般形式输出。(6)exit(0):用于退出整个程序。
2调试分析
程序要想交付给别人使用首先要进行调试分析,通过调试分析我们可以发现程序中隐藏的错误,观案程序运行的结果是不是自己想要的结果,通过对程序的不断调试和修改来达到优化程序的目的,使我们可以提供给用户更好的软件,
(1)在程序各个模块调试中经常会出现程序乱码或无法运行等情况,出现此类错误的原因主要是在对程序进行注释时没有及时切换中英文输人法的状态,导致输人字符或符号格式错误而引起的。(2)程序在输入信息的过程中需要对输人项给予输入回车才可以继续向下运行,但在该软件中有些选项在使用时是不需要输人回车的,造成用户体验感下降。(3)本次设计中出现比较频繁的错误便是函数调用错误,主要由于程序要实现的功能比较多,相关模块的功能实现有相同之处,导致对函数名的命名出现重复。(4)在函数调用的时候也会出现一些问题,比如程序调试时有些函数没有返回值,原因在于代码编写的过程中没有对数据结构分析清楚,出现程序运行得不到想要的结果。(5)文件系统在本模块设计时有着相当重要的作用。但在设计初期经常会出现文件调试和读取错误,主要原因是选用格式化输入与输出文件的方式,在使用二进制对数据进行管理时将有用信息保存到文件中造成的。(6)由于实现一个相应的功能可以选择的算法很多,然面在程序设计过程中因没有全面考虑一些算法固素,从而导致程序调试时出现一些莫名其妙的错误,还有在程序运行时代码及数据输出结果都是正确的,但唯独数据显示格式和结构有点问题,屏幕显示出现密密麻麻的数据,不能显示出让人
目了然的数据结果。 3结语
因为软件测试不可能暴露出软件系统中所有潜藏的错误,所以必须进行长久维护,软件的维护与更新是后期管理中时间最长的阶段,因此所花费的精力和费用也相对较多,随着社会发展和环境的变化,在今后的投人使用阶段需要不断对程序进行更新和改动。
在对程序开发之前,要对系统设计思路、基本框架图等关键工作进行充分准备,对系统功能设计、数据结构设计等前期工作都要进行分析并完善。可以利用网络资源进行资源收集,也可以借鉴前人研究经验进行设计,因此网络是程序设计很好的利用资源。此程序在设计完成后还需要在今后不断的进行维护和系统完善,使系统
更好的向美观化、生动化、人性化、丰富化的方向发展。参考文献
[1]陈燕.曹妍,贾红雨.数据结构(C语版)[M].北京:科学出版社 2014.
[2]王晓东.算法设计与分析[M].北京:清华大学出版社,2011.
作者简介:赵梦龙(1981一),男,河南驻马店人,硕士研究生,讲师,研究方向:信息安全与密码学 168