企业员工信息管理系统设计与实现c语言
《算法与数据结构》《算法与数据结构》 课程设计课程设计 题目题目: :企业员工信息管理系统 企业员工信息管理系统 设计与实现设计与实现 院、院、系:系: 计算机信息与技术系计算机信息与技术系 学科专业:学科专业:计算机科学与技术计算机科学与技术 学学号:号: B B 学生姓名:学生姓名: 指导教师:指导教师: 2012 年 9 月 16 日 目录目录 第一章第一章 设计要求设计要求 问题描述问题描述 近年来,随着企业彼此间的竞争日趋激烈,信息管理技术在企业的发展中 占据着越来越重要的地位。在企业的经营生产中,员工信息已成为企业经营管 理中不可缺少的一部分,为管理者进行管理决和进行各种人事调配活动提供了 重要的依据,在生产分配安排中发挥了越来越重要的作用。此次课程设计应该 具有的功能是能够查看员工的个人信息,每个员工的信息包括:编号、姓名、 性别、部门、工资;系统能够完成员工信息的查询、更新、插入、删除、排序 等功能。 需求分析需求分析 (1)在相应的每条记录中,应该包括该员工的所有信息,譬如:编号、姓名、性别、 出生年月、学历、职务、电话、住址等; (2)根据不同关键字(如编号,姓名等) ,对所有员工的信息进行排序; (3)按照指定条件查找某个员工的所有信息; (4)按编号对某个员工的信息进行更改; (5)添加新员工的信息,并实现排序; (6)按编号删除已离职的员工的信息; (7)与此同时,除了以上基本的需求以外, 该企业员工信息管理系统的程序源代码还应 具有良好的编程结构和适当的注释,运行界面清晰,提示内容明确,易于操作。 第二章第二章 概要设计概要设计 主界面设计主界面设计 当输入相应的操作字符(比如:0-6 或者#) ,通过在主函数中选择并调用对应的子函 数程序以及其他函数(比如:菜单函数)中的辅助调用,实现并完成各自的功能操作(比 如:添加、查找、更改、排序、删除、显示等) 。 系统主界面如下: 存储结构设计存储结构设计 依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学 历、职务、电话和住址,外加一个判断关键字。 如: 编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 01 fdf n 1991-10 b q 189 p 本课程设计根据功能需求,使用线性结构来组织数据,由于要对表中某项数据进行插 入、删除操作,所以使用链表比较方便。 系统功能设计系统功能设计 依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总 体上包括数据的插入、添加、删除、查找、更改和数据的排序以及数据的显示等功能模块。 (1)输入函数功能:通过输入各项数据给数据元素,来建立一个数据表。 (2)排序函数功能:按照指定关键字对员工信息进行排序。 (3)显示函数功能:输出表中所有节点的信息。 (4)查找函数功能:按照指定关键字,对相应员工信息进行查找。 (5)更改函数功能:输入员工编号,查找到员工信息,对其信息进行更新。 (6)删除函数功能:查找到要删除员工的相应信息,并将其从表中永久的删除。 (7)主函数功能:调用以上子函数,并用开关语句进行选择性的调用。 (8)其它函数功能:主要起辅助作用,比如:菜单函数,主要起到引导作用;释放空 间函数,主要用于释放已经删除节点的信息,或者释放整个链表的节点信息。 第三章第三章 模块设计模块设计 系统子程序及功能设计系统子程序及功能设计 1.创建成员表函数 Stuff *Cre(Stuff *head)排序函数 void Sort(Stuff *head)判断函数 int Sel(char ch,Stuff *p,Stuff *q)查找函数 Stuff *Search(Stuff *head)删除函数 Stuff*Del(Stuff 主函数 main() *head,charn[10]) 输入显示查找更改排序删除 退出 按编号按姓名按编号按姓名 工结构体定义 struct Stuff { char number[10]; char name[10]; char sex[8]; char borth[10]; char degree[20]; char business[20]; char phone[15]; char place[50]; char con[50]; struct Stuff *next; }; 系统主要子程序详细设计系统主要子程序详细设计 1. 1.输入函数:输入函数: Stuff *App(Stuff *head) { Stuff *p=NULL,*q=head; while(n) { p=(Stuff *)malloc(sizeof(Stuff));p=(Stuff *)malloc(sizeof(Stuff));序函数:序函数: void Sort(Stuff *head) { char ch; Stuff *p,*q,*r; while(1) { printf(“请选择排序条件:1.编号|2.姓名|0.退出\n“); getchar(); scanf(“%c“, if(ch== 0 ) break; if(ch 2 ) { printf(“输入错误,请重新输入!\n“); continue; } p=head; while(p-next!=NULL)while(p-next!=NULL)示函数:示函数: void Show(Stuff *head) { Stuff *p=head; int n=1; if(head!=NULL) { printf(“员工信息如下:\n“); printf(“编号 | 姓名 | 性别 | 出生年月 | 学历 | 职务 | 电话 | 住址 :\n“); while(p!=NULL) { printf(“%d.%s%s%s%s%s%s%s%s \n“ ,n++,p-number ,p-name ,p-sex ,p-birthday ,p-degree ,p-business ,p-phone ,p-plac e); p=p-next ; } } else { printf(“信息为空!\n“); } } 4. 4.查找函数:查找函数: Stuff *Search(Stuff *head) { Stuff *p=NULL,*q,a={“\0“,“\0“,“\0“,“\0“,“\0“,“\0“,“\0“,“\0“}; intflag;号 2.姓名 0.退出\n“); scanf(“ %c“, if(ch== 0 ) break; if(ch 2 ) { printf(“输入错误,请重新输入!\n“); continue; } getchar(); printf(“请输入:“); gets(q-con); p=head;改 2.删除 3.继续 \n“); scanf(“ %c“, if(sh== 1 ) Change(head,p-number);Change(head,p-number);改函数:改函数: Stuff *Change(Stuff *head,char n[10]) { Stuff *p=head; i