C语言职工工作量统计系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言课程设计》报告题目:职工工作量统计系统
班级:
学号:
姓名:
指导老师:
成绩:
目录
1.课程设计的目的和意义 (1)
2.总体设计思路(功能模块图) (2)
3.详细设计 (3)
4.课程设计总体会 (15)
5.教师评语 (15)
一、课程设计目的和意义
通过课程设计的实践环节的教学,可以加深对课堂所学基础知识的掌握与理解,提高所学内容的综合运用能力;同时也可以通过查询相关资料,培养学生自学能力、接受新知识的能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,并可培养学生实际上机调试程序的能力。“理论与实践”相结合,使学生得到很好的锻炼,为以后学习、工作打下坚实的基础。
二、总体设计思路(功能模块图)
三、详细设计
1、模块功能介绍一.输入职工基本信息
二.工作量输入并累加
三.按工作量从大到小排序并标上名次
四.按职工号删除职工信息
2、程序清单
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define FILENAME "worker.bin"
#define N 20
struct worker
{
int number; /*工号*/
int counts; /*数量*/
int grade; /*等级*/
};
/*******************************************************
定义
*******************************************************/
void xinxi()
{
printf("\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
printf("+ 职工工作量统计系统+\n");
printf("+ +\n");
printf("+ 1. 职工基本信息输入+\n");
printf("+ +\n");
printf("+ 2. 工作量输入+\n");
printf("+ +\n");
printf("+ 3. 按工作量排序+\n");
printf("+ +\n");
printf("+ 4. 按职工工号进行信息删除+\n");
printf("+ +\n");
printf("+ 5. 结束程序+\n");
printf("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n" );
}
/*******************************************************
显示菜单
*******************************************************/
int readFromFile(struct worker w[])
{
FILE *fp=NULL;
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[],int length)
{
int i=length;
while(i { printf("第%d个职工\n",i); printf("\n"); printf("请你输入工号(以职工号为0结束):\n");/*输入工号*/ scanf("%d",&w[i].number); if(w[i].number==0) break; printf("\n"); printf("\n"); printf("请你输入数量:\n");/*输入数量*/ scanf("%d",&w[i].counts); printf("\n"); i++; } } /******************************************************* 功能:输入职工基本信息 *******************************************************/ void input(struct worker w[],int length) { int i=1; int number,counts; printf("请输入工号:"); scanf("%d",&number); while(number!=0) { printf("请输入完成数量:\n"); scanf("%d",&counts); for(i=0;i if(w[i].number==number) { w[i].counts+=counts; break; } if(i>=length) printf("工号不存在:\n"); printf("请输入工号:"); scanf("%d",&number); } } /******************************************************* 功能:工作量输入并累加 *******************************************************/ void sortCounts(struct worker w[],int length) { int i=0,j=0,k=0; struct worker s; for(i=0;i { k=i; for(j=i+1;j if(w[j].counts>w[k].counts) k=j; /* 交换w[i] and w[k] */ s = w[k]; w[k] =w[i];