0x00 主要思想
员工通讯录的实现其实就是单链表的简单应用,只要预先定义一个存放通讯录数据信息的结构体,以及相关的指针结点等,然后就是单链表的以希望简单应用用来实现创建、插入、查找、删除、以及其他的相关功能即可。
0x01 程序源码
员工通讯录的实现其实就是单链表的简单应用,只要预先定义一个存放通讯录数据信息的结构体,以及相关的指针结点等,然后就是单链表的以希望简单应用用来实现创建、插入、查找、删除、以及其他的相关功能即可。
0x01 程序源码
//单位员工通讯录管理系统
#include<string.h>
#include<ctype.h>
#include<malloc.h>
#include<limits.h>
#include<stdio.h>
#include<stdlib.h>
#include<io.h>
#include<math.h>
#include<process.h>
#include<iostream>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
typedef int Status;
typedef int ElemType;
typedef struct
{
char name[25];
char num[5];
char call[15];
char phone[15];
char mail[25];
}DataType;
typedef struct Node
{
DataType data;
struct Node *next;
struct Node *t;
}Node,*LinkList;
// 构造一个空链表并向其中插入数据
int Createlinklist(LinkList &L)
{
L = (LinkList)malloc(sizeof(Node));
int n;
printf("请输入建立通讯录员工的人数:");
scanf_s("%d",&n);
LinkList q;
L->next = NULL;
q = L;
for (int i = 0; i < n;i++)
{
LinkList p;
p = (LinkList)malloc(sizeof(Node));
printf(" 员工编号:");
cin >> p->data.num;
printf(" 员工姓名:");
cin >> p->data.name;
printf(" 手机号码:");
cin >> p->data.call;
printf(" 办公室电话:");
cin>>p->data.phone;
printf(" 邮箱地址:");
cin>>p->data.mail;
p->next = NULL;
q->next = p;
q = p;
}
return 0;
}
//判断链表是否为空并输出p指针结点(查找的前段步骤)
LinkList LinkEmpty(LinkList &L)
{
char number[5];
printf("请输入员工编号:");
scanf_s("%s",number,5);
LinkList p = L;
if (!(p->next))
{
printf("通讯录为空,请先输入后再查询!");
return NULL;
}
else
{
while (p!=L->t)
if (strcmp(p->next->data.num, number))
p = p->next;
else
return p;
return p;
}
}
//查找出员工
int Findperson(Li