📄 statistics.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 + -