//第一题,后附测试结果
#include
#include
#include
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<<"请输入姓名:"< cin>>name; } void person::in_id() { cout<<"请输入编号:"< cin>>id; } void person::ou_nm() { cout<<"姓名为:"< } void person::ou_id() { cout<<"编号为:"< } void student::in_clsid() { cout<<"请输入学生班级:"< cin>>cls_id; } void student::in_sc() { cout<<"请输入学生分数:"< cin>>score; } void student::ou_clsid() { cout<<"学生班级为:"< } void student::ou_sc() { cout<<"学生分数为:"< } void teacher::in_zc() { cout<<"请输入教师职称:"< cin>>zc; } void teacher::in_dp() { cout<<"请输入教师部门:"< cin>>depart; } void teacher::ou_zc() { cout<<"教师职称为:"< } void teacher::ou_dp() { cout<<"教师部门为:"< } int main() { student stu; cout<<"开始输入学生信息:"< stu.in_nm(); stu.in_id(); stu.in_clsid(); stu.in_sc(); cout<<"显示学生信息:"< stu.ou_nm(); stu.ou_id(); stu.ou_clsid(); stu.ou_sc(); cout< teacher tch; cout<<"开始输入教师信息:"< tch.in_nm(); tch.in_id(); tch.in_zc(); tch.in_dp(); cout<<"显示教师信息:"< tch.ou_nm(); tch.ou_id(); tch.ou_zc(); tch.ou_dp(); cout< system("pause"); return 0; } 第二题: #include #include #include using namespace std; //常量圆周率 const double PI=3.14159; class circle { public: void in_rad() { cout<<"输入半径:"< cin>>rad; } protected: float rad; //半径 }; class ball:public circle { public: void in_rad() { cout<<"输入球半径:"< 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<<"球的表面积为:"< } void out_vol() { cout<<"球的体积为:"< } private: double sur; //表面积 double vol; //体积 }; //圆柱 class column:public circle { public: void in_rad() { cout<<"输入圆柱半径:"< cin>>rad; } void in_height() { cout<<"输入圆柱高:"< 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<<"圆柱的表面积为:"< } void out_vol() { cout<<"圆柱的体积为:"< } private: double sur; //表面积 double vol; //体积 double height; //高 }; //圆锥 class cone:public circle { public: void in_rad() { cout<<"输入圆锥半径:"< cin>>rad; } void in_height() { cout<<"输入圆锥高:"< 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<<"圆锥的表面积为:"< } void out_vol() { cout<<"圆锥的体积为:"< } private: double sur; //表面积 double vol; //体积 double height; }; int main() { cout<<"球:"< ball oball; oball.in_rad(); oball.calc_sur(); oball.calc_vol(); oball.out_sur(); oball.out_vol(); cout< cout<<"圆柱:"< column ocol; ocol.in_rad(); ocol.in_height(); ocol.calc_sur(); ocol.calc_vol(); ocol.out_sur(); ocol.out_vol(); cout< cout<<"圆锥:"< cone ocone; ocone.in_rad(); ocone.in_height(); ocone.calc_sur(); ocone.calc_vol(); ocone.out_sur(); ocone.out_vol(); cout< system("pause"); return 0; }
兄弟 你这是课设吧??
很简单的 自己做吧 仔细看一下课本 关于类的知识
刚学编程的人 可能觉得难 但你如果不去思考 是领悟不到编程的诀窍的
呵呵... 楼上的说得好, 我来详细说说.
是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网上有许多产品团购,便宜有口碑