宁夏师范学院数学与计算机科学学院《面向对象程序设计(C++)》实验报告
}*/
// ~CPU() {cout<<"析构了一个CPU!"<<endl;}
CPU_Rank GetRank( )const {return rank;}
int GetFrequency( ) const {return frequency;}
float GetVoltage( )const {return voltage;}
void SetRank(CPU_Rank r) {rank=r;}
void SetFrequency(int f) {frequency=f;}
void SetVoltage(float v) {voltage=v;}
void Run() {cout<<"CPU开始运行!"<<endl;}
void Stop() {cout<<"CPU停止运行!"<<endl;}
};
int main()
{
CPU a;
// CPU a(P6,300,2.8);
a.SetRank(P6);
a.SetFrequency(300);
a.SetVoltage(2.8l);
cout<<"Rank:"<<a.GetRank( )<<endl;
cout<<"Frequency:"<<a.GetFrequency()<<endl;
cout<<"Voltage:"<<a.GetVoltage( )<<endl;
a.Run();
a.Stop();
return 0;
}
(3)调试操作步骤如下:
①单击Build→Start Debug→Step Into命令,或按下快捷键F11,系统进入单步执行状态,程序开始运行,一个DOS窗口出现,此时Visual Studio中光标停在main()函数的入口处;
②从Debug菜单或Debug工具栏中单击Step Over.此时,光标下移,程序准备执行CPU对象的初始化;
③单击Step Into,程序准备执行CPU类的构造函数;
④连续单击Step Over,观察构造函数的执行情况.直到执行完构造函数,程序回到主函数;
⑤此时程序准备执行CPU对象的成员函数.单击Step Into,程序进入成员函数,连续单击Step Over,直到回到main()函数;
⑥继续执行程序,参照上述的方法.观察程序执行顺序.加深对类的构造函数、析构函数、成员函数的执行顺序的认识;
⑦再试试Debug菜单栏中别的菜单项,熟悉Dehug的各种方法。
【实验内容】
验证题目:验证教材第8章习题1——4
#include<iostream>
using namespace std;
class Time
{
public:
void set_time(void);
void show_time(void);
private:
int hour;
int minute;
int sec;
};
Time t;
int main()
{
t.set_time();
t.show_time();
return 0;
}
void Time:: set_time(void)
{
cin>>t.hour;
cin>>t.minute;
cin>>t.sec;
}
void Time:: show_time(void)
{
cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl;
}
设计题目:
1、定义一个长方柱类,该类有三个私有数据成员:长(length)、宽(width)、高(height);还有三个成员函数set_value(l,w,h)和cal_volume()和show_result()分别实现对长方柱长、宽、高的赋值,计算长方柱的体积,将长方柱的体积输出。
要求定义3个长方柱对象,编写程序上机调试并运行。
#include<iostream>
using namespace std;
class Box
{
public:
void set_value();
void cal_volume();
void show_result();
private:
int length;
int width;
int height;
};
int main()
{
Box b1;
b1.set_value();
b1.cal_volume();
b1.show_result();
Box b2;
b2.set_value();
b2.cal_volume();
b2.show_result();
Box b3;
b3.set_value();
b3.cal_volume();
b3.show_result();
return 0;
}
void Box::set_value()
{
cin>>length;
cin>>width;
cin>>height;
}
void Box::cal_volume()
{
(length*width*height);
}
void Box::show_result()
{
cout<<"The volume of box is"<<(length*width*height)<<endl; }
2.建立一个名为Student的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄。
还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。
编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。
#include<iostream.h>
#include <string.h>
class student
{
public:
char m_name[20];
char m_num[20];
char m_sex[5];
int m_age;
public:
student(char* name,char* num,char* sex,int age);
~student();
showstudent();
};
student::student(char* name,char* num,char* sex,int age )
{
strcpy(m_name,name);
strcpy(m_num,num);
strcpy(m_sex,sex);
this->m_age=age;
}
student::~student()
{
}
student::showstudent()
{
cout<<"学号:"<<this->m_num<<endl;
cout<<"姓名:"<<this->m_name<<endl;
cout<<"性别:"<<this->m_sex<<endl;
cout<<"年龄:"<<this->m_age<<endl;
}
void main()
{
student stu("张明","202003010115","男",18);
stu.showstudent();
}
四、分析与讨论
1、通过此次实验掌握了类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性并理解了类成员访问控制的含义,公有、私有和保护成员的区别以及具有不同访问属性的成员的访问方式;以及象成员的引用方法;
2、记下在调试过程中所发现的错误、系统给出的出错信息和对策。
分析讨论对策成功或失败的原因。