C++上机实验报告 实验三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++上机实验报告实验三
一、实验目的
本次 C++上机实验的目的是通过实际操作,深入理解和掌握 C++
编程中的一些重要概念和技术,包括类与对象、构造函数与析构函数、成员函数的定义与使用等,提高编程能力和问题解决能力。
二、实验环境
操作系统:Windows 10
编程软件:Visual Studio 2019
三、实验内容
1、定义一个学生类(Student),包含学生的姓名(name)、学号(id)、年龄(age)和成绩(score)等私有数据成员。
2、为学生类定义构造函数和析构函数,在构造函数中初始化学生
的信息,在析构函数中输出学生对象被销毁的提示信息。
3、定义成员函数用于设置和获取学生的信息。
4、在主函数中创建学生对象,调用成员函数进行信息的设置和获取,并输出学生的信息。
四、实验步骤
1、首先,打开 Visual Studio 2019 编程软件,创建一个新的 C++项目。
2、在项目中创建一个名为“Studenth”的头文件,用于定义学生类。
```cpp
include <iostream>
include <string>
class Student {
private:
std::string name;
int id;
int age;
double score;
public:
Student(std::string n, int i, int a, double s) {
name = n;
id = i;
age = a;
score = s;
std::cout <<"创建学生对象" << std::endl;}
~Student(){
std::cout <<"销毁学生对象" << std::endl;}
void setName(std::string n) {
name = n;
}
std::string getName(){
return name;
}
void setId(int i) {
id = i;
}
int getId(){
return id;
}
void setAge(int a) {
age = a;
}
int getAge(){
return age;
}
void setScore(double s) {
score = s;
}
double getScore(){
return score;
}
};
```
3、在项目中创建一个名为“maincpp”的源文件,用于实现主函数。
```cpp
include "Studenth"
int main(){
Student s1("张三", 1001, 18, 905);
std::cout <<"学生姓名:"<< s1getName()<< std::endl;
std::cout <<"学生学号:"<< s1getId()<< std::endl;
std::cout <<"学生年龄:"<< s1getAge()<< std::endl;
std::cout <<"学生成绩:"<< s1getScore()<< std::endl;
s1setName("李四");
s1setAge(20);
s1setScore(850);
std::cout <<"修改后的学生姓名:"<< s1getName()<<std::endl;
std::cout <<"修改后的学生年龄:"<< s1getAge()<< std::endl;
std::cout <<"修改后的学生成绩:"<< s1getScore()<<std::endl;
return 0;
}
```
4、编译并运行程序,查看输出结果。
五、实验结果
程序运行后,输出了创建学生对象的提示信息,以及初始和修改后
的学生信息。
同时,在程序结束时,输出了销毁学生对象的提示信息。
六、实验分析
1、在学生类的定义中,使用了私有数据成员来保护学生的信息,
只有通过公共的成员函数才能进行访问和修改,保证了数据的封装性
和安全性。
2、构造函数用于在创建对象时对数据成员进行初始化,析构函数
用于在对象销毁时进行一些清理工作或输出提示信息。
3、通过成员函数实现了对学生信息的设置和获取,使得代码的逻
辑更加清晰和易于维护。
七、遇到的问题及解决方法
1、在编写代码时,由于疏忽,将成员函数的返回值类型写错,导
致编译错误。
通过仔细检查代码,修改了错误的返回值类型,解决了
问题。
2、在调用成员函数设置学生信息时,忘记了传递正确的参数,导
致运行结果不正确。
通过检查参数的传递,确保了参数的正确性,得
到了预期的结果。
八、实验总结
通过本次实验,我更加深入地理解了 C++中类与对象的概念,掌
握了构造函数、析构函数和成员函数的使用方法。
在实验过程中,遇
到了一些问题,但通过仔细检查代码和调试,最终解决了问题,提高了自己的编程能力和问题解决能力。
同时,也认识到在编程过程中要认真仔细,避免因疏忽而导致错误。
在今后的学习中,我将继续加强对 C++的学习和实践,不断提高自己的编程水平。