📄 score.c
字号:
#include "Score.h"
#include "ReadData.c"
#include "Menu.c"
void main()
{
Student stu[STUDENT_COUNT];
int menuitem;
int i ;
int kemu[LESSON_COUNT][STUDENT_COUNT];
char studentid[N];
Student temp;
//清屏
clrscr();
//读入学生信息
ReadData(stu, STUDENT_COUNT);
//计算学生总成绩
//Please add code here (1)
for(i=0;i<STUDENT_COUNT;i++)
stu[i].sum=Sum(stu[i].score,LESSON_COUNT);
while(1)
{
//显示功能菜单,并获得选择的菜单项
menuitem = Menu();
switch(menuitem)
{
//按总分排序
case SUM_SORT:
{
//Please add code here (2)
Sort(stu,STUDENT_COUNT,SUM_SORT);
break;
}
//按数学成绩排序
case MATH_SORT:
{
//Please add code here (3)
Sort(stu,STUDENT_COUNT,MATH_SORT);
break;
}
//按英语成绩排序
case ENGLISH_SORT:
{
//Please add code here (4)
Sort(stu,STUDENT_COUNT,ENGLISH_SORT);
break;
}
//按计算机成绩排序
case COMPUTER_SORT:
{
//Please add code here (5)
Sort(stu,STUDENT_COUNT,COMPUTER_SORT);
break;
}
//统计数学成绩不及格人数
case MATH_STATISTICS:
{
//Please add code here (6)
for(i=0;i<STUDENT_COUNT;i++)
kemu[0][i]=stu[i].score[0];
i=Statistics(kemu[0],STUDENT_COUNT);
printf("\n\n\n\n\tResult:\n\n\t Maths: %d %s under line.\n\n",i,i>1?"students":"student");
break;
}
//按英语成绩统计
case ENGLISH_STATISTICS:
{
//Please add code here (7)
for(i=0;i<STUDENT_COUNT;i++)
kemu[1][i]=stu[i].score[1];
i=Statistics(kemu[1],STUDENT_COUNT);
printf("\n\n\n\n\tResult:\n\n\t English: %d %s under line.\n\n",i,i>1?"students":"student");
break;
}
//按计算机成绩统计
case COMPUTER_STATISTICS:
{
//Please add code here (8)
for(i=0;i<STUDENT_COUNT;i++)
kemu[2][i]=stu[i].score[2];
i=Statistics(kemu[2],STUDENT_COUNT);
printf("\n\n\n\n\tResult:\n\n\t Computer: %d %s under line.\n\n",i,i>1?"students":"student");
break;
}
//按学号搜索学生,并显示学生成绩
case SEARCH:
{
//Please add code here (9)
clrscr();
printf("\n\n\n\n Please input the student ID(%s-%s): ",stu[0].id,stu[STUDENT_COUNT-1].id);
scanf("%s",studentid);
i=Search(stu,STUDENT_COUNT,studentid);
if(i==0)
{
printf("\n\n\tNo this student.\n");
break;
}
else
break;
}
}
printf("\n Press AnyKey to Continue... ");
getch();
}
}
/************************************************************************************************/
//Sort function
//功能:排序
//参数:Student stu[]
// int count:要排序的学生数目
// int lessonId:要排序的课程编号
// 数学:MATH_SORT; 英语:ENGLISH_SORT;计算机:COMPUTER_SORT;总分:SUM_SORT
/************************************************************************************************/
void Sort(Student stu[] , int count , int lessonId)
{
//Please add code here (10)
int i,j;
char *xueke;
Student temp;
lessonId--;
if(lessonId==-1)
for(i=count-1;i>0;i--)
for(j=0;j<=i;j++)
if(stu[j].sum<stu[j+1].sum)
{
{
strcpy(temp.id,stu[j].id);
strcpy(stu[j].id,stu[j+1].id);
strcpy(stu[j+1].id,temp.id);
}
{
strcpy(temp.name,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,temp.name);
}
{
temp.sum=stu[j].sum;
stu[j].sum=stu[j+1].sum;
stu[j+1].sum=temp.sum;
}
}
for(i=count-1;i>0;i--)
for(j=0;j<=i;j++)
if(stu[j].score[lessonId]<stu[j+1].score[lessonId])
{
{
strcpy(temp.id,stu[j].id);
strcpy(stu[j].id,stu[j+1].id);
strcpy(stu[j+1].id,temp.id);
}
{
strcpy(temp.name,stu[j].name);
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,temp.name);
}
{
temp.score[lessonId]=stu[j].score[lessonId];
stu[j].score[lessonId]=stu[j+1].score[lessonId];
stu[j+1].score[lessonId]=temp.score[lessonId];
}
}
xueke=lessonId+1==SUM_SORT?"Sum":lessonId==MATH_SORT?"Maths":lessonId==ENGLISH_SORT?"English":"Computer";
clrscr();
for(j=0;j<count;j=j+20)
{
printf(" Sort by %s:\n",xueke);
printf("\t NO. studentID name %s\n\n",xueke);
for(i=j;i<j+20;i++)
{
if(i==count)
break;
else if(lessonId==-1)
printf("\t%3d %9s %10s %d\n",i+1,stu[i].id,stu[i].name,stu[i].sum);
else
printf("\t%3d %9s %10s %d\n",i+1,stu[i].id,stu[i].name,stu[i].score[lessonId]);
}
if(i==count)
break;
else
{
printf("\n Next page: press any key.");
getch();
clrscr();
}
}
}
/************************************************************************************************/
//功能:按学号搜索学生
//参数:Student stu[]
// int count:学生数目
// int lessonId:要搜索的学号
// Student * student: 搜索到的学生
//返回值:如果搜索到的学生返回1,否则返回0
/************************************************************************************************/
int Search(Student stu[],int count,char studentId[])//, Student * student)
{
//Please add code here (11)
int i;
for(i=0;i<count;i++)
if(strcmp(stu[i].id,studentId)==0)
{
ShowInfo(stu,i);
break;
}
if(i==count)
return 0;
else
return 1;
}
/************************************************************************************************/
//功能:计算所有课程的总分
//参数:int score[]
// int count:学生数目
//返回值:总分
/************************************************************************************************/
int Sum(int score[] , int n)//count)
{
//Please add code here (12)
int i,sum=0;
for(i=0;i<n;i++)
sum+=score[i];
return sum;
}
/************************************************************************************************/
//功能:统计不及格人数
//参数:int score[]:学生所有的课程成绩
// int n:课程数目
//返回值:不及格人数
/************************************************************************************************/
int Statistics(int score[] , int count)//n)
{
//Please add code here (13)
int i,n=0;
for(i=0;i<count;i++)
if(score[i]<60)
n++;
clrscr();
return n;
}
/************************************************************************************************/
//功能:显示学生信息
//参数:Student stu[]
// int count:学生数目
//返回值:无
/************************************************************************************************/
void ShowInfo(Student stu[] , int i)//count)
{
//Please add code here (14)
printf("\n\n\n\n\n\tstudentID name maths English computer sum\n\n");
printf("\t%9s %s %d %d %d %d\n",stu[i].id,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -