
C++高分题目求助!!!(解答好的话可以再加分)
*2.编写一个程序计算出球、圆柱和圆锥的表面积和体积。
要求:
(1)定义一个基类圆,至少含有一个数据成员半径;
(2)定义基类的派生类球、圆柱、圆锥,都含有求表面积和体积的成员函数和输出函数。 展开
//第一题,后附测试结果
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
class person
{
public:
void in_nm();
void in_id();
void ou_nm();
void ou_id();
private:
string id;
string name;
};
class student:public person
{
public:
void in_clsid();
void in_sc();
void ou_clsid();
void ou_sc();
private:
string cls_id;
float score;
};
class teacher:public person
{
public:
void in_zc();
void in_dp();
void ou_zc();
void ou_dp();
private:
string zc;
string depart;
};
void person::in_nm()
{
cout<<"请输入姓名:"<<endl;
cin>>name;
}
void person::in_id()
{
cout<<"请输入编号:"<<endl;
cin>>id;
}
void person::ou_nm()
{
cout<<"姓名为:"<<name<<endl;
}
void person::ou_id()
{
cout<<"编号为:"<<id<<endl;
}
void student::in_clsid()
{
cout<<"请输入学生班级:"<<endl;
cin>>cls_id;
}
void student::in_sc()
{
cout<<"请输入学生分数:"<<endl;
cin>>score;
}
void student::ou_clsid()
{
cout<<"学生班级为:"<<cls_id<<endl;
}
void student::ou_sc()
{
cout<<"学生分数为:"<<score<<endl;
}
void teacher::in_zc()
{
cout<<"请输入教师职称:"<<endl;
cin>>zc;
}
void teacher::in_dp()
{
cout<<"请输入教师部门:"<<endl;
cin>>depart;
}
void teacher::ou_zc()
{
cout<<"教师职称为:"<<zc<<endl;
}
void teacher::ou_dp()
{
cout<<"教师部门为:"<<depart<<endl;
}
int main()
{
student stu;
cout<<"开始输入学生信息:"<<endl;
stu.in_nm();
stu.in_id();
stu.in_clsid();
stu.in_sc();
cout<<"显示学生信息:"<<endl;
stu.ou_nm();
stu.ou_id();
stu.ou_clsid();
stu.ou_sc();
cout<<endl;
teacher tch;
cout<<"开始输入教师信息:"<<endl;
tch.in_nm();
tch.in_id();
tch.in_zc();
tch.in_dp();
cout<<"显示教师信息:"<<endl;
tch.ou_nm();
tch.ou_id();
tch.ou_zc();
tch.ou_dp();
cout<<endl;
system("pause");
return 0;
}
第二题:
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
//常量圆周率
const double PI=3.14159;
class circle
{
public:
void in_rad()
{
cout<<"输入半径:"<<endl;
cin>>rad;
}
protected:
float rad; //半径
};
class ball:public circle
{
public:
void in_rad()
{
cout<<"输入球半径:"<<endl;
cin>>rad;
}
void calc_sur()
{
sur=4*PI*rad*rad;
}
void calc_vol()
{
vol=4/3.0*PI*rad*rad*rad;
}
void out_sur()
{
cout<<"球的表面积为:"<<sur<<endl;
}
void out_vol()
{
cout<<"球的体积为:"<<vol<<endl;
}
private:
double sur; //表面积
double vol; //体积
};
//圆柱
class column:public circle
{
public:
void in_rad()
{
cout<<"输入圆柱半径:"<<endl;
cin>>rad;
}
void in_height()
{
cout<<"输入圆柱高:"<<endl;
cin>>height;
}
void calc_sur()
{
sur=PI*rad*rad+2*PI*rad*height;
}
void calc_vol()
{
vol=PI*rad*rad*height;
}
void out_sur()
{
cout<<"圆柱的表面积为:"<<sur<<endl;
}
void out_vol()
{
cout<<"圆柱的体积为:"<<vol<<endl;
}
private:
double sur; //表面积
double vol; //体积
double height; //高
};
//圆锥
class cone:public circle
{
public:
void in_rad()
{
cout<<"输入圆锥半径:"<<endl;
cin>>rad;
}
void in_height()
{
cout<<"输入圆锥高:"<<endl;
cin>>height;
}
void calc_sur()
{
sur=0.5*PI*rad*rad*2*PI*rad*height;
}
void calc_vol()
{
vol=1/3.0*PI*rad*rad*height;
}
void out_sur()
{
cout<<"圆锥的表面积为:"<<sur<<endl;
}
void out_vol()
{
cout<<"圆锥的体积为:"<<vol<<endl;
}
private:
double sur; //表面积
double vol; //体积
double height;
};
int main()
{
cout<<"球:"<<endl;
ball oball;
oball.in_rad();
oball.calc_sur();
oball.calc_vol();
oball.out_sur();
oball.out_vol();
cout<<endl;
cout<<"圆柱:"<<endl;
column ocol;
ocol.in_rad();
ocol.in_height();
ocol.calc_sur();
ocol.calc_vol();
ocol.out_sur();
ocol.out_vol();
cout<<endl;
cout<<"圆锥:"<<endl;
cone ocone;
ocone.in_rad();
ocone.in_height();
ocone.calc_sur();
ocone.calc_vol();
ocone.out_sur();
ocone.out_vol();
cout<<endl;
system("pause");
return 0;
}
很简单的 自己做吧 仔细看一下课本 关于类的知识
刚学编程的人 可能觉得难 但你如果不去思考 是领悟不到编程的诀窍的
2011-05-04
是strcat函数的问题. strcat函数可以连接两个字符串, 传入两个参数, 是指向要连接的两个字符串的指针.
但是它的第一个参数必须是一个字符串数组头地址, 即是一个分配了内存的, 拥有一定空间的指针. 但是f()无参数时默认建立的两个指针*a和*b都是指针变量, 没有自己的空间, 所以会发生内存错误.
用分配了20个字节空间的公共变量 str(这是字符串数组首地址指针) 代替没有分配内存的指针a就可以完成了! 请看程序:
#include "iostream.h"
#include "string.h"
char *f( char a[20]="Hello,", char b[]="world" );
char str[20];
int main()
{
cout << f() << endl;
cout << f("Hi,") << endl;
cout << f("Hi,","friend!");
return 0;
}
char *f(char a[], char b[])
{
strcpy( str, a );
strcat(str, b);
return str;
}
//原本还有第二种解法, 仔细想过后发觉第二种改法不行, 确实会导致内存泄漏, 所以删去了.
另外,团IDC网上有许多产品团购,便宜有口碑