职工信息管理系统
职工信息管理系统【最新范本模板】

职工信息管理系统目录一,需求文档…………………………………………………………………………………二,设计文档……………………………………………………………………………….. 三,系统说明书及用户操作手册………………………………………………。
.。
四,预计人员分配资源调配和进度表………………………………………。
五,分工表………………………………………………………………………………….一,需求文档:1,编写目的:职工管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者和管理者来说都至关重要,所以职工管理系统应该能够为用户提供充足的信息和快捷的查询手段。
通过对用户需求进行调查分析,写出需求分析文档作为项目设计的基本准则要求,以及系统分析员进行系统分析和测试人员进行测试时的手册,方便设计人员进一步设计规划。
2,需求概述:设计一个职工信息管理系统,是其具有以下功能:2。
1建立职工信息数据,录入职工信息(包括职工编号、姓名、性别、工资、出生年月、参加工作时间和年龄)并保存;2.2根据职工信息表,建立只含有姓名和年龄的职工信息简表;2.3浏览所有职工信息;2.4实现职工信息的增、删、查、改;2.5实现职工信息按姓名字母顺序或职工编号进行排序。
3,需求说明:职工信息管理系统所实现的功能:3。
1添加新职工信息:实现对新加入职工信息的录入,所有的信息当中主码即职工信息编号,必须填写。
3。
2删除职工信息:当公司有职工因故离职,需要删除职员信息时,释放掉它所占据的数据库空间,就可以在列表中选中所要删除的记录,然后点击删除。
如果确认删除则在弹出的消息框中点击确定即可删除所选的记录。
3。
3修改职工信息:由于某种原因可能导致在记录员工信息时出现错误,需要对员工信息进行修改。
在员工信息系统主窗口中选择所要修改的成员信息进行修改,点击修改后将会弹出消息框,如果确认修改则点击确定,则修改数据成功。
3。
4查询职工信息:支持多条件查询,根据职工的姓名、职工编号等信息进行查询,并显示所有符合查询条件的职工信息。
企业员工信息管理系统【范本模板】

本科毕业设计说明书企业员工信息管理系统的设计与实现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。
软件工程课设-企业员工信息管理系统

企业员工信息管理系统摘要:在当今社会,互联网空前的发展,给人们的工作和生活带来了极大的便利和高效,信息化,电子化已经成为节约运营成本,提高工作效率的首选。
考虑到当前大量企业的企业员工管理尚处于手工作业阶段,不但效率低下,还常常因为管理的不慎而出现纰漏.因此根据部分企业提供的需求,设计此企业企业员工信息管理系统,以帮助企业达到企业员工管理办公自动化、节约管理成本、提高企业工作效率的目的。
根据实际需求,“企业员工信息管理系统”项目采用模块化的设计思想,在Windows XP操作系统环境下,以SQL 2005数据库作为开发平台。
使用jsp编写程序,完成数据输入、修改、存储、调用查询等功能;并使用SQL 2005数据库形成数据,进行数据存储。
本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了企业员工信息管理的工作效率和企业的信息化的水平.关键字:SQL 2005 数据库;jsp;信息管理1.引言1.课题背景现代信息技术的发展,在改变着我们的生活方式的同时,也改变着我们的工作方式,使传统意义上的企业员工管理的形式和内涵都在发生着根本性的变化。
企业员工信息管理的内容也己经转变为对更为广泛的系统价值的追求。
信息管理,如今已是一个热门话题,它已为许多企业所采用。
在现代化的进程中,引入现代管理的思想,建立一套可面向企业单位的员工信息管理系统,也是十分必要的。
本课题基于我国企业管理信息化建设现状,结合在实际工作中所遇到的问题和收获,对企业员工管理系统在设计开发等方面进行研究,重点研究系统开发中所采用的软硬件平台规范、数据库结构设计、开发工具的选择与使用,目的是从技术手段的角度阐述如何实现企业从传统经营管理模式向信息化管理模式转变的过程,以及企业员工管理系统在企业管理信息化中所起到的重要作用。
2。
国内外研究现状目前,在国内外各大企业单位中,企业员工信息管理系统的使用是非常广泛的.同时,有很多的软件开发商也开发了许多基于各种行业的企业员工信息管理学系统。
人事管理信息系统

公务员考核
定期考核公务员工作表现,激 励优秀公务员。
薪酬福利管理
管理公务员薪酬福利,确保公 平合理。
教育机构教职工管理
教师招聘
筛选简历、组织面试,选拔优 秀教师。
教师培训
组织教师参加培训活动,提升 教学水平。
教师考核
定期评估教师工作表现,激励 优秀教师。
薪酬福利管理
管理教师薪酬福利,确保公平 合理。
功能
人事管理信息系统通常具备员工档案 管理、考勤管理、薪资管理、培训管 理、绩效评估等功能模块,帮助企业 实现高效的人力资源管理。
系统的重要性
提高人力资源管理效率
通过自动化和集中化管理,人事管理 信息系统可以显著提高人力资源管理 的效率,减少手工操作和重复性工作 。
促进数据驱动决策
提升员工满意度
良好的人事管理信息系统能够提供更 好的员工服务,例如在线查询工资单 、在线申请休假等,从而提高员工的 满意度和忠诚度。
详细描述
薪酬福利管理模块是人事管理信息系统的重要组成部分,主要负责员工的薪酬和福利管理。通过该模 块,企业可以设置薪酬体系、福利政策,并实现透明化管理,使员工能够清晰地了解自己的薪酬福利 构成和计算方式。同时,该模块还可以进行薪酬福利的调整和发放,提高管理效率。
培训与发展管理模块
总结词
培训计划制定与实施
非营利组织人员管理
志愿者招募
发布招募信息、筛选志愿者,组织培训活动 。
志愿者培训
组织志愿者参加培训活动,提升服务水平。
志愿者管理
记录志愿者服务情况,评估服务质量。
志愿者激励
根据服务表现,给予志愿者相应的奖励和荣 誉。
05
人事管理信息系统的 挑战与解决方案
职工管理系统课程设计报告

职工管理系统课程设计报告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库。
职工信息管理系统设计python

职工信息管理系统设计python1. 系统功能需求分析1.1 系统管理功能针对管理员用户,需要具备用户管理、角色管理、权限管理等功能,以便管理员对系统进行管理和维护。
1.2 职工信息管理功能能够实现对职工基本信息的增删改查操作,包括但不限于职工尊称、性莂、芳龄、部门、职位等基本信息的管理。
1.3 统计报表功能能够生成职工信息统计报表,提供数据分析和可视化展示功能,帮助管理者进行决策和分析。
2. 系统技术选型2.1 开发语言选择Python作为开发语言,Python具有简洁、高效的特点,适合快速开发。
2.2 数据库使用MySQL作为系统数据库,MySQL是一款成熟可靠的关系型数据库,能够满足系统数据存储和查询需求。
2.3 框架选择Django作为系统开发框架,Django是一款开发快速、功能强大的Web框架,提供了丰富的开发工具和插件,适合构建企业级应用。
3. 系统架构设计3.1 前端架构采用HTML、CSS、JavaScript等前端技术,实现用户界面的设计和交互功能。
3.2 后端架构使用Django作为系统后端框架,通过Python语言实现系统的业务逻辑和数据处理功能。
3.3 数据库架构使用MySQL作为系统数据库,设计合理的数据表结构,确保系统数据存储的准确性和完整性。
4. 系统开发与测试4.1 开发环境搭建搭建Python、Django、MySQL等开发环境,并进行配置和调试,确保开发环境的稳定性。
4.2 系统开发根据功能需求和技术选型,进行系统开发工作,包括前端界面设计、后端业务逻辑实现、数据存储和处理等工作。
4.3 系统测试进行系统功能测试、性能测试、安全测试等,确保系统的稳定性和安全性。
5. 系统部署与维护5.1 系统部署将系统部署到生产环境中,配置服务器、数据库等,确保系统能够正常运行。
5.2 系统监控与维护定期对系统进行监控和维护,包括但不限于系统性能优化、安全漏洞修复、数据备份等工作。
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.编程中遇到的困难及解决方法温故而知新,可以为师矣。
教职工信息管理系统

ABCD
集成测试
将所有模块集成后进行测试,确保模块间通信无 误。
优化建议
根据测试结果,对系统进行必要的优化,如调整 数据库查询语句、优化代码结构等。
05 系统应用与效果评估
系统应用场景与效果
教职工信息管理
系统主要用于管理教职工的基本信息,如姓名、性别、年龄、学历、职称等。
课程与教学管理
系统支持对教职工所授课程、教学计划、教学评估等进行管理。
包括教职工的姓名、性别、年龄、学历、职 称等基本信息的管理。
教职工考勤管理
记录教职工的考勤信息,包括请假、加班、 出差等情况。
教职工合同管理
管理教职工的合同信息,包括合同签订、续 签、解除等操作。
教职工绩效评估
对教职工的工作绩效进行评估,记录评估结 果并根据绩效进行激励。
学生信息管理需求
学生基本信息管理
报表生成模块
根据用户需求生成各类报表,如教职工花名 册、职称结构统计等。
04 系统实现
开发环境与工具
开发环境
系统开发环境应选择稳定、安全 的操作系统,如Windows
Server或Linux,并安装必要的 开发软件,如Visual Studio、
Eclipse等。
数据库
选择合适的数据库管理系统,如 MySQL、Oracle或SQL Server,
用于存储和查询教职工信息。
前端开发工具
使用HTML、CSS、JavaScript 等前端技术,配合jQuery、
Bootstrap等框架,构建用户友 好的界面。
开发过程与关键技术
需求分析
系统设计
编程实现
明确系统的功能需求,确定 系统的主要模块和业务流程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 登录主界面设置用户名和密码,输入正确方可进入主界面。
由strcmp函数判断,代码实现:if((strcmp(username,"abcde")==0)&&(strcmp(pwd,"123456")==0)) [2]如果输入用户名和密码错误超过三次,则自动退出程序。
代码实现:for(i=0;i<3;i++){printf("\n请输入用户名:");gets(username);printf("\n请输入6位密码:");gets(pwd);……if(k==0)printf("\n连续输入三次错误将退出程序:n");Sleep(2000);quit();3.2.2主界面第4页 /共 30页进入主界面后用户可以根据自己的需要选择相应的选项1.显示员工资料;2.录入员工资料;3.员工信息查询;4.删除员工信息;0.退出信息系统。
[3]代码实现:while ((n!='1')&&(n!='2')&&(n!='3')&&(n!='4')&&(n!='5')&&(n!='0')){printf("\n请选择:")……{case '1':display();break;case '2':if(count<50)input();else{printf("记录数已满\n");Sleep(2000);system("cls");homepage();第5页 /共 30页}break;……default:printf("\n选项错误\n");}}}3.2.3 显示员工信息界面一条信息由员工的工号、姓名、性别、年龄、学历、工资、住址和电话组成,用户登录此界面可查看相应的信息,用switch()语句来实现。
代码实现:void display(){int i;char c;printf("备注:学历(1=中专,2=大专,3=本科,4=硕士,5=博士,6=其它):\n\n\n");switch(sort_type){case 0: printf("\t\t未排序:\n\n"); break;第6页 /共 30页case 1:printf("\t\t按工号排序:\n\n"); //sort();break;case 2:printf("\t\t按工资排序:\n\n");//sort();break;}printf("\t工号\t姓名\t性别\t年龄\t学历\t工资\t住址\t电话\n");……3.2.4 录入员工信息界面登录此界面可以录入新员工的信息,当系统中的员工人数达到上限时不可以录入新信息。
if(work[count].num==work[i].num);numcheck=0判定录入的工号是否重复,重复的话会有重新输入的提示,避免职工信息的重复。
当记录数已满时,通过sleep(2000),使之回到主界面,进行其他选项设置。
[2]代码实现:void input(){ int i,numcheck;char c;do{ printf("工号:\n");scanf("%d",&work[count].num);numcheck=1;if(work[count].num<0)printf("请输入正整数:\n");……第7页 /共 30页do{c=getchar();if(c=='y'||c=='Y'){count++;……3.2.5 查询员工信息界面员工信息的查询可以按工号或学历进行查询。
用if函数来实现。
通过while ((choice!=1)&&(choice!=2));这个选择来实现查询的方式,选择“1”为工号查询,选择“2”则为按学历查询。
if (find_num==work[i].num)即为根据职工号进行查询,strcmp(findedu,work[i].exp)根据学历进行职工信息查询。
代码实现:void find(){int i,j;int choice=0;int find_num;char findedu[6];char c;system("cls");第8页 /共 30页printf("\t\t请选择查询功能:\n");……}while ((choice!=1)&&(choice!=2));if (choice==1){printf("\n\t请输入要查询的职工号\n");scanf("%d",&find_num);printf("\n正在查询,请稍候");for(i=0;i<20;i++){printf(".");Sleep(100);}system("cls");printf("\n\n按任意键返回\n");c=getch();system("cls");homepage();}3.2.6 删除员工信息界面第9页 /共 30页首先要进行职工信息查询,然后再对查询到的职工进行删除。
printf("%d",&del_num);即为显示要删除的职工号,if(c=='y'||c=='Y')则是确定是否删除选定的职工信息。
最后通过homepage()回到主界面。
代码实现:void del(){int i,j,del_num,match=0;char c;system("cls");printf("请输入要删除的员工工号:\n");scanf("%d",&del_num);waiting();for(i=0;i<count;i++){if(work[i].num==del_num){match=1;for(j=i;j<count;j++)work[j]=work[j+1];第10页 /共 30页4 使用说明及运行实例(1)登录主界面按提示输入用户名和密码登录主界面,输入累计错误三次自动退出系统。
用户名:abcde;密码:123456图4.1 登陆界面(2)主界面进入主界面选择相应的选项进行操作第11页 /共 30页第 12页 /共 30页图4.2 主界面(3) 查询员工信息界面如图4.3按所选功能输入相应的信息查询员工资料。
图 4.3 查询信息界面(4)显示员工信息第 13页 /共 30页图 4.4 无序显示员工信息(5) 删除员工信息界面如图4.5.1按提示输入信息,并确认。
图 4.5 删除员工信息界面(6)录入界面如图4.6输入员工的相应信息,输入工号重复后系统提示重新输入。
图4.6 录入员工界面(7)退出程序显示界面图4.7 退出系统显示界面第14页 /共 30页5 总结5.1 遇到的问题及解决办法(1)些字符或字符串的定义上出项错误,如定义职工电话号码的时候,用成了float类型,而正确的应该是char类型。
(2)对排序模块进行设计时流程图没设计好,导致运行程序时间过长。
(3)在进行模块函数设计时,find()函数功能没有设计好,导致部分函数代码过长,可读性降低。
再次重写里面的一部分代码,浪费了大量的时间。
5.2 心得体会这次的课程设计让我学会了许多函数的使用,培养了分析问题、解决问题的能力,同时也体会到了C语言操作灵活、执行效率高等特点。
在整个课程设计中,我认为最重要的就是耐心和细心。
在编写过程中注意拼写,仔细编写程序;在程序编译中出现很多错误的时候能够耐心去修改,这些都是需要学习的。
只有这样,才能很好的完成程序。
上机操作可以加深对数组、循环等语句的理解。
刚开始拿到题目不知道从哪里下手,只有去搜集一些课外资料和咨询师兄师姐们的意见。