
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct _Person
{
int num;//评分学生数量
int sum;//总评分
char course[20];//课程
char name[20];//教师名
char style[20];//等级
}Person;
void Print_Person_Info(Person arr[],int n)
{
int i;
printf("%-10s%-10s%-10s%-10s\n","课程名","教师名","总分","名次");
for(i=0;i<n;i++)
{
printf("%-10s",arr[i].course);
printf("%-10s",arr[i].name);
printf("%-10.2f",arr[i].sum*1.0/arr[i].num);
printf("%-10d\n",i+1);
}
}
int Add_Person_Info(Person arr[],int n)
{
system("cls");
printf("请输入课程名称:");
scanf("%s",arr[n].course);
printf("请输入教师名:");
scanf("%s",arr[n].name);
arr[n].sum=0;
arr[n].num=0;
printf("添加成功!\n");
system("pause");
return n+1;
}
void Sort_Person_Num(Person arr[],int n)
{
int i,j;
Person temp;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(arr[i].sum*1.0/arr[i].num<arr[j].sum*1.0/arr[j].num)
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
}
void Set_Person_Info(Person arr[],int n)
{
int i,temp;
system("cls");
if(0==n)
{
printf("无课程信息,请先增加课程信息!\n");
system("pause");
return;
}
for(i=0;i<n;i++)
{
printf("课程名:");
printf("%-10s",arr[i].course);
printf("教师名:");
printf("%-10s\n",arr[i].name);
printf("请为该教师打分:");
scanf("%d",&temp);
arr[i].sum+=temp;;
arr[i].num++;
}
printf("评分成功!\n");
system("pause");
}
void Calc_Sum(Person arr[],int n)
{
system("cls");
Sort_Person_Num(arr,n);
Print_Person_Info(arr,n);
system("pause");
}
void Calc_Level(Person arr[],int n)
{
int i;
float temp;
system("cls");
printf("%-10s%-10s%-10s%-10s\n","课程名","教师名","总分","等级");
for(i=0;i<n;i++)
{
printf("%-10s",arr[i].course);
printf("%-10s",arr[i].name);
printf("%-10.2f",arr[i].sum*1.0/arr[i].num);
temp=arr[i].sum/arr[i].num;
if(temp>=85)
{
strcpy(arr[i].style,"优秀");
}
else if(temp>=60)
{
strcpy(arr[i].style,"合格");
}
else
{
strcpy(arr[i].style,"不合格");
}
printf("%-10s\n",arr[i].style);
}
system("pause");
}
int Main_Menu()
{
int choice;
system("cls");
printf("1:新增课程信息\n");
printf("2:学生进行评分\n");
printf("3:计算总分并显示\n");
printf("4:评级并显示\n");
printf("0:退出\n");
printf("请输入选择:");
scanf("%d",&choice);
while(choice>4||choice<0)
{
printf("请重新选择:");
scanf("%d",&choice);
}
return choice;
}
int main()
{
int choice;
Person per[100];
int NUM=0;
do
{
choice=Main_Menu();
switch(choice)
{
case 1:
NUM=Add_Person_Info(per,NUM);
break;
case 2:
Set_Person_Info(per,NUM);
break;
case 3:
Calc_Sum(per,NUM);
break;
case 4:
Calc_Level(per,NUM);
break;
}
}while(choice!=0);
return 0;
}