3. 编写一个学生类,其中有姓名、学号、c++成绩和数学成绩等属性。(1) 添加适当的构造函数实现对象数据的初始化,还有显示学生信息的成员函数。试在主函数中测试这些成员函数。\n(2) 编写一个普通函数
时间: 2023-05-31 22:20:20 浏览: 226
设计学生类Student,属性:编号(整型);姓名(字符串),成绩(整型)。
5星 · 资源好评率100%
### 回答1:
这个题目主要是要求编写一个学生类,其中包括姓名、学号、C++成绩和数学成绩等属性。(1)添加适当的构造函数实现对象数据的初始化,并显示学生信息的成员函数。(2)编写一个普通函数。在主函数中测试这些成员函数。
### 回答2:
该函数接受一个学生类对象的数组作为参数,并返回数组中所有学生的平均分和总分。同时,也输出每个学生的平均分和总分。
首先,我们需要定义一个学生类,具备姓名、学号、C语言成绩和数学成绩等属性。我们可以使用如下的类定义:
```
class Student {
private:
string name; // 姓名
string id; // 学号
double cscore; // C语言成绩
double mscore; // 数学成绩
public:
Student(string n, string i, double c, double m) {
name = n;
id = i;
cscore = c;
mscore = m;
}
void display() {
cout << "姓名:" << name << endl;
cout << "学号:" << id << endl;
cout << "C语言成绩:" << cscore << endl;
cout << "数学成绩:" << mscore << endl;
}
string get_name() {
return name;
}
string get_id() {
return id;
}
double get_cscore() {
return cscore;
}
double get_mscore() {
return mscore;
}
};
```
可以看出,我们使用了一个构造函数来初始化对象的数据,并使用一个显示函数来输出学生信息。同时,为了方便计算平均分和总分,我们还编写了4个获取属性的函数。
接下来,我们需要编写一个普通函数来计算所有学生的平均分和总分,并输出每个学生的平均分和总分。代码如下:
```
void calculate(Student students[], int size) {
double total_c = 0; // 所有学生C语言成绩之和
double total_m = 0; // 所有学生数学成绩之和
for (int i = 0; i < size; i++) {
total_c += students[i].get_cscore();
total_m += students[i].get_mscore();
}
double average_c = total_c / size; // 所有学生C语言平均成绩
double average_m = total_m / size; // 所有学生数学平均成绩
cout << "所有学生的C语言总成绩为:" << total_c << endl;
cout << "所有学生的数学总成绩为:" << total_m << endl;
cout << "所有学生的C语言平均成绩为:" << average_c << endl;
cout << "所有学生的数学平均成绩为:" << average_m << endl;
cout << "各个学生的成绩如下:" << endl;
for (int i = 0; i < size; i++) {
cout << "学生姓名:" << students[i].get_name() << endl;
cout << "学生学号:" << students[i].get_id() << endl;
cout << "C语言成绩:" << students[i].get_cscore() << endl;
cout << "数学成绩:" << students[i].get_mscore() << endl;
cout << "总成绩:" << students[i].get_cscore() + students[i].get_mscore() << endl;
cout << "平均成绩:" << (students[i].get_cscore() + students[i].get_mscore()) / 2 << endl;
cout << endl;
}
}
```
该函数接受一个学生类对象的数组和数组大小作为参数,并使用循环遍历数组,分别计算所有学生的C语言成绩之和、数学成绩之和和平均成绩。最后,利用循环输出每个学生的成绩情况。
下面是一个完整的测试代码:
```
int main() {
Student s1("张三", "001", 85, 78);
s1.display();
cout << endl;
Student s2("李四", "002", 95, 92);
s2.display();
cout << endl;
Student s3("王五", "003", 80, 87);
s3.display();
cout << endl;
Student students[] = {s1, s2, s3};
calculate(students, 3);
return 0;
}
```
其输出结果如下:
```
姓名:张三
学号:001
C语言成绩:85
数学成绩:78
姓名:李四
学号:002
C语言成绩:95
数学成绩:92
姓名:王五
学号:003
C语言成绩:80
数学成绩:87
所有学生的C语言总成绩为:260
所有学生的数学总成绩为:257
所有学生的C语言平均成绩为:86.6667
所有学生的数学平均成绩为:85.6667
各个学生的成绩如下:
学生姓名:张三
学生学号:001
C语言成绩:85
数学成绩:78
总成绩:163
平均成绩:81.5
学生姓名:李四
学生学号:002
C语言成绩:95
数学成绩:92
总成绩:187
平均成绩:93.5
学生姓名:王五
学生学号:003
C语言成绩:80
数学成绩:87
总成绩:167
平均成绩:83.5
```
可以看出,我们成功地定义了一个学生类,并可以在主函数中分别创建三个学生对象,并测试相关的成员函数。同时,我们也成功地编写了一个能够计算所有学生平均成绩和总成绩的普通函数,并实现了输出每个学生的成绩情况的功能。以上就是本次题目的解答。
### 回答3:
学生类是一个常见的面向对象编程的类,它包含了学生的基本信息,如姓名、学号和成绩等数据。在JavaScript中,可以通过以下代码来定义一个学生类:
```
class Student {
constructor(name, id, c_score, math_score) {
this.name = name;
this.id = id;
this.c_score = c_score;
this.math_score = math_score;
}
showInfo() {
console.log("姓名:" + this.name);
console.log("学号:" + this.id);
console.log("C语言成绩:" + this.c_score);
console.log("数学成绩:" + this.math_score);
}
}
function test() {
const student = new Student("张三", "001", 90, 95);
student.showInfo();
}
```
在上面的代码中,我们定义了一个学生类Student,它包含了姓名、学号、c成绩和数学成绩四个属性。在类中使用了constructor构造函数来初始化对象的数据,并且还定义了一个showInfo成员函数来显示学生信息。在test函数中,我们通过创建一个Student对象来测试代码,并调用了showInfo函数来显示学生信息。
除此之外,题目还要求我们编写一个普通函数,这里我们可以编写一个计算学生平均成绩的函数。具体实现方法如下:
```
function calcAverageScore(student) {
const sum_score = student.c_score + student.math_score;
const avg_score = sum_score / 2;
console.log("平均成绩:" + avg_score);
}
```
在上面的函数中,我们通过传递一个Student对象作为参数来计算学生的平均成绩,并在控制台打印出结果。
最后,我们可以在主函数中调用calcAverageScore函数来测试代码:
```
function test() {
const student = new Student("张三", "001", 90, 95);
student.showInfo();
calcAverageScore(student);
}
```
在测试代码中,我们首先创建了一个Student对象,并调用了showInfo函数来显示学生信息。然后再调用了calcAverageScore函数来计算并显示学生的平均成绩。执行以上代码后,程序将在控制台输出以下信息:
```
姓名:张三
学号:001
C语言成绩:90
数学成绩:95
平均成绩:92.5
```
阅读全文