C++ C语言程序设计 题目:学生成绩统计

2024-12-31 00:01:47
推荐回答(1个)
回答1:

//按你要求来的 不过只输入了3组数,你可以自己改
#include
#include
#define max 100
typedef struct
{
char name[max];// 姓名
int num;//学号
int eng;//英语成绩
int pro;//程序设计成绩
int maths;//数学成绩
}student;
void input(student s[],int n)//输入以及求总分
{
int sum=0;
for(int i=0;i{
printf("输入第%d个学生的姓名:\n",i+1);gets(s[i].name);
printf("输入第%d个学生的学号:\n",i+1);scanf("%d",&s[i].num);
printf("输入第%d个学生的英语成绩:\n",i+1);scanf("%d",&s[i].eng);
printf("输入第%d个学生的程序设计成绩:\n",i+1);scanf("%d",&s[i].pro);
printf("输入第%d个学生的数学成绩:\n",i+1);scanf("%d",&s[i].maths);
sum=s[i].eng+s[i].pro+s[i].maths;
printf("总分为:%d\n",sum);
fflush(stdin);
}
}
void sumscore(student s[],int n)//单科成绩总和
{
int sum_eng=0,sum_pro=0,sum_maths=0;
for(int i=0;i{
sum_eng+=s[i].eng;
sum_pro+=s[i].pro;
sum_maths+=s[i].maths;
}
printf("英语总成绩为:%d\n",sum_eng);
printf("程序设计总成绩为:%d\n",sum_pro);
printf("数学总成绩为:%d\n",sum_maths);
}
void searchst(student s[],int n)//查找学生
{
char e[max];int number;
printf("输入要查询的姓名:\n");gets(e);
printf("输入要查询的学号:\n");scanf("%d",&number);
for(int i=0;iif(!strcmp(s[i].name,e)&&number==s[i].num)
{
printf("英语成绩:%d\n程序设计成绩:%d\n数学成绩:%d\n",s[i].eng,s[i].pro,s[i].maths);
printf("总成绩为:%d\n",s[i].eng+s[i].pro+s[i].maths);
return;
}
printf("查无此人!");
}
void main()
{
student s[3];int n=3;//这里只用了3个测试,30个太夸张了,可以改成30组数....
input(s,n);
printf("\n");
sumscore(s,n);
printf("\n");
searchst(s,n);
printf("\n");
}