1、 . . . . 太原工业学院计算机工程系实 验 报 告课程名称C+程序设计班级1320541实验日期2014年11月3日姓 名创学号37实验成绩实验名称C+面向对象程序设计实验目的与要求一、实验目的1、 理解继承的含义,掌握派生类的定义方法和实现;2、 理解公有继承下基类成员对派生类成员和派生类对象的可见性,能正确地访问继承层次中的各种类成员;3、 理解保护成员在继承中的作用,能够在适当的时候选择使用保护成员以便派生类成员可以访问基类的部分非公开的成员实验环境VC+6.0集成环境 实 验 容二、实验容 1. 编写一个学生和教师相关数据输入和显示程序。学生数据有编号、班级和成绩,教师数据有编号
2、、职称和部门。 要求:将编号、与其输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。 2. 编写程序计算出球、圆柱和圆锥的表面积和体积。要求:(1)定义一个基类圆,至少含有一个数据成员:半径;(2)定义基类的派生类:球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。(3)定义主函数,求球、圆柱、圆锥的和体积。算法描述与 实 验 步 骤 首先定义一个基类person 派生类student和teacher 实现客户信息的手动输入 实现客户输出信息的需求 实现客户的循环利用 首先定义一个基类circle 派生类cylinder和co
3、ne 构造函数与调用有关函数 定义求体积与面积的函数 调试过程与实验结果调试过程中出现较少的语法错误,主要是以与友元的使用不熟练等实验一的调试结果:学生与教师的信息输入:学生与教师信息的输出:(有清屏的实现)实验二的调试结果:总结1) 仔细学习C+语法;2) 实验前预先编写好自己的程序;3) 注意对C+中英文单词的记忆与书写;4) 注意标点符号均为英文式的;5) 注意空格的位置;6) 注意一句话完毕时,是以分号完毕;7) 注意主函数只有一个;8) 注意流的符号;9) 注意类的使用方法;10) 注意类的继承与派生的11) 注意构造函数的使用;12) 注意头文件的关联;13) 注意循环的使用 (对
4、实验结果进行分析,实验心得体会与改进意见)附录附录附录 附 录 实验的源程序:实验一: person1.h class person private:char number20;char name20;public:void set();void display();class student:public personprivate:char classname20;double score;public:void set1();void display1();class teacher:public personprivate:char occupation20;char departme
5、nt20;public:void set2();void display2();实验一: person1.cpp#include person1.h#include#include#includeusing namespace std;void person:set()coutnumber;coutname;void person:display()cout编号:setw(10)number :setw(10)nameendl;void student:set1()set();coutclassname;coutscore;void student:display1()display();co
6、ut学生的班级名:setw(10)classname 学生的成绩:setw(10)scoreendl;void teacher:set2()set();coutoccupation;coutdepartment;void teacher:display2()display();cout教师的职业名:setw(10)occupation 教师的部门:setw(10)departmentendl; 实验一: person.cpp#include person1.h#include#include#define max 1000#includeusing namespace std;int main
7、()system(color 1b);char a,d;int b;int c;student studmax;teacher teacmax;while(1)couta;if(a=y|a=Y)coutb;for(int i=0;ib;i+)cout请输入第i+1的信息n;studi.set1();couta;if(a=y|a=Y)coutc;for(int i=0;ic;i+)cout请输入第i+1教师的信息:n;teaci.set2();coutn;system(cls);couta;if(a=y|a=Y)coutn;for(int i=0;ib;i+)cout输出第i+1位学生的信息:n
8、;studi.display1();for( i=0;ic;i+)cout输出第i+1位教师的信息:n;teaci.display2();coutn;coutd;if(d=n|d=N)break;return 0;实验二: circle1.h class circle protected:double radius;public:circle(double r);virtual circle();class globe:public circlepublic:globe(double r):circle(r)radius=r;void area();void volume();void dis
9、play();class cylinder:public circleprivate:double height;public:cylinder(double r,double h):circle(r)height=h;void area1();void volume1();void display1();class cone:public circleprivate:double height;public:cone(double r,double h):circle(r)height=h;void area2();void volume2();void display2();实验二: ci
10、rcle1.cpp#define pi 3.1415926 /定义#include circle1.h#include#includeusing namespace std;circle:circle(double r)radius=r;circle:circle()void globe:area()cout则球的表面积:pi*radius*radiusendl;void globe:volume()cout则球的体积:(4*pi*radius*radius*radius)/3endl;void globe:display()cout球的半径:radiusendl;area();volume(
11、);void cylinder:area1()cout则圆柱的面积:2*pi*radius*radius+2*pi*radius*heightendl;void cylinder:volume1()cout则圆柱的体积:pi*radius*radius*heightendl;void cylinder:display1() cout圆柱的半径:radius ;圆柱的高:heightendl;area1();volume1();void cone:area2()cout则圆锥体的面积:pi*radius*sqrt(radius*radius+height*height)endl;/利用sqat函
12、数void cone:volume2()cout则圆锥体的体积:(pi*radius*radius*height)/3;void cone:display2()cout圆锥体的半径:radius ;圆锥体的高:heightendl;area2();volume2();coutendl;实验二: circle.cpp#include circle1.h#includeusing namespace std;int main()globe gl(2); /球gl.display();cylinder cy(2,3); /圆柱体cy.display1();cone co(2,3); /圆锥体co.display2();return 0; (源程序清单等)7 / 7