用C语言编一个学生成绩管理系统程序啊? 要求用结构体和指针,越简单越好最好不要用链表.

2024-11-23 05:12:16
推荐回答(1个)
回答(1):

#include "stdio.h"
#define N 3
struct student
{char num[10];
char name[20];
float score[3];
float sum;
float aver;
}stu[N];

int choose;
void input();
void find();
void count();
void sort();

void input()
{
int i;
float temp;
for(i=0;i{printf("输入第%d个学生信息:\n",i+1);
printf("number: ");
scanf("%s",stu[i].num);
printf("name: ");
scanf("%s",stu[i].name);
printf("score1: ");
scanf("%f",&temp);
stu[i].score[0]=temp;
printf("score2: ");
scanf("%f",&temp);
stu[i].score[1]=temp;
printf("score3: ");
scanf("%f",&temp);
getchar();
stu[i].score[2]=temp;
}
}

void count()
{
float sum,aver;
int i,j;
for(i=0;i{sum=0;
for(j=0;j<3;j++)
sum+=stu[i].score[j];
aver=sum/3.0;
stu[i].sum=sum;
stu[i].aver=aver;
}
printf(" 学生的总成绩及平均分 \n");
printf("学号 姓名 总成绩 平均分 \n");
for(i=0;iprintf("%-8s%-10s%-9.2f%-9.2f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].aver);
}

void sort()
{int i,j,k;
float sum,aver;
struct student temp;
for(i=0;i{sum=0;
for(j=0;j<3;j++)
sum+=stu[i].score[j];
aver=sum/3.0;
stu[i].sum=sum;
stu[i].aver=aver;
k=i;
for(j=i+1;jif(stu[k].sumif(k!=i)
{temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;}
}
printf(" 学生成绩排名 \n");
printf(" 按名次 \n");
for(i=0;i<3;i++)
printf("学号%-8s名字%-10s%-8.2f%-8.2f%-8.2f总分%-8.2f平均分%-8.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].aver);
}

void find()
{int i,j,sum,flag=0;
printf(" \n");
printf("有两科成绩不及格的同学是:\n");
printf(" \n");
for(i=0;i{
sum=0;
for(j=0;j<3;j++)
if(stu[i].score[j]<60)sum++;
if(sum>=2)
{flag=1;
printf("学号:%-8s名字:%-10s\n",stu[i].num,stu[i].name);
}
}
if(flag==0)
printf(" 没有两科都不及格的同学!!\n");

}
void main()
{
printf(" 学生成绩管理系统 \n");
printf("1....成绩录入\n");
printf("2....成绩查询\n");
printf("3....成绩统计(平均成绩)\n");
printf("4....成绩排名\n");
printf("5....任意键退出\n");
printf("\n");
printf("\n");
printf("请输入您要进行的操作:\n");
scanf("%d",&choose);

while(choose==1||choose==2||choose==3||choose==4)
{switch(choose)
{
case 1:input(); break;
case 2:find(); break;
case 3:count(); break;
case 4:sort(); break;
}
printf(" \n");
printf("\n");
printf("\n");
printf("请输入您要进行的操作:\n");
scanf("%d",&choose);

}
}