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

单位员工通讯录管理系统(线性表的应用)
[问题描述]
        为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[实现提示]
         可以采用单链表的存储结构,如可定义如下的存储结构:
typedef struct { /*员工通讯信息的结构类型定义*/
char num[5]; /*员工编号*/
char name[10]; /*员工姓名*/ 
char phone[15]; /*办公室电话号码*/
char call[15]; /*手机号码*/
char mail[25]; /*邮箱*/
}DataType;
/*通讯录单链表的结点类型*/
typedef struct node
{ DataType data; /*结点的数据域*/
struct node *next; /*结点的指针域*/
}ListNode,*LinkList;

要点提示:单链表的基本操作。

源代码:

#include
using namespace std;
typedef struct 
{                      //员工通讯信息的结构类型定义
	char num[5];       //员工编号
	char name[10];     //员工姓名
	char phone[15];    //办公室电话号码
	char call[15];     //手机号码
	char mail[25];     //邮箱
}DataType;
typedef struct node
{ 
	DataType data;      //结点的数据域
	struct node *next;  //结点的指针域
}ListNode,*LinkList;

void CreateList_L(LinkList &L)    
{//创建通讯录
	int i,n;
	ListNode *p;
	L=(LinkList)malloc(sizeof(ListNode));
	L->next=NULL;
	cout<<"请输入员工人数:"<>n;
	for(i=1;i<=n;++i)
	{
		cout<>p->data.num; 
		cout<<"姓名";
		cin>>p->data.name;
		cout<<"办公室电话号码";
		cin>>p->data.phone;
		cout<<"手机号码";
		cin>>p->data.call;
		cout<<"邮箱";
		cin>>p->data.mail;
		p->next=L->next;
		L->next=p;
	}
}

void GetdataList_L(LinkList &L)
{//查询员工信息
	ListNode *p;
	int j=0;
	p=L->next;char numm[5];
	cout<<"请输入员工编号:"<>numm;
	while(p)
	{
		if(strcmp(p->data.num,numm)==0)
		{j=1;break;}
		p=p->next;
	}
	if(j)
	{
		cout<<"===编号==="<<"===姓名==="<<"===办公室电话号码==="<<"===手机号码==="<<"===邮箱==="<data.num
		<<"       "<data.name
		<<"          "<data.phone
		<<"                "<data.call
		<<"            "<data.mail<next;char numm[5];
	cout<<"请输入修改员工的编号:"<>numm;
	while(p)
	{
		if(strcmp(p->data.num,numm)==0)
		{j=1;break;}
		p=p->next;
	}
	if(j)
	{
		cout<<"请输入修改后的员工信息"<>p->data.name;
		cout<<"办公室电话号码";
		cin>>p->data.phone;
		cout<<"手机号码";
		cin>>p->data.call;
		cout<<"邮箱";
		cin>>p->data.mail;
	}
	else
		cout<<"编号为"<>p->data.num; 
	cout<<"姓名";
	cin>>p->data.name;
	cout<<"办公室电话号码";
	cin>>p->data.phone;
	cout<<"手机号码";
	cin>>p->data.call;
	cout<<"邮箱";
	cin>>p->data.mail;
	p->next=L->next;
	L->next=p;
}

void DeletedataList_L(LinkList &L)
{//指定位置删除元素
	ListNode *p;
	int j=0;
	p=L;char numm[5];
	cout<<"请输入删除员工的编号:"<>numm;
	while(p->next)
	{
		if(strcmp(p->next->data.num,numm)==0)
		{j=1;break;}
		p=p->next;
	}
	if(j)
	{
		p->next=p->next->next;
		cout<<"删除成功"<next;
	cout<<"===编号==="<<"===姓名==="<<"===办公室电话号码==="<<"===手机号码==="<<"===邮箱==="<data.num
		<<"       "<data.name
		<<"          "<data.phone
		<<"                "<data.call
		<<"            "<data.mail<next;
	}
}

void menu()
{
	cout<>n;
		if(n==1)
			GetdataList_L(L),system("pause");
		else if(n==2)
			ModifydataList_L(L),system("pause");
		else if(n==3)
			InsretdataList_L(L),system("pause");
		else if(n==4)
			DeletedataList_L(L),system("pause");
		else if(n==5)
			PrintfList_L(L),system("pause");
		else if(n==6)
		break;
		else
		{
			cout<<"输入有误,请重新输入!"<


你可能感兴趣的:(数据结构课程设计)