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

职工信息管理系统目录一,需求文档…………………………………………………………………………………二,设计文档……………………………………………………………………………….. 三,系统说明书及用户操作手册………………………………………………。
.。
四,预计人员分配资源调配和进度表………………………………………。
五,分工表………………………………………………………………………………….一,需求文档: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。
人事管理信息系统

公务员考核
定期考核公务员工作表现,激 励优秀公务员。
薪酬福利管理
管理公务员薪酬福利,确保公 平合理。
教育机构教职工管理
教师招聘
筛选简历、组织面试,选拔优 秀教师。
教师培训
组织教师参加培训活动,提升 教学水平。
教师考核
定期评估教师工作表现,激励 优秀教师。
薪酬福利管理
管理教师薪酬福利,确保公平 合理。
功能
人事管理信息系统通常具备员工档案 管理、考勤管理、薪资管理、培训管 理、绩效评估等功能模块,帮助企业 实现高效的人力资源管理。
系统的重要性
提高人力资源管理效率
通过自动化和集中化管理,人事管理 信息系统可以显著提高人力资源管理 的效率,减少手工操作和重复性工作 。
促进数据驱动决策
提升员工满意度
良好的人事管理信息系统能够提供更 好的员工服务,例如在线查询工资单 、在线申请休假等,从而提高员工的 满意度和忠诚度。
详细描述
薪酬福利管理模块是人事管理信息系统的重要组成部分,主要负责员工的薪酬和福利管理。通过该模 块,企业可以设置薪酬体系、福利政策,并实现透明化管理,使员工能够清晰地了解自己的薪酬福利 构成和计算方式。同时,该模块还可以进行薪酬福利的调整和发放,提高管理效率。
培训与发展管理模块
总结词
培训计划制定与实施
非营利组织人员管理
志愿者招募
发布招募信息、筛选志愿者,组织培训活动 。
志愿者培训
组织志愿者参加培训活动,提升服务水平。
志愿者管理
记录志愿者服务情况,评估服务质量。
志愿者激励
根据服务表现,给予志愿者相应的奖励和荣 誉。
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. 功能需求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)。
职工信息管理系统1、可行性分析在当今社会,互联网得发展,给人们得工作与生活带来了极大得便利与高效,信息化,电子化已经成为节约运营成本,提高工作效率得首选。
当前大量企业得员工管理尚处于手工作业阶段,不但效率低下,还常常因为管理得不慎而出现纰漏。
因此部分企业需求,设计企业员工信息管理系统,以帮助企业达到员工管理办公自动化、节约管理成本、提高企业工作效率得目得。
员工信息管理系统主要对企业员工得信息进行集中管理,方便企业建立一个完善得、强大得员工信息数据库,它就是以SQL2000数据库作为开发平台,使用java编写程序、完成数据输入、修改、存储、调用查询等功能。
并使用SQL 2000数据库形成数据,进行数据存储。
本项目开发计划旨在明确规范开发过程,保证项目质量,统一小组成员对项目得理解,并对其开发工作提供指导;同时还作为项目通过评审得依据。
并说明该软件开发项目得实现在技术上、经济上与社会因素上得可行性,评述为了合理地达到开发目标可供选择得各种可能实施方案,说明并论证所选定实施方案得理由。
1、1 技术可行性根据用户提出得系统功能、性能及实现系统得各项约束条件,根据新系统目标,来衡量所需技术就是否具备。
本系统主要采用数据库管理方法,服务器选用MySQL Server 数据库,她就是它就是目前能处理所有中小型系统最方便得流行数据库,它能够处理大量数据,同时保持数据得完整性并提供许多高级管理功能。
它得灵活性、安全性与易用性为数据库编程提供了良好得条件。
硬件方面,该系统短小精悍对赢家没有太大要求,只要能够运行windows操作系统就可以很好得运行该软件。
1、2操作可行性由系统分系可以瞧出本系统得开发在技术上具有可行性。
首先系统对于服务器端与客户端所要求得软、硬件得最低配置现在大多数得用户用机都能达到。
本系统对管理人员与用户没有任何得特殊要求,实际操作基本上以鼠标操作为主并辅以少量得键盘操作,操作方式很方便。
因此该项目具有良好得易用性。
用户只要具备简单得应用计算机得能力无论学历,无论背景,均可以使用本系统,用户界面上得按钮得功能明确,用户一瞧就可以了解怎么使用本系统,以及本系统能够完成得功能,因此本系统在操作上就是可行得。
1、3经济可行性估算新系统得成本效益分析,其中包括估计项目开发得成本,开发费用与今后得运行、维护费用,估计新系统将获得得效益,估算开发成本就是否回高于项目预期得全部经费。
并且,分析系统开发就是否会对其它产品或利润带来一定影响。
本系统作为一个课程设计,没有必要考虑维护费用,以及本系统可获得得效益等问题。
1、4法律及社会效益方面得可行性由于本系统只就是一个课程设计,在图书馆查询相关资料因此不存在侵权等法律与社会影响方面得问题,不存在侵权级相应得法律问题。
关于效益方面,本系统仅仅就是一个课程设计,只就是为了提高自己得分析,设计能力,而非为了社会效益而编写设计,因此社会效益方面也就是可行得。
2、需求分析通过对职工信息管理系统得研究分析,根据可行性分析得方案与项目成员得讨论,编制本需求说明书。
本报告用于财职工信息管理系统得需求规格明确系统得功能需求,业务流程与性能要求以及与有关系统得接口关系,它将就是系统最终实现与审评得根据之一,就是进一步设计、开发得基础。
本报告得阅读范围:项目组得项目管理、软件开发与系统测试人员、指导老师等。
2、1需求概述2、1、1目标作为课程设计,本项目开发得人员、技术等资源非常有限,本项目开发得职工信息管理系统不能算就是真正意义上得职工信息管理系统,只就是简单得对职工得个人资料、工资信息进行电子系统管理,其主要为用户提供查询个人工资信息功能,针对得用户就是某事业单位得职工信息管理,职工数量较少,系统功能简单,操作也要简单方便,要便于管理维护。
2、1、2用户特征最终得用户就是职工管理员与公司职工,管理员需要对用户资料进行增删改查与对自己密码修改等操作,要求管理员具备相应得计算机知识,如权限管理等。
公司职工就是普通用户,具备一定得计算机操作即可。
2、2功能性需求1、能够存储一定数量得用户信息,并方便有效得进行相应得用户资料操作与管理,这主要包括以下内容。
(1)管理员对用户资料得录入、删除及修改;(2)管理员对用户资料得查询;(3)用户对用户资料得查询;(4)员工基本工资表,反应员工得月基本工资;(5)员工津贴表,反映员工津贴;2、能够存储员工信息,并方便有效得进行员工信息与密码修改,保证员工信息得及时更新以及信息得安全性保证。
2、3非功能性需求2、3、1性能需求职工信息管理系统得使用者就是公司职工,对于系统管理员得管理工作与职工得查询、注册等功能,性能要求都不就是很高,本系统就是简单小型得个人信息管理系统,只适用于小规模企业单位,使用得人员数量不大,并发数小,所以性能要求不就是很严格。
2、3、2安全性需求对于职工得信息管理关系到个人利益及公司得整体利益,所以安全性得要求比较高。
主要就是要保证数据得完整性、一致性,控制权限,防止某人恶意攻击系统,修改原始记录。
同时对数据库中得数据需要定时备份,防止系统数据丢失。
2、3、3界面图形需求要求系统操作界面美观大方,各功能操作具体步骤与方法显示清晰,人机交互页面友好。
2、4职工信息管理得大致过程数据流图图2、4又根据工资管理要求及用户需求调查分析,得到以下第一层数据流图,见图2、5;图2、52、5系统设计工资(职工号,姓名,基本工资,)津贴(职工号,姓名,奖金)其中,标有下划线得字段表示为该数据表得主码,即主关键字。
在上面得实体以及实体之间关系得基础上,形成数据库中得表格以及各个表格之间得关系。
工资信息管理系统数据库中各个表格得设计结果如下面得几个表格所示。
每个表格表示在数据库中得一个表。
表一:员工信息表:4.详细设计4、1程序中得数据结构本系统中主要得数据结构就就是职工得信息与职工得工资,包含职工号、姓名、工资等,在处理过程中各项可以作为一个职工得不同属性来进行处理。
4、2各模块实现得算法4、2、1职工信息管理模块功能为:财务部门相关人员录入、修改、删除、查询员工个人信息部分基本算法实现:public class YGGL extends JFrame implements ActionListener { JFrame f = new JFrame("员工信息管理");JButton b1 = new JButton("添加新员工信息");JButton b2 = new JButton("修改员工信息");JButton b3 = new JButton("删除员工信息");JButton b4 = new JButton("查询所有员工信息");JButton b5 = new JButton("返回");JTextField tf1 = new JTextField(4);JTextField tf2 = new JTextField(4);JTextField tf3 = new JTextField(4);JTextField tf4 = new JTextField(4);JTextField tf5 = new JTextField(6);JTextField tf6 = new JTextField(7);String[] cloum = { "职工号", "姓名", "津贴", "月基本工资","月薪","登陆密码"};Object[][] row = new Object[50][6];JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table);JSplitPane splitpane = new JSplitPane(JSplitPane、VERTICAL_SPLIT);void create() {JPanel p = (JPanel) f、getContentPane();p、setLayout(new FlowLayout());p、add(scrollpane);p、add(splitpane);JPanel p1 = new JPanel();p1、add(b1);p1、add(b2);p1、add(b3);p1、add(b4);p1、add(b5);JPanel p2 = new JPanel();p2、setBackground(Color、cyan);p2、add(scrollpane);p、setLayout(new FlowLayout());p、add(new JLabel(""));p、add(new JLabel("职工号"));p、add(tf1);p、add(new JLabel("姓名"));p、add(tf2);p、add(new JLabel("津贴"));p、add(tf3);p、add(new JLabel("月基本工资"));p、add(tf4);p、add(new JLabel("登陆密码"));p、add(tf5);p、add(new JLabel(" 在此处输入职工号点击查询删除"));p、add(tf6);splitpane、add(p1, splitpane、TOP);splitpane、add(p2, splitpane、BOTTOM);splitpane、setDividerLocation(50);p、setBackground(Color、CYAN);b1、addActionListener(this);b2、addActionListener(this);b3、addActionListener(this);b4、addActionListener(this);b5、addActionListener(this);f、setBounds(200, 100, 600, 600);f、setResizable(true);// 可以调整界面大小f、setVisible(true);}public void actionPerformed(ActionEvent e) {if (b1、equals(e、getSource())) { // 添加新员工信息Connection con;Statement sql;try {Class、forName("org、gjt、mm、mysql、Driver");} catch (ClassNotFoundException e1) {JOptionPane、showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con、createStatement();String insertStr = "INSERT INTO welfare (no,name,jt)VALUES('"+tf1、getText()+"','"+tf2、getText()+"','"+tf3、getText()+"');";sql、executeUpdate(insertStr);String insertStr1 = "INSERT INTO wageinfo (no,name,jb)VALUES('"+tf1、getText()+"','"+tf2、getText()+"','"+tf4、getText()+"');";sql、executeUpdate(insertStr1);String insertStr2 = "INSERT INTO workerinfo (no,name,mi)VALUES('"+tf1、getText()+"','"+tf2、getText()+"','"+tf5、getText()+"');";sql、executeUpdate(insertStr2);JOptionPane、showMessageDialog(this, "添加成功!");con、close();} catch (SQLException e1) {JOptionPane、showMessageDialog(this, "添加失败!");}}if (b2、equals(e、getSource())) {// 修改员工信息Connection con;Statement sql;try {Class、forName("org、gjt、mm、mysql、Driver");} catch (ClassNotFoundException e1) {JOptionPane、showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con、createStatement();con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con、createStatement();String updateStr = "UPDATE welfare SET jt='"+tf3、getText()+"',name='"+tf2、getText()+"'where no='"+tf1、getText()+"';";sql、executeUpdate(updateStr);String updateStr1 = "UPDATE wageinfo SET jb='"+tf4、getText()+"',name='"+tf2、getText()+"'where no='"+tf1、getText()+"';";sql、executeUpdate(updateStr1);sql、executeUpdate(updateStr1);String updateStr2 = "UPDATE workerinfo SET name='"+tf2、getText()+"',mi='"+tf5、getText()+"'where no='"+tf1、getText()+"';";sql、executeUpdate(updateStr2);JOptionPane、showMessageDialog(this, "修改成功!");con、close();} catch (SQLException e1) {JOptionPane、showMessageDialog(this, "修改失败!");}}if (b3、equals(e、getSource())) {// 删除员工信息Connection con;Statement sql;try {Class、forName("org、gjt、mm、mysql、Driver");} catch (ClassNotFoundException e1) {JOptionPane、showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con、createStatement(ResultSet、TYPE_SCROLL_SENSITIVE,ResultSet、CONCUR_READ_ONLY);sql、executeUpdate("DELETE FROM wageinfo where no='"+tf6、getText()+"';");sql、executeUpdate("DELETE FROM welfare where no='"+tf6、getText()+"';");sql、executeUpdate("DELETE FROM workerinfo where no='"+tf6、getText()+"';");JOptionPane、showMessageDialog(this, "删除成功!");con、close();} catch (SQLException e1) {JOptionPane、showMessageDialog(this, "删除失败!");}}if (b4、equals(e、getSource())) {// 查询全部员工信息Connection con;Statement sql;ResultSet rs;try {Class、forName("org、gjt、mm、mysql、Driver");} catch (ClassNotFoundException e1) {JOptionPane、showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con、createStatement(ResultSet、TYPE_SCROLL_SENSITIVE,ResultSet、CONCUR_READ_ONLY);if (b4、equals(e、getSource())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)table、setValueAt("", i, j);rs = sql、executeQuery("select distinct * from wageinfo ,welfare,workerinfo where wageinfo、no=welfare、no and wageinfo、no=workerinfo、no ;");int k = -1;while (rs、next()) {++k;String no = rs、getString(1);String name = rs、getString(2);String jb = rs、getString(3);String jt = rs、getString(6);int sum= rs、getInt(3)+rs、getInt(6);String mi = rs、getString(9);table、setValueAt(no, k, 0);table、setValueAt(name, k, 1);table、setValueAt(jb, k, 3);table、setValueAt(jt, k, 2);table、setValueAt(sum,k,4);table、setValueAt(mi,k,5);}}} catch (SQLException e1) {JOptionPane、showMessageDialog(this, "查询失败!");}}if (b5、equals(e、getSource())) {// 返回GZGLZJM gl=new GZGLZJM();gl、create();f、dispose();}}}4、2、2职工工资管理模块功能为:根据工资生成公式,按照员工得考勤情况及各种表现按月生成相应得工资;财务部门相关人员能录入、修改、删除、查询每个月每个员工得工资信息以及工资汇总;员工本人能查询自己得工资信息以及工资汇总;部分基本算法实现:public class GZGL extends JFrame implements ActionListener { JFrame f = new JFrame("工资管理");JButton b1 = new JButton("录入");JButton b2 = new JButton("修改");JButton b3 = new JButton("删除");JButton b4 = new JButton("查询所有");JButton b5 = new JButton("返回");JTextField tf1 = new JTextField(4);JTextField tf2 = new JTextField(4);JTextField tf3 = new JTextField(4);JTextField tf4 = new JTextField(4);JTextField tf5 = new JTextField(6);JTextField tf6 = new JTextField(7);String[] cloum = { "职工号", "姓名", "津贴", "月基本工资","月薪"};Object[][] row = new Object[50][5];JTable table = new JTable(row, cloum);JScrollPane scrollpane = new JScrollPane(table);JSplitPane splitpane = new JSplitPane(JSplitPane、VERTICAL_SPLIT);void create() {JPanel p = (JPanel) f、getContentPane();p、setLayout(new FlowLayout());p、add(scrollpane);p、add(splitpane);JPanel p1 = new JPanel();p1、add(b1);p1、add(b2);p1、add(b3);p1、add(b4);p1、add(b5);JPanel p2 = new JPanel();p2、setBackground(Color、cyan);p2、add(scrollpane);JPanel p3 = new JPanel();p、setLayout(new FlowLayout());p、add(new JLabel(""));p、add(new JLabel("职工号"));p、add(tf1);p、add(new JLabel("姓名"));p、add(tf2);p、add(new JLabel("津贴"));p、add(tf3);p、add(new JLabel("月基本工资"));p、add(tf4);p、add(new JLabel("月薪"));p、add(tf5);p、add(new JLabel(" 在此处输入职工号点击查询删除"));p、add(tf6);splitpane、add(p1, splitpane、TOP);splitpane、add(p2, splitpane、BOTTOM);splitpane、setDividerLocation(50);p、setBackground(Color、CYAN);b1、addActionListener(this);b2、addActionListener(this);b3、addActionListener(this);b4、addActionListener(this);b5、addActionListener(this);f、setBounds(200, 100, 500, 600);f、setResizable(true);// 可以调整界面大小f、setVisible(true);}public void actionPerformed(ActionEvent e) {if (b1、equals(e、getSource())) { // 录入Connection con;Statement sql;try {Class、forName("org、gjt、mm、mysql、Driver");} catch (ClassNotFoundException e1) {System、out、println("" + e1);}try {con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con、createStatement();String insertStr = "INSERT INTO welfare (no,name,jt)VALUES('"+tf1、getText()+"','"+tf2、getText()+"','"+tf3、getText()+"');";sql、executeUpdate(insertStr);String insertStr1 = "INSERT INTO wageinfo (no,name,jb)VALUES('"+tf1、getText()+"','"+tf2、getText()+"','"+tf4、getText()+"');";sql、executeUpdate(insertStr1);con、close();JOptionPane、showMessageDialog(this, "入录成功!");} catch (SQLException e1) {JOptionPane、showMessageDialog(this, "入录失败!");}}if (b2、equals(e、getSource())) {// 修改Connection con;Statement sql;try {Class、forName("org、gjt、mm、mysql、Driver");} catch (ClassNotFoundException e1) {System、out、println("" + e1);}try {con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con、createStatement();String updateStr = "UPDATE welfare SET jt='"+tf3、getText()+"',name='"+tf2、getText()+"'where no='"+tf1、getText()+"';";sql、executeUpdate(updateStr);String updateStr1 = "UPDATE wageinfo SET jb='"+tf4、getText()+"',name='"+tf2、getText()+"'where no='"+tf1、getText()+"';";sql、executeUpdate(updateStr1);JOptionPane、showMessageDialog(this, "修改成功!");con、close();} catch (SQLException e1) {JOptionPane、showMessageDialog(this, "信息不存在!");}}if (b3、equals(e、getSource())) {// 删除Connection con;Statement sql;ResultSet rs;try {Class、forName("org、gjt、mm、mysql、Driver");} catch (ClassNotFoundException e1) {System、out、println("" + e1);}try {con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con、createStatement(ResultSet、TYPE_SCROLL_SENSITIVE,ResultSet、CONCUR_READ_ONLY);sql、executeUpdate("DELETE FROM wageinfo whereno='"+tf6、getText()+"';");sql、executeUpdate("DELETE FROM welfare where no='"+tf6、getText()+"';");JOptionPane、showMessageDialog(this, "删除成功!");con、close();} catch (SQLException e1) {JOptionPane、showMessageDialog(this, "删除失败!");}}if (b4、equals(e、getSource())) {// 查询全部Connection con;Statement sql;ResultSet rs;//Vector vector = new Vector();try {Class、forName("org、gjt、mm、mysql、Driver");} catch (ClassNotFoundException e1) {JOptionPane、showMessageDialog(this, "连接数据库失败!");}try {con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql = con、createStatement(ResultSet、TYPE_SCROLL_SENSITIVE,ResultSet、CONCUR_READ_ONLY);if (b4、equals(e、getSource())) {for (int i = 0; i < 50; i++)for (int j = 0; j < 4; j++)table、setValueAt("", i, j);rs = sql、executeQuery("select distinct * from wageinfo ,welfare where wageinfo、name=welfare、name");int k = -1;while (rs、next()) {++k;String no = rs、getString(1);String name = rs、getString(2);String jb = rs、getString(3);String jt = rs、getString(6);int sum= rs、getInt(3)+rs、getInt(6);table、setValueAt(no, k, 0);table、setValueAt(name, k, 1);table、setValueAt(jb, k, 3);table、setValueAt(jt, k, 2);table、setValueAt(sum,k,4);}}} catch (SQLException e1) {JOptionPane、showMessageDialog(this, "查询失败!");}}if (b5、equals(e、getSource())) {// 返回GZGLZJM gl=new GZGLZJM();gl、create();f、dispose();}}}4、2、3职工登陆查询模块功能为:员工本人能通过用户名与密码查询自己得信息以及修改自己得密码;部分基本算法实现:class DL extends JFrame implements ActionListener{ImageIcon im = new ImageIcon("2、jpg");JLabel a2 = new JLabel(im);JFrame frame = new JFrame("职工/管理员登陆");JLabel label1 = new JLabel("用户名");JLabel label2 = new JLabel("密码");JButton logonButton1 = new JButton("管理员登录");JButton logonButton2 = new JButton("职工登录");JButton cancelButton = new JButton("退出");JTextField username = new JTextField(9);JPasswordField password = new JPasswordField(9);static String t1;static String t2;void create(){JPanel p = (JPanel) frame、getContentPane();JPanel p1 = new JPanel();p、setLayout(new FlowLayout());p、add(a2);p、add(label1);p、setSize(5, 5);p、setLocation(4, 8);p、add(username);p、setSize(100, 200);p、setLocation(800, 800);p、add(label2);p、setSize(50, 20);p、setLocation(40, 80);p、add(password);p、setSize(100, 20);p、setLocation(80, 120);p、add(logonButton1);p、add(logonButton2);p、add(cancelButton);p、setBackground(Color、cyan);p、setVisible(true);logonButton1、addActionListener(this);logonButton2、addActionListener(this);cancelButton、addActionListener(this);frame、setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE);frame、pack();frame、setBounds(200, 100, 500, 220);frame、setVisible(true);}public void actionPerformed(ActionEvent e){t1 = username、getText();t2 = password、getText();if(e、getSource()==logonButton1){if( username、getText()、equals("admin") == true&& (password、getText()、equals("admin") == true)){JOptionPane、showMessageDialog(this, "登录成功!");GZGLZJM gz = new GZGLZJM();gz、create();frame、dispose();}else {JOptionPane、showMessageDialog(null, "输入用户名或密码错误!");}if (e、getSource()==logonButton2){try {Connection con;Statement ps;ResultSet rs;String sql = null;Class、forName("org、gjt、mm、mysql、Driver");Class、forName("org、gjt、mm、mysql、Driver")、newInstance();con = DriverManager、getConnection("jdbc:mysql://localhost:3306/wage management","root","jxb");sql="select * from workerinfo where name='"+t1+"' and mi='"+t2+"'";ps = (PreparedStatement) con、prepareStatement(sql);rs = ps、executeQuery(sql);if(rs、next()){if(rs、getString("name")、equals(t1) && rs、getString("mi")、equals(t2)){YGDLJM yg = new YGDLJM();yg、create();frame、dispose();JOptionPane、showMessageDialog(this, "登录成功!");this、dispose();}}else {JOptionPane、showMessageDialog(this, "输入用户名或密码错误!");}}catch (Exception e1) {// TODO Auto-generated catch blocke1、printStackTrace();}}if (cancelButton、equals(e、getSource())) // 退出{System、exit(0);} }分工情况及系数耿沈阳(22%):各个报告得审批,概要设计,程序编写汪平阳(22%):需求分析,概要设计,详细设计彭立洋(22%):PPT得制作,PPT得演讲,需求分析肖玲(17%):画图,概要设计朱翔翔(17%):画图,详细设计。