C语言职工工作量统计系统方案_第1页
C语言职工工作量统计系统方案_第2页
C语言职工工作量统计系统方案_第3页
免费预览已结束,剩余16页可下载查看

下载本文档

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

文档简介

1、C语言课程设计报告题目:职工工作量统计系统班级:学号:姓名:指导老师:成绩:目录1 课程设计的目的和意义12.总体设计思路(功能模块图)23详细设计34课程设计总体会155教师评语15亠、课程设计目的和意义通过课程设计的实践环节的教学, 可以加深对课堂所学 基础知识的掌握与理解,提高所学容的综合运用能力;同时 也可以通过查询相关资料,培养学生自学能力、接受新知识 的能力,提高学习兴趣;增强学生程序设计能力,掌握编程 技巧,并可培养学生实际上机调试程序的能力。“理论与实 践”相结合,使学生得到很好的锻炼,为以后学习、工作打 下坚实的基础。1、总体设计思路(功能模块图)三、详细设计1、模块功能介绍

2、一.输入职工基本信息开始输入工号输入工作量结束.工作量输入并累加.按工作量从大到小排序并标上名次开始通过选择或冒泡排序,将职工按工作量从大到小排序,并 判断第I名职工的工作量是否与第1-1名职工工作量相等, 若相等,将第I-1名职工的名次附值给第I名职工,若不 相等,则把地I-1名职工的名次加1附值给I。依次给所 有职工排名四.按职工号删除职工信息开始输入欲删除职工号幅I 不存在判断工号是否存在 存在确认删除将删掉信息的职工之后的职工 依次向前附值结束2、程序清单#i nclude "stdio.h"#i nclude "stri ng.h"#inclu

3、de "stdlib.h"#defi ne FILENAME "worker.bi n"#defi ne N 20struct workerint number; /*工号 */int counts; /*数量 */in t grade;/*等级 */ ;/*定义*void xi nxi() prin tf("n+n");printf("+职工工作量统计系统+n");prin tf("+n");printf("+1.职工基本信息输入+n");prin tf("+n&

4、quot;);prin tf("+2. 工作量输入+n");prin tf("+n");printf("+3. 按工作量排序+n");prin tf("+n");printf("+4.按职工工号进行信息删除+n");prin tf("+n");5. 结束程序prin tf("+ +n");prin tf("+n");/*显示菜单*/int readFromFile(struct worker w)FILE *fp=NULL;int i=

5、0;fp=fopen(FILENAME,"rb"); /* 打开文件 */if(fp!=NULL)while(!feof(fp) /*从文件中读入学生*/if(i>=N)break;if(fread(w+i,sizeof(worker),1,fp)=1)i+;fclose(fp);return i;/*信息显示到屏幕*/int f(struct worker w,i nt le ngth)in t i=le ngth;while(i<N)printf("第(个职工 n",i);prin tf("n");输入工号*/prin

6、tf(”请你输入工号(以职工号为0结束):n");/*scan f("%d",&wi. number);if(wi. nu mber=0)break;prin tf("n");prin tf("n");printf("请你输入数量:n");/* 输入数量*/scan f("%d",&wi.cou nts);prin tf("n");i+;return i;/* 功能:输入职工基本信息*/void in put(struct worker w,i nt

7、 len gth)int i=1;int nu mber,co un ts; printf("请输入工号:");sca nf("%d",&nu mber);while( nu mber!=0)printf("请输入完成数量:n");sca nf("%d",&cou nts);for(i=0;i<le ngth;i+) if(wi. nu mber=nu mber) wi.co un ts+=co un ts;break;if(i>=le ngth)printf("工号不存在:n

8、");printf("请输入工号:");sca nf("%d",&nu mber);/*功能:工作量输入并累加*/void sortCo un ts(struct worker w,i nt len gth)int i=O,j=O,k=O;struct worker s;for(i=0;i<le ngth;i+)k=i;for(j=i+1;j<le ngth;j+)if(wj.co un ts>wk.co unts) k=j;/*交换 wi a nd wk */s = wk;wk =wi;wi = s;if(le ng

9、th>0)w0.grade =1;for(i=1;i<le ngth;i+)if(wi.co un ts=wi-1.co un ts)wi.grade=wi-1.grade;elsewi.grade=wi-1.grade+1;/*按工作量从大到小排序并标上名次*/void sortNumber(struct worker w,i nt len gth)int i=0;int grade,co unt;if(le ngth>0) while(i<le ngth)coun t=0;grade=wi.grade;printf(" 名次:%d ", grad

10、e);printf(" 工作量:%d ",wi.counts);prin tf("%s"," 工号:");while(i<le ngth)if(grade=wi.grade)printf("%d ”,wi.number); coun t+;elsebreak;i+;printf("人数:%dn",count);elseprintf("职工数据不存在!n");/*输出名次、同一名次的职工人数及他们的工号,*/int delet(struct worker w,i nt len gt

11、h,i nt stuNum)int i,j;char choice;for(i=0;i<le ngth;i+) if(stuNum=wi. nu mber)prin tf("%s","欲删除职工号为:");prin tf("%dn",wi. number); break;if(i<le ngth)prin tf("你确实要删除这个职工吗 ?(Y/N)");sca nf("%c",&choice); if(choice='Y'|choice='y'

12、;)for(j=i;j<le ngth;j+)wj=wj+1;len gth-;printf(" 删除成功!n"); elseprin tf("n指定的职工不存在!n");return len gth;/*按职工号删除职工信息*/void writeToFile(struct worker w,i nt len gth)FILE *fp=NULL;int i=0;fp=fope n(FILENAME,"wb");if(fp=NULL)prin tf("打开文件出错!n");exit(0);for(i=0;i&

13、lt;le ngth;i+) fwrite(w+i,sizeof(worker),1,fp);fclose(fp);/*结构体数组中的职工信息输出到文件*/void mai n ()int choice;struct worker wN;int NUM;char stuName100;int stuNum;in t le ngth=O;len gth=readFromFile(w);读入do xin xi();scan f("%d",&choice);switch(choice) case 1:len gth=f(w,le ngth);break;case 2:in

14、 put(w,le ngth);break;case 3:sortCo un ts(w,le ngth);sortNumber(w,le ngth);break;case 4:prin tf("请输入欲删除的职工号");scan f("%d", &stuNum);len gth=delet(w,le ngth,stuNum);break;case 5:writeToFile(w,le ngth);/保存printf("程序使用以结束n");exit(0);default:n");printf("输入有错误请

15、重新输入while(1);3、系统运行结果显示菜单ct *C; Docments mid Settints黄験、桌面、耳(C+鼠。创夭中文蒂简绿色+ < + > + + +1-II- + <- + + + + + + + + + + + + + + + + +4-F + -I-4 + + + + + +4*- + + + + + + + +-F+职工工作星统计系址+1.职工基本信息输人羅工佯量输入3 -按工作量排序4. 按职工工号进行信息別除5. 结來程序职工信息输入XVouuacnt s and Sell呆014*4个購工情你输人工吕沙MRT号为诞吉束:5请你输入数睪;14

16、第5个职工请佩输人工号卩!职工号为喘束:6请饥输入数量;14希个职工请擁输人工号(以职工号为琏吉束:工作量输入按工作量排序K2:1熱:!;数人数数数人勺人人人6 4 3 2 1§3SS_工工工工工5 4 3 2 011111量量星星* h,lEEE Aup.nuu-r次次次次次按工号删除信息e " *C; Bociment s and Sett ings黄皺*+ + +肛号欲删除职工号为:5 职工吗删際成功!+结束程序+ <-+4+ 4* + + + + + + *+ # + > +- + *-+-+- + + < + + + + *+ * + #" + # +1I-4-+4 +4*职工工作量统计系统*+1.职工基本信息输人+f2 -工作量输入:+3技工作量排序*:4.技职工工号逬行信息捌愫::5纟謀程序:+ f-+-m-t+*"+*+>+*+4+ +f+>+*-+*+>+ +曜序使用以结朿tPi*ess ansi k牡y to cont inu&四、课程设计总结体会经过

温馨提示

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

评论

0/150

提交评论