求助,帮忙修改C语言程序设计,学生信息管理系统

我编了一个学生信息管理系统,现在不会关联文件,无法实现数据的存储;其次,需要输出每门课所有同学的平均分,最高分,最低分,计算出及格率和优秀率(80以上)。谁可以帮帮我。请高手帮忙啊!所索取代码可以联系扣扣,2 88 6856 1。很着急!谢谢!解决的话追加得分!

第1个回答  2010-06-13
#include<stdio.h>

//定义结构体
struct student
{
int number;

char name[20];
float score1;
float score2;
float score3;
float score4;
float score5;
float ave;
};

//单个学员录入函数
void input(struct student *st)
{
printf("\n学号: ");
scanf("%d",&st->number);
printf("姓名: ");
fflush(stdin);
gets(st->name);
printf("五门课成绩:\n成绩1: ");
scanf("%f",&st->score1);
printf("成绩2: ");
scanf("%f",&st->score2);
printf("成绩3: ");
scanf("%f",&st->score3);
printf("成绩4: ");
scanf("%f",&st->score4);
printf("成绩5: ");
scanf("%f",&st->score5);

st->ave=(st->score1+st->score2+st->score3+st->score4+st->score5)/5;
}

//显示学员信息函数
void display(struct student *st,int n)
{
int i;
printf("\n\t学号\t姓名\t平均成绩\n");
for(i=0; i<n; i++)
{
printf("\t%d\t%s\t%5.2f\n",st->number,st->name,st->ave);
st++;
}
}

//排序函数,大到小
void sorting(struct student stu[],int n)
{
struct student temp;
int i,j;
for(i=0; i<n-1; i++)
{
for(j=0; j<n-i-1; j++)
{
if(stu[j].ave<stu[j+1].ave)
{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
}
}

void main()
{
struct student stu[50],stu1;
char ch;
int i=0,num;

//通过调用函数录入学员的信息
printf(" 请输入学员信息: \n\n");
do
{
input(&stu[i++]);
printf("是否继续(Y/N)? ");
fflush(stdin);
ch=getchar();
}while(ch=='Y'||ch=='y');

//显示学员信息
printf("\n排序前学员的信息如下: \n");
display(stu,i);

//排序函数
sorting(stu,i);

//显示学员信息
printf("\n排序后学员的信息如下: \n");
display(stu,i);

//显示学员信息
printf("\n插入后学员的信息如下: \n");
display(stu,i);
}
相似回答