简单的职工信息管理系统报告
管理信息系统实验报告范文

管理信息系统实验报告范文管理信息系统实验报告范文「篇一」一、实验目的1、能够正确运用系统分析的过程与方法,结合一个自选MIS项目,复习、巩固MIS分析的目的、MIS分析的内容、MIS分析方法和工具,提高系统分析实践能力。
2、熟悉业务流程图、数据流程图、数据字典的绘制。
3、熟悉Rational Rose工具的使用, 熟悉UML在MIS分析中的应用。
4、树立正确的系统分析思想,培养分析问题、解决问题的能力。
二、实验内容1、根据所述系统功能需求,开展实地调查或通过Internet查阅相关资料或结合个人经验,进行系统分析。
2、明确管理业务调查过程和方法,包括所选管理系统典型组织机构、管理功能及业务流程,优化并以图形建模。
3、明确数据流程的调查与分析过程,绘制数据流程图,编制数据字典。
4、学会使用Rational Rose软件来进行系统分析,使用UML描述分析系统的用例图、概念类图、顺序图、合作图、活动图和状态图。
三、操作步骤系统分析系统运行为C/S+B/S模式,包括图书的采访、编目、流通、查询、期刊管理、系统管理、字典管理、WEB检索与发布等八个子系统,内含操作员权限管理、读者管理、著者管理、出版社管理、图书分类管理、书商管理、订单管理,附带在线帮助系统和多媒体功效,具有技术先进、功能完备、用户友好、可靠性强、安全性高、扩展性强、适用于多操作系统和经济实用等特点。
系统同时支持Client/Server和Internet两种环境,能够适应图书馆自动化、网络化管理的需求。
图书馆管理系统系统特点:①系统采用客户机/服务器(Client/Server) + 浏览器/服务器(Browser/Server)模式,所有信息均存放在数据库服务器上,各客户机通过网络与数据库服务器通讯,WEB 服务通过ADO 模型访问数据库服务器,数据与应用安全地隔离,可确保数据存放的安全性。
② 开放的数据库结构,可让用户完成扩展功能,数据存储的可靠性和安全性提供了全面有效的保护。
职工工资信息管理系统实验报告

职工工资信息管理系统实验报告一、引言职工工资信息管理系统是一种用于管理和统计企业职工工资信息的系统,旨在提高工资管理的效率和准确性。
本实验旨在通过搭建一个简单的职工工资信息管理系统,对系统的功能和性能进行测试和评估。
二、系统需求分析职工工资信息管理系统应具备以下基本功能:1. 登录功能:提供登录界面,确保只有授权人员可以使用系统。
2. 职工信息录入功能:管理员或授权人员可以录入职工的基本信息,包括姓名、工号、岗位等。
3. 工资信息录入功能:管理员或授权人员可以录入职工的工资信息,包括基本工资、津贴、绩效工资等。
4. 工资计算功能:根据录入的工资信息,系统能够自动计算每位职工的实际工资。
5. 工资统计功能:系统能够生成工资报表,包括各部门职工工资总额、平均工资等统计信息。
6. 工资查询功能:管理员或授权人员可以通过系统查询特定职工的工资信息。
7. 数据备份与恢复功能:系统能够自动备份工资信息数据,并可在需要时方便地进行数据恢复。
三、系统设计与实现本实验采用Java语言和MySQL数据库进行系统的设计与实现。
系统前端采用Java Swing图形界面库,实现用户友好的操作界面;后端采用Java JDBC技术与MySQL数据库进行数据交互和管理。
1. 登录功能设计与实现登录功能是系统的入口,用户需要输入正确的用户名和密码才能进入系统。
在界面设计上,使用文本框和密码框接收用户输入,并通过按钮实现登录功能。
在数据库中存储用户信息表,包括用户名和密码字段,系统通过对比用户输入与数据库中的数据来实现用户的登录验证。
2. 职工信息录入功能设计与实现职工信息录入功能包括姓名、工号、岗位等信息的录入。
在界面上,通过文本框和下拉列表等来接收和展示用户输入。
用户输入完整的职工信息后,点击确定按钮将数据保存到数据库中。
3. 工资信息录入功能设计与实现工资信息录入功能包括基本工资、津贴、绩效工资等信息的录入。
在界面上,同样使用文本框等组件进行数据的输入和展示。
企业员工信息管理系统【范本模板】

本科毕业设计说明书企业员工信息管理系统的设计与实现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。
人员信息系统录入工作总结

人员信息系统录入工作总结
人员信息系统录入工作是企业管理中的重要环节,它涉及到员工的基本信息、
薪资福利、考勤记录等各种重要数据。
在这个信息化时代,人员信息系统的建立和管理对于企业的发展至关重要。
作为人力资源部门的一名工作人员,我在过去的一段时间里参与了人员信息系统的录入工作,并且积累了一些经验和体会。
首先,人员信息系统录入工作需要高度的责任感和细心。
每一个员工的信息都
是非常重要的,任何一处错误都可能导致严重的后果。
因此,在录入工作中,我始终保持高度的警惕,严格按照规定的流程和标准进行操作,确保数据的准确性和完整性。
其次,人员信息系统录入工作需要高效的工作态度和团队合作精神。
在繁忙的
工作中,我们需要高效地完成大量的数据录入,同时还要与其他部门进行信息交流和协调。
因此,我始终保持高度的工作热情和团队合作精神,与同事们密切配合,共同完成录入任务。
最后,人员信息系统录入工作需要不断学习和提升自己的能力。
随着信息技术
的发展,人员信息系统的管理工作也在不断更新和改进。
因此,作为一名从业人员,我始终保持学习的态度,不断提升自己的专业知识和技能,以适应新的工作需求。
总的来说,人员信息系统录入工作是一项重要而繁重的工作,需要我们保持高
度的责任感、细心和高效的工作态度,同时不断学习和提升自己的能力。
只有这样,我们才能更好地完成人员信息系统的录入工作,为企业的发展做出更大的贡献。
简单的员工管理系统

1、问题描述:对单位的职工进行管理,包括插入、删除、查找、排序等功能。
2、要求:职工对象包括姓名〔字符串〕、性别〔字符〕、出生年月〔数字〕、工作年月〔数字〕、学历〔字符串〕、职务〔字符串〕、住址〔字符串〕、〔字符串〕等信息。
〔1〕新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
〔2〕删除一名职工:从职工管理文件中删除一名职工对象。
〔3〕查询:从职工管理文件中查询符合某些条件的职工。
〔4〕修改:检索某个职工对象,对其某些属性进行修改。
〔5〕排序:按某种需要对职工对象文件进行排序。
3、实现功能〔1〕由键盘输入职工对象,以文件方式保存。
程序执行时先将文件读入内存。
〔2〕对职工对象中的“姓名〞按字典顺序进行排序。
〔3〕对排序后的职工对象进行增、删、查询、修改、排序等操作。
4、代码:#include <stdlib.h>#include <stdio.h>#include <malloc.h>#include <string.h>typedef struct worker{int id;char name[20];char sex[3];int age;char edu[50];int wages;char adr[255];char phone[13];}WORKER, *PWORKER;//typedef struct WORKER *PWORKER;typedef struct link{WORKER w;struct link *next;}LINK, *PLINK;//typedef struct LINK *PLINK;/*创立职工信息链表*/PLINK create(){PLINK p=(PLINK)malloc(sizeof(LINK));if(NULL!=p){p->next=NULL;return p;}printf("内存缺乏!\n");return NULL;}/*显示程序界面文字*/void message(){printf("\t\t************************************************\n\n"); printf("\t\t>>>>>>>>>>>>>>欢送进入职工管理系统<<<<<<<<<<<<<<\n\n"); printf("\t\t************************************************\n\n"); printf("\t\t ************** Choose Function *************\n\n");printf("\t\t ************ 帮助请输入:0************\n\n"); printf("\t\t ************录入职工信息请输入:1************\n\n"); printf("\t\t ************浏览职工信息请输入:2************\n\n"); printf("\t\t ************查询职工信息请输入:3************\n\n"); printf("\t\t ************删除职工信息请输入:4************\n\n"); printf("\t\t ************修改职工信息请输入:5************\n\n"); printf("\t\t ************ 清屏请输入:6************\n\n"); printf("\t\t ************ 退出请输入:-1***********\n\n");printf("\t\t************************************************\n\n"); printf("\t\t************************************************\n\n"); }void find_sr(PLINK plink, char* str){for(PLINK curr = plink->next; curr != NULL; curr = curr->next){if(strcmp(curr->, str) == 0){printf("职工工号:%d\n",curr->w.id);printf("职工姓名:%s\n",curr->);printf("职工性别:%s\n",curr->w.sex);printf("职工年龄:%d\n",curr->w.age);printf("职工学历:%s\n",curr->);printf("职工工资:%d\n",curr->w.wages);printf("职工住址:%s\n",curr->w.adr);printf("职工:%s\n",curr->w.phone);}}}void findid(PLINK plink, int id){for(PLINK curr = plink->next; curr != NULL; curr = curr->next){if(curr->w.id == id){printf("职工工号:%d\n",curr->w.id);printf("职工姓名:%s\n",curr->);printf("职工性别:%s\n",curr->w.sex);printf("职工年龄:%d\n",curr->w.age);printf("职工学历:%s\n",curr->);printf("职工工资:%d\n",curr->w.wages);printf("职工住址:%s\n",curr->w.adr);printf("职工:%s\n",curr->w.phone);}}}void show(PLINK plink){for(PLINK curr = plink->next;curr != NULL; curr = curr->next){printf("职工工号:%d\n",curr->w.id);printf("职工姓名:%s\n",curr->);printf("职工性别:%s\n",curr->w.sex);printf("职工年龄:%d\n",curr->w.age);printf("职工学历:%s\n",curr->);printf("职工工资:%d\n",curr->w.wages);printf("职工住址:%s\n",curr->w.adr);printf("职工:%s\n",curr->w.phone);}}/*录入职工信息*/int add(PLINK p){PLINK h = NULL;PLINK q=(PLINK)malloc(sizeof(LINK));if(NULL==q){printf("录入失败提示:内存缺乏!\n");return -1;}printf("请输入职工号(数字):");scanf("%d",&q->w.id);h=p->next;while(h){if(h->w.id==q->w.id){free(q);printf("录入失败提示:此职工号已经存在!\n");return -1;}h=h->next;}printf("请输入职工姓名(文字):");scanf("%s",&q->);printf("请输入职工性别(文字):");scanf("%s",&q->w.sex);printf("请输入职工年龄(数字):");scanf("%d",&q->w.age);printf("请输入职工学历(文字):");scanf("%s",&q->);printf("请输入职工工资(数字):");scanf("%d",&q->w.wages);printf("请输入职工住址(文字):");scanf("%s",&q->w.adr);printf("请输入职工(数字):");scanf("%s",&q->w.phone);q->next=p->next;p->next=q;printf(".^_^.录入成功!.^_^.\n");return -1; }/*按姓名查询*/PLINK findname(PLINK p,char *name){message();printf("按姓名查询\n");printf("职工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t \n");while(NULL!=p->next){if(0==strcmp(p->next->,name)){printf("%d\t%s\t%s\t%d\t%s\t%d\t%s\t%s\n",p->next->w.id,p->next->,p->next->w.sex,p->next->w.adr,p->next->,p->next->w.wages,p->next->w.adr,p->next->w.phone);return p;}p=p->next;}printf(".^_^.查询结束!.^_^.\n");return NULL;}/*按职工号删除职工信息*/int del(PLINK p,int id){message();printf("按职工号删除职工信息\n");while(NULL!=p->next){if(p->next->w.id==id){PLINK q=p->next;p->next=p->next->next;free(q);printf(".^_^.删除成功!.^_^.\n");return 1;}p=p->next;}printf("没有你输入的职工号!\n");return -1;/*程序结束释放内存*/void release(PLINK p){PLINK q;while(NULL!=p->next){q=p;p=p->next;free(q);}free(p);}/*查询调用*/void search(){int id;char name[20];char str[20];PLINK pworker;int l;printf("\t\t\t\t*姓名查找按:1*\n");printf("\t\t\t\t*学历查找按:2*\n");printf("\t\t\t\t*职工号查按:3*\n");scanf("%d",&l);if(l>0&&l<4){switch(l){case 1:printf("请输入要查询的职工姓名:");scanf("%s",name);findname(pworker,name);break;case 2:printf("请输入要查询的职工学历: ");scanf("%s", str);find_sr(pworker, str);break;case 3:printf("请输入要查询的职工号:");scanf("%d",&id);findid(pworker,id);break;}printf("\n\n选择完毕!!!");}else printf("\t\t\t\t输入有误!!!");/*修改职工信息*/int modify(PLINK p){int id;PLINK q;PLINK h = NULL;printf("请输入职工号(数字):");scanf("%d",&id);h=p->next;while(h){if(h->w.id==id){break;}h=h->next;}if (h == NULL){printf("找不到此职工,请重试\n");return -1;}printf("请输入职工姓名(文字):");scanf("%s",&h->);printf("请输入职工性别(文字):");scanf("%s",&h->w.sex);printf("请输入职工年龄(数字):");scanf("%d",&h->w.age);printf("请输入职工学历(文字):");scanf("%s",&h->);printf("请输入职工工资(数字):");scanf("%d",&h->w.wages);printf("请输入职工住址(文字):");scanf("%s",&h->w.adr);printf("请输入职工(数字):");scanf("%s",&h->w.phone);q->next=p->next;p->next=q;printf(".^_^.修改成功!.^_^.\n");return -1;}int main(){int cmd=0;int id;char name[20];char str[20];PLINK pworker;if(!(pworker=create())){exit(0);}while(cmd!=-1){switch(cmd){case 0: message(); break;case 1: add(pworker); break;case 2: show(pworker); break;case 3: search(); break;case 4: printf("请输入要删除的职工号:");scanf("%d",&id);del(pworker,id);break;case 5: modify(pworker); break;case 6: message(); break;}printf("请输入操作命令数字:\n");scanf("%d",&cmd);}printf("\t\t>>>>>>>>>>>>>>>>>>>>谢谢使用<<<<<<<<<<<<<<<<<<<<\n\n");release(pworker);return 0;}4.测试结果:5.总结:本次课程设计是围绕数据结构进行。
职工管理系统课程设计报告

职工管理系统课程设计报告1.引言职工管理系统是一种企业管理软件,它的主要作用是帮助企业管理职工的基本信息、工资、考勤、培训等内容。
本文将介绍我们小组设计的职工管理系统。
2.概述职工管理系统拥有多个功能模块,包括人事管理、工资管理、考勤管理、培训管理等。
其中,人事管理模块包括职工的基本信息、职务信息、部门信息等;工资管理模块包括职工的薪资计算、社保、公积金等;考勤管理模块包括职工的出勤记录、加班、请假等;培训管理模块则包括职工的培训计划、课程安排、培训记录等。
3.功能设计我们小组的职工管理系统,采用了Java语言进行开发,使用MVC 架构模式进行开发。
具体功能设计如下:3.1人事管理模块人事管理模块用于管理职工的基本信息、职务信息、部门信息等。
其中,职工的基本信息包括姓名、性别、出生日期、身份证号等;职务信息包括职务名称、职级、任职时间等;部门信息包括部门名称、部门经理、部门编号等。
除此之外,人事管理模块还可以进行权限管理,设置不同角色的权限不同。
3.2工资管理模块工资管理模块包括职工的薪资计算、社保、公积金等。
职工的薪资计算需要考虑个人工资、绩效、考勤等因素,同时还要进行税前扣减、税后扣减等计算。
社保、公积金等则需要根据国家政策进行计算。
3.3考勤管理模块考勤管理模块用于管理职工的出勤记录、加班、请假等。
出勤记录需要记录职工的出勤时间、迟到早退、旷工等,加班需要统计职工的加班时间和加班费用,请假需要记录职工的请假类型、请假时间等。
3.4培训管理模块培训管理模块用于管理职工的培训计划、课程安排、培训记录等。
培训计划需要包括培训的目标、内容、时间、地点等,课程安排需要包括课程名称、讲师、授课时间、授课地点等,培训记录需要记录职工的培训情况、培训效果等。
4.技术选型我们小组采用了Spring Boot、MyBatis等技术进行开发,前端采用了Bootstrap、jQuery等技术进行开发。
其中,Spring Boot提供了优雅的开发方式,MyBatis则提供了便捷的数据库交互方式,Bootstrap、jQuery则为前端提供了丰富的UI组件和JavaScript库。
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.编程中遇到的困难及解决方法温故而知新,可以为师矣。
数据结构课程设计 简单的职工管理系统

数据结构课程设计简单的职工管理系统简单的职工管理系统设计1. 引言本文旨在设计一个简单的职工管理系统,用于匡助管理者进行职工信息的录入、查询、修改和删除等操作。
该系统基于数据结构的相关知识,通过合理的数据结构设计和算法实现,实现对职工信息的高效管理。
2. 功能需求2.1 职工信息录入系统提供一个录入界面,管理者可以输入职工的基本信息,包括职工编号、姓名、性别、年龄、职位等。
系统应该能够对输入的信息进行合法性验证,并将信息存储到合适的数据结构中。
2.2 职工信息查询系统提供一个查询界面,管理者可以根据职工的编号、姓名、职位等条件进行查询。
系统应该能够根据查询条件从数据结构中快速定位到符合条件的职工信息,并将结果展示给管理者。
2.3 职工信息修改系统提供一个修改界面,管理者可以根据职工的编号或者姓名等条件选择一个职工信息进行修改。
系统应该能够根据选择的职工信息,提供可修改的字段,并对输入的修改信息进行合法性验证,并更新数据结构中对应的职工信息。
2.4 职工信息删除系统提供一个删除界面,管理者可以根据职工的编号或者姓名等条件选择一个职工信息进行删除。
系统应该能够根据选择的职工信息,从数据结构中删除对应的职工信息,并给出相应的提示。
3. 数据结构设计为了高效地管理职工信息,我们可以采用链表作为基本的数据结构。
每一个节点表示一个职工信息,包括职工编号、姓名、性别、年龄、职位等字段。
节点之间通过指针进行连接,形成一个链表结构。
3.1 链表节点设计每一个链表节点包含以下字段:- 职工编号(int)- 姓名(string)- 性别(string)- 年龄(int)- 职位(string)- 指向下一个节点的指针(Node*)3.2 链表操作设计- 初始化链表:创建一个空链表,并初始化头节点指针为NULL。
- 添加节点:根据输入的职工信息创建一个新节点,并将其插入到链表的合适位置。
- 删除节点:根据职工的编号或者姓名等条件,找到对应的节点,并将其从链表中删除。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
淮阴工学院算法设计技能训练实习报告题目:简单的职工管理系统系(院): 计算机工程学院专业:计算机科学与技术(微软合作)班级:计算机 1137学号:姓名指导教师:***学年学期:2014 ~ 2015 学年第1 学期2014年12月31日算法设计技能训练任务书指导教师(签章):年月日摘要在当今社会,互联网的发展,给人的工作和生活带来了极大的便利和高效,信息化、电子化已经成为节约运营成本提高工作效率的首选。
随着各个公司的规模增大,有关信息管理工作所涉及的数据量越来越大,职工信息量也大大增加,利用传统的手工查询、登记、修改等方法的处理速度已经远远跟不上公司的需求。
而且,人工方式来管理职工信息,存在着许多缺点,如:效率低、保密性差,对信息的查找、更新和维护不便。
计算机作为知识经济时代的产物,其强大的功能已为人们深刻认识。
本文对职工管理系统进行设计,主要为了企业职工的信息进行集中管理和快捷查询。
本职工信息管理系统包括新增、删除、查询、修改、排序等常用功能。
整个系统用C++语言设计,用户可轻松管理企业员工信息。
关键词职工管理系统职工信息管理 C++ 数据结构目录1 引言 (5)1.1 设计目的 (5)1.2 设计意义 (5)2 需求分析 (6)2.1 设计题目描述 (6)2.2 设计要求 (6)2.3 实现提示 (6)2.4 选做内容 (6)2.5 软硬件运行环境及开发工具 (6)3 课程设计报告内容 (6)3.1 系统设计思想 (7)3.2 系统概要设计 (7)3.3 系统详细设计 (9)3.3.1 结构体设计 (9)3.3.2 主函数设计 (9)3.3.3 查找算法设计 (11)3.3.4 排序算法设计 (11)3.4 运行与测试 (13)总结 (16)致谢 (17)参考文献 (18)附录程序代码 (19)指导教师评语 (32)图1 系统流程图 (7)图2 系统功能结构图 (8)表1 函数功能表 (8)图3 模块调用关系图 (9)图4 主函数程序流程图 (10)图5 排序算法程序流程图 (13)图6 主菜单选择界面 (13)图7 新增并查询职工信息界面 (14)图8 修改职工信息界面 (14)图9 按工资排序职工信息显示图 (15)图10 退出职工管理系统 (15)1 引言通过大一一学年对C++语言的学习,了解到了很多C++语言的相关知识。
它简洁紧凑、使用灵活方便、运算符丰富、适用范围大、可移植性好。
它既具有高级语言的特点,又具有汇编语言的特点。
此职工管理系统利用C++语言的优点,进行了设计。
睡着社会经济的飞速发展,信息化程度的不断深入,传统方式的职工信息管理已愈来愈不能满足各大公司的需求。
企业间的竞争愈加激烈时,如何高效地管理大量的职工信息,如何进行快速地查询,如何利用计算机技术加强企业职工信息管理,是摆在各家企业面前的一个迫切需要解决的问题。
信息化的职工管理系统为用户提供充足的信息和快捷的查询手段,具有手工管理所无法比拟的优点。
例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高职工管理的效率,也是公司的科学化、正规化管理和与世界接轨的重要条件。
职工管理系统作为一种管理软件正在各公司中得到越来越广泛的应用,且已达到了良好效果。
1.1 设计目的本程序旨在训练基于C++语言的编程思想,进一步加深、巩固所学专业课程的基本理论知识,理论联系实际,了解管理信息系统的开发流程,熟悉C++语言的文件和结构数组的各种基本操作。
能够利用所学的基本知识好技能,解决简单的程序设计问题,增强独立完成工作的能力。
通过本程序的训练,提高逻辑思维能力,熟练掌握一些排序算法,熟练掌握利用数组存储结构实现职工信息管理的原理,为进一步开发出高质量的管理系统打下坚实的基础。
1.2 设计意义做一个企业员工信息管理系统,就是需求所定制的,所以他首先要做的是满足最基本得员工信息的增删改查及排序基础上进行功能的扩展,其次是部门管理,工资管理等等。
一个正规性企业都希望自己的员工管理非常合理,如此复杂性的操作如果通过人手动的写,会非常的麻烦。
基于这一点考虑到设计管理类型的软件,来解决这个繁琐的问题,方便与企业的工作管理以及一些制度的规定。
在企业中,员工信息管理工作是非常重要的一项工作,它负责整个企业的日常人事安排,员工的人事管理等。
高效的人事管理可以提高企业的市场竞争力,使企业具有更强的凝聚力和活力。
为此,提高员工管理工作的效率,设计一套员工信息管理系统具有实际应用意义。
2 设计题目描述和设计要求2.1 设计题目描述对单位的职工进行管理,包括插入、删除、查找、排序等功能。
2.2 设计要求职工对象包括姓名(字符串)、性别(字符)、出生年月(数字)、工作年月(数字)、学历(字符串)、职务(字符串)、住址(字符串)、电话(字符串)等信息。
(1)新增一名职工:将新增职工对象按姓名以字典方式职工管理文件中。
(2)删除一名职工:从职工管理文件中删除一名职工对象。
(3)查询:从职工管理文件中查询符合某些条件的职工。
(4)修改:检索某个职工对象,对其某些属性进行修改。
(5)排序:按某种需要对职工对象文件进行排序。
2.3 实现提示职工对象数不必很多,便于一次读入内容,所有操作不经过内外存交换。
(1)由键盘输入职工对象,以文件方式保存。
程序执行时先将文件读入内存。
(2)对职工对象中的“姓名”按字典顺序进行排序。
(3)对排序后的职工对象进行增、删、查询、修改、排序等操作。
2.4 选做内容将职工对象按散列法存储,并设计解决冲突的方法。
在此基础上实现增、删、查询、修改、排序等操作。
2.5 软硬件运行环境及开发工具Windows7操作系统Visual C++ 6.0 运行环境3 课程设计报告内容3.1 系统设计思想(1)系统数据需求通过对企业员工的信息管理业务流程的调查,总结系统对其数据的需求,主要有:①员工档案信息,②员工工资信息,③部门、职务、工资类型等基础信息。
(2)系统功能需求系统的主要需求,即所设计的系统在功能上应做什么。
本系统主要的功能有:①员工管理:完成员工档案的新增、修改、删除、查询及打印等功能;主要实现对所有员工的姓名、性别、出生年月、工作年月、学历、职务(字符串)、住址、电话等信息的管理。
②工资管理:完成员工工资的录入、查询、分析及相关打印等功能;主要实现对员工的姓名、工资类别及工资金额等信息的管理。
③系统帮助:帮助用户解决问题,沟通与软件开发者的联系。
(3)系统性能需求系统的性能指标包括存储容量限制、运行时间限制、传输速度要求、安全保密性等几个方面。
(4)系统运行环境需求①硬件方面:采用的设备机型以及外部设备等;②软件方面:支持系统运行的系统软件,如操作系统、数据库系统等。
(5)系统可靠性及安全保密需求对系统、重要子系统在运行中的安全、可靠、保密方面提出要求。
3.2 系统总体设计1、输入功能的实现:要想实现职工管理系统的输入,必须要建立一个职工信息系统的抽象数据类型,其中职工信息以链表的存储方式实现。
由键盘输入职工对象,以文件方式保存。
程序执行时先将文件读入内存。
2、系统处理功能的实现:系统管理员根据公司的人员流动情况,在提示信息的提示下,选择相应的服务进行操作。
如对职工对象中的"姓名"按字典顺序进行排序;对排序后的职工对象进行增、删、查询、修改、排序等操作。
3、输出的实现:根据选择的操作,输出与之对应的信息。
综上可以绘制出职工管理功能的系统流程图,如图1所示。
图1 系统流程图4、功能结构根据职工管理系统问题的分析和设计要求,可以得到该职工管理系统可以分为五个模块:职工信息添加模块、职工信息修改模块、职工信息删除模块、职工信息查询模块、职工信息排序模块。
其系统功能结构如图2所示。
图2 系统功能结构图5、模块函数构造根据系统功能结构图的描述,可以构造出该系统的抽象数据类型和相对应的函数,其方法名和功能如表1所示。
表1函数功能表6、系统模块的调用关系图框架根据系统功能结构图的描述,可以构造出该系统的抽象数据类型和相对应的函数,,函数之间通过调用来实现系统的功能。
职工管理系统问题的系统模块类图如图3所示:图3模块调用关系图3.3 系统详细设计3.3.1 结构体设计本课程设计的是职工管理系统,对于职工的基本信息通过构造结构体链表实现:struct Employee{string m_Code; //编号string m_Name; //姓名string m_Year; //出生年月string m_Sex; //性别string m_Post; // 职务string m_Department; //部门unsigned int m_Wage; //工资struct Employee* Next;};3,3.2 主函数设计本程序主要是使用链表来实现操作。
使用链表这样做的好处是,可以随时增加内容,也容易将职工信息从文件中删除。
为职工设计一个类,单独设计完成这个文件读写的成员函数。
使用结构数组作为职工信息的存储器,由它们和文件建立读写关系。
需要显示它们时,先将文件读入内存,然后再显示。
需要显示输出职工信息时,则直接从内存链表中筛选。
当然,需要显示原始信息时,也通过直接显示链表信息的方法实现。
这四种数据的显示问题均通过一个成员函数来完成。
(1)根据详细设计要求,可以得到主函数代码及其对应的程序流程图:在主函数中,实现了友好的界面设计。
系统需要输入职工的基本信息:姓名、性别、出生年月、工作年月、学历、职务、住址、电话等。
这个系统还利用键盘输入提供的主菜单服务,在主菜单中,有七种操作的调用:1)新建函数 Link Create(Link Head);//创建一个带头节点的空链表2)修改函数 Link Modify(Link Head);//修改单个节点3)删除函数 Link Del(Link &Head);4)查询函数:bool Search(Link Head)//查询同时满足“姓名”和“部门”的职工信息Link Search_Unique_Front(Link Head)//查询满足“职工代码“的职工信息(职工代码必需唯一)5)保存函数 void Save_ByFile(Link Head)6)排序函数(包括按工资排序和按姓名进行字典排序)Link Sort(Link Head)Link Sort_byname(Link Head)7)显示函数 void Display_List(Link Head)(2)主函数程序流程图如图4所示:图4主函数程序流程图3.3.3 查找算法设计在查询算法中,职工管理系统提供了七种查询操作,实现了系统的人性化查询操作。