1 一、设计题目 [问题描述] 每个员工的信息包括:编号、姓名、性别、出生年月、学历职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。 [基本要求] (1) 排序:按不同关键字,对所有员工的信息进行排序。 (2) 查询:按特定条件查找员工。 (3) 更新:按编号对某个员工的某项信息进行修改。 (4) 插入:加入新员工的信息。 (5) 删除:按编号删除已离职的员工的信息。 二、运行环境 Mrosoft Visual C++6.0 2 三、算法设计的思想 构造链表存储用户记录。 四、算法的流程图 五、算法设计分析 (1 )构造顺序表存储用户记录。 (2 )利用冒泡法对用户名和号码分别进行排序 (3 )利用直接查找法进行查找 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"); 4 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); 5 printf("学历 %s",p->xueli); printf("职务 %s",p->zhiwu); printf("电话 %s",p->phone); printf("地址 %s\n",p->address); } } //按id...