#include<iostream>
using namespace std;
#include<windows.h>
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;
void CreateLinkListW(LinkList &L,ElemType a[],int n)
{L=(LinkList)malloc(sizeof(LNode));LinkList p=L,s;for(int i=1;i<=n;i++){s=(LinkList)malloc(sizeof(LNode));s->data=a[i];p->next=s;p=s;}p->next=NULL;}
int GetLength(LinkList L)
{int len=0;LinkList p;p=L->next;while(p!=NULL){len++;p=p->next;}return len;
}
bool Query(LinkList L,int pos,ElemType &e)
{if(pos<1||pos>GetLength(L))return false;LinkList  p=L;int j=0;while(j<pos&&p!=NULL){p=p->next;j++;}if(p==NULL)return false;else{e=p->data;return true;}
}
bool Modify(LinkList &L,int pos,ElemType e)
{if(pos<1||pos>GetLength(L))return false;LinkList p=L;int j=0;while(j<pos&&p!=NULL){p=p->next;j++;}if(p==NULL){return false;}else{p->data=e;return true;}
}
bool Insert(LinkList &L,int pos,ElemType e)
{if(pos<1||pos>GetLength(L)+1)return false;LinkList p=L,s;int j=0;while(j<pos-1&&p!=NULL){p=p->next;j++;}if(p==NULL){return false;}else{s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;return true;}}
bool Delete(LinkList &L,int pos)
{if(pos<1||pos>GetLength(L))return false;LinkList p=L;int j=0;while(j<pos-1&&p!=NULL){p=p->next;j++;}if(p==NULL||p->next==NULL){return false;} else{p->next=p->next->next;return true;}
}
void Display(LinkList L)
{int i=1;LinkList p=L->next;while(p!=NULL){cout<<"第"<<i<<"个员工的信息为"<<endl;cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"办公电话"<<"\t"<<"手机号码"<<"\t"<<"邮箱"<<endl;cout<<p->data.num<<"\t"<<p->data.name<<"\t"<<p->data.phone<<"\t"<<p->data.call<<"\t"<<p->data.mail<<endl;p=p->next;i++;}
}
int main()
{LinkList L;cout<<"----------------------"<<endl;cout<<"单位员工通讯录管理系统"<<endl;cout<<"1、创建通讯录"<<endl;cout<<"2、查询"<<endl;cout<<"3、修改"<<endl;cout<<"4、插入"<<endl;cout<<"5、删除"<<endl;cout<<"6、显示已有员工信息"<<endl;cout<<"7、退出"<<endl;cout<<"----------------------"<<endl;while(true){string a;cin>>a;if(a=="1"){cout<<"请输入初始的人数以及它们的信息:"<<endl;int n;ElemType ele[1010];cin>>n;for(int i=1;i<=n;i++){cout<<"第"<<i<<"个人的信息:"<<endl;cout<<"员工编号:";cin>>ele[i].num;cout<<"员工姓名:";cin>>ele[i].name;cout<<"办公室电话号码:";cin>>ele[i].phone;cout<<"手机号码:";cin>>ele[i].call;cout<<"邮箱:";cin>>ele[i].mail;}CreateLinkListW(L,ele,n);cout<<"员工信息录入成功"<<endl;}else if(a=="2"){cout<<"请输入要查询的序号:";int pos;cin>>pos;ElemType e;Query(L,pos,e);cout<<"编号"<<"\t"<<"姓名"<<"\t"<<"办公电话"<<"\t"<<"手机号码"<<"\t"<<"邮箱"<<endl;cout<<e.num<<"\t"<<e.name<<"\t"<<e.phone<<"\t"<<e.call<<"\t"<<e.mail<<endl;}else if(a=="3"){cout<<"请输入要修改员工的序号:";int pos;cin>>pos;cout<<"请重新输入员工的信息:"<<endl;ElemType e;cout<<"员工编号:";cin>>e.num;cout<<"员工姓名:";cin>>e.name;cout<<"办公室电话号码:";cin>>e.phone;cout<<"手机号码:";cin>>e.call;cout<<"邮箱:";cin>>e.mail;if(Modify(L,pos,e)){cout<<"修改成功"<<endl;}}else if(a=="4"){cout<<"请输入员工所要插入的位置:";int pos;cin>>pos;cout<<"请输入员工的信息:"<<endl;ElemType e;cout<<"员工编号:";cin>>e.num;cout<<"员工姓名:";cin>>e.name;cout<<"办公室电话号码:";cin>>e.phone;cout<<"手机号码:";cin>>e.call;cout<<"邮箱:";cin>>e.mail;if(Insert(L,pos,e)){cout<<"插入成功"<<endl;}}else if (a=="5"){cout<<"请输入要删除的员工:";int pos;cin>>pos;if(Delete(L,pos)){cout<<"删除成功"<<endl;}}else if (a=="6"){Display(L);}else{break;}}return 0;
}

单位员工通讯录管理系统相关推荐

  1. 数据结构员工通讯录管理系统 C语言,数据结构课程设计报告单位员工通讯录管理系统.doc...

    班级:计科112 学号: 201100814203 姓名:冯贵阳 PAGE PAGE 42 数 据 结 构 课 程 设 计 实 验 报 告 目录 1.单位员工通讯录管理系统(线性表的应用)---- - ...

  2. c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...

    数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...

  3. 数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)

    数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...

  4. 数据结构课程设计:1、单位员工通讯录管理系统(线性表的应用)

                                        单位员工通讯录管理系统(线性表的应用) [问题描述] 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话. ...

  5. 数据结构课程设计报告 单位员工通讯录管理系统(线性表的应用)

    题目1.单位员工通讯录管理系统(线性表的应用) [问题描述] 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话.手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息的查 ...

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

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

  7. 数据结构课设——单位员工通讯录管理系统

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

  8. 数据结构课程设计之员工通讯录

    0x00 主要思想 员工通讯录的实现其实就是单链表的简单应用,只要预先定义一个存放通讯录数据信息的结构体,以及相关的指针结点等,然后就是单链表的以希望简单应用用来实现创建.插入.查找.删除.以及其他的 ...

  9. c语言通讯录管理系统_通讯录管理系统(C语言)

    #include<stdio.h> #include<stdlib.h> //动态内存分配malloc的头文件 #include<conio.h> #include ...

最新文章

  1. [CCC 2018] 平衡树
  2. mysql 1449 : The user specified as a definer ('root'@'%') does not exist
  3. 16_非监督学习、k-means 4阶段、kmeans API、Kmeans性能评估指标、案例
  4. oracle复制sequence,oracle sequence语句重置方介绍
  5. 无法定位程序输入点 _ZdaPvj 于动态链接库 libstdc++-6.dll
  6. JDK 13中的JEP 355文本块
  7. tf.transpose
  8. 原型设计应当掌握的四个设计思维:初始、常态、边界、错误
  9. linux下安装php扩展curl
  10. CleanMyPC比360管家好用N倍的电脑清理软件
  11. java jdom 包_org.jdom jar包下载
  12. Racket编程指南——2 Racket概要
  13. JDK13 Switch表达式新特性
  14. 电脑 蓝屏报错:SYSTMEM SCAN AT RAISED IRQL CAUGHT IMPROPER DRIVER UNLOAD
  15. 结构体类型(struct)
  16. 把自己曾经写的一个客户间聊天的程序与大家分享(2)
  17. Android开发类似苹果iOS 7的沉浸式状态栏
  18. 勤于奋国外LEAD联盟赚钱注意事项
  19. Storyboard
  20. 【图解数据结构与算法】数据结构与算法知识点整理 Data Structures and Algorithms

热门文章

  1. STA(静态时序分析) 详解:如何计算最大时钟频率,以及判断电路是否出现时钟违例(timing violation)?
  2. H264/AVC Hypothetical Reference Decoder(HRD)
  3. 短信验证码/邮箱验证码的发送及防刷校验
  4. VC++ VFW 视频捕获
  5. 音视频采集—Windows平台VFW
  6. native react 图片多选_react-native实现的多图片选择器
  7. 【第26天】SQL进阶-查询优化- performance_schema系列实战二:锁问题排查(MDL锁)(SQL 小虚竹)
  8. sql行转列三个方法
  9. delphi JSON用法
  10. thinkcmf调用子类