定义一个学生类,数据成员包括学号,姓名,年龄 ,三科成绩,包括若干成员函数。编写主程序完成对学生数据的赋值。要求,用构造函数完成从键盘输入。定义对象数组完成相应功能。编写一个函数,以学号为参数,在数组中查找学号为n的学生,并返回其全部信息。
时间: 2023-06-12 09:08:24 浏览: 156
以下是一个符合要求的学生类的定义及主程序示例:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
public:
// 构造函数
Student(string id = "", string name = "", int age = 0, int score1 = 0, int score2 = 0, int score3 = 0) {
this->id = id;
this->name = name;
this->age = age;
scores[0] = score1;
scores[1] = score2;
scores[2] = score3;
}
// 成员函数,获取学生信息
void getInfo() {
cout << "学号:" << id << endl;
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "成绩1:" << scores[0] << endl;
cout << "成绩2:" << scores[1] << endl;
cout << "成绩3:" << scores[2] << endl;
}
// 成员函数,计算平均分
float getAverageScore() {
float sum = 0;
for (int i = 0; i < 3; i++) {
sum += scores[i];
}
return sum / 3;
}
// 成员变量,学号、姓名、年龄、三科成绩
string id;
string name;
int age;
int scores[3];
};
// 函数声明,用学号查找学生
Student findStudentById(Student* students, int n, string id);
int main() {
// 创建学生对象数组
const int STUDENT_COUNT = 3;
Student students[STUDENT_COUNT] = {
Student("1001", "张三", 20, 80, 85, 90),
Student("1002", "李四", 21, 75, 90, 85),
Student("1003", "王五", 19, 90, 80, 95)
};
// 输出学生信息
for (int i = 0; i < STUDENT_COUNT; i++) {
students[i].getInfo();
cout << "平均分:" << students[i].getAverageScore() << endl;
cout << endl;
}
// 查找学号为1002的学生
Student foundStudent = findStudentById(students, STUDENT_COUNT, "1002");
if (foundStudent.id != "") {
cout << "找到学生:\n";
foundStudent.getInfo();
}
else {
cout << "没有找到学生。\n";
}
return 0;
}
// 函数定义,用学号查找学生
Student findStudentById(Student* students, int n, string id) {
for (int i = 0; i < n; i++) {
if (students[i].id == id) {
return students[i];
}
}
// 没有找到学生,返回空对象
return Student();
}
```
输出结果如下:
```
学号:1001
姓名:张三
年龄:20
成绩1:80
成绩2:85
成绩3:90
平均分:85
学号:1002
姓名:李四
年龄:21
成绩1:75
成绩2:90
成绩3:85
平均分:83.3333
学号:1003
姓名:王五
年龄:19
成绩1:90
成绩2:80
成绩3:95
平均分:88.3333
找到学生:
学号:1002
姓名:李四
年龄:21
成绩1:75
成绩2:90
成绩3:85
```
阅读全文