数据结构课程设计之企业员工信息管理系统设计与实现_第1页
数据结构课程设计之企业员工信息管理系统设计与实现_第2页
数据结构课程设计之企业员工信息管理系统设计与实现_第3页
数据结构课程设计之企业员工信息管理系统设计与实现_第4页
数据结构课程设计之企业员工信息管理系统设计与实现_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、算法与数据结构课程设计题目:企业员工信息管理系统设计与实现院、 系: 计算机信息与技术系学科专业: 软件工程 学 号: B10060XXX 学生姓名: XX 指导教师: X X 2012年9月16日目 录第一章 设计要求21.1 问题描述21.2 需求分析2第二章 概要设计32.1 主界面设计32.2 存储结构设计32.3 系统功能设计4第三章 模块设计43.1 系统子程序及功能设计43.2 系统功能图5第四章 详细设计54.1 数据类型定义54.2 系统主要子程序详细设计61.显示函数:62.删除函数:63.查询函数:74.修改函数:95.主函数:108.其他函数:11第五章 测试分析125

2、.程序各功能的运行结果:125.1系统主界面125.2建立信息125.3修改信息135.4查询信息135.5显示信息145.6删除信息145.7退出系统15第六章 源程序清单16第七章 工作总结23第八章 参考文献23第一章 设计要求1.1 问题描述企业员工信息管理系统,包括企业中所有员工的基本信息,如:工号、姓名、性别、学历等。且该系统能够完成新员工的增添、所有员工信息的相应查询、修改、删除等各项功能。1.2 需求分析(1)在相应的每条记录中,应该包括该员工的所有信息,如:工号、姓名、性别、学历等;(2)根据不同关键字(如工号,姓名等),对所有员工的信息进行排序;(3)按照指定条件查找某个员

3、工的所有信息;(4)按工号对某个员工的信息进行修改;(5)添加新员工的信息;(6)按工删除已离职、退休员工的信息;(7)与此同时,除了以上基本的需求以外,该企业员工信息管理系统的程序源代码还应具有良好的编程结构和适当的注释,运行界面清晰,提示内容明确,易于操作。第二章 概要设计2.1 主界面设计 当输入相应的操作字符(如:数字0-6),实现并完成各项功能操作(如:建立、修改、删除、显示、退出等)。系统主界面如下:2.2 存储结构设计依据给定的数据格式,个人信息由四个字段来组成,即工号、姓名、性别、学历,外加一个判断关键字。如: 工号 | 姓名 | 性别 | 学历 123 feng n daxu

4、e 本课程设计根据功能需求,使用线性结构来组织数据,由于要对表中某项数据进行插入、删除操作,所以使用链表比较方便。2.3 系统功能设计依据程序的数据结构和功能,遵照“自顶向下,逐步细化”原则,描述该程序的层次结构,在总体上包括数据的增添、修改、删除、查询以及数据的显示等功能模块。(1)新增函数功能:通过输入各项数据给数据元素,来建立一个数据表。(2)显示函数功能:输出表中所有节点的信息。(3)查询函数功能:按照指定关键字,对相应员工信息进行查询。(4)修改函数功能:输入员工工号,查询员工信息,对其信息进行修改。(5)删除函数功能:查找到要删除员工的相应信息,并将其从表中永久的删除。(6)主函数

5、功能:调用以上子函数,并用开关语句进行选择性的调用。第三章 模块设计3.1 系统子程序及功能设计(1) 新增员工信息,利用函数: creatlist(linklist &L)(2) 显示所有员工信息,利用函数: display(linklist &L)(3) 删除员工信息,是按员工工号删除,利用函数: delet(linklist &L,char num6)(4) 查询员工信息,按工号和姓名进行查询;按工号查询利用函数: searchnum(linklist &L,char num10) ; 按姓名查询利用函数: searchname(linklist &

6、;L,char name10)(5) 修改员工信息,利用函数: alter(linklist &L,char num6)3.2 系统功能图主页面建立链表查询显示信息退出修改删除按工号按姓名按工号图3-2 系统功能图第四章 详细设计4.1 数据类型定义结构体定义:typedef struct node char num6; /工号 char name10; /姓名 char sex6; /性别 char degree20; /学历 struct node *next; /指针域 node,*linklist;4.2 系统主要子程序详细设计1. 显示函数函数原型: void display

7、(linklist &L)函数功能:输出表中所有节点的信息。算法要点:使用循环输出所有信息。主要算法:void display(linklist &L)linklist p;for(p=L->next;p;p=p->next)printf("工号 %s",p->num);printf("姓名 %s",p->name);printf("性别 %s",p->sex);printf("学历 %s",p->edu);2. 删除函数函数原型:void delet(linkl

8、ist &L,char num6)函数功能:查找到要删除员工的相应信息,并将其从表中永久的删除。算法要点:(1) 按关键字查找信息;(2) 链表中删除节点信息,并释放节点空间。主要算法:int delet(linklist &L, char num6)node *p; /*实现删除操作的临时的结构体指针变量*/node *r; p=L->next;r=L; if(!L->next) /当list无后继结点时,提示和结束返回del()printf("n=>提示:没有记录可以删除!n"); printf("n");retur

9、n 1; while(!(strcmp(p->num,num)=0)&&p)r=p;p=p->next;if(!p)printf("nnttt 找不到该职工信息!n");elser->next=p->next; free(p);printf("删除成功n");printf("n");return 1;3. 查询函数(1)按工号查询int searchnum(linklist &L,char num10)node *p;p=L;while(p)if(strcmp(p->num,num

10、)=0)printf("t");printf("工号 %s",p->num);printf("t");printf("姓名 %s",p->name);printf("n");printf("t");printf("性别 %s",p->sex);printf("t");printf("t");printf("学历 %s",p->edu);printf("n"

11、;);p=p->next;return 1;(2)按姓名查询int searchname(linklist &L,char name10)node *p;p=L;while(p)if(strcmp(p->name,name)=0)printf("t");printf("工号 %s",p->num);printf("t");printf("姓名 %s",p->name);printf("n");printf("t");printf("性

12、别 %s",p->sex);printf("t");printf("t");printf("学历 %s",p->edu);printf("n");p=p->next;return 1;4. 修改函数 (按工号修改)int alter(linklist &L,char num6)node *p;p=L;while(p)if(strcmp(p->num,num)=0)printf("请输入员工的工号:n");printf("您输入的是:"

13、); printf("t"); scanf("%s",p->num); printf("请输入员工的姓名:n"); printf("您输入的是:"); printf("t"); scanf("%s",p->name); printf("请输入员工的性别:n"); printf("您输入的是:"); printf("t"); scanf("%s",p->sex); printf(&

14、quot;请输入员工的学历:n"); printf("您输入的是:"); printf("t"); scanf("%s",p->edu); p=p->next; printf("n"); return 1;5. 主函数主函数主要是调用以上的子函数,用开关语句进行选择性的调用。大致程序如下:void main()linklist L;int a;char m;char name10; char num6;initlist(L);int g;int f=1;while(f)menu();scanf

15、("%d",&g);printf("n");switch(g)case 1: creatlist(L); do printf("是否继续输入?(y/n)"); printf("t"); getchar(); scanf("%c",&m); if(m='y') creatlist(L); while(m!='n'); printf("n"); break; case 2: printf("请输入修改员工的工号:"

16、;); printf("您输入的是:"); printf("t"); getchar(); scanf("%s",&num); alter(L,num); printf("n"); break; ······case 0: f=0; printf("nn"); break;6. 其他函数这些函数主要起到辅助功能,比如:菜单函数,主要起到引导作用;菜单函数原型:void menu()第五章 测试分析5. 程序各功能的运行结果:5.

17、1 系统主界面5.2 建立信息(1)首先输入操作字符“1”;(2)接着输入员工信息;(3)最后输入操作字符“n”结束输入。5.3 修改信息(1)首先输入操作字符“2”;(2)再输入新的员工信息, 5.4 查询信息(1)首先输入操作字符“3”;(2)接着输入操作字符“1”或者“2”(即实现按“工号”查询,或者按“姓名”查询);(3)再输入编号的字符“1”;5.5 显示信息输入操作字符“5”;5.6 删除信息输入操作字符“4”; 5.7退出系统输入操作字符“0”;第六章 源程序清单#include<stdio.h>#include<stdlib.h>#include<

18、string.h>typedef struct node /定义节点类型char num6;char name10;char sex3;char edu6;struct node *next;node,*linklist;int creatlist(linklist &L) /头插法生成单链表linklist p;p=(linklist)malloc(sizeof(node);if(!p)return (0);elseprintf("请输入员工的工号:n");printf("t");scanf("%s",p->nu

19、m); printf("请输入员工的姓名:n");printf("t");scanf("%s",p->name); printf("请输入员工的性别:n");printf("t"); scanf("%s",p->sex); printf("请输入员工的学历:n");printf("t"); scanf("%s",p->edu); p->next=L->next; L->next=p

20、;int initlist(linklist &L) /初始化单链表L=(linklist)malloc(sizeof(node);if(!L)return (0);L->next=NULL;return 1;void meau()printf("t* _ 欢迎使用企业员工信息系统 _ *n");printf("n"); printf("t * 1 建立员工信息表 *n"); printf("t * 2 插入新员工信息 *n"); printf("t * 3 查询员工信息记录 *n"

21、;); printf("t * 4 删除员工信息记录 *n"); printf("t * 5 显示员工信息 *n"); printf("t * 0 退出管理系统 *n"); printf("n");printf("t* _ 欢迎使用企业员工信息系统 _ *n");printf("n");printf("t XXXn");printf("t 2012年9月12日n");printf("n");printf("

22、请您从0-5中选择: n");printf("您选择的是:");printf("t");void display(linklist &L) /显示所有员工信息linklist p;for(p=L->next;p;p=p->next)printf("t");printf("工号 %s",p->num);printf("t");printf("姓名 %s",p->name);printf("n");printf(&qu

23、ot;t");printf("性别 %s",p->sex);printf("t");printf("t");printf("学历 %s",p->edu);printf("n");printf("n");printf("n");int delet(linklist &L,char num6) /按工号删除node *p; /*实现删除操作的临时的结构体指针变量*/node *r; p=L->next;r=L; if(!L-

24、>next) /当list无后继结点时,提示和结束返回del()printf("n=>提示:没有记录可以删除!n"); printf("n");return 1; while(!(strcmp(p->num,num)=0)&&p)r=p;p=p->next;if(!p)printf("nnttt 找不到该职工信息!n");elser->next=p->next; free(p);printf("删除成功n");printf("n");retur

25、n 1;int searchnum(linklist &L,char num10) /查询工号node *p;p=L;while(p)if(strcmp(p->num,num)=0)printf("t"); printf("工号 %s",p->num); printf("t"); printf("姓名 %s",p->name); printf("n"); printf("t"); printf("性别 %s",p->sex)

26、; printf("t"); printf("t"); printf("学历 %s",p->edu); printf("n"); p=p->next; return 1;int searchname(linklist &L,char name10) /查询姓名node *p;p=L;while(p)if(strcmp(p->name,name)=0)printf("t"); printf("工号 %s",p->num); printf(&quo

27、t;t"); printf("姓名 %s",p->name); printf("n"); printf("t"); printf("性别 %s",p->sex); printf("t"); printf("t"); printf("学历 %s",p->edu); printf("n"); p=p->next; return 1;int alter(linklist &L,char num6) /

28、修改信息node *p;p=L;while(p)if(strcmp(p->num,num)=0)printf("请输入员工的工号:n");printf("您输入的是:"); printf("t"); scanf("%s",p->num); printf("请输入员工的姓名:n"); printf("您输入的是:"); printf("t"); scanf("%s",p->name); printf("请输入员

29、工的性别:n"); printf("您输入的是:"); printf("t"); scanf("%s",p->sex); printf("请输入员工的学历:n"); printf("您输入的是:"); printf("t"); scanf("%s",p->edu); p=p->next; printf("n"); return 1;void main() /主函数linklist L;int a;char m

30、;char name10; char num6;initlist(L);int g;int f=1;while(f)meau();scanf("%d",&g);printf("n");switch(g) case 1: creatlist(L); do printf("是否继续输入?(y/n)"); printf("t"); getchar(); scanf("%c",&m); if(m='y') creatlist(L); while(m!='n'

31、;); printf("n"); break; case 2: printf("请输入修改员工的工号:"); printf("您输入的是:"); printf("t"); getchar(); scanf("%s",&num); alter(L,num); printf("n"); break; case 3: printf("请选择查询方式(1.按工号查询 , 2.按姓名查找)"); printf("n"); printf(&

32、quot;您选择的是:"); printf("t"); scanf("%d",&a); if(a=1) printf("请输入查询员工的工号:n"); printf("您输入的是:"); printf("t"); scanf("%s",&num); printf("n"); searchnum(L,num); if(a=2) printf("请输入查询员工的姓名:n"); printf("您输入的是:"); printf("t"); scanf("%s",&name); printf(&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论