C语言职工工作量统计系统_第1页
C语言职工工作量统计系统_第2页
C语言职工工作量统计系统_第3页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

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

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

3、"stdlib.h"#define "worker.bin"#define N 20struct workerint number;/* 工号 */int counts;/* 数量 */int grade;/* 等级 */;/* 定义* void xinxi()printf("n+n");printf("+职工工作量统计系统+n");printf("+n");printf("+1. 职工基本信息输入+n");printf("+n");printf(&quo

4、t;+2. 工作量输入+n");printf("+n");printf("+3. 按工作量排序+n");printf("+n");printf("+4. 按职工工号进行信息删除+n");printf("+n");printf("+5. 结束程序+n");printf("+n" );/*显示菜单*/int readFrom worker w)FILE *fp=NULL; int i=0;fp=fopen(,"rb"); /* 打

5、开文件 */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,int length)int i=length;while(i<N)printf(” 第 %d个职工 n”,i);printf("n");printf(" 请你输入工号 (以职工号为 0结束 ):n");/* 输入工号 */scanf(

6、"%d",&wi.number);if(wi.number=0)break;printf("n");printf("n");printf(" 请你输入数量 :n");/* 输入数量 */scanf("%d",&wi.counts);printf("n");i+;return i; /*功能 :输入职工基本信息*/void input(struct worker w,int length) int i=1;int number,counts; printf(&q

7、uot; 请输入工号 :"); scanf("%d",&number); while(number!=0)printf(" 请输入完成数量 :n");scanf("%d",&counts);for(i=0;i<length;i+) if(wi.number=number) wi.counts+=counts;break;if(i>=length)printf(" 工号不存在 :n");printf(" 请输入工号 :");scanf("%d&quo

8、t;,&number);/*功能 :工作量输入并累加*/void sortCounts(struct worker w,int length)int i=0,j=0,k=0;struct worker s;for(i=0;i<length;i+)k=i;for(j=i+1;j<length;j+)if(wj.counts>wk.counts) k=j;/* 交换 wi and wk */s = wk;wk =wi;wi = s;if(length>0)w0.grade =1;for(i=1;i<length;i+)if(wi.counts=wi-1.cou

9、nts) wi.grade=wi-1.grade;elsewi.grade=wi-1.grade+1;/* 按工作量从大到小排序并标上名次 */ void sortNumber(struct worker w,int length) int i=0;int grade,count; if(length>0) while(i<length) count=0; grade=wi.grade;printf(” 名次:d ", grade);printf(" 工作量 :%d ",wi.counts); printf("%s","

10、工号 :");while(i<length)if(grade=wi.grade)printf("%d ",wi.number);count+;else break;i+;printf(" 人数 :%dn",count);elseprintf(" 职工数据不存在 !n");/* 输出名次、同一名次的职工人数及他们的工号,姓名 */ / int delet(struct worker w,int length,int stuNum)int i,j;char choice; for(i=0;i<length;i+)if

11、(stuNum=wi.number) printf("%s"," 欲删除职工号为: "); printf("%dn",wi.number); break; if(i<length)printf(" 你确实要删除这个职工吗 ?(Y/N)"); scanf("%c",&choice);if(choice='Y'|choice='y') for(j=i;j<length;j+) wj=wj+1; length-;printf(" 删除成功

12、!n");elseprintf("n 指定的职工不存在 !n");return length;/* 按职工号删除职工信息*/void writeTo worker w,int length)FILE *fp=NULL;int i=0;fp=fopen(,"wb");if(fp=NULL)printf(" 打开文件出错! n");exit(0);for(i=0;i<length;i+)fwrite(w+i,sizeof(worker),1,fp);fclose(fp); /* 结构体数组中的职工信息输出到文件*/void

13、 main ()int choice;struct worker wN;int NUM;char stuName100;int stuNum;int length=0;length=readFromFile(w);/ 读入do xinxi();scanf("%d",&choice);switch(choice) case 1: length=f(w,length);break;case 2:input(w,length);break;case 3: sortCounts(w,length); sortNumber(w,length); break;case 4:pr

14、intf(" 请输入欲删除的职工号 ");scan f("%d", &stuNum);len gth=delet(w,le ngth,stuNum); break;case 5:writeTo);/ 保存printf(”程序使用以结束n"); exit(0);default:printf("输入有错误请重新输入:n");while(1);3、系统运行结果显示菜单i DocoBents mid SettiiifsX黄毅.桌面YWC+6. t)创天中文稱筒绿色职工信息输入* - DuUUKBIlt3 mu Sellin&

15、#163;2E黄載'桌请你输t数豊H第4个星工请你輸人工号C臥职工号为臨車:5胡佩输入数量:14第5个职工冶你输入工哥以职工号为阵和:b胡输入数量:14鈿个崩工请你输人工耳以职工号为礎吉束 :工作量输入输入二号:.*C; BuuiLAent » and Set桌面VC+fi. 0&1X中职丁丁乍量疥计系统一职丁基本信息输入趴工作量输入3 -按工作量挣序4-按职工工号进行信息删除E-绪東程序按工作量排序按工号删除信息你确渎要删除这个职工叫?讀卄结束程序G,< C: I>ocuAent s and SettCi Ddc;ilkcxlLjs: euiLil fJ

16、ul I英釀* 桌面 “dE.U 创天叩文 I® 简绿色版耆*#*+*十*+*卡*怙*卄耆廿+*+*+*件卄*¥*#*+#+ 十职工工作量统计系统+1- 职工基本信恳输入2- 工作量输入3 -按工作量菲序4-技职工工号逬行信咼删除5 -结東桂斥程序使用必吉車四、课程设Pi*ess an51to camt inus计总结体会经过一个星期的上机实践学习,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不 断的上机操作才能更好地学习它,这段时间里,我又学到 了更多C知识,如:对象数组,string类,文件流等,同时 我也被提醒以后办事的时候要认真,仔细,考虑周全。,这一点会让我终生受益。通过实践的学习,我认到学好计 算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践

温馨提示

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

评论

0/150

提交评论