c++学生成绩的快速录入(构造函数)
时间: 2023-04-09 14:01:02 浏览: 155
我可以回答这个问题。构造函数是一种特殊的函数,用于在创建对象时初始化对象的成员变量。在C语言中,可以使用结构体来表示学生成绩,然后定义一个构造函数来快速录入学生成绩。例如:
```
typedef struct {
char name[20];
int math;
int english;
int science;
} Student;
void initStudent(Student *s, char *name, int math, int english, int science) {
strcpy(s->name, name);
s->math = math;
s->english = english;
s->science = science;
}
```
这个构造函数接受一个指向Student结构体的指针,以及学生的姓名、数学、英语和科学成绩作为参数,然后将这些值赋给结构体的成员变量。这样,我们就可以快速地录入学生成绩了。
相关问题
用C++编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出。提示: (1)学生类(Student),包含学生的姓名 name 和成绩 grade,以及构造函数、setname ()、setgrade0、getname 0、getgrade 0五个成员函数。 (2)主函数中定义学生类对象数组(例如:Student s[5];),依次录入每个学生的信息,然后排序输出。
以下是一个简单的实现,仅供参考:
```c++
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
class Student {
private:
string name;
int grade;
public:
Student() {}
Student(string _name, int _grade) {
name = _name;
grade = _grade;
}
void setname(string _name) {
name = _name;
}
void setgrade(int _grade) {
grade = _grade;
}
string getname() {
return name;
}
int getgrade() {
return grade;
}
};
bool cmp(Student a, Student b) {
return a.getgrade() > b.getgrade();
}
int main() {
Student s[5];
for (int i = 0; i < 5; i++) {
string name;
int grade;
cout << "请输入第" << i+1 << "个学生的姓名和成绩:" << endl;
cin >> name >> grade;
s[i] = Student(name, grade);
}
sort(s, s+5, cmp);
cout << "按成绩从高到低排序输出:" << endl;
for (int i = 0; i < 5; i++) {
cout << s[i].getname() << " " << s[i].getgrade() << endl;
}
return 0;
}
```
程序首先定义了一个 `Student` 类,包含了学生的姓名和成绩以及对应的 set 和 get 函数。然后在主函数中定义了一个 `Student` 对象数组,循环录入每个学生的信息并存入数组中。最后通过 `sort` 函数对数组进行排序,按成绩从高到低排列,并输出每个学生的姓名和成绩。
编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出。 提示: (1)学生类(Student),包含学生的姓名name和成绩grade,以及构造函数、setnane ()、setarade() gethame ()、geterade 0五个成员函数。 (2)主函数中定义学生类对象数组(例如:Student s[5];),依次录入每个学生的信息,然后排序输出。
以下是一个示例程序,通过输入学生姓名和成绩,使用冒泡排序法将学生成绩从高到低排列并输出:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string name;
int grade;
public:
Student() {
name = "";
grade = 0;
}
Student(string n, int g) {
name = n;
grade = g;
}
void setName(string n) {
name = n;
}
void setGrade(int g) {
grade = g;
}
string getName() {
return name;
}
int getGrade() {
return grade;
}
};
void bubbleSort(Student s[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (s[j].getGrade() < s[j + 1].getGrade()) {
Student temp = s[j];
s[j] = s[j + 1];
s[j + 1] = temp;
}
}
}
}
int main() {
Student s[5];
int grade;
string name;
// 输入学生信息
for (int i = 0; i < 5; i++) {
cout << "请输入第" << i + 1 << "个学生的姓名:";
cin >> name;
cout << "请输入第" << i + 1 << "个学生的成绩:";
cin >> grade;
s[i].setName(name);
s[i].setGrade(grade);
}
// 按成绩从高到低排序
bubbleSort(s, 5);
// 输出学生成绩
cout << "学生成绩如下:" << endl;
for (int i = 0; i < 5; i++) {
cout << s[i].getName() << " " << s[i].getGrade() << endl;
}
return 0;
}
```
在上述代码中,我们首先定义了一个`Student`类,其中包含了学生的姓名和成绩,以及构造函数、set和get成员函数。然后在主函数中定义了一个学生类对象数组`s`,循环输入学生信息,并使用冒泡排序算法将学生成绩从高到低排序。最后按顺序输出学生成绩。
阅读全文