资源描述
青 岛 理 工 大 学
课程实验报告
课程名称
C++面向对象程序设计
班级
软件 103
实验日期
2011.11.07
姓名
刘起耀
学号
201007225
实验成绩
实验名称
继承与派生
实
验
目
的
及
要
求
实验内容为《<C++面向对象程序设计>实验指导及习题解析》中实验一至十一的内容,实验十二、实验十三为选做的内容。电子稿的内容要求包括上述所有上机内容,第十五周,由各班班长统一刻盘提交给任课老师,每名学生一个文件夹,文件夹按“学号_学生姓名”进行命名,每个文件夹内又包括五个子文件夹,分别为“实验1”、“实验2”、…. “实验5”,每个实验中的内容不要进行压缩。
实
验
环
境
Visual C++6.0
Windows 7(64位)
实
验
内
容
1.编写一个学生和教师数据的输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。
要求:将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类。
2.设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类的派生,要求输入一个圆桌的高度、面积和颜色等数据。
算
法
描
述
及
实
验
步
骤
1. x.setperson();建立人类
x.setstu();建立学生类
y.settea();建立老师类
x.getstu();输出学生类
y.gettea();输出老师类
2. a.setrou();建立圆桌类
a.getrou();输出圆桌类
settab();建立桌子类
setcir();建立圆类
调
试
过
程
及
实
验
结
果
1.
调试过程很顺利~先创建的学生、然后创建老师,成功!
2.
输入半径、高度、颜色并输出。成功!
总
结
太麻烦啊太麻烦!
附
录
1.
#include<iostream>
#include<string>
using namespace std;
class person //构造 人 的类
{
public:
void setperson();
// person(string a,string b);
void getperson();
protected:
string mark;
string name;
};
void person::setperson()
{
string a,b;
cout<<"请输入要创建人的名字:\n";
cin>>a;
name=a;
cout<<"请输入要创建人的编号:\n";
cin>>b;
mark=b;
}/*
person::person(string a,string b)
{
mark=a;
name=b;
}*/
void person::getperson()
{
cout<<"编号:"<<mark<<",姓名:"<<name<<"。\n";
}
class student:public person //学生派生类
{
public:
void setstu();
// student(string a,string b,int c,int d);
void getstu();
private:
int classnumber;
int record;
};
void student::setstu()
{
int a,b;
cout<<"请输入学生班级:\n";
cin>>a;
classnumber=a;
cout<<"请输入学生成绩:\n";
cin>>b;
record=b;
}/*
student::student(string a,string b,int c,int d):person(a,b)
{
mark=a;
name=b;
classnumber=c;
record=d;
}*/
void student::getstu()
{
cout<<"编号:"<<mark<<"\n姓名:"<<name<<"\n班级:"<<classnumber<<"\n成绩:"<<record<<"\n\n";
}
class teacher:public person //老师派生类
{
public:
void settea();
// teacher(string a,string b,string c,string d);
void gettea();
private:
string called;
string section;
};
void teacher::settea()
{
string a,b;
cout<<"请输入教师职称:\n";
cin>>a;
called=a;
cout<<"请输入教师部门:\n";
cin>>b;
section=b;
}/*
teacher::teacher(string a,string b,string c,string d):person(a,b)
{
mark=a;
name=b;
called=c;
section=d;
}*/
void teacher::gettea()
{
cout<<"编号:"<<mark<<"\n姓名:"<<name<<"\n职称:"<<called<<"\n部门:"<<section<<"\n\n";
}
int main()
{
student x;
teacher y;
cout<<"创建学生\n";
x.setperson();
x.setstu();
cout<<"\n创建老师\n";
y.setperson();
y.settea();
x.getstu();
y.gettea();
return 0;
}
#include<iostream>
#include<string>
const double PI=3.14;
using namespace std;
class circle //圆
{
public:
void setcir();
protected:
double r;
double area;
};
void circle::setcir()
{
cout<<"请输入圆的半径:\n";
cin>>r;
area=PI*r*r;
}
class table //桌子
{
public:
void settab();
protected:
int tall;
string color;
};
void table::settab()
{
cout<<"请输入桌子的告诉:\n";
cin>>tall;
cout<<"请输入桌子颜色:\n";
cin>>color;
}
class roundtable:public circle,public table//圆桌
{
public:
void setrou();
void getrou();
};
void roundtable::setrou()
{
cout<<"请输入圆桌的半径:\n";
cin>>r;
area=PI*r*r;
cout<<"请输入圆桌的高度:\n";
cin>>tall;
cout<<"请输入圆桌颜色:\n";
cin>>color;
}
void roundtable::getrou()
{
cout<<"圆桌的面积为:"<<area<<"。\n圆桌的颜色为:"<<color<<"。\n圆桌的高度为:"<<tall<<"。\n";
}
int main()
{
roundtable a;
a.setrou();
a.getrou();
return 0;
}
6
展开阅读全文