请各位帮忙给个具体的思路,
设计一个结构体数组,用于存储N个学生的信息,每个学生信息包括学号(num)、姓名(name[20])、性别(sex)、年龄(age)、三门课成绩(score[3])要求程序具有如下功能:程序运行时,首先显示一个菜单,菜单内容包括:
输入学生信息
检索学生信息
从学号、姓名、年龄和某门课程成绩中选择一项,进行学生信息排序
选择了某项功能,完成后,可以再返回菜单
程序代码:#include<stdio.h>
#include<stdlib.h>
struct student
{
int mumber[1]; //学号
char name[10]; //名字
double score[4]; //成绩
};
typedef struct student SS;
SS stud[10],*st=stud;
int i;
int input();
int output();
int count();
int main()
{
i=4;
while(i){
printf("请输入您要执行任务前的数值\n");
printf("1 输入学生信息\n");
printf("2 输出学生信息\n");
printf("3 退出\n");
scanf("%d",&i);
if(i==1) input();
if(i==2){
output();
count();
}
if(i==3) exit(0);
}
return 0;
}
int input()
{
i=0;
printf("请注意输入学生的成绩格式为 成绩1,成绩2,成绩3,\n");
for(i;i<5;i++){
printf("请输入第%d名同学的信息\n",i+1);
printf("请输入学号\n");
scanf("%d",&stud[i].mumber[0]);
printf("请输入姓名\n");
scanf("%s",stud[i].name);
printf("请输入成绩\n");
scanf("%lf,%lf,%lf",&stud[i].score[0],&stud[i].score[1],&stud[i].score[2]);
stud[i].score[3]=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3;
}
return 0;
}
int output()
{
i=0;
printf("-------------------------------------------------\n");
printf("| 学号");
printf("| 姓名 ");
printf("| 成绩1");
printf("| 成绩2");
printf("| 成绩3");
printf("| 平均成绩|\n");
for(i;i<5;i++){
printf("| %4d",stud[i].mumber[0]);
printf("| %9s",stud[i].name);
printf("| %4.2lf",stud[i].score[0]);
printf("| %4.2lf",stud[i].score[1]);
printf("| %4.2lf",stud[i].score[2]);
printf("| %4.2lf |",stud[i].score[3]);
printf("\n");
}
printf("-------------------------------------------------\n");
return 0;
}
int count()
{
int j,k;
double max;
i=0;
printf("其中按照平均成绩排序为\n");
printf("-------------------------------------------------\n");
printf("| 学号");
printf("| 姓名 ");
printf("| 成绩1");
printf("| 成绩2");
printf("| 成绩3");
printf("| 平均成绩|\n");
max=0;
for(i;i<5;i++){
for(j=0;j<5;j++){
if(stud[j].score[3]>=max){
max=stud[j].score[3];
k=j;
}
}
printf("| %4d",stud[k].mumber[0]);
printf("| %9s",stud[k].name);
printf("| %4.2lf",stud[k].score[0]);
printf("| %4.2lf",stud[k].score[1]);
printf("| %4.2lf",stud[k].score[2]);
printf("| %4.2lf |",stud[k].score[3]);
printf("\n");
stud[k].score[3]=-1;
max=0;
}
printf("-------------------------------------------------\n");
return 0;
}