1、 . . . . 太原工业学院计算机工程系 实 验 报 告 课程名称 C++程序设计 班级 1320541 实验日期 2014年11月3日 姓 名 创 学号 37 实验成绩 实验名称 C++面向对象程序设计 实 验 目 的 与 要 求 一、实验目的 1、 理解继承的含义,掌握派生类的定义方法和实现; 2、 理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员; 3、 理解保护成员在继承中的作用,能够在
2、适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员 实验环境 VC++6.0集成环境 实 验 容 二、实验容 1. 编写一个学生和教师相关数据输入和显示程序。学生数据有编号、、班级和成绩,教师数据有编号、、职称和部门。 要求:将编号、与其输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。 2. 编写程序计算出球、圆柱和圆锥的表面积和体积。 要求: (1)定义一个基类圆,至少含有一个数据成员:半径; (2)定义基类的派生类:球、圆柱、
3、圆锥,都含有求表面积和体积的成员函数和输出函数。 (3)定义主函数,求球、圆柱、圆锥的和体积。 算 法 描 述 与 实 验 步 骤 ① 首先定义一个基类person ② 派生类student和teacher ③ 实现客户信息的手动输入 ④ 实现客户输出信息的需求 ⑤ 实现客户的循环利用 ⑥ 首先定义一个基类circle ⑦ 派生类cylinder和cone ⑧ 构造函数与调用有关函数 ⑨ 定义求体积与面积的函数 调 试 过 程 与 实 验 结 果
4、调试过程中出现较少的语法错误,主要是以与友元的使用不熟练等 实验一的调试结果:学生与教师的信息输入: 学生与教师信息的输出:(有清屏的实现) 实验二的调试结果: 总 结 1) 仔细学习C++语法; 2) 实验前预先编写好自己的程序; 3) 注意对C++中英文单词的记忆与书写; 4) 注意标点符号均为英文式的; 5) 注意空格的位置; 6) 注意一句话完毕时,是以分号完毕; 7) 注意主函数只有一个; 8) 注意流的符号; 9) 注意类的使用方法; 10) 注
5、意类的继承与派生的 11) 注意构造函数的使用; 12) 注意头文件的关联; 13) 注意循环的使用 (对实验结果进行分析,实验心得体会与改进意见) 附 录 附 录
6、 附 录 附 录
7、 实验的源程序: 实验一: person1.h class person { private: char number[20]; char name[20]; public: void set(); void display(); }; class student:public person { private: char classname[20]; double score; public: void set1(); void display1(); }; class teacher:public p
8、erson
{
private:
char occupation[20];
char department[20];
public:
void set2();
void display2();
};
实验一: person1.cpp
#include "person1.h"
#include
9、t<<"请输入name:\n";
cin>>name;
}
void person::display()
{
cout<<"编号:"<
10、play();
cout<<"学生的班级名:"< 11、师的部门:"< 12、{
cout<<"请问你是否需要输入学生信息?(y/n)\n";
cin>>a;
if(a=='y'||a=='Y')
{
cout<<"请问你要输入几个学生的信息(n不大于1000人)";
cin>>b;
for(int i=0;i>a;
if(a=='y'||a=='Y')
{
cout 13、<<"请问你要输入几个(n)教师的信息(n不大于1000人)";
cin>>c;
for(int i=0;i 14、~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
for(int i=0;i 15、<"请问你是否继续重新返回操作?(y/n)\n";
cin>>d;
if(d=='n'||d=='N')break;
}
return 0;
}
实验二: circle1.h
class circle
{
protected:
double radius;
public:
circle(double r);
virtual ~circle();
};
class globe:public circle
{
public:
globe(double r):circle(r)
{
radius=r;
}
void 16、area();
void volume();
void display();
};
class cylinder:public circle
{
private:
double height;
public:
cylinder(double r,double h):circle(r)
{
height=h;
}
void area1();
void volume1();
void display1();
};
class cone:public circle
{
private:
double height;
public:
17、 cone(double r,double h):circle(r)
{
height=h;
}
void area2();
void volume2();
void display2();
};
实验二: circle1.cpp
#define pi 3.1415926 //定义π
#include "circle1.h"
#include 18、~circle()
{
}
void globe::area()
{
cout<<"则球的表面积:"< 19、i*radius*radius+2*pi*radius*height< 20、ius*radius+height*height)<






