学生成绩计算修订

来源:互联网 发布:新浪博客发博文软件 编辑:程序博客网 时间:2024/04/29 19:18

#include "stdafx.h"
#include <io.h>
#include <stdlib.h>

struct student{
 int num;
 int score;
};
int sign[47];
struct student stus[47];
int stucount=47;
double sum( ){
 double s=0;
 for(int i=0;i<stucount;i++)
 {
  s=s+stus[i].score;
 }
 s=s/(stucount*1.0);
 return s;

}
int max(){
 int max_num=stus[0].score,z=0;
 for(int i=1;i<stucount;i++)
  if(max_num<stus[i].score)
   max_num=stus[i].score;
 for(int i=0;i<stucount;i++)
  if(max_num==stus[i].score)
   {sign[z]=i;
        z++;}
 return z;
}
int min(){
 int min_num=stus[0].score,z=0;
 for(int i=1;i<stucount;i++)
  if(min_num>stus[i].score)
   min_num=stus[i].score;
 for(int i=0;i<stucount;i++)
  if(min_num==stus[i].score)
   {sign[z]=i;
 z++;}
 return z;
}
int fail(){
 int z=0;
 for(int i=0;i<stucount;i++)
 if(stus[i].score<60)
 {
  sign[z]=i;
  z++;
 }
  return z;
}
void init(){
 FILE *datafile=fopen("D:\\Book1.csv","r");
 if(NULL==datafile){
  printf("nofile\n");
  return;
 }
 for(int i=0;i<stucount;++i){
  fscanf(datafile,"%ld,%d\n",&stus[i].num,&stus[i].score);
 }
 fclose(datafile);
}
void info(){
 printf("**********************\n");
 printf("*                    *\n");
 printf("*  学生成绩管理系统  *\n");
 printf("*                    *\n");
 printf("**********************\n");
 printf("输入0退出;输入1求最高分,输入2求最低分,输入3求平均分,输入4求不及格人员\n");
}
int _tmain(int argc, _TCHAR* argv[])
{
 init();
 int op,max_num,min_num,fail_num;
 double s;
 do{
  info();
  scanf("%d",&op);
  switch(op){
  case 1:
   max_num=max();
   for(int i=0;i<max_num;i++)
     printf("%ld %d\n",stus[sign[i]].num,stus[sign[i]].score);
   break;
  case 2:
   min_num=min();
   for(int i=0;i<min_num;i++)
     printf("%ld %d\n",stus[sign[i]].num,stus[sign[i]].score);
   break;
  case 3:
   {
   s=sum();
   printf("%lf\n",s);}
   break;
  case 4:
   fail_num=fail();
   for(int i=0;i<fail_num;i++)
    printf("%ld %d\n",stus[sign[i]].num,stus[sign[i]].score);
   break;
  }
  system("pause");
  system("cls");  
 }
 while(op!=0);
 return 0;
}

0 0