⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 statistics.c

📁 学生信息查询系统C语言实现 包含的功能有: 1、 系统功能选择菜单:提供了5个功能 A、 按“班级+平均成绩”显示原始数据 B、 输入学号
💻 C
字号:
/*成绩统计 */
 
char class[20];       /*统计的班级名*/
char subject[20];     /*统计的科目名*/
float average;        /*平均分*/
float excelrate;      /*优秀率*/
float passrate;       /*及格率*/
int sum[Maxsize];       /*record the students record's indexes*/
int num;                /*count the numble of students in the same class*/

void statistics()
{
 int ring;
 int i;  /*循环变量*/
 char str1[]={"Maths"},str2[]={"English"},str3[]={"Computer"};
 float data[Maxsize];

 while(1)
      {
       clrscr();

       gotoxy(30,2);
       printf("Subject Statistics");

       for(i=5;i<75;i++)
          {
	   gotoxy(i,3);
           printf("%c",196);
          }

       gotoxy(5,5);
       printf("Please giving the names of class and subject you want to search:");

       gotoxy(5,7);
       printf("For example:you can input class name like this:");
       printf("%s",student[0].Class);
       gotoxy(5,8);
       printf("            and input subject name like this:Maths,English,Computer");
       gotoxy(5,10);
       printf("input class: ");
       gotoxy(wherex()+1,wherey());
       scanf("%s",class);

       num=filter();

       if(num==0)
         {
          gotoxy(5,11);
          printf("You press a wrong class name!");
          getch();
          continue;
         }

       gotoxy(5,13);
       printf("input subject:");
       gotoxy(wherex()+1,wherey());
       scanf("%s",subject);

       if(strcmp(subject,str1)==0)   ring=1;
       else if(strcmp(subject,str2)==0)   ring=2;
       else if(strcmp(subject,str3)==0)   ring=3;

       if(ring!=1&&ring!=2&&ring!=3)
         {
          gotoxy(5,14);
          printf("You press a wrong subject name!");
          getch();
          continue;
         }
       else
           break;
      }

 for(i=0;i<num;i++)
    switch(ring)
          {
	   case 1:data[i]=student[sum[i]].Maths;break;
	   case 2:data[i]=student[sum[i]].English;break;
	   case 3:data[i]=student[sum[i]].Computer;
          }

 /*求平均分*/
 average=count(data,0);

 /*求及格率*/
 passrate=count(data,60);

 /*求优秀率*/
 excelrate=count(data,90);

 /*输出结果*/
 output();
}

/*数据的筛选*/
int filter()
{
 int i;
 num=0;

 for(i=0;i<k-1;i++)
     if(strcmp(class,student[i].Class)==0)
        sum[num++]=i;

 return num;   /*返回同一个班的学生人数*/
}

/*数值的计算*/
float count(float d[],int b)
{
 int i;
 float add=0;  /*累加变量*/
 float ave;    /*计算结果存储变量*/

 if(b==0)   /*求平均分*/
   {
    for(i=0;i<num;i++)
    add=add+d[i];
    ave=add/num;
   }

 if(b!=0)  /*当b=60时求及格率,当b=90时求优秀率*/
   {
    for(i=0;i<num;i++)
       if(d[i]>=b)
	  add=add+1;

    ave=add/num*100;
   }

 return ave;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -