职工工资标准管理系统报告_第1页
职工工资标准管理系统报告_第2页
职工工资标准管理系统报告_第3页
职工工资标准管理系统报告_第4页
职工工资标准管理系统报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息技术和工程学院课程设计报告课程名称高级语言程序设计设计题目职职员资管理系统专业班级14级计本一班小组组员张亢元仝亚超王佩指导老师温娟娟成绩06月17日目录TOC\o"1-2"\h\z\u1需求分析 11.1问题描述 11.2功效描述 12系统设计 22.1总体设计 22.2具体设计 33系统测试 53.1输入功效测试 53.2显示功效测试 63.3修改功效测试 73.4查找功效测试 83.5删除功效测试 93.6统计功效测试 103.7排序功效测试 113.8打印功效测试 124总结 135调试分析 13参考文件 13附录 141需求分析1.1问题描述设计一个职职员资管理系统,实现功效以下:(1)输入统计:将每一个职员姓名、ID号、基础工资、职务工资、岗位津贴、医疗保险、公积金数据作为一个结构体。(2)显示统计:依据职员姓名或ID号显示一个或多个职员各项工资。(3)修改统计:对任何一个结构体中组员根据要求进行修改,并显示修改前后结构体中全部组员信息。(4)查找统计:查找满足条件职员信息,要求显示全部职员组员信息。(5)删除统计:删除满足条件职员信息。(6)统计:a.计算各项工资总工资及平均工资。b.统计符合指定条件(如职职员资前三项之和在3000元以上、3000~元、~1000元以内)职员人数及占总职员人数百分比。c.按职员总工资进行排序,可从小到大,也可从大到小。d.按字符表格形式打印全部职职员资信息表及平均工资(包含各项总平均工资)。1.2功效描述职职员资管理:经过1-5能够选择对职员工资信息编辑:添加查找删除等。职员工资输出:经过6-8能够将职员工资按不一样次序输出。2系统设计2.1总体设计structworker定义了一个结构体类型职员信息。intinput(structworkerwork[],inta)//输入函数,输入职员信息voidxianshi(structworkerwork[],inta)//显示,按要求显示需要显示职员信息voidxiugai(structworkerwork[],inta)//修改函数,修改需要修改职员信息voidsearch(structworkerwork[],inta)//查找函数,查找符合条件职员,并输出其信息voiddele(structworkerwork[],inta)//删除函数,删除满足条件职员信息voidtongji(structworkerwork[],inta)//统计函数,统计职员信息voidpaixu(structworkerwork[],inta)//排序函数,根据要求将职员信息排序voiddayin(structworkerwork[],inta)//打印,将全部职员信息输出2.2具体设计依据题目需要,定义职员信息结构体。职员信息结构体包含学生姓名、ID号、基础工资、职务工资、岗位津贴、医疗保险、公积金。查询职员信息功效:能够经过ID号和姓名查询。经过姓名查询话是用strcmp函数比较姓名是否相等。编辑职员信息功效:首先判定是否有该职员信息,假如有话再进行编辑,不然话退出。删除职员功效:经过ID号找到职员,进行删除。系统主窗体系统主窗体系统主窗体输入职员确定?NY输入职员信息操作成功显示信息经过姓名查询存在?NY操作成功经过ID查询存在?N操作成功Y修改信息输入职员ID操作成功筛选信息输入筛选信息操作成功删除信息输入删除条件操作成功统计信息操作成功排序信息1、总工资从小到大2、总工资从小到大操作成功操作成功打印信息操作成功3系统测试3.1输入功效测试输入“1”显示“系统已经有职员工资统计,再次输入将覆盖原统计,要继续吗?(请输入'y'或'n'):”接着输入“y”显示输入职员人数输入职员信息以下:01张望1286794198109135203402李明118562813594114174003王小民895438986473129404张效章1350868210116150216205彭山74539884616810983.2显示功效测试3.3修改功效测试3.4查找功效测试3.5删除功效测试3.6统计功效测试3.7排序功效测试3.8打印功效测试4总结此次课程设计名称是职员工资管理系统,因为我们组能力有限,加之近期课程任务比较紧迫,所以该系统还是有很多不完善地方。系统完全实现功效有输入统计、显示统计、修改统计、查找统计、删除统计、统计等。尽管还是有很多不完善之处,总来说还是收获很大,因为经过这次团体合作,我们组首先对c只是有了很深了解,就是程序分析和设计也有了很深体会。我们将会在以后学习和工作中发扬团体精神,而且会认真虚心向有经验大家学习交流。期望我们以后能再接再厉,做出愈加优异id程序。5调试分析在此次课程设计实践过程中出现了很多问题,这些问题对我来说一时间难以处理。在程序运行过程中出现问题以下:在信息输入时,未能依据需求确定职员人数,造成以后输出出现问题。处理方案:在设计子函数时利用了值传输来确定职员总人数在统计函数中不能正确输出百分比值,输出全是“0%”,原因是:忽略了整形变量和整形变量相除得到结果是整形结果。处理方案:将变量转化为浮点型变量。修改职员信息时不能保留,原因:修改时保留地址不是原来变量地址,修改方案:将修改地址改回到原来地址。此程序仍存在问题:实施完每一个任务后,要按两次回车键才能继续循环。参考文件1《C语言课程设计案例精编》郭翠英

2《C程序设计教程》孙淑霞

代世雄著3《C程序设计语言》.北京:机械工业出版社.杨涛4《C语言程序设计教程[M]》.第3版.高等教育出版社,谭浩强,张基温.附录#include<stdio.h>#include<string.h>#defineN100structworker{ intID; charname[20]; floatbase;//base基础工资 floatrate;//rate职务工资 floatsubsidy;//subsidy岗位津贴 floatmedicare;//medicare医疗保险 floatfund;//fund公积金 floattotal;//tootal总工资};intmain(){ intinput(structworkerwork[],inta);//输入函数,输入职员信息 voidxianshi(structworkerwork[],inta);//显示,按要求显示需要显示职员信息 voidxiugai(structworkerwork[],inta);//修改函数,修改需要修改职员信息 voidsearch(structworkerwork[],inta);//查找函数,查找符合条件职员,并输出其信息 intdele(structworkerwork[],inta);//删除函数,删除满足条件职员信息 voidtongji(structworkerwork[],inta);//统计函数,统计职员信息 voidpaixu(structworkerwork[],inta);//排序函数,根据要求将职员信息排序 voiddayin(structworkerwork[],inta);//打印,将全部职员信息输出 structworkerwork[N],*p=work; inta=N,select; /*printf("请输入职员人数:"); scanf("%d",&a);*/ printf("您是首次登陆本系统,请先输入职员信息:\n"); a=input(p,a); do {//打印菜单选项 printf("\n**************职职员资管理系统**************\n"); printf("\n1.输入职员信息\n"); printf("\n2.经过姓名显示职员信息\n"); printf("\n3.修改职员信息\n"); printf("\n4.查找信息\n"); printf("\n5.删除信息\n"); printf("\n6.统计信息\n"); printf("\n7.按总工资排序\n"); printf("\n8.打印全部职员信息\n"); printf("\n0.退出系统\n"); printf("\n********************************************\n"); printf("请输入您选择操作:"); scanf("%d",&select); switch(select) { case1: printf("系统已经有职员工资统计,再次输入将覆盖原统计,要继续吗?(请输入'y'或'n'):"); getchar(); if((getchar()=='y')||(getchar()=='Y')) a=input(p,a); break; case2: xianshi(p,a); break; case3: xiugai(p,a); break; case4: search(p,a); break; case5: a=dele(p,a); break; case6: tongji(p,a); break; case7: paixu(p,a); break; case8: dayin(p,a); break; case0: printf("要继续操作吗?(请输入'y'或'n'):"); } getchar(); if((getchar()=='y')||(getchar()=='Y')) break; } while(1); printf("职职员资管理系统此次运行结束!\n"); return0;}//输入函数,输入职员信息intinput(structworkerwork[],inta){ inti; printf("请输入职员人数:\n"); scanf("%d",&a); printf("输入格式为:\nID号,姓名\n基础工资,职务工资,岗位津贴,医疗保险,公积金\n"); for(i=0;i<a;i++) { scanf("%d,%s",&work[i].ID,work[i].name); scanf("%f,%f,%f,%f,%f",&work[i].base,&work[i].rate,&work[i].subsidy,&work[i].medicare,&work[i].fund); } returna;}//显示,按要求显示需要显示职员信息voidxianshi(structworkerwork[],inta){ inti,select,t; char*next,r[20]; printf("\n1.按姓名查找\n"); printf("\n2.按ID查找\n"); scanf("%d",&select); switch(select) { case1: printf("请输入要显示姓名:\n"); scanf("%s",r); next=r; printf("ID号姓名基础工资职务工资岗位津贴医疗保险公积金\n"); for(i=0;i<a;i++) if(strcmp(next,work[i].name)==0) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); break; case2: printf("请输入要查询ID:\n"); scanf("%d",&t); printf("ID号姓名基础工资职务工资岗位津贴医疗保险公积金\n"); for(i=0;i<a;i++) if(t==work[i].ID) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); break; }}//修改函数,修改需要修改职员信息voidxiugai(structworkerwork[],inta){ inti,ID,t; printf("请输入要修改职员ID:\n"); scanf("%d",&ID); printf("修改前职员信息:\n"); printf("ID号姓名基础工资职务工资岗位津贴医疗保险公积金\n"); for(i=0;i<a;i++) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); for(i=0;i<a;i++) if(ID==work[i].ID) t=i; printf("请输入该职员信息:"); printf("输入格式为:\nID号,姓名\n基础工资,职务工资,岗位津贴,医疗保险,公积金\n"); scanf("%d,%s",&work[t].ID,work[t].name); scanf("%f,%f,%f,%f,%f",&work[t].base,&work[t].rate,&work[t].subsidy,&work[t].medicare,&work[t].fund); printf("修改后职员信息:\n"); printf("ID号姓名基础工资职务工资岗位津贴医疗保险公积金\n"); for(i=0;i<a;i++) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund);}//查找函数,查找符合条件职员,并输出其信息voidsearch(structworkerwork[],inta){ inti; floatn; printf("请输入筛选条件总工资大于多少"); scanf("%f",&n); printf("ID号姓名基础工资职务工资岗位津贴医疗保险公积金\n"); for(i=0;i<a;i++) { work[i].total=work[i].base+work[i].rate+work[i].subsidy+work[i].medicare+work[i].fund; if(work[i].total>n) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); }}//删除函数,删除满足条件职员信息intdele(structworkerwork[],inta){ inti,n; printf("请输入筛选条件总工资小于多少"); scanf("%d",&n); for(i=0;i<a;i++) { work[i].total=work[i].base+work[i].rate+work[i].subsidy+work[i].medicare+work[i].fund; if(work[i].total<n) { printf("ID号姓名基础工资职务工资岗位津贴医疗保险公积金\n"); printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); printf("您确定要删除该职员信息吗?(请输入'y'或'n'):"); getchar(); if((getchar()=='y')||(getchar()=='Y')) { work[i]=work[i+1]; i--; a--; } else break; } } returna;}//统计函数,统计职员信息voidtongji(structworkerwork[],inta){ inti,b=0,c=0,d=0; floatadd[5]; for(i=0;i<a;i++) { add[i]=work[i].base+work[i].rate+work[i].subsidy; if(add[i]>3000) b++; if(add[i]<3000&&add[i]>) c++; if(add[i]<&&add[i]>1000) d++; } b=b*100/a; c=c*100/a; d=d*100/a; printf("前三项工资之和在3000元以上占%d%%\n",b); printf("前三项工资之和在3000~占%d%%\n",c); printf("前三项工资之和在~1000占%d%%\n",d);}//排序函数,根据要求将职员信息排序voidpaixu(structworkerwork[],inta){ inti,j,select; structworkertemp; printf("\n1.按从小到大排\n"); printf("\n2.按从大到小排\n"); scanf("%d",&select); switch(select) { case1: /*for(i=0;i<a;i++) work[i].total=work[i].base+work[i].rate+work[i].subsidy+work[i].medicare+work[i].fund;*/ for(j=0;j<a;j++) for(i=0;i<a-j;i++) if(work[i].total>work[i+1].total) { temp=work[i]; work[i]=work[i+1]; work[i+1]=temp; } printf("ID号姓名基础工资职务工资岗位津贴医疗保险公积金\n"); for(i=0;i<a;i++) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论