员工信息管理系统(数据结构)

合集下载

c语言职工信息管理系统设计

c语言职工信息管理系统设计

c语言职工信息管理系统设计C语言职工信息管理系统是一种方便、高效的职工信息管理工具,设计该系统主要是为了提高人力资源管理效率,减轻人事部门的工作量。

下面将从系统设计流程,系统功能和系统操作流程三个方面来详细介绍该系统的设计。

一、系统设计流程1.需求分析:系统的需求分析是设计中非常关键的一步,必须充分考虑到职工管理的基本需求和功能要求,以适应各种企业规模和管理水平的要求。

系统需要提供职工个人信息和考勤、绩效管理查询和修改、新员工入职登记等基本功能。

2.系统设计:系统需要根据需求来设计相应的数据结构和数据库。

需要设计合适的数据表,包括职工基本信息表、考勤记录表、工资记录表等。

3.系统实现:实现系统的功能,包括录入人员信息、修改人员信息、考勤登记、绩效考评、新员工入职登记等操作。

4.系统维护:制定系统的维护计划,保证系统正常、稳定的运行。

二、系统功能1.基本信息管理:包括职工基本信息的录入和修改,如姓名、性别、出生年月、联系方式等。

2.考勤管理:包括考勤记录的登记和查询,如请假、加班、迟到、早退等记录。

3.工资管理:包括工资记录的录入和查询,能够根据考勤和绩效等因素计算职工应发工资和实际发放工资。

4.绩效管理:包括绩效考核的记录和查询,能够根据职工绩效考核记录、已发工资等因素,生成人员绩效考核报表。

三、系统操作流程1.登录系统:用户登录系统,输入用户名和密码。

2.菜单:系统进入主菜单,包括基本信息管理、考勤管理、工资管理、绩效管理、系统设置等功能。

3.信息录入:在基本信息管理中,根据职工基本信息表的格式,输入职工的个人信息。

4.考勤登记:在考勤管理中,根据考勤记录表的格式,输入职工的考勤记录,包括请假、加班、迟到、早退等情况。

5.工资录入:在工资管理中,根据工资记录表的格式,输入职工的实际工资和应发工资情况。

6.绩效评估:在绩效管理中,根据绩效考核表的格式,输入职工绩效考核情况,系统将自动生成用于绩效考评的报表。

企业员工信息管理系统【范本模板】

企业员工信息管理系统【范本模板】

本科毕业设计说明书企业员工信息管理系统的设计与实现EMPLOYEE INFORMATION MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATION学院(部):专业班级:学生姓名:指导教师:2012年5月25日企业员工信息管理系统的设计与实现摘要现今互联网发展越来越迅速,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选.因此在信息化科技飞速发展的今天,借助于电脑,通过员工信息管理系统管理各部门职工,能为企业人力资源的管理者提供人性化的服务。

同时也能为企业的员工提供一定的方便。

本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了企业员工信息管理的工作效率和企业的信息化的水平.本论文从员工信息管理系统的初步调查开始,详细介绍员工信息管系统的需求分析和数据流程分析,并进行了系统总体结构设计、数据结构和数据库设计、输入输出设计等。

关键词:J2EE,Mysql,struts2,企业员工信息管理EMPLOYEE INFORMATION MANAGEMENT SYSTEMDESIGN AND IMPLEMENTATIONABSTRACTNowadays, the Internet development is fast, bringing people's work and life tremendous convenience with efficiently.Therefore,the rapid development of technology of information technology today, through the use of computers,employee information management system to manage the various departments and workers,to provide personalized service for corporate human resources managers.Also provides a convenience for the employees of the enterprise。

基于BS模式的员工信息管理系统_毕业设计论文

基于BS模式的员工信息管理系统_毕业设计论文

学院本科毕业设计(论文)题目基于B/S模式的员工信息管理系统计算机科学与工程院(系)计算机科学与技术专业摘要本系统采用的是B/S开发模式,开发环境采用Microsoft Visual Studio 2005,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一功能方便而简洁操纵数据库的智能化对象,对于数据库采用SQL Server2005,它的功能一体化,高度非过程化,语言简洁,易学易用,统一的语法结构对待不同的工作方式,还有面向集合的操作方式,再加上视图数据结构,使最终用户和程序设计人员之间的通信得到很大的改善,高度的数据独立性和安全性。

关键词:员工信息管理;B/S模式;SQL Server2005AbstractThis system USES is B/S mode, the development environment using Microsoft Visual Studio, using its 2005 of object-oriented development tools, especially data window this function is concise and manipulation of data objects, for using intelligent Server2005 SQL database, its function integration, the process, concise and easy to use, language syntax structure of unified treat way of working, and facing the operation mode, the collection of data structures, plus the view that end users and software design of communication between the personnel have greatly improved, the height data independence and security.Key words:Personnel management;B/S mode;Server2005 SQL目录第1章绪论 (1)1.1 问题的提出 (1)1.2 管理信息系统的发展历史 (1)1.3 公司员工信息管理系统的作用 (3)1.4 公司员工信息管理信息系统发展现状 (3)1.5 国内公司员工信息管理系统存在的问题 (4)第2章可行性分析 (5)2.1业务流程图 (5)2.2经济可行性 (5)2.3技术可行性 (6)2.4 行可行性 (8)2.5 时间可行性 (8)2.6 律可行性 (8)2.7 章小结 (8)第3章需求分析 (9)3.1系统需求 (9)3.1.1数据流图 (10)3.1.2数据字典 (10)3.2 性能需求 (14)3.3 应用需求分析 (15)3.4 运行需求分析 (15)3.5 其他需求分析 (15)3.6本章小结 (15)第4章系统设计 (16)4.1 主要内容 (16)4.2 总体功能需求 (16)4.3 数据库设计 (17)4.3.1 数据库设计概述 (17)4.3.2 数据分析 (17)4.3.3 数据库详细设计 (17)4.4 具体系统功能需求描述 (23)4.4.1 员工基本情况管理 (23)4.4.2 员工信息查询 (23)4.4.3 系统维护 (23)4.5本章小结 (23)第5章详细设计 (24)5.1系统开发及运行平台设置 (24)5.1.1 硬件环境 (24)5.1.2 软件环境 (24)5.2 开发工具简介 (25)5.2.1 简介 (25)5.2.2 SQL Server简介 (26)5.3系统主界面设计 (26)5.4基本功能设置 (27)5.4.1员工信息管理 (27)5.4.2部门管理 (29)5.4.3考勤管理 (30)5.4.4员工工资管理 (31)5.4.5查询管理 (33)5.4.6系统管理 (34)5.5 本章小结 (36)第6章系统调试与测试 (37)6.1 程序调试 (37)6.2 程序的测试 (37)6.2.1 测试的重要性及目的 (37)6.2.2 测试的步骤 (38)6.2.3 测试的主要内容 (38)6.2.4测试的执行情况 (39)6.3本章小结 (43)结束语 (44)致谢 (45)参考文献 (46)附录1 (47)附录2 (52)学院2012届本科生毕业设计(论文)第1章绪论1.1 问题的提出公司员工信息管理系统是一个公司单位不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要,所以公司员工信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。

人员信息管理 数据库表设计

人员信息管理 数据库表设计

人员信息管理数据库表设计
人员信息管理数据库表设计需要根据具体需求进行设计。

一般来说,人员信息管理系统需要存储以下信息:
1.基本信息:姓名、性别、出生日期、身份证号、联系方式、家庭住址等。

2.工作信息:职位、部门、入职日期、离职日期等。

3.教育信息:学历、学校、专业、毕业日期等。

4.技能信息:技能名称、技能等级等。

5.奖惩信息:奖励名称、奖励日期、奖励等级等。

根据这些信息,可以设计以下数据库表:
人员表
●人员编号:唯一标识人员的编号。

●姓名:人员的姓名。

●性别:人员的性别。

●出生日期:人员的出生日期。

●身份证号:人员的身份证号。

●联系方式:人员的联系方式。

●家庭住址:人员的家庭住址。

工作表
●人员编号:人员的编号。

●职位:人员的职位。

●部门:人员所属的部门。

●入职日期:人员入职的日期。

●离职日期:人员离职的日期。

教育表
●人员编号:人员的编号。

●学历:人员的学历。

●学校:人员毕业的学校。

●专业:人员的专业。

●毕业日期:人员毕业的日期。

技能表
●人员编号:人员的编号。

●技能名称:技能的名称。

●技能等级:技能的等级。

奖惩表
●人员编号:人员的编号。

●奖励名称:奖励的名称。

●奖励日期:奖励的日期。

●奖励等级:奖励的等级。

职工信息管理系统

职工信息管理系统

1 绪论1.1 课题背景及目的公司的扩张和人员的变动都需要处理相应职工的信息,凭借人力很难用最短的时间整理出需要的职工信息。

运用计算机系统对职工档案进行管理,能够提高管理效率、节约时间、方便管理人员管理信息。

因此需要设计一个职工信息管理系统,系统以菜单的方式工作,可以录入、查询、删除等。

职工的信息包括工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不可重复),使查询职工信息变得又快又简单。

1.2课题的研究方法本系统主要的设计思想是实现对职工信息的录入、删除、排序、查询等主要功能。

职工信息以文件的形式存储,这要用到文件存储数据结构。

数据结构的构造类型包括结构体变量、结构体数组、结构体指针等。

基本类型有整形字符型,其中字符型用来定义职工编号、姓名、工资、电话、地址等。

一维数组struct worker work[]用于定义员工的总人数,结构体struct worker用于存放员工的资料。

系统的人机接口采用简单的字符界面进行交互。

系统的设计方法是结构化设计方法,采用C语言进行开发。

软件开发平台采用Visual C++6.0。

[1]第1页 /共 30页2 概要设计2.1软件模块结构图职工信息管理系统可以分为显示员工资料、录入员工资料、查询员工信息、删除员工信息、对员工信息进行排序、退出信息系统。

图2.1 职工信息管理系统模块结构图第2页 /共 30页3 详细设计3.1数据结构设计定义一维数组struct worker work[50];用于定义员工的总人数,当员工总人数超过50后便不能再录入员工资料。

[1]结构体struct worker用于存放存放员工的资料,包括员工的基本信息:工号,姓名,年龄,学历,工资,住址,电话号码。

struct worker{int num; 工号char name[15]; 名字char xingbie; 性别int age; 年龄char exp[6]; 学历int wage; 工资char address[20]; 住址char tel[12]; 电话号码};int count=0; 当前工人个数int sort_type=0; 当前排序类型第3页 /共 30页3.2界面设计3.2.1 登录主界面设置用户名和密码,输入正确方可进入主界面。

谈谈中小企业员工信息管理系统设计

谈谈中小企业员工信息管理系统设计

眉圆
应 用开 发工具 。客 户端 软 件在 w i w ndo s 数据 库 系统 除 外 ) ,并提 供 两 级映 像 功能 。 9/8 5 9 、W i d ws n o Me 以 及 W i d ws o 0 n o 2 0/ 三 级 模 式结 构是 指 数 据 库 系统 是 由外 XP 下 均可安 装 使用 。 模 式 、 模式 和 内 模式 三级 构成 , ( ) 系 统 功 能 分 析 四 ( )数 据 库 设 计 三 本 例 中的 人 事 管 理 系统 需 要 完 成 如 下 员工信 息管 理 系 统 是一 个 数 据 库 应用 功能: 系 统 , 员工 的所 有 信 息 都 是 保存 在 数 据 库 员工 各 种 信 息 的输 入 , 员 工信 息 的 修 中 。在 数据 库 应 用 系 统 的 开 发过 程 中 ,结 改 、 删 除 ,按 照某 种 条件 查 询 ,排 序 构 设 计 是一 个非 常重 要 的 问题 。我 们 这 里 ( ) 系 统 功 能 模 块 设 计 五 所 说 的 数据 库 结 构 设 计 是 指 数据 库 中 各个 在 系 统 功 能 分 析 的 基 础 上 , 考 虑 表 结 构 的 实 际 ,包 括 信 息保 存 在 哪 些 表格 P we B i e 程序 编制的特点 ,得到如图 中 ,各 个 表 的结 构 如 何 。 o r u1 r d 所示的功能模块 图。 数 据 库 结 构设 计 的好 坏 将直 接 对 应 用 系 统 的效 率 以及 实 现 的效 果 产 生 影 响 ,好 的 数 据 库 结 构 设 计 会 减 少 数 据 库 的 存 储 量 ,数据 的完 整 性 和一 致 性 比 较 高 , 系统 具 有较 快 的 响 应 速 度 , 简化 基 于 此 数据 库 的应用程序的实现等 。 三 、数 据 库 需 求 分 析 数 据 库结 构设 计的 第一 个 阶 段 ,也 是 非 常 重 要 的 一 个 阶 段 是 数据 库 需 求 分 析 。 在 这 个 阶 段 主 要是 收 集 基 本 数据 以 及 数据 处 理 的 流 程 , 为 以 后 进 一 步 设 计 打 下 基 础 。需 求分 析 主 要 解 决 两 个 问 题 : 二 基 本 理 论 内容 要求 :调查应 用系统 用户所 需要操 ( ) 模 型 分 析 一 作 的 数据 ,决 定在 数据 库 中存 储什 么 数据 。 数 据 库 是 某 个企 业 、组 织 或 部 门 所 设 处 理 要 求 :调查 应 用 系 统 用 户 要 求对 计 的数 据 的 一 个 综 合 ,它 不仅 要 反 映 数据 数 据 进 行 什 么样 的 处 理 ,理 清数 据 库 中各 本 身 的 内容 ,而 且 要反 映数 据 之 间的联 系 。 种 数 据 之 间 的关 系 。 在 数据 库 中 用 数 据 模 型 这 个 工 具 来 抽 象 、 解决 这 两 个 问题 的 时 候 ,程 序 编制 人 表 示 和处 理 现 实 世 界 中的 数 据和 信 息 。 员需 要想 应 用 系 统 用 户详 细 调 查 ,保 证信 数 据模 型 有不 同的 类 型 :概 念 模 型和 息 收集 的完 整 性 。 否 则 有可 能 后 面所 有 的 数 据 模 型 。 概 念模 型是 现 实 世 界 到信 息 世 工 作 都 白 费 。 界 的 第 一 层 抽 象 , 建立 的概 念 模 型 有 层次 在 数 据 库 需 求分 析 后 ,应 该得 到 一 个 模 型 、 网 状模 型 、关 系 模 型 和 面 向对 象 模 数据 字 典 文档 ,包 括 3 方 面 内容 。 型 。 数据 项 :包括 名称 、含义 、类 型 、取 值 对于 本 人 事 管 理 系 统 , 它要 反映 的 现 范 围 、长 度 以 及和 其 他 数据 项 之 间的 逻 辑 实世 界的对 象是 人 ,给定一 组有关 “ ”的 关 系 。 人 属性 , 一 个特 定 的 人 将 对应 一 组 特 定 的 属 数 据 结 构 :若 干 个数 据 项 的 有 意 义 的 性 值 ,这 与 关 系 模 型 的 逻 辑 结 构 一 直 。 集 合 ,包 括 名称 、含 义 以 及组 成 数 据 结 构 ( )数 据 库 系 统 的 模 式 结 构 分 析 的 数 据 项 。 二 模 式 是 数 据库 中全 体 数 据 的逻 辑 结 构 数据 流 : 数据 库 中数 据的 处理 过程 , 指 和特征 的描 述 ,它不设 计具 体的值 。体 系机 包 括 输 入 、处 理 和输 出 。 构 卜 常 都 采 用 三 级模 式 结 构 ( 别 小 型 通 个

C语言课程设计报告:职工信息管理系统程序设计

C语言课程设计报告:职工信息管理系统程序设计

1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。

(2)职工信息录入功能(职工信息用文件保存)。

(3)职工浏览功能。

(4)职工信息查询功能,查询方式可按学历查询或者工号查询。

(5)职工信息的删除、修改功能(可选项)。

2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。

3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。

2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。

流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。

显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。

流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。

某单位人事管理系统

某单位人事管理系统

《数据库系统》课程实践任务报告任务名称;某单位人事管理系统班级: 2023计科本学号:*名:**学号:*名:**完毕日期: 2023年6月30日信息工程学院计算机系任务名称1.任务的描述人事管理系统是非常通用的管理信息系统,是企事业单位实现办公自动化的前提和基础。

一个公司要正常运作必然有一个健全的人事管理系统,来管理员工的信息,涉及员工编号、姓名、性别、民族工资及奖惩考勤情况。

除此之外,系统还供员工查询个人和公共信息,管理员对员工信息进行更改或删除,管理公司的人事变更和管理,大大提高公司内部员工管理的工作效率,并规定实现以下功能。

1.员工信息管理:实现记录在该单位中所有人员的在该单位的员工信息,实现对员工信息的管理,也涉及对员工信息的增长、删除、修改等功能。

2.部门信息管理:实现对该单位中的各个部门的编号、部门相关信息的记录,此时也将单位中的所有人员进行分类管理。

3.职位调动管理:实现当员工的就职信息发生更改的时候,系统进行相应关联信息的更改,即增长相应的修改信息的同时,员工的信息管理中的相应信息进行修改。

4.系统管理人员信息管理:实现对相应的系统管理人员的帐号、密码等基本信息的管理功能。

5.出勤信息管理:实现对每一位员工的出勤状况的记录,记录相应的出勤刷卡机号以及出勤时间的信息管理。

6.奖惩管理:实现针对于不同的奖惩类型、奖惩金额等信息的管理,实现输入奖惩信息的修改相应的工资信息。

7.工资管理:实现各个员工工资条目信息的管理。

2.需求分析本系统重要涉及的外部实体有:员工、部门、员工职位调动等,要实现的功能重要有:员工、部门、员工职位调动、管理人员信息管理、出勤信息、工资、奖惩等信息管理。

2.1 系统包含的实体1、员工(员工编号,姓名,性别,出生日期,学历,身份证号,民族,职称,部门号,职务)2、个人经历(年份,员工编号,学习经历,任职经历)3、家庭关系(关系编号,员工编号,亲属关系,亲属姓名)4、管理人员(管理员帐号,职工编号,密码,级别)5、出勤(出勤号,员工编号,上班日期,上班时间,下班时间,刷卡机号)6、刷卡机(刷卡机号)7、部门(部门号,部门名,领导人员,员工人数)8、职位调动(调动编号,员工编号,调动前职务,调动后职务,调动前部门号,调动后部门号,调动日期,批复日期,调动因素)9、奖惩记录(奖惩编号,员工编号,奖惩类型,奖惩金额,奖惩日期,批复部门号,批复日期,奖惩因素)10、请假记录(请假编号,员工编号,请假时间,销假时间,请假天数,审批人编号)11、工资(工资编号,员工编号,基本工资,罚款,奖金,结算工资,起始日期,截止日期,发信日期)2.2 系统包含的实体间联系根据“任务描述”中提供某单位人事管理系统信息的实际情况,本系统中实体之间应具有如下的联系:属于部门:部门fi员工,包含属性。

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

员工信息管理系统课程设计报告系别:计算机与信息工程系班级: B080501*名:***学号: B********指导教师:***课设时间:2010-6-21到2010-6-25摘要员工信息管理系统属于信息管理系统。

员工信息管理是每个公司不可缺少的。

系统用C程序开发,主要在于建立好一个合适的数据结构,并要求程序简洁实用。

本系统利用C语言简洁、灵活,数据结构丰富等特点,编写适合公司使用的系统。

整个系统使用起来也比较方便,入手简单,操作方便。

论文主要介绍了程序设计过程、设计方案以及测试过程,重点讲解了设计过程中的思想,技术解决方案等等。

关键字:员工信息管理,C程序,数据结构前言 (3)第1章课设题目 (4)第2章开发运行环境及相关知识 (4)第3章程序总体设计 (5)3.1 主要功能模块 (5)3.2 数据结构 (6)第4章程序详细设计及实现 (7)4.1 输入函数 (7)4.2 排序函数 (7)4.3 显示函数 (7)4.4 查找函数 (7)4.5更改函数 (8)4.6 删除函数 (8)4.7 主函数 (8)4.8 其他函数 (9)第5章系统功能测试 (9)5.1 系统主界面 (9)5.2 输入数据 (9)5.3 显示数据 (10)5.4 信息排序 (10)5.5 更改信息 (11)5.6 删除信息 (11)第6章课设总结 (12)第7章程序清单 (13)参考文献 (31)前言本课程设计旨在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机编程解决实际问题的基本方法,熟悉C程序开发的全过程,掌握数据结构的使用方法,熟练应用各种数据结构。

本次任务是根据给定的数据和程序,应用单向链表处理一系列公司员工的信息。

通过整个程序开发的过程,提高综合应用C语言的能力、编程和调试能力,为进一步学习相关专业课程创建较扎实的理论基础和实践基础。

报告将分6个章节来详细讲述本次课设题目的开发过程。

第1章主要描述课设的题目及要求;第2章来介绍程序开发运行环境;第3章介绍程序主体设计,网络程序概要;第4章是对程序进行详细分析,对各个函数进行详细描述,并阐述程序实现技术等信息;第5章为测试过程,主要用测试过程中的图片来表述最终信息;第6章也是最后一章,为本次实践活动的心得体会。

第1章课设题目1.1课设题目每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。

系统能够完成员工信息的查询、更新、插入、删除、排序等功能。

1.2基本要求(1)每条记录内,包括员工的个人信息,有:编号、姓名、性别、出生年月、学历、职务、电话、住址等;(2)按不同关键字(如编号,姓名等),对所有员工的信息进行排序;(3)按照指定条件查找某员工所有信息;(4)按编号对某个员工的信息进行修改;(5)加入新员工的信息,并实现排序;(6)按编号删除已离职的员工的信息。

1.3 其他需求程序除需完成基本功能外,程序源代码还应具有良好的编程结构和适当的注释,运行界面清晰,提示内容明确,易于操作。

第2章开发运行环境及相关知识2.1 运行环境软件环境:Windows 2000,Windows XP和Windows NT4.0。

2.2开发工具微软公司的Microsoft Visual C++ 6.0。

2.3开发工具简介公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。

虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。

所以实际中,更多的是以Visual C++6.0为平台。

Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。

Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。

这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。

第3章程序总体设计3.1 主要功能模块依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的录入、增加、删除、查找、更改和数据的排序等功能模块。

图3-1 程序主体3.2 数据结构依据给定的数据格式,个人信息由九个字段来组成,即编号、姓名、性别、生日、学历、职务、电话和住址,外加一个判断关键字。

本课程设计根据功能需求,使用线性结构来组织数据,因为数据占据空间比较大,要对表中某项数据进行操作,所以使用链表比较方便。

结构体定义:typedef struct Stuff{char number[10]; //编号char name[10]; //姓名char sex[8]; //性别char birthday[10]; //生日char degree[20]; //学历char business[20]; //职务char phone[15]; //电话char place[50]; //住址char con[50]; //判断关键字struct Stuff *next; //指针域} Stuff;信息存储:信息存储结构如图3-2图 3-2 链式存储结构第4章程序详细设计及实现4.1 输入函数函数原型:Stuff *App(Stuff *head);函数功能:通过输入各项数据给数据元素,来建立一个数据表。

算法要点:(1)用循环控制输入记录;(2)为每一结构体数据项输入数据;(3)返回输入记录数。

4.2 排序函数函数原型:void Sort(Stuff *head);void Scpy(char *p,char *q);int Sel(char ch,Stuff *p,Stuff *q);函数功能:按照指定关键字对员工信息进行排序。

算法要点:(1)比较法对信息进行排序;(2)使用交换函数,对每项信息进行交换。

4.3 显示函数函数原型:void Show(Stuff *head);函数功能:输出表中所有节点的信息。

算法要点:使用循环输出所有信息。

程序清单:4.4 查找函数函数原型:Stuff *Search(Stuff *head);函数功能:按照指定关键字,对相应员工信息进行查找。

算法要点:(1)输入字段和信息相应字段的比较;4.5更改函数函数原型:Stuff *Change(Stuff *head,char n[10]);函数功能:输入员工编号,查找到员工信息,对其信息进行更新。

算法要点:(1)信息查找;(2)信息重新录入及保存。

4.6 删除函数函数原型:Stuff *Del(Stuff *head,char n[10]);函数功能:查找到要删除员工的相应信息,并将其从表中永久的删除。

算法要点:(1)按关键字查找信息;(2)链表中删除节点信息,并释放节点空间。

4.7 主函数主函数主要是调用以上的子函数,用开关语句进行选择性的调用。

大致程序如下:switch(Menu()){case 1: 调用函数语句;break;case 2: 调用函数语句;break;……case 0:退出程序语句;default:printf("输入错误,请重新输入!\n");}4.8 其他函数其他函数主要起到辅助功能,如菜单函数,主要起到引导作用;释放空间函数,主要用于释放已经删除节点的信息,或者释放整个链表的节点信息。

菜单函数原型:char Menu();释放函数原型:void Fre(Stuff *head);第5章系统功能测试5.1 系统主界面图5-1 系统主界面5.2 输入数据(1)输入操作字符1;(2)输入员工信息;(3)输入“#”字符结束输入。

图5-2 输入操作5.3 显示数据图5-3 显示信息5.4 信息排序5.5 更改信息图5-5 更正信息5.6 删除信息图5-6删除信息第6章课设总结如何才能真正的去掌握编程的方法,如何才能真正的去理解书上的理论信息,理论知识用于实践才是最终的目的。

通过本次数据结构课程设计,我对数据结构的理论知识有了更为直接的认识,从实际中获得了很多宝贵的经验,这些对我以后做程序开发将是一笔很宝贵的财富。

我有以下两点感触:(1)没有解决不了的问题。

这个程序在课设前一周就开始着手编写,中间遇到了不少的问题,由于以前写过类似的程序,所以对其中的一些错误很是敏感,也通过不少的途径来解决了问题。

比如,通过和网上的一些程序代码的对比,解决了自己程序中输出乱码的问题。

(2)注重团队协作。

虽然此次课设是完全个人完成的,但是我还是要强调团队的重要性,因为我们以后走项的程序开发的道路上,没有单枪匹马的,都是一个团队协作完成的,所以今后的程序开发过程中,尽可能的和他人合作。

万事开头难,学好编程,我还有很长的路要走。

第7章程序清单#include "stdio.h"#include "stdlib.h"#include "windows.h " //清屏函数头文件#include "string.h"typedef struct Stuff{char number[10]; //编号char name[10]; //姓名char sex[8]; //性别char birthday[10]; //生日char degree[20]; //学历char phone[15]; //电话char place[50]; //住址char con[50]; //判断关键字struct Stuff *next;}Stuff;char Menu(); //菜单函数Stuff *App(Stuff *head); //添加函数void Sort(Stuff *head); //排序函数Stuff *Search(Stuff *head); //查找函数Stuff *Change(Stuff *head,char n[10]); //更改函数void Scpy(char *p,char *q); //排序中用于交换员工信息Stuff *Del(Stuff *head,char n[10]); //删除函数int Sel(char ch,Stuff *p,Stuff *q); //判断排序及关键字专用函数void Show(Stuff *head); //输出函数void Fre(Stuff *head); //释放函数int n=1; //定义全局变量,实现人数统计char Menu(void){int ch;printf("---------------------------菜单-------------------------\n");printf(" 1.添加员工信息\n");printf(" 2.员工信息排序\n");printf(" 3.查找员工信息\n");printf(" 4.输出员工信息\n");printf(" 5.更改员工信息\n");printf(" 6.删除员工信息\n");printf(" 0.退出\n");printf("--------------------------------------------------------\n");printf(“请选择你的操作:”);scanf(" %d",&ch);return ch;}//添加成员函数Stuff *App(Stuff *head){while(n){p=(Stuff *)malloc(sizeof(Stuff)); //申请结构体空间if(p==NULL){printf("空间不足,自动退出系统!\n");exit(0);}p->next =NULL; //指针域为空printf("请输入第%d名员工:\n",n);printf(" 编号| 姓名| 性别| 出生年月| 学历| 职务| 电话| 住址:\n");getchar();scanf("%s",p->number );if(strcmp(p->number,"#")){++n;scanf("%s%s%s%s%s%s%s",p->name ,p->sex ,p->birthday ,p->degree ,p->bu siness ,p->phone ,p->place );p->con[0]='\0'; //防止后面判断出现随机值head=p;else{while(q->next !=NULL)q=q->next ;q->next =p;}q=p; //尾插法}if(!strcmp(p->number ,"#")){free(p); //完成添加,释放多余空间break;}}return head;}//排序函数void Sort(Stuff *head)char ch;Stuff *p,*q,*r;while(1){printf("请选择排序条件:1.编号|2.姓名|0.退出\n");getchar();scanf("%c",&ch);if(ch=='0')break;if(ch<'1'||ch>'2'){printf("输入错误,请重新输入!\n");continue;}p=head;while(p->next!=NULL) //选择排序{q=p->next;r=p;while(q!=NULL)if(Sel(ch,r,q)) //调用判断函数r=q;q=q->next;}if(r!=p) //交换信息{Scpy(r->number,p->number);Scpy(r->name,p->name);Scpy(r->sex,p->sex);Scpy(r->birthday,p->birthday);Scpy(r->degree,p->degree);Scpy(r->business,p->business);Scpy(r->phone,p->phone);Scpy(r->place,p->place);}p=p->next;}Show(head); //输出}}//交换函数void Scpy(char *p,char *q){char c[50];strcpy(c,p);strcpy(p,q);strcpy(q,c);}//判断函数int Sel(char ch,Stuff *p,Stuff *q){switch(ch) //实现各个关键字查找{case '1':returnstrcmp(q->number ,p->number )<0||strcmp(q->con ,p->number )==0 ;case '2':return strcmp(q->name ,p->name )<0||strcmp(q->con ,p->name )==0 ;default :}}//查找函数Stuff *Search(Stuff *head){Stuff *p=NULL,*q;int flag; //查找判断char ch,sh; //两个控制变量q=&a;while(1){printf("请输入要查找的条件:1.编号2.姓名0.退出\n");scanf(" %c",&ch);if(ch=='0')break;if(ch<'1'||ch>'2'){printf("输入错误,请重新输入!\n");continue;getchar();printf("请输入:");gets(q->con);p=head; //指向表头flag=0;while(p!=NULL){if(strcmp(q->con,p->number)==0||strcmp(q->con,p->name)==0){printf("员工信息如下:\n");printf(" 编号| 姓名| 性别| 出生年月| 学历| 职务| 电话| 住址\n%s \t%s \t%s \t%s \t%s \t%s \t%s \t%s\n",p->number ,p->name ,p->sex ,p->birthday ,p->degree ,p->business ,p-> phone ,p->place );printf("是否需要:1.更改2.删除3.继续\n");scanf(" %c",&sh);if(sh=='1')Change(head,p->number); //调用更改函数else if(sh=='2')。

相关文档
最新文档