#include
#include
#define SIZE 300
typedef struct
{
int num;
int score[3];
}STUDENT;
typedef enum//
{
False,True
}FLAG;
int accept_data(STUDENT stu[],int grade[]);
void show_data(STUDENT stu[],int sum,int grade[]);
void draw(int grade[]);
void count(int *max,int *min,double *pass,double ave[],double f[],STUDENT stu[],int sum);
void show_data2(int max,int min,double pass,double ave[],double f[]);
int main()
{
int sum,max,min;//
double pass=0;//
int grade[11]={0};//
STUDENT stu[SIZE];
double ave[SIZE],f[SIZE];
sum=accept_data(stu,grade);
show_data(stu,sum,grade);
draw(grade);
count(&max,&min,&pass,ave,f,stu,sum);//
show_data2(max,min,pass,ave,f);
return 0;
}
accept_data(STUDENT stu[],int grade[])
{
int i,sum=0,temp,a1,a2;
FLAG flag;
printf("请输入计算总评成绩时平时成绩与期末成绩所占的比例,用整数表示: ");
scanf("%d%d",&a1,&a2);
for(i=0;i
{
printf("\n请输入学号:");
scanf("%d",&stu[i].num);
if(stu[i].num==-1)//'==' not'='
{
sum=i;
break;//
}
printf("\n请输入学生的平时成绩与期末成绩:");
flag=True;//
while(flag==True)
{
scanf("%d%d",&stu[i].score[0],&stu[i].score[1]);
if(stu[i].score[0]<=100 && stu[i].score[0]>=0 && \
stu[i].score[1]<=100 && stu[i].score[1]>=0)
flag=False;//
else
printf("\n\007 错误数据!请再次输入学生的平时成绩与期末成绩:\n");
}
temp=(int)(1.0*a1/100*stu[i].score[0] 1.0*a2/100*stu[i].score[1]);//
stu[i].score[2]=temp;//score[2] not score[3]
temp=(stu[i].score[1]/10);
if(temp==10)
grade[10] ;
else
grade[temp 1] ;//
}
return sum;
}
void show_data(STUDENT stu[],int sum,int grade[])
{
int i,j;
for(i=0;i
{
printf("M",stu[i].num);//
for(j=0;j<3;j )//
printf("M",stu[i].score[j]);
printf("\n");
}
for(i=1;i<=10;i )// i的范围要弄清楚
printf("M",grade[i]);
printf("\n");
}
void count(int *max,int *min,double *pass,double ave[],double f[],STUDENT stu[],int sum)//
{
int i,j,p_sum=0;//p_sum为期末成绩及格的总人数
int total[3]={0};//平时成绩,期末,总评成绩的初始值设为0
double temp;//存储平时成绩与平均平时成绩的差,期末成绩与期末平均成绩的差,总评成绩与总评平均的差
*max=