请高手帮我看看两道C++实验题

来源:百度知道 编辑:UC知道 时间:2024/06/27 15:35:18
第一个实验
1. 定义一个圆类,计算圆的面积和周长。
要求:分别用成员函数和友元函数来求圆的面积和周长。
2.定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。
要求:
(1使用成员函数实现对数据的输入、输出
(2使用构造函数和析构函数实现对数据的输入、输出。
3.定义日期类型Date。要求有以下面成员:
(1可以设置日期;
(2日期加一天操作;
(3输出函数,输出格式为"XXXX年XX月XX日"。
第2个实验
1. 编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类数据操作类teacher的基类。
2.编写一个程序计算出球、圆柱和圆锥的表面积和体积。
要求:
(1定义一个基类圆,至少含有一个数据成员半径;
(2定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。
(3定义主函数,求球、圆柱、圆锥的和体积。

第2实验的第2题
#include <iostream.h>
#include <string.h>
#include <math.h>
const float PI=3.1415926;
class circle //基类圆
{
public:
circle(float r){R=r;}
protected:
float R;
};
class ball:public circle //球类
{
public:
ball(float r):circle(r){}
void com_surface(){surface=4*PI*R*R;}
void com_volume(){volume=4*PI*R*R*R/3;}
float get_surface(){return surface;}
float get_volume(){return volume;}
private:
float surface;
float volume;
};
class taper:public circle // 圆锥类
{
public:
taper(float r,float bR):circle(r)
{ brad=bR; }
void com_surface(){surface=PI*brad*R+PI*brad*brad;}
void com_volume(){volume=PI*brad*brad*pow(R*R-brad*brad,0.5)/3;}
float get_surface(){return surface;}
float get_volume(){return volume;}

private:
float brad; //圆锥底圆半径
float surface;