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
员工工资管理系统一、摘要 (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 数据库开发系统。
工资管理信息系统实习报告
工资管理信息系统实习报告一、实习单位及岗位介绍我实习的单位是_____公司,这是一家在行业内具有一定影响力的企业。
我所在的岗位是与工资管理信息系统相关的工作,主要负责协助处理员工工资数据的录入、计算、统计和分析等任务。
二、实习目的通过这次实习,我希望能够深入了解工资管理信息系统的实际运作流程,掌握相关的操作技能和数据处理方法,提高自己的实践能力和问题解决能力。
同时,我也希望能够将所学的理论知识与实际工作相结合,加深对工资管理这一领域的理解和认识,为今后的职业发展打下坚实的基础。
三、实习内容(一)系统熟悉与操作学习在实习初期,我首先对公司所使用的工资管理信息系统进行了全面的熟悉。
这包括了解系统的各个功能模块,如员工基本信息管理、工资项目设置、考勤管理、绩效评估等。
通过仔细阅读系统操作手册和向同事请教,我逐渐掌握了系统的基本操作流程,能够熟练地进行数据录入、修改和查询等操作。
(二)数据录入与整理接下来,我承担了员工工资数据录入和整理的工作。
这需要我仔细核对员工的个人信息、考勤记录、绩效评估结果等数据,并将其准确无误地录入到系统中。
在这个过程中,我深刻体会到了数据准确性的重要性,任何一个小小的错误都可能导致工资计算的偏差,从而影响员工的切身利益。
因此,我始终保持高度的专注和耐心,确保每一个数据的准确性。
(三)工资计算与统计在数据录入完成后,我开始参与工资的计算和统计工作。
根据公司制定的工资政策和计算公式,我运用系统的计算功能,对员工的基本工资、绩效工资、津贴补贴、五险一金等项目进行了计算。
同时,我还对各项工资数据进行了统计和分析,生成了相应的报表,为公司的财务管理和决策提供了有力的支持。
(四)问题解决与优化建议在实习过程中,我也遇到了一些问题和挑战。
例如,系统有时会出现卡顿或数据丢失的情况,影响了工作效率;部分工资计算公式较为复杂,容易出现计算错误等。
针对这些问题,我积极与技术部门沟通协调,寻求解决方案。
工资管理系统 课程设计 总结报告
漳州师范学院计算机科学与工程系
数据库课程设计总结报告
学生学号
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语言课程设计报告:职工信息管理系统程序设计
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.权限管理:系统通过权限管理功能,实现了对不同角色的用户进行权限控制,保证了薪资信息的安全性和保密性。
五、实验总结通过本次实验,我们深入了解了薪资管理的重要性和复杂性,也掌握了设计和开发薪资管理系统的方法和技巧。
C语言职工工资管理系统设计报告
《C语言程序设计》课程设计报告设计题目:职工工资管理系统班级:学号:姓名:信息工程学院1 前言工资管理系统是企业不可缺少的一部分,它利用计算机对员工工资进行统一管理,实现工资管理系统的系统化、规范化和自动化,为企业提高工作效率。
本程序旨在训练读者的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的各种基本操作。
本程序中涉及结构体、数组、文件等方面的知识。
2 需求分析2.1 课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。
通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。
2.2 课程设计任务职工工资管理系统功能设计要求(1)输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
(2)显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
(3)修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
(4)查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
(5)删除记录:可删除数据文件中的任一记录。
(6)统计: (A)计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
(7)保存数据文件功能。
例如:职工工资信息表ID号姓名基本工资职务工资津贴医疗保险- 公积金- 总工资01 张望 1286 794 198 109 135 203402 李明1185 628 135 94 114 174003 王小民895 438 98 64 73 129404 张效章1350 868 210 116 150 216205 彭山745 398 84 61 68 1098各项平均工资 1092.2 625.2 145 88.8 108图3.1 系统模块图4 具体代码实现#include"stdio.h"#include<stdlib.h>#include<conio.h>#include<string.h> // 头文件static int n=0; // 定义静态全局变量,存储已经读入记录的条数。
工资管理系统实验报告
工资管理系统实验报告工资管理系统实验报告一、引言工资管理是企业管理中至关重要的一环。
一个高效的工资管理系统能够帮助企业实现工资发放的准确性、及时性和公正性,提高员工的满意度和工作积极性。
本实验旨在设计和实现一个工资管理系统,以提升工资管理的效率和准确性。
二、系统设计与实现1. 系统需求分析在进行系统设计之前,我们首先进行了系统需求分析。
通过与企业管理人员的沟通和调研,我们确定了以下几个主要的系统需求:- 工资计算:系统能够根据员工的基本工资、绩效考核等因素,自动计算出每个员工的应发工资。
- 工资发放:系统能够自动将应发工资转账至员工的银行账户,并生成工资发放记录。
- 工资查询:员工能够通过系统查询自己的工资明细和历史工资记录。
- 统计分析:系统能够生成工资统计报表,包括平均工资、工资分布等。
2. 数据库设计根据系统需求,我们设计了一个包含以下几个主要表的数据库:- 员工表:存储员工的基本信息,包括姓名、工号、职位等。
- 工资表:存储每个员工的工资明细,包括基本工资、绩效工资等。
- 发放记录表:存储每次工资发放的记录,包括员工工号、发放日期等。
3. 系统界面设计为了提高用户的使用体验,我们设计了一个简洁直观的系统界面。
界面主要包括以下几个功能模块:- 员工信息管理:用于添加、修改和删除员工信息。
- 工资计算:根据员工的基本信息和绩效考核,自动计算应发工资。
- 工资发放:将应发工资转账至员工的银行账户,并生成发放记录。
- 工资查询:员工能够通过输入工号查询自己的工资明细和历史记录。
- 统计分析:生成工资统计报表,支持按部门、职位等条件进行筛选和排序。
4. 系统实现我们使用了Java语言和MySQL数据库来实现该工资管理系统。
通过使用Java的GUI库和MySQL的JDBC驱动,我们成功地编写了一个可运行的工资管理系统。
三、实验结果与讨论经过系统的设计和实现,我们进行了一系列的实验测试。
在测试过程中,我们模拟了不同的工资计算和发放场景,并对系统的准确性和稳定性进行了评估。
工资管理系统实验报告
工资管理系统实验报告一、实验目的设计一个职工工资管理系统,能够方便的对职工及工资情况进行管理,统计每个部门的员工,整个公司的员工工资,员工信息等,包括工资,奖金,纳税等等。
并能够修改员工的各种信息,在需要的时候可以方便的排序。
采用菜单交互方式,设计一个界面友好,操作简单方便的软件系统。
二、实验工具运行环境:WINDOWS 98,WINDOWS 2000/xp,《C++程序设计教程》《c++ STL 程序员编程指南》等。
采用Dos操作界面、菜单方式Microsoft Visual C++ 6.0软件开发Windows XP 操作系统三、实验内容1、项目实现的功能点(1) 系统必须是菜单操作方法,进入功能必须打开菜单,并且每个菜单都有相应的帮助,菜单之间能够灵活的切换。
用户分三种权限:一般的员工用户,员工工资管理员,系统管理员。
(2) 根据登陆方式,选择相应的操作方式;a)如果是一般的员工用户(默认权限为r即只读),就只能按照各种方式查看数据,并且只能查看自己的信息和工资情况,并且可以网上修改自己的信息等等功能;b)如果是员工工资管理员,除了可以查看数据外还能编辑员工基本信息数据。
C)如果是系统管理员,他可以拥有员工工资管理员的所有功能,并且可以创建用户,并且可以修改员工的工资体系和大小系统初始化系统管理员(用户名:root,密码:)。
(3)能够对员工基本信息、工资的基本信息、工资的扣除费用信息进行统计。
(4)员工基本信息、工资的基本信息、工资的扣除费用信息存储在相应的文件中。
一切操作依赖与链表与向量。
(5)登录的用户名和密码应该存储在单独的文件中,暂时无加密算法。
(6)统计功能:A)统计所有公司员工信息。
B)统计各部门员工信息。
C)统计所有员工工资TOP10D)统计所有员工扣除费用TOP10。
E)统计各职务工资信息。
(7)查找功能A). 按员工姓名查找B) 按工资卡号查找C) 按身份证号查找D) 按公司部门查找E) 按技术职称查找(8)排序功能A) 可以根据员工的实得工资排序。
工资信息系统实训报告
一、实训目的本次工资信息系统实训旨在使学生了解和掌握工资管理的基本原理,熟悉工资信息系统的操作流程,提高实际应用能力。
通过实训,学生能够:1. 掌握工资核算的基本流程和方法。
2. 熟悉工资信息系统的基本功能和操作。
3. 培养数据分析能力和问题解决能力。
4. 提高团队协作和沟通能力。
二、实训环境实训环境为模拟的工资信息系统,系统包含以下功能模块:1. 基础数据管理:包括员工信息、部门信息、工资标准等。
2. 工资核算:包括工资计算、奖金计算、扣款计算等。
3. 工资发放:包括工资条打印、银行代发等。
4. 工资报表:包括工资汇总表、工资明细表等。
5. 系统管理:包括用户管理、权限管理等。
三、实训原理工资信息系统以工资核算为核心,通过收集、处理、存储和输出工资数据,实现工资管理的信息化和自动化。
其主要原理如下:1. 数据采集:通过人工或自动采集方式,获取员工基本信息、工资标准、考勤数据等。
2. 数据处理:根据工资计算规则,对采集到的数据进行计算,生成工资核算结果。
3. 数据存储:将工资核算结果存储在数据库中,便于查询和管理。
4. 数据输出:根据用户需求,生成各种工资报表,如工资条、工资汇总表等。
四、实训过程1. 准备工作:首先,熟悉工资信息系统的功能和操作流程,了解工资核算的基本原理和规则。
2. 基础数据录入:根据提供的员工信息和工资标准,录入系统。
包括员工基本信息、部门信息、工资标准等。
3. 工资核算:根据录入的数据,进行工资计算、奖金计算、扣款计算等。
包括基本工资、岗位工资、绩效工资、社保公积金等。
4. 工资发放:根据核算结果,打印工资条,并进行银行代发等操作。
5. 工资报表生成:根据用户需求,生成各种工资报表,如工资汇总表、工资明细表等。
6. 问题解决:在实训过程中,遇到问题及时向指导老师请教,并尝试自行解决。
五、实训结果1. 成功完成工资信息系统的操作,掌握了工资核算的基本流程和方法。
2. 熟悉了工资信息系统的各项功能,提高了实际应用能力。
工资管理系统实验报告 (2)
工资管理系统实验报告 (2)实验目的:本次实验的主要目的是设计和开发一个工资管理系统,该系统可以使公司管理部门更轻松地处理员工薪资,实现薪资的计算、发放和记录。
通过实现这个系统,我们可以熟悉和掌握计算机软件开发的各种技术,提高我们的编程能力和团队协作能力。
实验步骤:1.项目需求分析首先,我们需要进行需求分析,确定工资管理系统的基本功能和性能要求。
根据对公司管理部门的访谈和调研,我们确定了以下的功能需求:(1)员工管理:可以添加、删除、修改和查询员工信息,包括姓名、工号、职位等。
(2)工资管理:可以根据员工档案,自动计算员工薪资,包括基本工资、补贴和扣除等项,也可以手动修改和调整工资额;工资发放记录和查询。
(3)部门管理:可以添加、删除、修改和查询部门信息,以及进行部门之间的调动和员工之间转岗。
(4)系统设置:包括登录、用户权限管理、数据备份、系统日志等。
2.数据库设计为了实现系统的基本功能,我们需要设计一个数据库来存储员工、部门和工资等重要信息。
我们采用了面向对象的设计方法,将员工、部门和工资分别设计为三个实体类,通过定义属性和关系,构建了一个简单的关系型数据库。
具体实现如下:(1)员工实体类:包括员工编号、姓名、性别、年龄、所在部门、入职时间、职位等属性。
(2)部门实体类:包括部门编号、部门名称、部门主管等属性。
(3)工资实体类:包括工资编号、员工编号、发放日期、基本工资、补贴和扣除等属性。
3.程序设计和实现我们采用了Java语言和MySQL数据库来实现工资管理系统。
Java作为开发语言,具有跨平台性和优秀的面向对象编程特性,可以提高系统的可维护性和扩展性;MySQL作为关系型数据库,可以提供高效的数据存储和查询功能。
系统的架构采用了MVC设计模式,即模型-视图-控制器模式,将系统分成三个部分:模型模块、视图模块和控制器模块。
主要功能模块如下:(2)部门管理模块:包括部门信息的录入、修改、查询和删除等功能。
c语言课程设计报告 职工工资管理系统
一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。
•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。
3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。
5. 删除记录:可删除数据文件中的任一记录。
6.恢复记录:能恢复被删除的任一记录。
7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。
(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。
8.保存数据文件功能。
9.打开数据文件功能。
经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。
程序运行结果如下表所示(记录个数至少8 个)。
二.模块设计分析系统功能模块图:工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。
同时将数据储存在ckerk_list文件中并自动保存至磁盘。
注:如首次使用,尚未输入数据,请先输入数据。
输入的数据将自动保存。
再次选择输入功能时原数据将被覆盖。
②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。
若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。
程序设计基础课程设计报告(c语言实现附源码)(员工工资管理系统)
《程序设计基础》课程设计报告题目: 员工工资管理系统院(系): 信息科学与工程学院专业班级:学生姓名:学号:指导教师:20 16 年 12 月 12 日至20 16 年 12 月 23 日武昌首义学院制程序设计基础课程设计任务书目录1需求与总体设计 (1)2详细设计 (1)3编码实现 (4)4运行结果 (21)总结 (24)1需求与总体设计1.1需求描述设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、年月、岗位工资、奖金、扣款和实发)进行管理,具有增加数据、更新数据、查询数据、删除数据、列表显示数据以及重组文件的功能。
1。
2总体设计先以登陆函数登陆,再进入主菜单,菜单中显示各个要实现的操作,以菜单将各个函数联系起来,对菜单操作以实现系统的目的.1。
3数据结构struct user //登陆者信息{char un[10];char up[10];}us[3] = { "aaa","111",”bbb”,”222",”ccc",”333" };struct yg //员工结构体{short zt; //数据状态long bh; //编号char name[20]; //名字char time[11]; //时间long money; //基本工资long jj; //奖金long kk; //扣款long sf; //实发工资};整个程序只运用了结构体的数据结构,结构体运用于登陆者信息和员工信息,将员工信息封装在一个结构体里,再创建结构体数组,将多个员工信息储存在结构体数组中。
2详细设计2.1 系统功能设计主函数和子函数:系统包含一个主函数,和子函数,分别有登陆子函数,菜单子函数,增加数据子函数,更新数据子函数,查询数据子函数,删除数据子函数,统计数据子函数,重组文件子函数,排序数据子函数,最后两个分别是读取文件和写入文件子函数。
工资管理系统报告
工资管理系统报告我们眼下的社会,报告的使用成为日常生活的常态,其在写作上有一定的技巧。
其实写报告并没有想象中那么难,下面是我帮大家整理的工资管理系统报告,欢迎大家借鉴与参考,希望对大家有所帮助。
一、工资管理系统的`目的和意义在中原大化仪表公司是一家省属大型企业分支单位,随着社会主义市场经济的快速发展,该公司下在发生着日益的变化,职工流动速度在加快,工资增减幅度在加大,员工,职称,绩效评定等信息也随之越来越多,作为工资管理和发放单靠传统的手工处理已显得力不从心,手工发放需要反复进行抄写,计算,不仅浪费时间,还常因抄写不慎出现张冠李戴,或者由于计算疏忽,出现工资发放错误的现象。
同时工资的发放具有较强的时间限制,必须严格按照公司规定的时间完成任务。
正是这种重复性,规律性,时间性,使得工资管理的计算机化成为可能。
使用计算机进行工资发放,不仅能够保障工资核算无误,快速输出,而且还可以利用工资数据库对有关的各种信息进行统计,服务于上级财务部门的核算与账务处理。
从而提高工资管理发放的效率,实现企业员工工资管理的系统化,规范化和自动化。
二、计所达到的要求,技术指标,预计的技术关键,技术方案和主要实验研究情况1、预计达到的要求:此系统要求做到设计合理,便于使用,易于操作;界面友好,容错性高,可在很短的时间内,查找出所需的职工工资资料,提高工作效率。
2、技术指标(1)开发环境:visualfoxpro6。
0(2)运行环境:windows9x/windowsxx3、技术关键:采用foxpro编程思想,利用其强大而完整的功能开发这样一套管理软件,其主要技术有:foxpro数据库技术,新类的设计与应用,系统容错性的处理,组合查询技术的实现等。
4、技术方案和主要实验研究情况:(1)开发职工工资管理系统(2)职工工资管理系统的数据库结构设计与实现(3)职工工资管理系统的具体实现三、课题研究进展计划:9月28号:毕业设计选题10月10号:开题报告撰写10月19号:对开题报告进行改进10月29号:对系统整体设计11月15号:中期报告12月21号:论文撰写12月28号:系统检查1月4号:论文答辩四、现有在条件人员(姓名,职称)及主要设备情况已有软件:microsoftvisualfoxpro6。
C语言课程设计报告 职工信息管理系统
case 0: exit(); } printf("\n\n 操作完毕,请再次选择!"); } else printf("\n\n 选择错误,请再次选择!"); } } 2 数据添加 【程序】
void append() { if((fp=fopen("worker.xls","a"))==NULL) { printf("\n 不能打开该文件!"); exit(); } printf("\n 请输入添加职工信息(姓名、职工号、性别、年龄、学历、职位、 工资、电话、地址)\n"); scanf("%s%s%s%s%s%s%s%s%s",,one.num,one.sex,one.age,one.recor d,one.position,one.wanges,one.tel,one.addr); fprintf(fp,"%-10s%-8s%-5s%-5s%-10s%-8s%-8s%-10s%-15s\n",,one.n um,one.sex,one.age,one.record,one.position,one.wanges,one.tel,one.addr); fclose(fp); }
5 数据删除 【程序】
void delete() { int m,k=0; long a,b; char namekey[8], valid[4]; printf("\n 请输入您要删除的职工姓名:"); scanf("%s",namekey); if((fp=fopen("worker.xls","r+"))==NULL) { printf("\n 不能打开该文件!"); exit(); } while(!feof(fp)) { a=ftell(fp); fscanf(fp,"%s%s%s%s%s%s%s%s%s\n",,one.num,one.sex,one.age,one. record,one.position,one.wanges,one.tel,one.addr); if(strcmp(namekey,)==0) { k=1; break; } } if(k==1) {
工资管理系统实训报告
2012/2013学年第1学期专用周报告目录1.选题分析 (4)1.1课题背景及意义 (4)1.2系统开发综述 (5)1.2.1开发模式 (5)1.2.2开发工具 (5)2.系统可行性研究 (5)2.1系统目标 (5)2.2技术可行性分析 (6)2.3经济可行分析 (6)2.4管理可行性分析 (6)3.系统需求分析 (7)3.1目标规定 (7)3.2运行环境 (7)3.3数据描述 (8)3.3.1系统功能需求 (8)3.3.2系统性能需求 (8)3.3.3数据描述 (9)4.系统分析 (9)4.1系统目标 (9)4.2总体结构分析 (9)4.3系统流程分析 (10)5.系统设计 (11)5.1功能模块 (11)5.2功能说明 (12)5.2.1系统管理模块 (12)5.2.2基本信息管理模块 (12)5.2.3工资管理模块 (13)6.数据库设计 (13)6.1总体分析 (13)6.2概念模型 (14)6.3逻辑模型 (15)7.系统实施及集成 (17)7.1系统界面设计 (17)8.系统设计开发心得 (23)引言借助现代信息技术和管理理论,建立企业管理信息系统是当今社会的重要趋势。
对企业而言,全面开发和应用计算机管理信息系统就是近期不能回避的问题。
人力资源是企业最宝贵的资源,也是企业的“生命线”,而工资管理又是人力资源管理的重中之重。
现在的工资管理系统多半采用人工管理模式。
每个月企业统计个人的工作时间,休假状况,加班情况,奖金,保险等多方面的因素,类别繁多且复杂。
人员在统计信息的时候经常出现各式各样的错误,使得企业的工资发放状况一直处于欠佳状态,不仅给企业带来了诸多不便,也使得个人也要为自己工资的差错而忙碌奔波。
由计算机管理的工资系统解决了所有的不便。
高效与正确性不仅方便了大家,也为企业节省了很多成本,使得人力资源可以得到更加广泛的应用。
现在应用在大中型企业的管理信息系统中,几乎都包括了工资管理模块。
职工工资管理系统设计实验报告
工业大学信息工程学院实验报告课程名称: c语言实验名称:实验类型:验证性□ 综合性√设计性□实验室名称:电西8楼班级:计12-2 学号:2:亚赛组别:同组人:勾涛付启恒成绩:实验日期: 2013-3-3目录1 题目与要求 (2)2 功能设计 (4)2.1算法设计 (4)2.2 模块流程图 (6)3 程序代码设计 (7)4 C程序设计总结 (22)5 结束语 (23)6 源程序 (24)1 题目与要求程序设计的目的和要求1.目的:1)复习、巩固程序设计的基础知识,进一步加深对程序设计语言的理解和掌握;熟练使用函数、结构体、文件、数组、循环与选择、链表和指针等知识点,熟练应用C语言综合知识。
2)为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;3)培养学生在项目开发中团队合作精神、创新意识及能力。
2.要求:1)对系统进行功能模块分析、控制模块分析正确,符合题目要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2)系统设计要实用、编程简练、功能全面、界面美观、操作使用便捷、程序运行稳定;3)说明书、流程图要清晰;4)记录设计情况(备查,也为编写设计说明书作好准备);5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过,能正确运行;6)设计上交容:设计报告一份(按格式书写);源程序一份(电子版,能编译成可执行文件并能正常运行。
每个班由班长负责收集并上交)。
题目:职工工资管理系统1)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。
2)、输入功能:职工信息的录入(包括从文件中导入职工信息数据),可以一次完成若干条记录的输入。
3)、浏览功能:完成对全部职工信息的显示。
4)、查找功能:①完成按查询职工的相关信息,并显示。
②完成按ID号查询职工的相关信息,并显示。
工资管理系统实验报告
工资管理系统实验报告实验目的:本实验旨在设计一个简单的工资管理系统,实现对员工工资信息的增、删、改、查等基本操作,并能计算出员工的月薪、年终奖等薪资情况。
实验设计:本实验使用Java语言编写工资管理系统,采用面向对象的思想,将员工工资的基本信息封装成一个类,通过对该类的实例化,对工资信息进行操作和计算。
系统实现:1. 定义员工类Employee,包含以下属性:- 工号:String类型- 姓名:String类型- 基本工资:double类型2. 在Employee类中定义方法:-计算月薪:根据基本工资计算出员工的月薪,假设每个月为30天。
-计算年终奖:根据基本工资计算出员工的年终奖,假设年终奖为基本工资的2倍。
3.在主函数中创建一个员工对象,调用该对象的方法进行测试,实现对员工工资信息的增、删、改、查等基本操作。
4.通过输入菜单选择功能:-1.增加员工信息:输入员工的工号、姓名和基本工资。
-2.删除员工信息:输入员工的工号,删除该员工的信息。
-3.修改员工信息:输入员工的工号和新的基本工资,修改该员工的基本工资。
-4.查询员工信息:输入员工的工号,显示该员工的工资信息。
-5.计算员工月薪:输入员工的工号,显示该员工的月薪。
-6.计算员工年终奖:输入员工的工号,显示该员工的年终奖。
-7.退出系统:结束程序的执行。
实验结果:通过运行程序,可以进行工资管理系统的操作,并得到正确的工资信息。
例如,输入1,然后输入员工的工号、姓名和基本工资,就可以增加一个员工的信息。
输入4,然后输入员工的工号,就可以查询该员工的工资信息。
实验总结:通过本次实验,我深入理解了面向对象的编程思想,并了解了如何设计一个简单的工资管理系统。
在实验过程中,我掌握了如何定义类、封装属性和方法,以及如何使用对象进行操作。
通过不断的实践,我提高了自己的编程能力,培养了自己解决问题的能力。
工资管理系统是一个常见的实际应用,通过实验的学习,我对实际问题的分析和处理能力得到了提升,为以后的实际应用开发奠定了基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.题目《职工工资管理系统》的设计与实现2.功能(1)每一条记录包括一个职工的工号、姓名、基本工资、职务工资、津贴、医疗保险、公积金和总工资。
(2)输入功能:可以一次完成多条记录的输入。
(3)显示功能:完成全部职工记录的显示。
(4)查找功能:完成按工号和姓名查找职工记录,并显示。
"(5)排序功能:按职工的工号进行排序。
(6)插入功能:可以插入多名职工信息记录。
(7)保存功能:将职工记录保存在任何自定义的文件中。
(8)读取功能:将保存在文件中的职工信息工资信息读取出来。
(9)有一个清晰美观界面来调用各个功能3.要求(1)整个系统均用C语言实现;(2)利用指针、链表来实现学生成绩的数据结构设计;%(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将职工工资信息保存在文件中。
(6)可以将职工工资信息从文件中读取出来。
4.设计内容整个系统除了主函数外,另外还有14个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。
各个函数的详细设计说明分别如下:主函数main()利用无限次循环for( )和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
菜单选择函数void menu()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的主要功能,根据每个功能前面的序号进行选择。
等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!void menu()um);printf("请输入姓名: ");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("请输入医疗保险: ");scanf("%d",&em[i].yb);printf("请输入公积金: ");scanf("%d",&em[i].gjj);em[i].total=((em[i].jbgz)+(em[i].zwgz)+(em[i].jt)-(em[i].yb)-(em[i].gjj));um,em[i].name,em[i].jb gz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i].total);,sum+=em[i].total;um){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);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;}}按姓名查询: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");|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);}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;}}'删除记录函数void del()先将职工信息打印出来,然后输入要删除职工的姓名,若该姓名不存在,则显示“查无此人”,如果存在则显示职工信息并且询问是否确认删除,若确定则删除。
void del() /*删除函数*/{int m=load();int i,j,n,t,button;char name[20];!printf("\n 原来的职工信息:\n");display();ame,name)==0)um,em[i].name,em[i].jbgz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i].total);printf("\n确定删除请按1,不删除请按0\n");scanf("%d",&n);if(n==1){for(j=i;j<m-1;j++)ame,em[j+1].name);。
em[j].num=em[j+1].num;em[j].jbgz=em[j+1].jbgz;em[j].zwgz=em[j+1].zwgz;em[j].jt=em[j+1].jt;em[j].yb=em[j+1].yb;em[j].gjj=em[j+1].gjj;em[j].total=em[j+1].total;}【button=0;}}}if(!button)delum);printf("\n");printf("请输入姓名: ");scanf("%s",em[i].name);《getchar();printf("请输入基本工资: ");scanf("\t%d",&em[i].jbgz);printf("请输入职务工资: ");scanf("%d",&em[i].zwgz);printf("请输入津贴: ");scanf("%d",&em[i].jt);printf("请输入医疗保险: ");。
scanf("\t%d",&em[i].yb);printf("请输入公积金: ");scanf("%d",&em[i].gjj);em[i].total=( em[i].jbgz+ em[i].zwgz + em[i].jt- em[i].yb- em[i].gjj);um>=em[j+1].num){p=em[j];em[j]=em[j+1];em[j+1]=p;:}printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资\n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/{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 modify()打印职工信息并提示输入要修改信息的职工姓名。
按照提示选择要修改的项目,输入要修改的结果并将该结果赋值给对应的成员,完成指定的修改。
void modify() /*修改函数*/{int num;char name[20];int jbgz;…int zwgz;int jt;int yb;int gjj;int b,c,i,n,t,button;int m=load();system("cls");、printf("\n 原来的职工信息:\n");display();printf("\n");printf("请输入要修改的职工的姓名:\n");scanf("%s",name);for(button=1,i=0;button&&i<m;i++){【if(strcmp(em[i].name,name)==0){printf("\n此人原始记录为:\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);printf("\n确定按1 ; 不修改请按0\n");scanf("%d",&n);if(n==1)]{printf("\n需要进行修改的选项\n 1.职工号2.姓名3.基本工资4.职务工资 5.津贴 6.医疗保险7.公积金8.返回上层\n");printf("请选择序号1-8:\n");scanf("%d",&c);if(c>8||c<1)printf("\n选择错误,请重新选择!\n");}button=0;!}}if(button==1)printf("\n查无此人\n");do{"switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/{case 1:printf("职工号改为: ");scanf("%d",&num);em[i-1].num=num;break;case 2:printf("姓名改为: ");scanf("%s",name);¥strcpy(em[i-1].name,name);break;case 3:printf("基本工资改为: ");getchar();scanf("%d",&jbgz);em[i-1].jbgz=jbgz;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;!case 4:printf("职务工资改为: ");scanf("%d",&zwgz);em[i-1].zwgz=zwgz;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 5:printf("津贴改为: ");scanf("%d",&jt);em[i-1].jt=jt;《em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb-em[i-1].gjj);break;case 6:printf("医疗保险改为: ");scanf("%d",&yb);em[i-1].yb=yb;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 7:printf("公积金改为: ");\scanf("%d",&gjj);em[i-1].gjj=gjj;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 8:modify();break;}—printf("\n");printf("\n\n 确定修改请按1 ; 重新修改请按2: \n");scanf("%d",&b);}while(b==2);printf("\n修改后的所有职工信息:\n");printf("\n");save(m);<display();printf("\n按1 继续修改,不再修改请按0\n");scanf("%d",&t);switch(t){case 1:modify();break;case 0:break;default :break;}}修改后为"程序部分#include<>》#include<> #include<> #include<>#define N 100struct employee{/int num; delum);printf("请输入姓名: ");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("请输入医疗保险: ");、scanf("%d",&em[i].yb);printf("请输入公积金: ");scanf("%d",&em[i].gjj);em[i].total=((em[i].jbgz)+(em[i].zwgz)+(em[i].jt)-(em[i].yb)-(em[i].gjj));um,em[i].name,em[i].j bgz,em[i].zwgz,em[i].jt,em[i].yb,em[i].gjj,em[i].total);sum+=em[i].total;ame,name)==0)um,em[i].name,em[i].jbgz,em[i].zwgz,em[i].jt,em[i].yb,em[ i].gjj,em[i].total);printf("\n确定删除请按1,不删除请按0\n");~scanf("%d",&n);if(n==1){for(j=i;j<m-1;j++)ame,em[j+1].name);em[j].num=em[j+1].num;em[j].jbgz=em[j+1].jbgz;em[j].zwgz=em[j+1].zwgz;em[j].jt=em[j+1].jt;…em[j].yb=em[j+1].yb;em[j].gjj=em[j+1].gjj;em[j].total=em[j+1].total;}button=0;}}}/if(!button)delum);printf("\n");printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入基本工资: ");scanf("\t%d",&em[i].jbgz);printf("请输入职务工资: ");—scanf("%d",&em[i].zwgz);printf("请输入津贴: ");scanf("%d",&em[i].jt);printf("请输入医疗保险: ");scanf("\t%d",&em[i].yb);printf("请输入公积金: ");scanf("%d",&em[i].gjj);em[i].total=( em[i].jbgz+ em[i].zwgz + em[i].jt- em[i].yb- em[i].gjj);um)"{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);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;(}}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");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);}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;}}@void modify() /*修改函数*/{int num;char name[20];int jbgz;int zwgz;…int jt;int yb;int gjj;int b,c,i,n,t,button;int m=load();system("cls");printf("\n 原来的职工信息:\n");(display();printf("\n");printf("请输入要修改的职工的姓名:\n");scanf("%s",name);for(button=1,i=0;button&&i<m;i++){if(strcmp(em[i].name,name)==0)}{printf("\n此人原始记录为:\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);printf("\n确定按1 ; 不修改请按0\n");scanf("%d",&n);if(n==1){…printf("\n需要进行修改的选项\n 1.职工号2.姓名3.基本工资4.职务工资 5.津贴 6.医疗保险7.公积金8.返回上层\n");printf("请选择序号1-8:\n");scanf("%d",&c);if(c>8||c<1)printf("\n选择错误,请重新选择!\n");}button=0;}.}if(button==1)printf("\n查无此人\n");do{switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/!{case 1:printf("职工号改为: ");scanf("%d",&num);em[i-1].num=num;break;case 2:printf("姓名改为: ");scanf("%s",name);strcpy(em[i-1].name,name);}break;case 3:printf("基本工资改为: ");getchar();scanf("%d",&jbgz);em[i-1].jbgz=jbgz;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 4:printf("职务工资改为: ");/scanf("%d",&zwgz);em[i-1].zwgz=zwgz;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 5:printf("津贴改为: ");scanf("%d",&jt);em[i-1].jt=jt;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);:break;case 6:printf("医疗保险改为: ");scanf("%d",&yb);em[i-1].yb=yb;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 7:printf("公积金改为: ");scanf("%d",&gjj);/em[i-1].gjj=gjj;em[i-1].total=( em[i-1].jbgz+ em[i-1].zwgz + em[i-1].jt- em[i-1].yb- em[i-1].gjj);break;case 8:modify();break;}printf("\n");、printf("\n\n 确定修改请按1 ; 重新修改请按2: \n");scanf("%d",&b);}while(b==2);printf("\n修改后的所有职工信息:\n");printf("\n");save(m);`display();printf("\n按1 继续修改,不再修改请按0\n");scanf("%d",&t);switch(t){case 1:modify();break;case 0:break;default :break;{}}void help()um>=em[j+1].num){%p=em[j];em[j]=em[j+1];em[j+1]=p;}printf("职工号姓名基本工资职务工资津贴医疗保险公积金总工资\n");for(i=0;i<m;i++) /*m为输入部分的职工人数*/{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);}}int main()//主函数{int n,button;char a;start();getch();menu();do{printf("功能选择(0--8):\n");scanf("%d",&n);if(n>=0&&n<=7){button=1;break;}else{button=0;printf("您输入有误,请重新选择!");}}while(button==0);while(button==1){switch(n){case 0:sort();break;case 1: input();break;case 2: display();break;case 3: search();break;case 4:del();break;case 5: add();break;case 6:modify();break;case 7:help();break;case 8:exit(0);break;default :break;}getchar();printf("\n");printf("按任意键继续\n");getch();system("cls"); /*清屏*/menu(); /*调用菜单函数*/printf("功能选择(1--8):\n");scanf("%d",&n);printf("\n");}return 0;}。