首页 《职工工资管理系统设计》实验报告(doc 48页)

《职工工资管理系统设计》实验报告(doc 48页)

举报
开通vip

《职工工资管理系统设计》实验报告(doc 48页)PAGE\*MERGEFORMAT1信息工程学院《计算机基础训练》程序设计报告PAGE\*MERGEFORMAT1内蒙古工业高校信息工程学院实验报告课程名称:c语言试验名称:试验类型:验证性□综合性√设计性□试验室名称:电西8楼班级:计12-2学号:201220201042姓名:孙亚赛组别:同组人:勾涛付启恒成果:试验日期:2013-3-3名目TOC\o"1-3"\h\uHYPERLINK\l_Toc265471题目与要求PAGEREF_Toc265473HYPERLINK\l_Toc...

《职工工资管理系统设计》实验报告(doc 48页)
PAGE\*MERGEFORMAT1信息工程学院《计算机基础训练》程序设计报告PAGE\*MERGEFORMAT1内蒙古工业高校信息工程学院实验报告课程名称:c语言试验名称:试验类型:验证性□综合性√设计性□试验室名称:电西8楼班级:计12-2学号:201220201042姓名:孙亚赛组别:同组人:勾涛付启恒成果:试验日期:2013-3-3名目TOC\o"1-3"\h\uHYPERLINK\l_Toc265471 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 目与要求PAGEREF_Toc265473HYPERLINK\l_Toc146172功能设计PAGEREF_Toc146175HYPERLINK\l_Toc192892.1算法设计PAGEREF_Toc192895HYPERLINK\l_Toc27342.2模块 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图PAGEREF_Toc27347HYPERLINK\l_Toc36173程序代码设计PAGEREF_Toc36178HYPERLINK\l_Toc52214C程序设计总结PAGEREF_Toc522122HYPERLINK\l_Toc43345结束语PAGEREF_Toc433423HYPERLINK\l_Toc270776源程序PAGEREF_Toc27077231题目与要求程序设计的目的和要求1.目的:1)复习、巩固程序设计的基础学问,进一步加深对程序设计语言的理解和把握;娴熟使用函数、结构体、文件、数组、循环与选择、链表和指针等学问点,娴熟应用C语言综合学问。2)为同学供应了一个既动手又动脑,独立实践的机会,将课本上的理论学问和实际有机的结合起来,熬炼同学的分析解决实际问题的力量。提高同学适应实际,实践编程的力量;3)培育同学在项目开发中团队合作精神、创新意识及力量。2.要求:1)对系统进行功能模块分析、把握模块分析正确,符合题目要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2)系统设计要有用、编程简练、功能全面、界面美观、操作使用便捷、程序运行稳定;3)说明 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 、流程图要清楚;4) 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 设计状况(备查,也为编写设计说明书作好预备);5)要求接受模块化程序设计方法,及锯齿型书写格式,要求上机调试通过,能正确运行;6)设计上交内容:设计报告一份(按格式书写);源程序一份(电子版,能编译成可执行文件并能正常运行。每个班由班长负责收集并上交)。题目:职工工资管理系统1)、应供应一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清楚美观。2)、输入功能:职工信息的录入(包括从文件中导入职工信息数据),可以一次完成若干条记录的输入。3)、扫瞄功能:完成对全部职工信息的显示。4)、查找功能:=1\*GB3①完成按姓名查询职工的相关信息,并显示。=2\*GB3②完成按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)录入职工信息扫瞄职工信息添加职工信息查询职工信息删除职工信息修改职工信息员工实发工资职工工资排序职工工资统计返回菜单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;i3500){inta;floatb;a=stu[i].salary1+stu[i].salary2-stu[i].salary3-stu[i].salary4-3500;if(a>1500&&a<4500){b=(float)(a*0.1-105);stu[i].salary5=stu[i].salary1+stu[i].salary2-b;}if(a>9000&&(a<4500||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;i3500){inta;floatb;a=stu[i].salary1+stu[i].salary2-stu[i].salary3-stu[i].salary4-3500;if(a>1500&&a<4500){b=(float)(a*0.1-105);stu[i].salary5=stu[i].salary1+stu[i].salary2-b;}if(a>9000&&(a<4500||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();}函数功能说明:此函数为添加函数,在原有职工信息的基础上再添加新的职工信息,定义一个全局变量D是原先输入的职工个数,此添加函数直接从D项开头录入新的职工信息,If下面的语句是实发工资的计算,在录入职工信息的过程中将实发工资计算出来,实发工资的函数见下面的函数。voidsave(intn)-----------------------保存函数(将结构体的数据储存到文件中){FILE*fp,*fp1;//inti;if((fp=fopen("abc.dat","wb"))==NULL){printf("cannotopenfile\n");return;}for(i=0;i录入职工信息<2>扫瞄职工信息\n");printf("<3>添加员工信息<4>查询员工信息\n");printf("<5>删除员工信息<6>员工信息修改\n");printf("<7>员工实发工资<8>员工工资排序\n");printf("<9>员工工资统计<10>返回菜单\n");printf("<9>意见反馈\n");printf("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");printf("★请您在(1-7)中选择一个数字进行相应的操作★:");scanf("%d",&n);if(n==1){printf("★请确定您本次将要录入职工的数目★:");scanf("%d",&i);}switch(n){case1:input(i);break;case2:view(D);break;case3:tianjia();break;case4:charge();break;case5:delet();break;case6:xiugai();break;case7:gongzhi();break;case8:paixu();break;case9:tongji();break;case10:newu();break;case11:yijian();break;}}函数功能说明:此函数为主菜单页面,通过此菜单运用switch函数可以实现系统11个功能的调用,通过对老师上传的例系统分析,我设计了此想主菜单页面。voiddelet()----------------------------------------------------删除函数{intnum,i,n,m;FILE*fp,*fp1;if((fp=fopen("abc.dat","wb"))==NULL)//以写的方式打开文件{printf("cannotopenfile\n");exit(0);}if((fp1=fopen("abcd.dat","wb"))==NULL)//以写的方式打开文件{printf("cannotopenfile\n");exit(0);}fread(&D,sizeof(int),1,fp1);printf("*请输入您想删除的员工ID号*:");//找到要删除员工的ID号码scanf("%d",&num);for(i=0;istu[k].salary5)k=j;}temp=stu[k];stu[k]=stu[i];stu[i]=temp;}printf("\n\nID号码姓名基础工作职务工资住房公积金社保金实发工资\n");for(i=0;i3500){inta;floatb;a=stu[i].salary1+stu[i].salary2-stu[i].salary3-stu[i].salary4-3500;if(a>1500&&a<4500){b=(float)(a*0.1-105);stu[i].salary5=stu[i].salary1+stu[i].salary2-b;}if(a>9000&&(a<4500||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;}}for(i=0;i5000)//计算工资在5000元以上的人数{n=n+1;}elseif(((stu[i].salary5==5000)||stu[i].salary5<5000)&&stu[i].salary5>4000)//计算工资在4000——5000元之间的人数{m=m+1;}elseif(((stu[i].salary5==4000)||stu[i].salary5<4000)&&stu[i].salary5>3000)//计算工资在3000——4000元之间的人数{o=o+1;}elsep=p+1;//计算工资在3000元以下的人数}printf("实发工资在5000元以上的人数为%d占总人数的百分%5.2f\n",n,(float)(100*n/D));printf("实发工资在3000到4000之间的人数为%d占总人数的百分%5.2f\n",m,(float)(100*m/D));printf("实发工资在2000到3000之间的人数为%d占总人数的百分%5.2f\n",0,(float)(100*o/D));printf("实发工资在2000元以下的人数为%d占总人数的百分%5.2f\n\n\n\n",p,(float)(100*p/D));newu();}函数功能说明:此函数为统计函数,分类标准分为四类,5000元以上,3000-4000元之间,2000-3000元之间,2000元以下,salary【5】的计算在input函数中实现。voidgongzhi()------------------------------------------------------------------------实发工资输出的函数{inti;FILE*fp,*fp1;if((fp=fopen("abc.dat","rb"))==NULL)//以读的方式打开文件{printf("cannotopenfile\n");exit(0);}if((fp1=fopen("abcd.dat","rb"))==NULL){printf("cannotopenfile\n");exit(0);}fread(&D,2,1,fp1);printf("ID号码姓名实发工资\n");for(i=0;i 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。使用数组的方法后勾涛如鱼得水,很快可将此试验课题的编译工作完成。于是我们打算以勾涛的程序为模板,以后的修改工作都在他的代码上进行。我两将复习课本的工作完成后选择适合自己的功能模块进行编译。第三天我开头正式对课题编译。首先是简历一个结构体数组,用来存放本体设计到的数据。题目要求的数据有很多歌。考虑到输入数据时的简练便捷,我只选取了职工的ID号码、姓名、基础工资、住房公积金、社保金、实发工资六个数据。考虑到程序的清楚可读性,我打算使用多个调用函数完成各功能的实现。对于输入的职工人数我用全局变量D定义,以便在各个函数调用便利。对于安排我的任务较简洁,很快就完成任务,然后又尝试了其它功能的编译。收获:巩固了基础学问,对指针、结构体、文件等较难内容有了更深的理解,提高了解决问题的力量、沟通沟通的力量和团队合作的力量。尤其是对大程序的分析理解力量有了很大提高。5编程中遇到的困难及解决方法在编写程序的过程中就是对文件的保存存在较大的问题,如在修改员工信息后或删除员工信息后不能有效地保存结构体数组信息。有时候修改员工信息后或删除员工信息后直接扫瞄还是很成功的,但关闭程序后再次运行就不能扫瞄文件中的数据。考虑到可能是文件没有得到保存,于是我找到abc.dat和abcd.dat文件发觉他们都是0字节,断定是在转变员工信息后没有得到保存。于是找到修改函数和删除函数始终没发觉缘由,在多方努力下最终发觉是打开文件的方式不对,我用的是读的方式打开的,这就造成不能修改员工信息,应当利用写的方式打开文件,这样才能保存新的文件信息。6结束语对本次课题设计中勾涛同学、老师赐予的挂念表示深切感谢!7源程序#include#include#includeintD=0;structWorker{intnum;//ID号码charname[20];//姓名intsalary1;//基础工资intsalary2;//职务工资intsalary3;//住房公积金intsalary4;//社保金floatsalary5;}stu[10000];//定义一个足够大的结构体数组voidinput(intn){voidsave(intn);//声明一个保存函数voidnewu();//声明一个菜单函数inti=0;for(i=0;i3500){inta;floatb;a=stu[i].salary1+stu[i].salary2-stu[i].salary3-stu[i].salary4-3500;if(a>1500&&a<4500){b=(float)(a*0.1-105);stu[i].salary5=stu[i].salary1+stu[i].salary2-b;}if(a>9000&&(a<4500||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();//返回菜单}voidinput1(intn){voidsave(intn);voidnewu();inti=0;for(i=D;i3500){inta;floatb;a=stu[i].salary1+stu[i].salary2-stu[i].salary3-stu[i].salary4-3500;if(a>1500&&a<4500){b=(float)(a*0.1-105);stu[i].salary5=stu[i].salary1+stu[i].salary2-b;}if(a>9000&&(a<4500||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();}voidsave(intn)//保存函数(将结构体的数据储存到文件中){FILE*fp,*fp1;//inti;if((fp=fopen("abc.dat","wb"))==NULL){printf("cannotopenfile\n");return;}for(i=0;i录入职工信息<2>扫瞄职工信息\n");printf("<3>添加员工信息<4>查询员工信息\n");printf("<5>删除员工信息<6>员工信息修改\n");printf("<7>员工实发工资<8>员工工资排序\n");printf("<9>员工工资统计<10>返回菜单\n");printf("\n☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");printf("★请您在(1-7)中选择一个数字进行相应的操作★:");scanf("%d",&n);if(n==1){printf("★请确定您本次将要录入职工的数目★:");scanf("%d",&i);}switch(n){case1:input(i);break;case2:view(D);break;case3:tianjia();break;case4:charge();break;case5:delet();break;case6:xiugai();break;case7:gongzhi();break;case8:paixu();break;case9:tongji();break;case10:newu();break;}}voidtianjia(){voidinput1(intn);inti;printf("←请输入添加的人数→;");scanf("%d",&i);input1(i);}voiddelet()//删除函数{intnum,i,n,m;FILE*fp,*fp1;if((fp=fopen("abc.dat","wb"))==NULL)//以写的方式打开文件{printf("cannotopenfile\n");exit(0);}if((fp1=fopen("abcd.dat","wb"))==NULL)//以写的方式打开文件{printf("cannotopenfile\n");exit(0);}fread(&D,sizeof(int),1,fp1);printf("*请输入您想删除的员工ID号*:");//找到要删除员工的ID号码scanf("%d",&num);for(i=0;i
本文档为【《职工工资管理系统设计》实验报告(doc 48页)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
千与千寻
十年从业经验,高级工程师
格式:doc
大小:223KB
软件:Word
页数:47
分类:农业
上传时间:2023-02-17
浏览量:1