问题背景
在学习面向对象的程序设计(C++语言描述)过程中,为了巩固对类的运用的学习成果,在VS2022平台上实现类的各项操作。 有以下三个题目:
(1):实现一个Student(学生)类,要求在类中设置:m_Name, m_IdNo,m_Score三个成员变量分别表示学生的姓名, 学号, 成绩,设置m_SetInfo函数对这三个成员变量赋值,设置m_DisplayInfo函数显示学生的姓名, 学号, 成绩。在main函数中构造一个Student类的对象,调用成员函数输入学生的姓名,学号,成绩,并显示这些信息。
(2):在第一题的基础上,重载m_SetInfo函数,一个函数有三个输入形参分别表示姓名,学号,成绩赋值给三个成员函数。另一个函数没有输入参数直接在这个函数中从键盘输入到成员函数,并在main函数分别使用这两个重载函数。
(3):在前面两题的基础上首先从键盘输入学生人数,根据学生人数构造一个Student类对象的数组,然后实现输入和显示信息。 ## 操作步骤
1.导入标准库头文件。
2.创建一个student类。
3.在类中写好变量的定义,以及成员函数的声明。
4.成员函数在类体内实现。
5.写主函数,定义类的对象,调用成员函数。
6.将类放入Student.h的头文件中。
7.定义student da[100];的对象数组。
8.for循环实现数组循环输入输出。
代码
问题1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| #include<iostream> #include<string> using namespace std; class student { public: string m_Name; int m_IdNo; float m_Score; void m_SetInfo(string name,int idno, float score) { m_Name = name; m_IdNo = idno; m_Score = score; } void m_DisplayInfo() { cout << "名字:" << m_Name << endl; cout << "学号:" << m_IdNo << endl; cout << "成绩:" << m_Score << endl; }
};
int main() { string na; int id; float sc; student s; cout << "请输入姓名、学号、成绩" << endl; cin >> na >> id >> sc; s.m_SetInfo(na, id, sc); s.m_DisplayInfo();
}
|
问题2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| #include<iostream> #include<string> using namespace std; class student { public: string m_Name, m_Name1; int m_IdNo, m_IdNo1; float m_Score, m_Score1; void m_SetInfo(string name, int idno, float score) { m_Name = name; m_IdNo = idno; m_Score = score; } string get_name() { cin>> m_Name1; return m_Name1; } int get_idno() { cin>> m_IdNo1; return m_IdNo1; } float get_score() { cin>> m_Score1; return m_Score1; } void m_DisplayInfo() { cout << "名字:" << m_Name << endl; cout << "学号:" << m_IdNo << endl; cout << "成绩:" << m_Score << endl; }
};
int main() { string na; int id; float sc; student s; cout << "第一种:三个输入形参表示姓名、学号、成绩" << endl; cout << "请输入姓名、学号、成绩" << endl; cin >> na >> id >> sc; s.m_SetInfo(na, id, sc); s.m_DisplayInfo(); cout << "第二种:直接在键盘中输入到成员函数" << endl; cout << "姓名:" << endl; s.get_name(); cout << "学号:" << endl; s.get_idno(); cout << "成绩:" << endl; s.get_score();
}
|
问题3
.cpp文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| #include"Student.h"
student da[100];
int main() { int count = 0; string na; int id; float sc; student s; cout << "请输入要键入的学生的个数" << endl; cin >> count; for (int i = 0;i < count;i++) { cout << "请输入第" << i + 1 << "个学员的姓名、学号和成绩:" << endl; da[i].get_name(); da[i].get_idno(); da[i].get_score(); } for (int i = 0;i < count;i++) { da[i].m_DisplayInfo(); } system("pause"); return 0;
}
|
.h头文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include<iostream> #include<string> using namespace std; class student { public: string m_Name; int m_IdNo; float m_Score; string get_name() { cin >> m_Name; return m_Name; } int get_idno() { cin >> m_IdNo; return m_IdNo; } float get_score() { cin >> m_Score; return m_Score; } void m_DisplayInfo() { cout << "名字:" << m_Name << endl; cout << "学号:" << m_IdNo << endl; cout << "成绩:" << m_Score << endl; } };
|