数据结构课设--1单位员工通讯录管理系统(线性表的应用)

一、 单位员工通讯录管理系统(线性表的应用)[问题描述]为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。[实现提示]可以采用单链表的存储结构,如可定义如下的存储结构:typedef struct { /*员工通讯信息的结构类型定...
摘要由CSDN通过智能技术生成

一、 单位员工通讯录管理系统(线性表的应用)

[问题描述]

为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。

[实现提示]

可以采用单链表的存储结构,如可定义如下的存储结构:

typedef struct {       /*员工通讯信息的结构类型定义*/

    char num[5];       /*员工编号*/

    char name[10];     /*员工姓名*/

    charphone[15];    /*办公室电话号码*/

char call[15];     /*手机号码*/

char mail[25];     /*邮箱*/

}DataType;

/*通讯录单链表的结点类型*/

typedef struct node

{ DataType data;       /*结点的数据域*/

 struct node *next;   /*结点的指针域*/

}ListNode,*LinkList;

一、算法设计

    1.实现提示中已经给出了现成的存储结构,便于我们的实验。不同的是,我在ListNode的结构存储中多加了一项length,还有Datatype类型中的xulie。length用来判断方便计算员工人数。xulie用来存储员工当前在整个员工中排列的序列号。同时为了方便员工的插入,设置一个尾指针,始终接在最后一个结点的后面,并且让他的指针域指向NULL。而在实现员工的查询功能的时候采用查找的关键字是员工的编号,因为员工的编号是唯一可以确定的,其他信息都可以重复,查找不具有唯一确定性。另外再删除的过程中,要对员工所处的位置进行重新的编号,即改变本身的序列号。这样在输出员工信息的时候也比较整齐划一。

各个函数之间的调用关系如下图所示:

main()  mainjiemian()

write()

display

()

find()

update()

insert()

remove()

Mainjiemian()

2.本程序中包含11个模块

(1)主函数:int main();(2)退出界面:voidexit();

(3)插入员工信息函数:bool insert(Linklist &l);

(4)删除固定员工信息函数:bool remove(Linklist &l);

(5)修改指定员工信息函数:void update(Linklist &l);

(6)查找员工信息函数:void find(Linklist l);

(7)打印员工信息:void display(Linklist l);

(8)显示单个员工信息:void show(Linklist p);

(9)录入员工信息:void write(Linklist &l);

(10)构建一个空的链表:void initlist(Linklist &l);

(11)显示管理系统主界面的函数:void mainjiemian();

3.元素类型、结点类型和指针类型

typedefstruct         /*员工通讯信息的结构来行定义*/

{  int xulie;          /*员工所处序号*/

   char num[50];       /*员工编号*/

   char name[50];      /*员工姓名*/

   char phone[50];     /*办公室电话号码*/

   char call[50];      /*手机号码*/

   char mail[50];      /*邮箱*/

}Datatype,*Data;

typedefstruct node    /*通讯录单链表的节点类型*/

{  int length;

 

  • 3
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值