C职工工资管理系统报告

合集下载

工资管理系统实训报告

工资管理系统实训报告

工资管理系统实训报告一.实训目的和背景随着社会的发展和企业的不断壮大,工资管理成为了企业中不可或缺的一部分。

然而,传统的手工管理方式效率低下,易出错。

为了提高工资管理的效率和准确性,本次实训旨在设计和开发一个工资管理系统,并进行相应的测试和验证。

二.实训内容和过程1.系统设计在系统设计阶段,我们根据企业的需求和要求,确定了工资管理系统的功能模块,并进行了相关的数据结构和页面设计。

功能模块包括员工信息管理、薪资计算、薪资发放、报表生成等。

数据结构设计主要包括员工信息表、薪资表、部门表等。

2.系统开发3.系统测试在系统开发完成后,我们进行了系统的功能测试和性能测试。

功能测试主要是测试系统的各个功能模块是否能够正常工作,如员工信息的添加、查询和删除等;性能测试主要是测试系统在大数据量和高并发情况下的稳定性和性能表现。

4.系统验证在系统测试通过后,我们邀请了企业的相关人员进行系统的验证。

他们对系统进行了全面的评估和测试,并提出了一些宝贵的意见和建议。

我们根据他们的意见进行了相应的修改和优化。

三.实训效果和体会通过本次实训,我们掌握了系统设计和开发的基本方法和技巧,学习了C#语言和SQL Server数据库的相关知识,提高了我们的编码和实践能力。

同时,我们也深刻地认识到了工资管理系统对企业的重要性,以及如何设计和开发一个高效、稳定的工资管理系统的难度和挑战。

在实训过程中,我们遇到了许多问题和困难,如系统需求的不明确、系统设计的不完善、系统性能的不足等。

但是通过团队的合作和不断地学习和努力,我们最终成功地克服了这些问题,并开发出了一个能够满足企业需求的工资管理系统。

总的来说,本次实训使我们对工资管理系统的设计和开发有了更深入的认识和了解,提高了我们的实践能力和团队合作能力,对我们未来的职业发展具有重要的意义和价值。

职工工资信息管理系统实验报告

职工工资信息管理系统实验报告

职工工资信息管理系统实验报告一、引言职工工资信息管理系统是一种用于管理和统计企业职工工资信息的系统,旨在提高工资管理的效率和准确性。

本实验旨在通过搭建一个简单的职工工资信息管理系统,对系统的功能和性能进行测试和评估。

二、系统需求分析职工工资信息管理系统应具备以下基本功能:1. 登录功能:提供登录界面,确保只有授权人员可以使用系统。

2. 职工信息录入功能:管理员或授权人员可以录入职工的基本信息,包括姓名、工号、岗位等。

3. 工资信息录入功能:管理员或授权人员可以录入职工的工资信息,包括基本工资、津贴、绩效工资等。

4. 工资计算功能:根据录入的工资信息,系统能够自动计算每位职工的实际工资。

5. 工资统计功能:系统能够生成工资报表,包括各部门职工工资总额、平均工资等统计信息。

6. 工资查询功能:管理员或授权人员可以通过系统查询特定职工的工资信息。

7. 数据备份与恢复功能:系统能够自动备份工资信息数据,并可在需要时方便地进行数据恢复。

三、系统设计与实现本实验采用Java语言和MySQL数据库进行系统的设计与实现。

系统前端采用Java Swing图形界面库,实现用户友好的操作界面;后端采用Java JDBC技术与MySQL数据库进行数据交互和管理。

1. 登录功能设计与实现登录功能是系统的入口,用户需要输入正确的用户名和密码才能进入系统。

在界面设计上,使用文本框和密码框接收用户输入,并通过按钮实现登录功能。

在数据库中存储用户信息表,包括用户名和密码字段,系统通过对比用户输入与数据库中的数据来实现用户的登录验证。

2. 职工信息录入功能设计与实现职工信息录入功能包括姓名、工号、岗位等信息的录入。

在界面上,通过文本框和下拉列表等来接收和展示用户输入。

用户输入完整的职工信息后,点击确定按钮将数据保存到数据库中。

3. 工资信息录入功能设计与实现工资信息录入功能包括基本工资、津贴、绩效工资等信息的录入。

在界面上,同样使用文本框等组件进行数据的输入和展示。

工资管理系统设计报告.doc

工资管理系统设计报告.doc

员工工资管理系统一、摘要 (2)二、系统分析 (2)2.1编写目的 (2)2.2项目背景 (2)2.3定义 (2)2.4参考资料 (3)2.5目标 (3)2.6运行环境 (3)2.7条件与限制 (4)2.8.数据描述 (4)2.9态数据 (4)2.10据库介绍 (5)2.11功能划分 (5)2.12功能描述 (5)2.13数据精确度 (6)2.14时间特性 (6)2.15适应性 (6)2.16硬件接口 (7)2.17软件接口 (8)2.17故障处理 (8)2.19其它需求 (8)三、系统设计 (9)3.1用户界面 (9)3.2组织结构图 (15)3.3数据流程图 (16)3.4系统流程图 (17)3.5 ER图 (18)3.6数据字典 (20)3.7逻辑设计 (24)四、调试及总结 (24)五、附录(代码) (27)一、摘要某某单位现有1000名员工,下设6个科室,由于人员繁多,因此员工的工资发放问题越来越成为单位一个很大的麻烦,以往在人工管理的阶段不时出现工资发放错误的问题,为了解决这个问题,提高工资发放的效率,同时减少不必要的人工开支,方面员工工资的管理,决定开发员工工资管理系统。

二、系统分析2.1编写目的为进一步明确开发目的,明确软件需求、安排项目规划与进度、组织软件开发与测试,保证系统开发的正确性与可行性,特撰写此文档,为系统提供了详细的说明以及开发环境和步骤,可供系统开发人员、系统维护人员以及使用者阅读。

员工工资管理系统为公司的工资发放提供了方便、快捷的通道,同时,此软件支持经常保持修改,易运行,易查询等优点本文档供项目经理、设计人员、开发人员参考。

2.2项目背景本项目由某某单位委托,由管理学院学生自主开发和维护,主管部门为济南大学信息学院老师。

该软件系统与其他:本软件系统是建立在公司工资管理基础之上,与员工工资密切密切相关。

2.3定义VF:Microsoft Visual Foxpro 数据库开发系统。

工资管理信息系统实习报告

工资管理信息系统实习报告

工资管理信息系统实习报告一、实习单位及岗位介绍我实习的单位是_____公司,这是一家在行业内具有一定影响力的企业。

我所在的岗位是与工资管理信息系统相关的工作,主要负责协助处理员工工资数据的录入、计算、统计和分析等任务。

二、实习目的通过这次实习,我希望能够深入了解工资管理信息系统的实际运作流程,掌握相关的操作技能和数据处理方法,提高自己的实践能力和问题解决能力。

同时,我也希望能够将所学的理论知识与实际工作相结合,加深对工资管理这一领域的理解和认识,为今后的职业发展打下坚实的基础。

三、实习内容(一)系统熟悉与操作学习在实习初期,我首先对公司所使用的工资管理信息系统进行了全面的熟悉。

这包括了解系统的各个功能模块,如员工基本信息管理、工资项目设置、考勤管理、绩效评估等。

通过仔细阅读系统操作手册和向同事请教,我逐渐掌握了系统的基本操作流程,能够熟练地进行数据录入、修改和查询等操作。

(二)数据录入与整理接下来,我承担了员工工资数据录入和整理的工作。

这需要我仔细核对员工的个人信息、考勤记录、绩效评估结果等数据,并将其准确无误地录入到系统中。

在这个过程中,我深刻体会到了数据准确性的重要性,任何一个小小的错误都可能导致工资计算的偏差,从而影响员工的切身利益。

因此,我始终保持高度的专注和耐心,确保每一个数据的准确性。

(三)工资计算与统计在数据录入完成后,我开始参与工资的计算和统计工作。

根据公司制定的工资政策和计算公式,我运用系统的计算功能,对员工的基本工资、绩效工资、津贴补贴、五险一金等项目进行了计算。

同时,我还对各项工资数据进行了统计和分析,生成了相应的报表,为公司的财务管理和决策提供了有力的支持。

(四)问题解决与优化建议在实习过程中,我也遇到了一些问题和挑战。

例如,系统有时会出现卡顿或数据丢失的情况,影响了工作效率;部分工资计算公式较为复杂,容易出现计算错误等。

针对这些问题,我积极与技术部门沟通协调,寻求解决方案。

工资管理系统 课程设计 总结报告

工资管理系统 课程设计 总结报告
附表2
漳州师范学院计算机科学与工程系
数据库课程设计总结报告
学生学号
080810129
姓名
傅荣真
专 业
信息管理与信息系统
班 级
08信管(1)
所属学期
2010-2011学年第1学期
一、项目介绍与设计目的
项目介绍:项目名称:企业员工工资管理系统。该系统通过设置不同的权限(普通用户,管理员)来进行对企业员工的基本信息和各项资金进行管理和维护的小型管理系统,通过对员工的资金管理来实现员工与企业共赢的情景。
用户名:xxq 密码:xxq 登录权限:管理员
用户名:flz 密码:flz 登录权限:管理员
普通用户
用户名:张永生 密码:123 登录权限:个人用户
用户:范通 密码:123 登录权限:个人用户
六、体会与感想
在开发这个工资管理系统过程中我深刻地体会到了自学能力的重要性。毕竟在学校学习到的知识是有限的,而在开发系统的过程中仅凭原有的一点点知识是远远不够的,只有翻阅大量的资料才能学到更多的知识,才能实现其预期的功能。在开发过程中,遇到困难是在所难免的,期间我跟我的指导老师和同学进行交流,从中明白了很多。开发一个系统,恒心和毅力也是不可缺少的,如果一遇到难题就心慌,想要放弃,那这样就不可能完成系统。同样,在开发过程当中,细心也是非常重要的,由于很多事项都要很注意才行,如果没有做到这一点,就会出错。
四、小组成员名单及分工情况(要求包括小组成员名单、工作分配及小组各成员贡献度))
组员
模块分工
组长:熊贤清(55%)
设计系统数据库,登录、关于、变动工资、查询和福利费、员工信息维护和工资管理系统主界面等窗体
组员:傅荣真(45%)
设计基本工资,工资表,员工考勤,员工信息查询四个窗体

职工管理系统课程设计报告

职工管理系统课程设计报告

职工管理系统课程设计报告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语言课程设计报告:职工信息管理系统程序设计

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.系统设计:根据需求分析结果,设计系统的功能模块和界面,并确定数据库的结构和关系。

3.系统开发:使用合适的开发工具,按照设计要求进行系统开发和编码。

4.系统测试:对开发完成的系统进行功能测试、性能测试和用户界面测试,确保系统的稳定性和可用性。

5.系统部署:将测试通过的系统部署到企业内部服务器,准备进行试运行。

6.试运行和反馈:让企业管理人员和员工使用系统进行试运行,并收集他们的反馈意见和建议。

7.系统优化:根据试运行的反馈意见和建议,对系统进行优化和改进,提高系统的稳定性和用户体验。

四、实验结果经过一段时间的设计、开发和测试,我们成功开发了一个功能完善、稳定可靠的薪资管理系统。

该系统具备以下特点:1.员工信息管理:系统可以对员工的基本信息、职位信息和薪资信息进行管理,包括录入、修改和删除等操作。

2.薪资计算:系统能够根据员工的工作时长、绩效和奖惩情况,自动计算出每位员工的薪资,并生成相应的工资条。

3.薪资发放:系统提供了多种薪资发放方式,包括银行转账、现金发放和支票发放等,方便企业根据实际情况选择合适的发放方式。

4.薪资报表:系统可以生成各类薪资报表,包括薪资总额、平均薪资、薪资分布等,帮助企业管理人员对薪资情况进行分析和决策。

5.权限管理:系统通过权限管理功能,实现了对不同角色的用户进行权限控制,保证了薪资信息的安全性和保密性。

五、实验总结通过本次实验,我们深入了解了薪资管理的重要性和复杂性,也掌握了设计和开发薪资管理系统的方法和技巧。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void search()/*查询函数*/
{
int t,button;
system("cls");//清屏
do
{
printf("\n按1按工号查询\n按2按姓名查询\n按3回主菜单\n");
scanf("%d",&t);
if(t>=1&&t<=3)
{
button=1;
break;
}
else
{
button=0;
(6)插入功能:可以插入多名职工信息记录。
(7)保存功能:将职工记录保存在任何自定义的文件中。
(8)读取功能:将保存在文件中的职工信息工资信息读取出来。
(9)有一个清晰美观界面来调用各个功能
3.
(1)整个系统均用C语言实现;
(2)利用指针、链表来实现学生成绩的数据结构设计;
(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;
void del() /*删除函数*/
{
int m=load();
int i,j,n,t,button;
char name[20];
printf("\n原来的职工信息:\n");
display(); //显示删除前的员工信息
printf("\n");
printf("按姓名删除:\n");
scanf("%s",name);
}
if(i==m)
printf("\n\n");
printf("\n");
printf("返回查询菜单请按1,继续查询姓名请按2\n");
scanf("%d",&t);
switch(t)
{
case 1:search();break;
case 2:break;
default :break;
}
}
4.8
先将职工信息打印出来,然后输入要删除职工的姓名,若该姓名不存在,则显示“查无此人”,如果存在则显示职工信息并且询问是否确认删除,若确定则删除。
for(button=1,i=0;button&&i<m;i++)//主函数中确定button==1时各函数才可以被调用
{
if(strcmp(em[i].name,name)==0)//按员工姓名查找到某员工并调出其资料
{
printf("\n此人原始记录为:\n");//显示选定员工的信息
printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资\n");
printf("************** 1输入*****************\n\n");
printf("************** 2显示*****************\n\n");
printf("************** 3查找*****************\n\n");
printf("************** 4删除*****************\n\n");
printf("**************5添加*****************\n\n");
printf("**************6修改*****************\n\n");
printf("**************7帮助*****************\n\n");
break;
}
if(i==m)
printf("\n对不起,查无此人\n");
printf("\n");
printf("返回查询函数请按1,继续查询职工号请按2\n");
scanf("%d",&t);
switch(t)
{
case 1:search();break;
case 2: break;
default:break;
1.
《职工工资管理系统》的设计与实现
2.
(1)每一条记录包括一个职工的工号、姓名、基本工资、职务工资、津贴、医疗保险、公积金和总工资。
(2)输入功能:可以一次完成多条记录的输入。
(3)显示功能:完成全部职工记录的显示。
(4)查找功能:完成按工号和姓名查找职工记录,并显示。
(5)排序功能:按职工的工号进行排序。
scanf("%d",&n);
if(n==1)
{
for(j=i;j<m-1;j++)//从第i项开始将后一项的各成员的值赋给前一项各对应的成员完成对第i项的删除
scanf("%s",&em[i].name);
getchar();
printf("请输入基本工资: ");
scanf("%d",&em[i].jbgz);
printf("请输入职务工资: ");
scanf("%d",&em[i].zwgz);
printf("请输入津贴: ");
scanf("%d",&em[i].jt);
printf("输入错误");
}
}
while(button==0);//回到查询选择项
while(button==1)
{
switch(t)//选择查询方式
{
case 1:printf("按工号查询\n");search_num();break;
case 2:printf("按姓名查询\n");search_name();break;
}
4.5
打开文件employee_list,若文件不存在,打印“打开失败”并退出。若存在读取文件中的数据,并返回职工人数。
int load() /*导入函数int型*/
{
FILE*fp;
int i=0;
if((fp=fopen("employee_list","rb"))==NULL)
{
printf ("cannot open file\n");
printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资\n");
printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i].total);
exit(0);
}
else
{
do
{
fread(&em[i],sizeof(struct employee),1,fp); //读取
i++;
}
while(feof(fp)==0); //检测流上的文件结束符
}
fclose(fp);
return(i-1);//返回人数
}
4.6
先通过读取函数的返回值确定职工人数m,再通过循环将员工工资信息逐个打印,当循环次数达到m时退出循环。
case 3:main();break;
default:break;
}
}
}
按照工号查询:
void search_num()//按职工号查询
{
int a;
int i,t;
int m=load();
printf("请输入要查找的职工号:\n");
scanf("%d",&a);
for(i=0;i<m;i++)
if(a==em[i].num)
{
printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资\n");
printf("\n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ",em[i].num,em[i].name,em[i].jbgz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i].total);
}
}
按姓名查询:
void search_name()
{
char name[30];
int i,t;
int m=load();
printf("请输入姓名:\n");
scanf("%s",name);
for(i=0;i<m;i++)
if(strcmp(em[i].name,name)==0)
{
printf("\n已找到,其记录为:\n");
sum+=em[i].total;//计算员工总工资之和
}
printf("\n\n职工平均工资为:%d \n",sum/m);
}
4.7
根据提示输入要查询的工号或者姓名,程序通过循环语句将输入的数字与保存的结构体数组中的数据对比,如果相同,则打印该职工的信息,当循环数等于人数时结束循环,若等循环结束也没有找到相同的,则输出“查无此人”。
if (fwrite(&em[i],sizeof(struct employee),1,fp)!=1)//写入数据块&em[i]:是要输出数据的地址sizeof(struct employee):获取一个单体的长度1:数据项的个数fp:目标文件指针
相关文档
最新文档