计算机程序设计基础C语言课程设计
二.工作量输入并累加
开始 输入工号 是 判断工号是否为零 否 输入完成量 否 判断输入工号是否存在 是 将新完成数量累加 结束
三.按工作量从大到小排序并标上名次
4
计算机程序设计基础C语言课程设计
开始 通过选择或冒泡排序,将职工按工作量从大到小排序,并判断第I名职工的工作量是否与第I-1名职工工作量相等,若相等,将第I-1名职工的名次附值给第I名职工,若不相等,则把地I-1名职工的名次加1附值给I。依次给所有职工排名 结束 四.按职工号删除职工信息
开始 输入欲删除职工号 不存在 判断工号是否存在 存在 确认删除 将删掉信息的职工之后的职工依次向前附值 结束
5
计算机程序设计基础C语言课程设计
2、程序清单
#include \#include \#include \
#define FILENAME \#define N 20 struct worker {
int number; /*工号*/ int counts; /*数量*/ int grade; /*等级*/ };
/******************************************************* 定义
*******************************************************/ void xinxi() {
printf(\ 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(\); }
/******************************************************* 显示菜单
*******************************************************/ int readFromFile(struct worker w[]) { FILE *fp=NULL;
6
计算机程序设计基础C语言课程设计
int i=0; fp=fopen(FILENAME,\ /*打开文件*/ 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(\请你输入数量:\\n\输入数量*/ scanf(\ printf(\ i++; } 7 计算机程序设计基础C语言课程设计 return i; } /******************************************************* 功能:输入职工基本信息 *******************************************************/ void input(struct worker w[],int length) { int i=1; int number,counts; printf(\请输入工号:\ scanf(\ while(number!=0) { printf(\请输入完成数量:\\n\ scanf(\ for(i=0;i /******************************************************* 功能:工作量输入并累加 *******************************************************/ void sortCounts(struct worker w[],int length) { int i=0,j=0,k=0; struct worker s; for(i=0;i /* 交换 w[i] and w[k] */ s = w[k]; w[k] =w[i]; 8