#include
#define N 2
struct student
{int xh;
float score[4];
char name[20];
float average;
int num;
}std[100];
int n=0; /*学生总人数*/
/* 输入学生数据*/
void srsj()
{ FILE *fp;
fp=fopen("lishengjie.txt","w");
int i,j;
for(i=0;i",i+1);
printf("请输入学生学号:
");
scanf("%d",&std[i].xh);
for(j=0;j");
printf("请输入学生学号:
");
scanf("%d",&std[i].xh);
}
}
printf("请输入学生姓名:
");
scanf("%s",&std[i].name);
printf("请输入学生c程序设计成绩:
");
scanf("%f",&std[i].score[0]);
printf("请输入学生高数成绩:
");
scanf("%f",&std[i].score[1]);
printf("请输入学生英语成绩:
");
scanf("%f",&std[i].score[2]);
printf("请输入学生线代成绩:
");
scanf("%f",&std[i].score[3]);
n++;
fprintf(fp,"
%d
%s
c程序设计成绩:%.2f
高数成绩:%.2f
英语成绩:%.2f
线代成绩:%.2f
",std[i].xh,std[i].name,
std[i].score[0],std[i].score[1],std[i].score[2],std[i].score[3]);
}
fprintf(fp,"%d",n);
fclose(fp);
}
/*计算单个同学的平均分*/
void average(int i)
{ float sum;
sum=std[i].score[0]+std[i].score[1]+std[i].score[2]+std[i].score[3];
std[i].average=sum/4;
}
/*计算每位同学的平均分*/
void pjf1()
{ int i,m;
float sum;
for(i=0;i",std[m].name,std[m].average);
}
/*计算各科成绩的平均分*/
void pjf2()
{ int m;
float i=0.0,j=0.0,k=0.0,l=0.0;
float average[4];
for(m=0;m");
printf("%.2f %.2f %.2f %.2f",average[0],average[1],average[2],average[3]);
}
/*统计各分段人数*/
void tj()
{ int i;
int a[4]={0,0,0,0}; /*C语言*/
int b[4]={0,0,0,0}; /*高数*/
int c[4]={0,0,0,0}; /*英语*/
int d[4]={0,0,0,0}; /*线代*/
int e[4]={0,0,0,0}; /*平均分*/
for(i=0;i=90)
a[0]++;
else
if(std[i].score[0]>=80&&std[i].score[0]<=89)
a[1]++;
else
if(std[i].score[0]>=60&&std[i].score[0]<=79)
a[2]++;
else
a[3]++;
if(std[i].score[1]>=90)
b[0]++;
else
if(std[i].score[1]>=80&&std[i].score[1]<=89)
b[1]++;
else
if(std[i].score[1]>=60&&std[i].score[1]<=79)
b[2]++;
else
b[3]++;
if(std[i].score[2]>=90)
c[0]++;
else
if(std[i].score[2]>=80&&std[i].score[2]<=89)
c[1]++;
else
if(std[i].score[2]>=60&&std[i].score[2]<=79)
c[2]++;
else
c[3]++;
if(std[i].score[3]>=90)
d[0]++;
else
if(std[i].score[3]>=80&&std[i].score[3]<=89)
d[1]++;
else
if(std[i].score[3]>=60&&std[i].score[3]<=79)
d[2]++;
else
d[3]++;
if(std[i].average>=90)
e[0]++;
else
if(std[i].average>=80&&std[i].average<=89)
e[1]++;
else
if(std[i].average>=60&&std[i].average<=79)
e[2]++;
else
e[3]++;
}
printf(" C语言 高数 英语 线代 平均分
");
printf("90-100: %d %d %d %d %d
",a[0],b[0],c[0],d[0],e[0]);
printf("80-89: %d %d %d %d %d
",a[1],b[1],c[1],d[1],e[1]);
printf("60-79: %d %d %d %d %d
",a[2],b[2],c[2],d[2],e[2]);
printf("60以下: %d %d %d %d %d
",a[3],b[3],c[3],d[3],e[3]);
}
/*按各个同学平均分排序,给出名次*/
void px()
{int m,i,j,t=1;
for(i=0;i");
for(m=0;m",std[m].xh,std[m].name,std[m].average,std[m].num);
}
/*通过学号返回数组下标*/
int search(int xh)
{ int i;
for (i=0;i<=n;i++)
{ if (std[i].xh==xh)
return i;
}
return -1;
}
/*显示单个学生信息*/
void xx(int p)
{
printf("学号 姓名 C语言 高数 英语 线代 平均分
");
printf(" %d %s %.2f %.2f %.2f %.2f %.2f",std[p].xh,std[p].name,
std[p].score[0],std[p].score[1],std[p].score[2],std[p].score[3],std[p].average);
}
/*增加数据*/
void increase()
{ do
{printf("请输入学生学号:
");
scanf("%d",&std[n].xh);
printf("请输入学生姓名:
");
scanf("%s",&std[n].name);
printf("请输入学生c程序设计成绩:
");
scanf("%f",&std[n].score[0]);
printf("请输入学生高数成绩:
");
scanf("%f",&std[n].score[1]);
printf("请输入学生英语成绩:
");
scanf("%f",&std[n].score[2]);
printf("请输入学生线代成绩:
");
scanf("%f",&std[n].score[3]);
average(n);
n++;
printf("
是否继续输入?(y/n)
");
getchar();
}while(getchar()=='y');
}
/*删除数据*/
void Delete()
{ int p,i,xh;
while(1)
{printf("请输入要删除的学生的学号:");
scanf("%d",&xh);
p=search(xh);
if(p==-1)
printf("您所查找的学生不存在");
else
{ printf("要删除的学生信息为:
");
xx(p);
printf("
是否删除?(y/n)");
getchar();
if(getchar()=='y')
{ for(i=p;i是否继续?(y/n)
");
getchar();
if(getch