1.单位员工通讯录管理系统(线性表的应用)
【问题描述】
- 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[实现提示] 可以采用单链表的存储结构,如可定义如下的存储结构:
typedef struct { /员工通讯信息的结构类型定义/
char num[5]; /员工编号/
char name[10]; /员工姓名/
char phone[15]; /办公室电话号码/
char call[15]; /手机号码/
char mail[25]; /邮箱/## 标题 }
ElemType; /通讯录单链表的结点类型/
typedef struct
LNode { ElemType data; /结点的数据域/ struct LNode *next;
/结点的指针域/ }LNode,*LinkList;
2.算法设计思路
创建通讯录方法,录入员工信息,当记录第一个员工信息,头节点不再为空,把第一个节点赋予给下一个结点,继续录入,直到完成,把尾结点赋予成空。
创建多个方法
void CreateList(LinkList &L)//创建通讯录
void GetdataList(LinkList &L)//查询员工信息
void ModifydataList(LinkList &L)//修改员工信息
void InsertdataList(LinkList &L)//插入员工信息
void DeletedataList(LinkList &L)//指定位置删除元素
void PrintfList(LinkList &L)//打印员工信息
void Menu()//功能菜单
int main()//主函数
3.源代码(如下)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
typedef struct{
char num[5];//员工编号
char name[5];//员工姓名
char phone[15];//办公室电话
char call[15];//手机号码
char mail[25];//电子邮箱
}DataType; //数据信息,通讯录单链表的结点类型
typedef struct node{
DataType data;//结点的数据域
struct node *next;//结点的指针域
}ListNode,*LinkList;//ListNode是data结点的数据域类型,*LinkList是node *next结点的指针域类型
void CreateList(LinkList &L)//创建通讯录
{
int i,n;
ListNode *p,*tail;
L=(LinkList)malloc(sizeof(ListNode));
L->next=NULL;
printf("请输入员工的人数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("请输入第%d个员工的信息:",i);
p=(LinkList)malloc(sizeof(ListNode));
printf("员工编号:");