您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > 《职工工资管理系统设计》实验报告
内蒙古工业大学信息工程学院实验报告课程名称:c语言实验名称:实验类型:验证性□综合性√设计性□实验室名称:电西8楼班级:计12-2学号:201220201042姓名:孙亚赛组别:同组人:勾涛付启恒成绩:实验日期:2013-3-3目录1题目与要求...........................................................................................................................32功能设计...............................................................................................................................52.1算法设计.....................................................................................................................52.2模块流程图................................................................................................................73程序代码设计.......................................................................................................................84C程序设计总结..................................................................................................................235结束语.................................................................................................................................246源程序...............................................................................................................................241题目与要求程序设计的目的和要求1.目的:1)复习、巩固程序设计的基础知识,进一步加深对程序设计语言的理解和掌握;熟练使用函数、结构体、文件、数组、循环与选择、链表和指针等知识点,熟练应用C语言综合知识。2)为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;3)培养学生在项目开发中团队合作精神、创新意识及能力。2.要求:1)对系统进行功能模块分析、控制模块分析正确,符合题目要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2)系统设计要实用、编程简练、功能全面、界面美观、操作使用便捷、程序运行稳定;3)说明书、流程图要清晰;4)记录设计情况(备查,也为编写设计说明书作好准备);5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过,能正确运行;6)设计上交内容:设计报告一份(按格式书写);源程序一份(电子版,能编译成可执行文件并能正常运行。每个班由班长负责收集并上交)。题目:职工工资管理系统1)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。2)、输入功能:职工信息的录入(包括从文件中导入职工信息数据),可以一次完成若干条记录的输入。3)、浏览功能:完成对全部职工信息的显示。4)、查找功能:①完成按姓名查询职工的相关信息,并显示。②完成按ID号查询职工的相关信息,并显示。5)、删除功能:通过输入ID号完成对职工的信息进行删除。6)、添加功能:完成添加新职工的信息。7)、修改功能:通过输入ID号完成对职工的信息进行修改。8)、计算功能:计算职工的各项工资,并得出实发工资。[个人收入所得税按现行税率计算]9)、统计功能:统计并输出符合指定条件的职工人数及其占总人数和百分比。[如实发工资在5000元以上。10)、保存功能:可以将职工信息数据保存至指定的文件中。11)、退出职工工资管理系统。职工信息应至少包括以下数据:ID号、姓名、基础工资、职务工资、住房公积金、个人收入所得税,水电费、实发工资。1.1:我实现的题目中的问题:主菜单页面制作;职工数据输入;职工全部数据浏览;按姓名、学号查找职工数据;通过ID号对职工数据进行删除;通过ID号对职工数据修改;职工数据统计(将自己题目做完后完成了其它功能)。1.2本系统涉及的知识点:结构体、数组、循环、选择、函数调用、分支、指针、全局变量、文件读取、保存1.3我实现的题目功能:主菜单页面制作;职工数据输入;职工全部数据浏览;按姓名、学号查找职工数据;通过ID号对职工数据进行删除;通过ID号对职工数据修改;职工数据统计;2功能设计2.1算法设计2.1.1进入主函数后执行newu函数,利用switch语句设计如图1所示的主菜单请输入要执行的功能对应选项(1-10)1.录入职工信息2.浏览职工信息3.添加职工信息4.查询职工信息5.删除职工信息6.修改职工信息7.员工实发工资8.职工工资排序9.职工工资统计10.返回菜单2.1.2选择1后录入职工信息,执行input函数利用循环录入职工各项信息,输入完毕后将所有数据存入文件。2.1.3输入2后浏览职工信息,执行view函数,读取文件,利用循环将职工各项信息显示2.1.4输入3后添加职工信息,执行tianjia函数,读取文件,输入添加人数,然后调用input1函数,利用全局变量D自动将新添加的职工信息补充到已存职工信息后面(利用循环),保存至文件2.1.5输入4后查找职工信息(利用switch语句,通过ID号和姓名查找),利用charge函数,读取存入到文件中的职工信息,选取相应的使用通过ID号(charge1函数)和姓名查找(charge2)的函数对职工信息查找2.1.6输入5后通过ID号删除职工信息,调用delete函数,读取文件,利用循环将与输入ID号相同的文件中的职工信息删除。2.1.7输入6后通过输入ID号修改员工信息,调用xiugai函数,读取文件通过循环将所需各项信息修改2.1.8输入7后统计员工工资,调取gongzhi函数,将员工实发工资输出,其中实发工资在输入函数input函数中利用选择和循环计算得出2.1.9输入8后进行职工工资函数,调取tongji函数,读取文件,利用循环将职工工资比较,进行排序2.1.10输入9后进行职工工资统计,调取tongji函数,将职工工资分为5000以上、3000-4000、2000-3000、2000以下四个档次,其中对数据的统计在输入函数input函数中实现。2.1.11输入10为返回函数,即调用newu函数返回主菜单2.1.12输入11为写入对使用此系统的意见:2.2模块流程图职工工资信息管理系统主菜单newu()输入模块input()添加模块input1()浏览模块view()排序模块paixu()按姓名查询charge2()查询模块charge()按员工ID号查询charge1()按实发工资排序paixu()删除模块delete()修改模块员工工资统计3程序代码设计structWorker{intnum;//ID号码charname[20];//姓名intsalary1;//基础工资intsalary2;//职务工资intsalary3;//住房公积金intsalary4;//社保金floatsalary5;}stu[10000];//定义一个足够大的结构体数组函数功能说明:结构体数组,用来存放题目所需信息,定义10000个结构体是为了构建足够大的结构体使所有数据正常存取。voidinput(intn)----------------------------输入函数{voidsave(intn);//声明一个保存函数voidnewu();//声明一个菜单函数inti=0;for(i=0;in;i++){printf(\n请输入职工号:);scanf(%d,&stu[i].num);printf(\n请输入姓名:);scanf(%s,&stu[i].name);printf(\n请输入基础工资:);scanf(%d,&stu[i].salary1);printf(\n请输入职务工资:);scanf(%d,&stu[i].salary2);printf(\n请输入住房公积金:);scanf(%d,&stu[i].salary3);printf(\n请输入社保金额:);scanf(%d,&stu[i].salary4);if(stu[i].salary1+stu[i].salary2-stu[i].salary3-stu[i].salary43500){inta;floatb;a=stu[i].salary1+stu[i].salary2-stu[i].salary3-stu[i].salary4-3500;if(a1500&&a4500){b=(float)(a*0.1-105);stu[i].salary5=stu[i].salary1+stu[i].salary2-b;}if(a9000&&(a4500||a==4500)){b=(float)(a*0.1-555);stu[i].salary5=stu[i].salary1+stu[i].salary2-b;}}stu[i].salary5=stu[i].salary1+stu[i].salary2;}save(n);//对结构体数据进行储存newu();//返回菜单}函数功能说明:将职工信息存入文件,save函数是保存函数,将录入的信息(职工的姓名、编号、基础工资、职务工资、住房公积金、社保金额)存入指定文件中,newu函数是主菜单函数,执行完输入函数后转入主菜单进行其他功能的进行。此函数中通过for循环将多个职工信息录入。下面的if语句是用来统计职工工资的,在此函数录入职工信息的同时将其信息统计。voidtianjia()----------------------------------------------添加函数{voidinput1(intn);inti;printf(←请输入添加的人数→;);scanf(%d,&i);input1(i);}函数功能说明:此函数为添加函数,通过此函数输入要添加的人数,再转入input1函数,添加职工信息。voidinput1(intn)--------------------------添加函数{voidsave(intn);voidnewu();inti=0;for(i=D;in+D;i++){printf(\n请输入职工号:);scanf(%d,&stu[i].num);printf(\n请输入姓名:);scanf(%s,&stu[i].name);printf(\n请输入基础工资:);scanf(%d,&stu[i].salary1);printf(\n请输入职务工资:);scanf(%d,&stu[i].salary2);printf(\n请输入住房公积金:);scanf(%d,&stu[i].salary3);printf(\n请输入员工社保金额:);scanf(%d,&stu[i].salary4);if(stu[i].salary1+stu[i].
本文标题:《职工工资管理系统设计》实验报告
链接地址:https://www.777doc.com/doc-6405831 .html