c++课设工资管理系统
- 格式:doc
- 大小:347.50 KB
- 文档页数:45
工资管理系统 课程设计一、课程目标知识目标:1. 理解工资管理系统的基本概念、功能及重要性;2. 掌握工资管理系统中的数据结构、算法及数据库操作;3. 学会分析企业工资管理的需求,设计合理的工资管理系统。
技能目标:1. 能够运用所学知识,独立完成工资管理系统的模块划分与功能设计;2. 能够运用数据库技术,实现工资数据的存储、查询、统计和输出;3. 能够运用编程语言,开发简单的工资管理系统,解决实际问题。
情感态度价值观目标:1. 培养学生对企业信息化管理的认识,提高对信息技术的兴趣和热情;2. 培养学生的团队协作意识,学会与他人共同分析问题、解决问题;3. 培养学生具备良好的职业道德,关注企业员工薪酬权益,树立公平、公正的价值观。
课程性质:本课程为信息技术与学科实践相结合的课程,以实践操作为主,理论学习为辅。
学生特点:六年级学生具备一定的计算机操作能力和编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,以任务驱动、案例教学为主,培养学生的实际操作能力和解决问题的能力。
将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 工资管理系统概述- 工资管理系统的定义与作用- 工资管理系统的基本功能模块2. 数据库基础- 数据库的基本概念- 数据表的设计与创建- 数据的增、删、改、查操作3. 工资管理系统的设计与实现- 系统需求分析- 模块划分与功能设计- 数据库设计与实现- 系统界面设计4. 编程实现工资管理系统- 选择合适的编程语言(如Python、Java等)- 编程实现各功能模块- 调试与测试5. 案例分析与实操- 分析实际企业工资管理案例- 结合所学知识,进行实操演练6. 课程总结与拓展- 总结课程重点知识- 探讨工资管理系统的发展趋势和新技术教学内容安排和进度:第1-2周:工资管理系统概述与数据库基础第3-4周:工资管理系统的设计与实现第5-6周:编程实现工资管理系统第7-8周:案例分析与实操第9-10周:课程总结与拓展教材章节及内容关联:《信息技术》六年级下册:第三章 数据库与数据处理第四章 管理信息系统第五章 编程解决问题教学内容确保科学性和系统性,注重理论与实践相结合,以培养学生的实际操作能力和解决问题的能力。
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. 统计报表:生成各种工资统计报表,如部门工资总额、员工工资排名等。
三、系统设计与实现1. 数据库设计为了满足系统需求,需要设计一组适当的数据库表来存储相关数据。
以下是数据库表的设计方案:- 员工表(Employee):存储员工的基本信息(员工编号、姓名、性别、年龄等)。
- 部门表(Department):存储部门的信息(部门编号、部门名称等)。
- 职位表(Position):存储职位信息(职位编号、职位名称等)。
- 工资表(Salary):存储员工的工资信息(员工编号、基本工资、绩效等)。
- 工资发放表(SalaryPayment):记录工资的发放信息(员工编号、发放时间、发放方式等)。
2. 系统实现利用SQL语言和数据库管理系统,可以实现员工工资管理系统的各项功能需求。
以下是关键功能的实现示例:- 员工信息管理:通过SQL语句实现员工信息的增加、删除、修改和查询操作。
- 工资计算:编写SQL函数或存储过程来计算员工的工资,考虑到绩效考核等因素。
- 工资发放:编写SQL语句插入工资发放记录,记录发放时间和方式等信息。
- 工资查询:编写SQL语句实现员工和管理人员的工资查询功能,根据需要生成工资单。
- 统计报表:通过SQL语句生成工资统计报表,利用聚合函数和分组操作实现部门工资总额、员工工资排名等统计指标的计算。
数据库课程设计设计题目:工资管理系统班级:学号:姓名:任务分配表目录一绪论 (3)二需求分析 (3)三概要设计 (4)四物理设计 (5)五详细设计 (6)六调试分析 (9)七小结 (16)八附件 (16)一、绪论随着计算机技术的飞速发展和经济体制改革的不断深入,传统企业管理方法、手段以及工作效率已不能适应新的发展需要,无法很好地完成员工工资管理工作。
提高公司企业管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。
基于C#与SQL server数据库技术建立一个通用工资管理系统,该系统为提供了查询、增加记录、删除等功能,功能比较的齐全,并对工资进行了统计如津贴管理、报表统计等。
基本上能满足管理员和公司的要求。
此次数据库课程设计的主要设计如下:原理分析、程序设计过程、程序实现和程序调试以及数据库的设计。
需求分析、概要结构设计、逻辑结构设计、物理结构设计和数据库的实施和维护。
主要包括两大大功能模块:1.管理员管理界面设计。
2.员工管理界面设计。
二、需求分析功能需求分析:该通用工资管理系统具备下列功能:管理员通过输入用户名和密码进下该系统后,可以进行一些基本查询(员工信息查询、工资奖金信息查询)、工资管理(计算总工资、奖金管理);通过输入密码,可以进行查询员工的数据(工资,奖金,税收等)。
具体功能的详细描述如下1、在首页进行选择,员工与管理员通道2、点击[管理员登陆]3、用户名和密码即可进入 [工资管理]功能窗体,在此可以选择功能,添加,查询,人员列表4、点击[添加]功能窗体,添加员工工资信息。
5、点击[查询]功能窗体,输入员工号即可查询员工信息。
6、点击[人员列表]功能窗体,可查看所有员工的列表,这界面内可以进行删除操作。
7、点击[员工登陆]8、用户名和密码即可进入 [员工工资查询]功能窗体,在此可以选择查询基本信息,查询工资信息。
9、在[查询基本信息],员工可自己查看自己的信息。
10、在[查询工作信息],员工可自己查看自己的工作信息。
C语言职工工资管理系统代码简介职工工资管理是一项重要的任务,它涉及到工资计算、薪资发放、绩效评估等方面。
为了提高管理的有效性和准确性,许多公司和组织都开发了各种各样的工资管理系统。
本文将介绍一种基于C语言开发的职工工资管理系统代码。
代码功能及特点1. 基本功能•添加新员工信息•更新员工信息•计算员工工资•发放工资•查询员工信息•统计工资情况2. 特点•简单易懂:代码使用C语言编写,阅读和理解都相对简单。
•高效可靠:代码采用模块化设计,结构清晰,运行效率高,容错性强。
•跨平台支持:C语言是一种具有广泛应用的语言,可以在多个操作系统上运行。
代码实现1. 员工信息结构体定义struct Employee {int id; // 员工编号char name[20]; // 员工姓名float basicSalary; // 员工基本工资float performanceBonus; // 绩效奖金float salary; // 员工工资};2. 添加新员工信息函数void addEmployee(struct Employee *employee, int num) {printf("请输入员工编号:");scanf("%d", &(employee[num].id));// 输入其他员工信息...}3. 更新员工信息函数void updateEmployee(struct Employee *employee, int id) {int i;for (i = 0; i < num; i++) {if (employee[i].id == id) {// 更新员工信息...}}}4. 计算员工工资函数void calculateSalary(struct Employee *employee, int num) {int i;for (i = 0; i < num; i++) {employee[i].salary = employee[i].basicSalary + employee[i].performance Bonus;}}5. 发放工资函数void paySalary(struct Employee *employee, int num) {int i;for (i = 0; i < num; i++) {printf("员工编号:%d,工资:%.2f\n", employee[i].id, employee[i].salar y);}}6. 查询员工信息函数void searchEmployee(struct Employee *employee, int id) {int i;for (i = 0; i < num; i++) {if (employee[i].id == id) {// 输出员工信息...}}}7. 统计工资情况函数void statisticsSalary(struct Employee *employee, int num) { float totalSalary = 0;int i;for (i = 0; i < num; i++) {totalSalary += employee[i].salary;}printf("总工资:%f\n", totalSalary);}使用示例1. 添加员工信息struct Employee employees[100];int num = 0;addEmployee(employees, num);num++;2. 更新员工信息int id = 12345;updateEmployee(employees, id);3. 计算员工工资calculateSalary(employees, num);4. 发放工资paySalary(employees, num);5. 查询员工信息int id = 12345;searchEmployee(employees, id);6. 统计工资情况statisticsSalary(employees, num);总结本文介绍了一个基于C语言的职工工资管理系统代码。
延安大学计算机学院实验报告专用纸实验室:软件工程实验室学号:实验日期:2013年11月日(1)。
需求分析工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块,工资统计模块,报表设计模块,打印输出模块,模糊查询模块等等.在做这个管理系统时,我们既咨询了父母又结合了教师等不同行业人士的工资情况,发现该系统受些许因素牵制比如说:公司大小,人员流动性,员工学历等通过我们的了解调查最终总结出系统功能如下:a。
整体结构合理, 模块化结构利于操作。
b。
完整的数据输入,输出,维护.c。
拥有不错的自检性,用户输错或误输均有提示。
d. 拥有较强的容错性,某个用户的错误操作不会引起系统的瘫痪。
e. 程序接口灵活,以便日后操作与维护。
f. 在不影响系统功能的前提下,美化操作界面.(2)。
概念设计○1E-R图错误!数据流图(3).逻辑设计基本信息(员工编号号,姓名,性别,毕业学校,所学专业,学历,电话,住址,从事岗位).考勤信息表(员工编号,姓名,请假天数,矿工天数,月迟到次数,月份).加班信息表(员工编号,姓名,晚班加班(天),周末加班(天),春节加班(天),节假日加班(天),月份)。
岗位信息表(员工编号,姓名,从事岗位,基本工资,部门名称)。
部门信息表(部门编号,部门名称,部门经理,部门人数)根据基本表创建了如下视图:加班津贴(员工编号,姓名,加班薪酬,月份)缺勤扣除表(员工编号,姓名,扣除工资,月份)月工资表(员工编号,姓名,基本工资,扣除工资,加班薪酬,实得工资,月份)年终奖(员工编号,姓名,奖(4).数据字典视图的创建:(5)。
系统的实现开发环境:SQL server 2005及eclipse○,1用SQL语言创建数据库Array 1.基本信息表(JBXX)Create table JBXX(Empno int not null primarykey,Emname varchar(8) not null,Sex char(2)check(Sex=’ 男’or Sex=’女’),School varchar(20)null,Profession varchar(20) null,Education varchar(6) null,Phone char(11) null,Address varchar(15)null)3.加班信息表(OVERTIMEINFORMA TION)Create table OVERTIMEINFORMATION(Empno int not null ,Night int null,Weekend int null,Festival int null,Special int null,Themonth int not null,5。
c语言工资管理系统课程设计一、教学目标本课程的目标是使学生掌握C语言在工资管理系统开发中的应用。
具体目标如下:1.理解C语言的基本语法和数据结构。
2.掌握函数的定义和调用。
3.学习模块化编程思想。
4.能够使用C语言编写简单的程序。
5.学会使用C语言进行文件操作。
6.能够独立完成工资管理系统的开发。
情感态度价值观目标:1.培养学生对计算机编程的兴趣。
2.培养学生解决问题的能力。
3.培养学生团队合作的意识。
二、教学内容教学内容以《C程序设计语言》为基础,结合实际情况进行调整。
教学大纲如下:1.C语言概述:介绍C语言的历史和发展,理解C语言的特点。
2.基本语法:学习数据类型、运算符、表达式等基本语法知识。
3.控制结构:学习顺序结构、分支结构和循环结构。
4.函数:学习函数的定义、调用和返回值。
5.数组和字符串:学习一维、二维数组的使用,字符串的基本操作。
6.指针:学习指针的概念和应用。
7.结构体和文件:学习结构体的定义和使用,文件的基本操作。
8.模块化编程:学习模块的划分和调用。
9.工资管理系统实例:以实际项目为例,讲解工资管理系统的开发过程。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解基本语法和理论知识。
2.案例分析法:分析实际项目,理解工资管理系统的开发过程。
3.实验法:动手编写程序,巩固所学知识。
4.讨论法:分组讨论问题,培养团队合作能力。
四、教学资源教学资源包括:1.教材:《C程序设计语言》。
2.参考书:提供相关的参考书籍,以便学生深入理解C语言。
3.多媒体资料:制作PPT等教学课件,辅助讲解。
4.实验设备:提供计算机实验室,方便学生动手实践。
五、教学评估教学评估是检验学生学习成果的重要手段。
本课程的评估方式包括以下几个方面:1.平时表现:评估学生的出勤、课堂表现、参与讨论等情况,占总评的20%。
2.作业:布置课后作业,评估学生的编程能力和理解程度,占总评的30%。
c++工资管理系统课程设计(最新版)目录一、引言二、课程设计目的与要求三、课程设计内容与实现四、课程设计实现过程五、总结与展望正文一、引言随着社会经济的不断发展,企业对员工的工资管理也日益重视。
因此,为了提高企业的管理效率,设计一款适用于企业的工资管理系统变得尤为重要。
本次课程设计将使用 C++语言,设计一个具有基本功能的工资管理系统,以满足企业对员工工资管理的需求。
二、课程设计目的与要求本次课程设计的目的是为了让学生掌握 C++语言的基本运用,理解工资管理系统的基本概念和设计方法。
课程设计要求学生能够独立完成一个简单的工资管理系统,实现对员工信息的添加、修改、查询和删除等功能。
三、课程设计内容与实现本次课程设计的主要内容是实现一个 C++语言的工资管理系统,系统中包含以下功能:1.添加员工信息:管理员可以输入员工的基本信息,如姓名、工号、性别、职务、基本工资等,系统将自动计算员工的职务工资、岗位津贴、医疗保险和公积金。
2.修改员工信息:管理员可以根据员工工号查找到对应的员工信息,并对其进行修改。
3.查询员工信息:管理员可以根据员工姓名或工号查询员工的详细信息。
4.删除员工信息:管理员可以根据员工工号删除对应的员工信息。
5.统计报表:系统可以自动生成员工工资的统计报表,包括总工资、平均工资等。
四、课程设计实现过程为了实现上述功能,首先需要设计一个员工类(Employee),用于存储员工的基本信息和计算工资。
然后,需要设计一个工资管理系统类(SalarySystem),用于实现添加、修改、查询和删除员工信息的功能。
最后,通过主函数(main)调用这些功能,实现对员工工资的管理。
五、总结与展望本次课程设计让我们深入了解了 C++语言的基本运用,以及工资管理系统的设计方法。
通过实现这个简单的工资管理系统,我们不仅提高了编程技能,还学会了如何将理论知识应用到实际项目中。
C++课程设计报告工资管理系统院系:计算机科学技术学院班级:网络09 – 1班姓名:合作者:指导教师:2010 年6 月25 日面向对象程序设计课程设计任务书一、题目:工资管理系统二、设计要求(1)小组成员分工协作完成,要求每个成员有自己相对独立的模块,同时要了解其他组员完成的内容。
(2)查阅相关资料,自学具体课题中涉及到的新知识。
(3)根据实现的功能,划分出合理的对象类,明确对象类间的关系。
为每个对象类设计正确的属性和方法,为每个方法设计合理的方法体。
(4)编程简练,程序功能齐全,能正确运行。
(5)课题完成后提交课程设计报告,格式规范,内容详实。
其主要内容包括:1-封皮、2-课程设计任务书,3-指导教师评语与成绩、4-目录、5-需求分析、6-概要设计、7-详细设计(含主要代码)、8-调试分析与测试结果、9-用户使用说明、10-附录或参考资料。
报告用A4纸打印,中文字体为宋体,西文字体用Time New Roma,小四号字,行距采用“固定值”18磅,首行缩进2字符。
(6)课程设计报告内容的说明:需求分析-分析课题需要实现的功能以及要用到的知识点,分析课题涉及的对象间的关系;概要设计-根据实现的功能,划分出合理的对象类,明确对象类间的关系;为每个对象类设计正确的属性和方法,为每个方法设计合理的方法体;详细设计-具体的类、对象和功能的实现以及主要程序代码;调试分析与测试结果-用多组测试用例调试分析系统的正确性、完备性等各项性能指标,写出测试结果;用户使用说明-编写该系统的使用说明书;附录或参考资料-完整的程序代码以及查阅资料的参考文献。
三、课程设计工作量由于是设计小组团结协作完成设计任务,一般每人的程序量在200行有效程序行左右,不得抄袭。
四、课程设计工作计划2010年6月12日,指导教师讲课,学生根据题目准备资料;2010年6月13日、17日、18日,设计小组进行总体方案设计和任务分工;每人完成自己承担的程序模块并通过独立编译;2010年6月21日~2010年6月24日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;同时撰写报告。
2010年6月25日,验收;提交课程设计报告。
指导教师签章:教研室主任签章面向对象程学设计课程设计指导教师评语与成绩目录1需求分析 (1)1.1 性能需求 (1)1.2 功能需求 (1)2 程序的基本功能及操作手册 (2)2.1 程序的基本功能 (2)2.2 操作手册 (2)3 详细设计 (3)3.1 动画功能模块设计 (3)3.2 开始界面功能模块设计 (4)3.3 管理员界面功能模块设计 (11)4 调试分析与测试结果 (14)4.1 开始界面的运行 (14)4.2 欢迎动画的运行 (16)5 系统的总体结构图 (17)5.1 定义的函数及说明 (17)5.2 系统总体框图 (17)6 结束语 (18)1 需求分析1.1 性能需求随着高等学校的快速发展,高校规模越来越大,教职员工的数量也越来越多,高校工资管理更加的复杂,而工资管理这以琐碎、复杂又十分细致的工作容不得半点差错,工资的计算、发放、核算的工作两很大,如果实行手动操作,每月发放工资需要手工填制大量的表格、做很大规模的运算,这会在无形中浪费了劳动力,耗费工作人员大量的时间和精力,计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理无法比拟的有点。
例如:迅速检索,查找方便,可靠性高,储存量大,保密性好,寿命长,低成本,安全等等。
这些有点能够极大的提高人事工资管理的效率,也是科学化管理,与世界接轨的重要条件。
这就对高校工资管理系统提出了新的要求,用计算机管理系统来管理高校工资已经成为目前的趋势,使用计算机可以告诉,快捷的完成以上工作。
在计算机联网后,数据在网间传递,可以实现数据的交互,避免重复劳动,规范数据管理的行为,继而提高了管理的效率和水平。
高校工资管理系统便是以计算机为工具,通过对工资管理所需的信息管理,不仅把管理人员从大量繁琐的数据中拯救出来,而且优化了管理体系,提高了管理效率,使管理简易化、高效化、智能化,与此同时也提高了管理的透明度和互动性。
在企业部门里,管理人员应该对员工的基本档案信息进行记录存储,这样,在确定好部门里的人员对象后,才能正确的进行进一步操作动作,如对人员进行工资计算、工资统计分析等。
管理人员应该在需要的时候能及时的查看员工的基本档案信息,对如员工的调职、离开等要能够即使的给予信息更正。
1.2 功能需求程序运行后显示动画图片,按任意键退出欢迎界面。
之后选择相应的权限(管理员或普通用户),选择为管理员时必须输入密码方可进入旗下界面,其中包括数据录入、查询、删除、修改及统计等各种功能,选择为普通用户时无需输入密码,但只能进行数据的查询、统计、浏览。
另外进行各种操作前都会出现相应的文字提示,方便使用者更好的应用此软件。
数据输入后系统自动将其保存到person.dat文件中,如果要删除或修改已输入的个别数据,则只需选择此功能,系统即从文件中查到相应数据加以删除或修改,并再次进行数据的保存,从而完成工资管理的自动化。
2 程序的基本功能及操作手册2.1 程序的基本功能(1)向文件中录入职工信息数据。
(2)查询职工信息,获取岗位、工时、薪资等信息(3)修改一个员工的资料。
(4)删除某个员工的信息。
(5)按类别浏览职工薪资信息。
(6)按工号查询某个薪资信息。
(7)增加职工信息。
(8)区别管理员身份与普通用户,分别分配不同浏览空间。
2.2 操作手册运行程序后,先出现欢迎动画,虽然简短,但是透漏出了我们程序开发人员对用户的衷心祝愿,它会在屏幕上运动一周,然后自行消失。
随之出现一静态画面“歡迎登陸”。
接着映入眼帘的是系统的基本界面,核实身份,并赋予使用者应有的身份。
如果您是管理员,在介入密码后会被赋予管理员身份进入程序,在程序中,您可以做录入职工数据、修改职工数据、删除职工数据、浏览、统计等操作。
如果您不是管理员,那么选择相应的数字后,您会拥有浏览、查询、统计等权利。
3 详细设计3.1 动画功能模块设计此简单的动画为:一灯笼从屏幕的左端移动到右端,设计主要是用循环和清屏来完成的,类似于扫描原理。
主要代码如下:void donghua(){system("cls");int j;for(j=2;j<50;j++){cout<<setw(j)<<" "<<" ▇▇▇▇"<<endl;cout<<setw(j)<<" "<<" ◢▇▇▇▇◣"<<endl;cout<<setw(j)<<" "<<" ▇合家欢乐▇"<<endl;cout<<setw(j)<<" "<<" ◥▇▇▇▇◤"<<endl;cout<<setw(j)<<" "<<" ▇▇▇▇"<<endl;cout<<setw(j)<<" "<<" | | |"<<endl;system("cls");}cout<<setw(20)<<" "<<" ★★★★★★★★★"<<endl;cout<<setw(20)<<" "<<" ★★★★★★"<<endl;cout<<setw(20)<<" "<<" ★★★★★★"<<endl;cout<<setw(20)<<" "<<" ★歡迎登陸★"<<endl;cout<<setw(20)<<" "<<" ★★★"<<endl;cout<<setw(20)<<" "<<" ★★★★"<<endl;cout<<setw(20)<<" "<<" ★★★★"<<endl;cout<<setw(20)<<" "<<" ★★"<<endl;system("pause");}3.2 开始界面功能模块设计此开始界面主要是让用户选择所需的权限(管理员或普通用户),若选择管理员权限,则必须先输入管理员密码才能进入下一步操作;若选择普通用户权限,则可直接进入旗下的用户界面,此界面只能进行数据的查询、统计、浏览和返回到开始界面四个功能。
程序流程图(密码登陆部分)如下:主要代码如下:V oid jiem(){char j,c;char p[10],pass[10]="admin";int i=0,k;College c0; //定义大学对象cout<<"*************************欢迎使用我们的程序**************************"<<endl;cout<<"*请输入你要使用的权限............ *"<<endl;cout<<"*┏━1.管理员━━━━━━━━━━━━━━━━━━━━━━━━━┓*"<<endl;cout<<"*┣━2.普通用户━━━━━━━━━━━━━━━━━━━━━━━━━┫*"<<endl;cout<<"*┗━0.退出系统━━━━━━━━━━━━━━━━━━━━━━━━━┛*"<<endl;cout<<"*********************************************************** **********"<<endl;cout<<" 请选择(0-2) ";k:cin>>c;if(c=='1'){cout<<"请输入管理员密码:";cin>>p;for(k=0;pass[k]!='\0';k++){if(p[k]==pass[k]){i++;}}if(i==5){system("cls");guanli();}else{cout<<endl;cout<<"密码错误!";cout<<"是否返回到开始(y返回/n退出)";cin>>j;if(j=='y'||j=='Y'){system("cls");jiem();}else exit(0);}}else if(c=='2'){do{system("cls");cout<<"**************************************************************\n";cout<<"* 你是普通用户,只能进行下列操作... *\n"<<endl;cout<<"*┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓*\n";cout<<"*┣1-查询┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┃*\n";cout<<"*┣2-统计┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┃*\n";cout<<"*┣3-浏览┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┃*\n";cout<<"*┣0-返回到开始┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┃*\n";cout<<"*┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛*\n";cout<<"**************************************************************"<<e ndl;cout<<"请选择(0-3)";b:cin>>c;switch(c){case '1':{c0.Find(); system("pause");}break;case '2':{c0.Stat();system("pause");} break;case '3':{c0.Print(); system("pause");}break;case '0':{system("cls");jiem();system("pause");}break;default: {cout<<"你输入的字符有误!!!\n";cout<<"请确认后重新选择(0-3)";goto b;}}}while(c!='0');system("cls");jiem();}else if(c=='0')exit(0);else{cout<<"你输入的字符有误!!!\n";cout<<"请确认后重新选择(0-2)";goto k;}}College类中的四个成员函数的实现代码如下:void College::Find(){double ID;Person *p1;Person *p2;cout<<"输入你要查询的编号:";cin>>ID;p1=PL->next;p2=PL;while(p1){if(p1->num==ID)break; //找到else{p2=p1; //继续查找p1=p1->next;}}if(!p1) {cout<<"找不到你所查询的人!!!\n请确认你所查询的编号是否出错!!!\n";return;}else{ cout<<"\n** 职工信息表**\n";cout<<"编号姓名岗位课时收入情况(元)\n";p1->Output();}}//查找职工结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针)int College::Cfind(int ID,Person **p1,Person **p2){*p1=PL->next;*p2=PL;while(*p1){if((*p1)->num==ID)break; //找到else{*p2=*p1; //继续查找*p1=(*p1)->next;}}return *p1?1:0;}V oid College::Print(){cout<<"\n** 职工信息表**\n";cout<<"编号姓名岗位课时收入情况(元)\n";Person *p=PL->next;if(!p){cout<<"无职工记录!\n";return;}while(p) //遍历链表,输出职工信息{p->Output();p=p->next;}}V oid College::Stat(){Person *p1;Person *p2;double Sa=0;int a,b,i=0;double c,d;cout<<"选择你要统计的类别\n[1—类别;2—工资;3—要发的工资总数;4—总的人数]\n";cin>>a;if(a==1){cout<<"输入你要统计的类别:\n[1-教师,2-实验员,3-行政人员,4-教师兼实验员,5-行政兼教师]\n";cin>>b;p1=PL->next;p2=PL;while(p1){if(p1->Duty==b){i++;//找到p2=p1; //继续查找p1=p1->next;}else{p2=p1; //继续查找p1=p1->next;}}cout<<b<<"类职工的个数是:"<<i<<endl;}else if(a==2){cout<<"输入工资下限:";cin>>c;cout<<"\n输入工资上限:";cin>>d;p1=PL->next;p2=PL;while(p1){if(p1->Salary>=c&&p1->Salary<=d){p1->Output();//找到p2=p1; //继续查找p1=p1->next;}else{p2=p1; //继续查找p1=p1->next;}}}else if(a==3){Person *p=PL->next;while(p) //遍历链表{Sa=Sa+(p->Salary);p=p->next;}cout<<"工资总数是:"<<Sa<<endl; }else if(a==4){Person *p=PL->next;while(p){i=i+1;p=p->next;}cout<<"总人数是:"<<i<<endl;}cout<<"统计完成!!!\n";}3.3 管理员界面功能模块设计此界面类似于用户界面,但它拥有管理员特有的功能权限,除了用户的功能外,它还有数据录入、删除职工、增加职工、修改职工功能,以便于管理员随时对数据进行更新,而普通用户则无权对数据进行任何更新操作,这也是此系统的一大亮点。