建立4个学生的信息登记表,每个学生的信息包括:
学号 姓名 3门课的成绩(math c english)程序运行显示简单菜单(要求如图
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义课程数量
#define NMBKC 3
struct Student
{
int id; //学号
char name[20]; //姓名
float score[NMBKC];//成绩
float total; //总分
float avg; //平均分
};
//1录入信息
void input(struct Student arr[],int n)
{
int i,j;
system("cls");
for (i = 0;i < n; i++)
{
arr[i].total = 0.0;
printf("请输入第%d名学生的信息(学号、姓名、%d门课程成绩):",i+1,NMBKC);
scanf("%d %s",&arr[i].id,arr[i].name);
for (j = 0;j < NMBKC;j++)
{
scanf("%f",&arr[i].score[j]);
}
}
printf("录入完毕!\n");
system("pause");
}
//2.统计总分
void count(struct Student arr[],int n)
{
int i,j;
system("cls");
for(i=0;i<n;i++)
{
arr[i].total = 0;
for(j=0;j<NMBKC;j++)
arr[i].total += arr[i].score[j];
arr[i].avg = arr[i].total/NMBKC;
}
printf("总分计算完毕!\n");
printf("学号 姓名 总分 平均分 math c english\n");
//显示
for (i = 0;i< n;i++)
{
printf("%d\t%s\t%.1f\t%.1f\t",arr[i].id,arr[i].name,arr[i].total,arr[i].avg);
for (j=0;j<NMBKC;j++)
{
printf("%f\t",arr[i].score[j]);
}
printf("\n");
}
system("pause");
}
//排序 按总分降序排序
void sort(struct Student arr[],int n)
{
int i,j;
struct Student tmp;
system("cls");
for (i = 0; i < n-1;i++)
{
for (j = 0;j < n-1-i;j++)
{
if(arr[j].total < arr[j+1].total)
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
//显示
printf("学号 姓名 总分 平均分 math c english\n");
for (i = 0;i< n;i++)
{
printf("%d\t%s\t%.1f\t%.1f\t",arr[i].id,arr[i].name,arr[i].total,arr[i].avg);
for (j=0;j<NMBKC;j++)
{
printf("%f\t",arr[i].score[j]);
}
printf("\n");
}
system("pause");
}
//查询
void query(struct Student arr[],int n)
{
int i,j;
int id;
system("cls");
printf("请输入学号:");
scanf("%d",&id);
printf("学号 姓名 总分 平均分 math c english\n");
for (i = 0;i < n;i++)
{
if( arr[i].id == id )
{
printf("%d\t%s\t%.1f\t%.1f\t",arr[i].id,arr[i].name,arr[i].total,arr[i].avg);
for (j=0;j<NMBKC;j++)
{
printf("%f\t",arr[i].score[j]);
}
printf("\n");
break;;
}
}
if(i==n)
printf("查无此人!\n");
system("pause");
}
int main()
{
struct Student stu[10];
int n=4;
int opt;
int bgo = 1;
float avg[NMBKC]; //课程平均分
while(bgo)
{
system("cls");
printf("-------学生管理系统-------\n");
printf(" 1.录入学生信息 \n");
printf(" 2.统计学生总分 \n");
printf(" 3.按总分降序排序 \n");
printf(" 4.查询 \n");
printf(" 9.退出系统 \n");
printf("--------------------------\n");
scanf("%d",&opt);
switch(opt)
{
case 1:
input(stu,n);
break;
case 2:
count(stu,n);
break;
case 3:
sort(stu,n);
break;
case 4:
query(stu,n);
break;
case 9:
return 0;
}
}
return 0;
}