C++|作业训练(2)

问题背景

在学习面向对象的程序设计(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;
}
};