有10名学生,每名学生的数据包含学号、姓名、3门课程的成绩,从键盘输入10名学生的数据。 要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数) 创建四个函数input, print,aver,excelent接受结构体数组指针。 void input (stu *p)
时间: 2023-12-15 10:16:26 浏览: 51
编程实现:(1) 键入某组学生(共 10 人)的学号、姓名、组成原理考试 成绩、数据结构考试成绩、汇编语言考试成绩
好的,下面是完整的代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
struct Student {
int id;
string name;
int score1;
int score2;
int score3;
double average;
};
void input(Student* p) {
for (int i = 0; i < 10; i++) {
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> p[i].id;
cout << "姓名:";
cin >> p[i].name;
cout << "第一门课程成绩:";
cin >> p[i].score1;
cout << "第二门课程成绩:";
cin >> p[i].score2;
cout << "第三门课程成绩:";
cin >> p[i].score3;
p[i].average = (p[i].score1 + p[i].score2 + p[i].score3) / 3.0;
}
}
void print(Student* p) {
double avg1 = 0, avg2 = 0, avg3 = 0;
for (int i = 0; i < 10; i++) {
avg1 += p[i].score1;
avg2 += p[i].score2;
avg3 += p[i].score3;
}
avg1 /= 10.0;
avg2 /= 10.0;
avg3 /= 10.0;
cout << "3门课程的平均成绩为:" << endl;
cout << "第一门课程:" << avg1 << endl;
cout << "第二门课程:" << avg2 << endl;
cout << "第三门课程:" << avg3 << endl;
int max_index = 0;
for (int i = 0; i < 10; i++) {
if (p[i].average > p[max_index].average) {
max_index = i;
}
}
cout << "最高分的学生信息为:" << endl;
cout << "学号:" << p[max_index].id << endl;
cout << "姓名:" << p[max_index].name << endl;
cout << "第一门课程成绩:" << p[max_index].score1 << endl;
cout << "第二门课程成绩:" << p[max_index].score2 << endl;
cout << "第三门课程成绩:" << p[max_index].score3 << endl;
cout << "平均分:" << p[max_index].average << endl;
}
int main() {
Student stu[10];
input(stu);
print(stu);
return 0;
}
```
这个程序中,我们定义了一个 `Student` 结构体,包含了学生的各项信息,包括学号、姓名、3门课程的成绩和平均分。然后,我们定义了 `input` 函数,用于输入学生信息; `print` 函数,用于输出3门课程的平均成绩和最高分的学生信息。最后,在 `main` 函数中,我们调用了 `input` 和 `print` 函数,完成了程序的功能。
阅读全文