职工工作量统计系统源程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#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;
int i=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[],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++; } return 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]; w[i] = s; } if(length>0) w[0].grade =1; for(i=1;i if(w[i].counts==w[i-1].counts)