用C++定义学生类的成绩数组(7门课,并记录课程名称,成绩)声明学生类的一个友元函数(两个参数),对成绩数组进行排序,并输出排好序的成绩;定义课程类(课程名称,老师名称)及课程对象数组(7门科),学生类为课程类的友元函数,输出各科课程的课程名称和老师名称
时间: 2024-05-06 17:21:36 浏览: 73
我已经理解了你的问题。以下是通过 C 语言定义学生类的成绩数组的示例代码。
```c
#include <stdio.h>
#include <string.h>
struct Course {
char name[20];
double score;
};
class Student {
private:
Course courses[7];
public:
friend void sortScores(Student &s, int n);
void setCourse(int i, char *name, double score) {
strcpy(courses[i].name, name);
courses[i].score = score;
}
void printScores() {
printf("Sorted Scores:\n");
for (int i = 0; i < 7; i++) {
printf("%s: %.2f\n", courses[i].name, courses[i].score);
}
}
};
void sortScores(Student &s, int n) {
Course temp;
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-1-i; j++) {
if (s.courses[j].score > s.courses[j+1].score) {
temp = s.courses[j];
s.courses[j] = s.courses[j+1];
s.courses[j+1] = temp;
}
}
}
}
```
在上面的示例代码中,我们定义了一个学生类和一个课程类。学生类包括一个成绩数组 `courses`,由 7 门课程组成。每个成绩数组元素是 `Course` 类型的实例,包括课程名称和成绩两个属性。同时,我们还定义了一个友元函数 `sortScores`,用于对成绩数组进行排序并输出排好序的成绩。
下面是定义课程类和输出各科课程的课程名称和老师名称的示例代码:
```c
#include <iostream>
#include <string>
class Course {
std::string name;
std::string teacher;
public:
Course(std::string n, std::string t) : name(n), teacher(t) {}
friend class Student;
};
class Student {
Course courses[7];
public:
void setCourse(int i, Course c) { courses[i] = c; }
friend void printCourses(Student s);
};
void printCourses(Student s) {
std::cout << "Courses:\n";
for (int i = 0; i < 7; i++) {
std::cout << s.courses[i].name << " (teacher: " << s.courses[i].teacher << ")\n";
}
}
```
在上面的示例代码中,我们定义了一个课程类和一个学生类。每个课程对象由课程名称和老师名称两个属性组成。学生类包括一个课程对象数组 `courses`,由 7 门科组成。同时,我们还定义了一个友元函数 `printCourses`,用于输出各科课程的课程名称和老师名称。
希望这份代码能够帮助你。如果你还有其他问题,请随时提出。
阅读全文
相关推荐
















