数据结构员工管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、设计题目

[问题描述]

每个员工的信息包括:编号、姓名、性别、出生年月、学

历职务、电话、住址等。系统能够完成员工信息的查询、

更新、插入、删除、排序等功能。

[基本要求]

(1)排序:按不同关键字,对所有员工的信息进行排序。(2)查询:按特定条件查找员工。

(3)更新:按编号对某个员工的某项信息进行修改。

(4)插入:加入新员工的信息。

(5)删除:按编号删除已离职的员工的信息。

二、运行环境

Mrosoft Visual C++6.0

三、算法设计的思想

构造链表存储用户记录。

四、算法的流程图

五、算法设计分析

(1)构造顺序表存储用户记录。

(2)利用冒泡法对用户名和号码分别进行排序(3)利用直接查找法进行查找

六、源代码

#include"stdio.h"

#include"stdlib.h"

#include "string.h"

//定义节点类型

typedef struct node

{

char id[10];

char name[10];

char sex[10];

char birth[10];

char xueli[10];

char zhiwu[10];

char phone[10];

char address[10];

struct node *next;

}node,*linklist;

//头插法生成单链表

int creatlist(linklist &L)

{

linklist p;

p=(linklist)malloc(sizeof(node));

if(!p)

{

return (0);

}

else

{

printf("请输入员工编号\n");

scanf("%s",p->id);

printf("请输入员工姓名\n");

scanf("%s",p->name);

printf("请输入员工性别\n");

scanf("%s",p->sex);

printf("请输入员工生日\n");

scanf("%s",p->birth);

printf("请输入员工学历\n");

scanf("%s",p->xueli);

printf("请输入员工职务\n");

scanf("%s",p->zhiwu);

printf("请输入员工电话\n");

scanf("%s",p->phone);

printf("请输入员工地址\n");

scanf("%s",p->address);

}

p->next=L->next;

L->next=p;

}

//初始化单链表

int initlist(linklist &L)

{

L=(linklist)malloc(sizeof(node));

if(!L)

return (0);

L->next=NULL;

return 1;

}

//显示所有员工信息

void display(linklist &L)

{

linklist p;

for(p=L->next;p;p=p->next)

{

printf("编号 %s",p->id);

printf("姓名 %s",p->name);

printf("性别 %s",p->sex);

printf("生日 %s",p->birth);

printf("学历 %s",p->xueli);

printf("职务 %s",p->zhiwu);

printf("电话 %s",p->phone);

printf("地址 %s\n",p->address);

}

}

//按id删除

int del(linklist &L,char id[10])

{

node *p;

node *r;

p=L->next;

r=L;

while(!(strcmp(p->id,id)==0)&&p)

{

r=p;

p=p->next;

}

if(!p)

printf("\n删除位置不合理\n");

else

{

r->next=p->next;

free(p);

printf("删除成功\n");

}

return 1;

}

//查询id

int searchid(linklist &L,char id[10]) {

node *p;

p=L;

while(p)

{

if(strcmp(p->id,id)==0)

{

printf("编号 %s",p->id);

printf("姓名 %s",p->name);

printf("性别 %s",p->sex);

printf("生日 %s",p->birth);

printf("学历 %s",p->xueli);

printf("职务 %s",p->zhiwu);

printf("电话 %s",p->phone);

printf("地址 %s\n",p->address);

}

p=p->next;

}

return 1;

}

//查询姓名

int searchname(linklist &L,char name[10]) {

node *p;

p=L;

while(p)

{

if(strcmp(p->name,name)==0)

{

printf("编号 %s",p->id);

printf("姓名 %s",p->name);

printf("性别 %s",p->sex);

printf("生日 %s",p->birth);

printf("学历 %s",p->xueli);

printf("职务 %s",p->zhiwu);

printf("电话 %s",p->phone);

printf("地址 %s\n",p->address);

}

p=p->next;

}

相关文档
最新文档