欢迎来到天天文库
浏览记录
ID:9251112
大小:84.50 KB
页数:22页
时间:2018-04-25
《单位员工通讯录管理系统程序设计毕业设计(论文)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、程序设计书单位员工通讯录管理系统班级:软件091姓名:单位员工通讯录管理系一、程序设计目标:通过设计一个《单位员工通讯录管理系统》,进一步理解数据结构中有关于线性表的基础概念、算法,并且熟悉对线性表的一些基本操作。例如,线性表的特点,线性表的一些基本操作(初始化、插入、删除、查找),顺序表和链表的区别及各自的优缺点,理解数据结构在程序设计中的中的重要性等等。二、问题描述:为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。三、概要设计
2、:3·1系统需求分析为了更加方便快捷的查询、修改、插入和删除员工的信息,可以采用单链表的存储结构,因为在链表中做插入或删除结点的操作(对于结点中只有后继指针的链表是指“后插入或删除”)时,不会发生数据移动,操作效率比较高。链表的存储空间占用量是动态的,无需事先分配备用空间,也不会发生表满溢出的现象。具体形式如下:如可定义如下的存储结构:typedefstruct/*员工通讯信息的结构类型定义*/{charnum[5];/*员工编号*/charname[10];/*员工姓名*/charphone[15];/*办公室电话号码*/charcall[15];/*手机号码*
3、/}DataType;typedefstructnode/*通讯录单链表的结点类型*/{DataTypedata;/*结点的数据域*/structnode*next;/*结点的指针域*/}ListNode,*LinkList;3·2功能需求分析:对于程序中需要查询、修改、插入、删除等操作,可以使用单链表的相关算法—建立单链表、初始化单链表、单链表中插入元素、单链表中删除元素、单链表中按序号,按值查找、单链表的求长、单链表的遍历。程序中使用的是“尾插入”,算法如下:LinkList*Addhead(){/*尾插入法建立一个带头结点的单链表,返回表头指针*/LinkL
4、ist*head=NULL,*q=head,*p;Intx;scanf(“%d”,&x);while(x!=flag){p=(LinkList*)malloc(sizeof(LinkList));p->data=x;if(head=NULL)head=p;elseq->next=p;q=p;scanf(“%d”,&x);}If(q!=NULL)q->next=NULL;Returnhead;}初始化单链表:voidInitList(LinkList*head){/*初始化带头结点的表头指针*/head=(LinkList*)malloc(sizeof(LinkLi
5、st));head->next=NULL;}单链表中插入(添加)元素:①q=(LinkList*)malloc(sizeof(LinkList));/*申请一个新结点,用q保存结点的地址*/②q->data=d;/*把值d写入q所指的结点的数据域*/③q->next=ptr->next;/*令指向所指结点的下一个结点*/④ptr->next=q;/*令ptr->next指向q所指结点*/单链表中删除元素:①q=ptr->next;/*让q指向ptr所指结点的下一个结点*/②ptr->next=q->next;/*令ptr->next指向q所指结点的下一个结点*/③
6、free(q);/*释放q所指结点*/单链表按序号查找:LinkList*GetNode(LinkList*head,inti){/*在带头结点的单链表中查找第i个结点,找到返回该结点指针,否则返回NULL*/LinkList*p=head;intj=0;while(p->next&&jnext;}if(j==i)returnp;elsereturnNULL;}单链表按值查找:LinkList*LocateNode(LinkList*head,intx){/*带头结点的单链表中查找值为x的结点,找到返回结点指针,否则返回NULL*/Lin
7、kList*p=head->next;while(p&&p-data!=x)p=p->next;returnp;}3·3系统流程图:单位员工通讯录管理系统通讯录管理系统浏览数据插入数据删除数据修改数据搜索数据显示帮助图1系统流程图四、详细设计:4·1模块设计:4·1·1主函数主函数设计要求简洁,只提供部分提示语和函数的调用.程序:显示一系列功能选项输入n,判断n是否是1~7?根据n的值调用各功能模块函数结束开始n图2主函数流程图intmain(intargc,char*argv[]){intch;PrintMenu();HEAD=LoadList();printf
8、(""
此文档下载收益归作者所有