编写程序从键盘输入5个学生的信息,包括学生学号、姓名、性别、出生年月及成绩,用结构体数组保存学生的信息,要求用函数实现结构体数组的输入输出及求成绩最高学生的序号。
时间: 2023-12-16 20:25:05 浏览: 153
运用结构体数组与输入函数进行存放学生的学号姓名等数据
4星 · 用户满意度95%
好的,我来帮你写这个程序。
首先,我们需要定义一个结构体来保存学生的信息:
```c++
#include <iostream>
using namespace std;
struct Student {
int id;
string name;
char gender;
string birthday;
float score;
};
```
然后,在主函数中定义一个包含5个元素的结构体数组,并调用函数进行输入输出及求成绩最高学生的序号:
```c++
int main() {
Student students[5];
input(students, 5); // 输入学生信息
output(students, 5); // 输出学生信息
int maxIndex = getMaxScoreIndex(students, 5); // 求成绩最高学生的序号
cout << "成绩最高的学生是:" << students[maxIndex].name << endl;
return 0;
}
```
接下来,我们来实现输入函数input(),它用来从键盘输入5个学生的信息:
```c++
void input(Student* students, int n) {
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> students[i].id;
cout << "姓名:";
cin >> students[i].name;
cout << "性别:";
cin >> students[i].gender;
cout << "出生年月:";
cin >> students[i].birthday;
cout << "成绩:";
cin >> students[i].score;
}
}
```
然后,我们来实现输出函数output(),它用来输出5个学生的信息:
```c++
void output(Student* students, int n) {
cout << "学生信息如下:" << endl;
for (int i = 0; i < n; i++) {
cout << "学号:" << students[i].id << endl;
cout << "姓名:" << students[i].name << endl;
cout << "性别:" << students[i].gender << endl;
cout << "出生年月:" << students[i].birthday << endl;
cout << "成绩:" << students[i].score << endl;
cout << endl;
}
}
```
最后,我们来实现求成绩最高学生的序号的函数getMaxScoreIndex():
```c++
int getMaxScoreIndex(Student* students, int n) {
int maxIndex = 0;
for (int i = 1; i < n; i++) {
if (students[i].score > students[maxIndex].score) {
maxIndex = i;
}
}
return maxIndex;
}
```
好了,现在我们把所有代码整合起来:
```c++
#include <iostream>
using namespace std;
struct Student {
int id;
string name;
char gender;
string birthday;
float score;
};
void input(Student* students, int n) {
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "个学生的信息:" << endl;
cout << "学号:";
cin >> students[i].id;
cout << "姓名:";
cin >> students[i].name;
cout << "性别:";
cin >> students[i].gender;
cout << "出生年月:";
cin >> students[i].birthday;
cout << "成绩:";
cin >> students[i].score;
}
}
void output(Student* students, int n) {
cout << "学生信息如下:" << endl;
for (int i = 0; i < n; i++) {
cout << "学号:" << students[i].id << endl;
cout << "姓名:" << students[i].name << endl;
cout << "性别:" << students[i].gender << endl;
cout << "出生年月:" << students[i].birthday << endl;
cout << "成绩:" << students[i].score << endl;
cout << endl;
}
}
int getMaxScoreIndex(Student* students, int n) {
int maxIndex = 0;
for (int i = 1; i < n; i++) {
if (students[i].score > students[maxIndex].score) {
maxIndex = i;
}
}
return maxIndex;
}
int main() {
Student students[5];
input(students, 5); // 输入学生信息
output(students, 5); // 输出学生信息
int maxIndex = getMaxScoreIndex(students, 5); // 求成绩最高学生的序号
cout << "成绩最高的学生是:" << students[maxIndex].name << endl;
return 0;
}
```
这样,一个从键盘输入5个学生的信息,包括学生学号、姓名、性别、出生年月及成绩,用结构体数组保存学生的信息,要求用函数实现结构体数组的输入输出及求成绩最高学生的序号的程序就完成了。
阅读全文