1. 定义一个点类Point,其有两个double型的私有数据成员x和y。此外还包含以下公有成员函数:

(1)构造函数,给点初始化;

(2)setPoint函数,设置点坐标值;

(3)distance函数,计算两点间的距离并返回,返回类型为double;

除此之外,需要重载运算符>>,用于输入点坐标;重载运算符<<,用于输出点坐标。输入输出格式见下面运行示例。

下面是该类的测试程序,请设计出类Point。

int main( )

{

Point a, b(9, 9);

cin>>a;

cout<<a<<endl;

cout<<b<<endl;

a.setPoint(7, 7);

cout<<"the distance of "<<a<<" and "<<b<<" is "<<a.distance(b)<<endl;

return 0;

}

当输入5 6时,输出为:

(5,6)

(9,9)

the distance of (7,7) and (9,9) is 2.82843

2. 设计Person类,其有3个private数据成员,string类型的code和name,分别表示编号和姓名;char 类型的sex,表示性别;两个public成员函数,input函数用于输入数据给数据成员,output函数用于输出数据成员的值。

在此基础上派生出Student类,其有1个private数据成员,int类型的score,表示分数;有1个public成员函数input用于输入数据给数据成员。除此需要重载<<运算符。

请编写Person和Student类,并可使用提供的main函数测试。

int main( ) {

Student s1, s2;

s1.input();

s2.input();

cout<<s1<<s2;

return 0;

}

下面是某次运行的情况,其中带下划线的为输入,其它为输出。

请输入编号 姓名 性别:101 zhang f

请输入成绩:90

请输入编号 姓名 性别:103 yuan m

请输入成绩:89

101 zhang f 90

103 yuan m 89

3.已知基类Building有3个int类型protected数据成员level、room、area;通过public继承获得2个派生类,派生类Housing有2个int类型private数据成员livingroom、bathroom;派生类Office有2个int类型private数据成员telephone、extinguisher。请设计这3个类,并编写合适的成员函数,要求使用以下main函数测试时,输出结果如下图:

int main( ) {

Building *f;

Housing hos(5,3,140,2,2);

Office ofc(2,12,500,12,2);

f=&hos;

f->show();

f=&ofc;

f->show();

return 0;

}

答案:

#include<iostream>
#include<cmath>
using namespace std; class Building
{
protected:
int level,room,area;
public:
virtual void *show(){ }
}; class Housing:public Building{
private:
int livingroom,bathroom;
public:
Housing(const int &level_, const int & room_, int area_, int livingroom_,int bathroom_){
level=level_;
room=room_;
area=area_;
livingroom=livingroom_;
bathroom=bathroom_;
}
void *show(){
cout<<"住宅楼:"<<endl;
cout<<"楼 层:"<<level<<endl;
cout<<"房间数:"<<room<<endl;
cout<<"总面积:"<<area<<endl;
cout<<"厅 数:"<<livingroom<<endl;
cout<<"浴室数:"<<bathroom<<endl<<endl;
} };
class Office:public Building{
private:
int telephone,extinguisher;
public:
Office(const int &level_, const int & room_, int area_, int telephone_,int extinguisher_){
level=level_;
room=room_;
area=area_;
telephone=telephone_;
extinguisher=extinguisher_;
}
void *show(){
cout<<"办公楼:"<<endl;
cout<<"楼 层:"<<level<<endl;
cout<<"房间数:"<<room<<endl;
cout<<"总面积:"<<area<<endl;
cout<<"电话数:"<<telephone<<endl;
cout<<"灭火器数:"<<extinguisher<<endl;
}
};
int main( ) {
Building *f;
Housing hos(5,3,140,2,2);
Office ofc(2,12,500,12,2);
f=&hos;
f->show();
f=&ofc;
f->show();
return 0;
}
#include<iostream>
#include<cmath>
using namespace std; class Person
{
public:
void input(const string name_, const string code_, char sex_){
name=name_;
code=code_;
sex=sex_;
output();
}
void output(){
cout<<code<<" "<<name<<" "<<sex<<" ";
}
private:
string name;
string code;
char sex;
}; class Student:public Person{
private:
int score;
public:
friend ostream & operator<<( ostream & os,const Person & c);
void input(){
cout<<"请输入编号 姓名 性别:";
string name1,code1;
char sex1;
cin>>code1;
cin>>name1;
cin>>sex1;
cout<<"请输入成绩:";
cin>>score;
Person::input(name1, code1, sex1);
cout<<score<<endl;;
}
};
ostream & operator<<( ostream & os,const Person & c)
{
return os;
}
#include<iostream>
#include<cmath>
using namespace std; class Point
{
public:
Point(double x=0, double y=0){
this->x= x;
this->y = y;
}
void setPoint(double x, double y)
{
this->x = x;
this->y = y;
}
friend ostream & operator<<( ostream & os,const Point & c);
friend istream & operator>>( istream & is,Point & c);
double distance(const Point &c)
{
int x1 =x- c.x;
int x2 =y- c.y;
return sqrt(x1*x1+x2*x2);
}
private:
double x;
double y;
};
ostream & operator<<( ostream & os,const Point & c)
{
os << "(" << c.x<<","<<c.y<< ")";
return os;
}
istream & operator>>( istream & is,Point & c)
{
cin>>c.x>>c.y;
return is;
}
int main( )
{
Point a, b(9, 9);
cin>>a;
cout<<a<<endl;
cout<<b<<endl;
a.setPoint(7,7);
cout<<"the distance of "<<a<<" and "<<b<<" is "<<a.distance(b)<<endl;
return 0;
}

C++题目东华的更多相关文章

  1. 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  2. 谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  3. 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  4. 一道返回num值的小题目

    题目描述: 实现fizzBuzz函数,参数num与返回值的关系如下: .如果num能同时被3和5整除,返回字符串fizzbuzz .如果num能被3整除,返回字符串fizz .如果num能被5整除,返 ...

  5. 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  6. 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  7. 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  8. 谈谈一些有趣的CSS题目(五)-- 单行居中,两行居左,超过两行省略

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  9. 谈谈一些有趣的CSS题目(六)-- 全兼容的多列均匀布局问题

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

随机推荐

  1. sqli-labs less-24(二次注入)

    less-24 原理: 在网站处理用户提交的数据的时候,只是将某些敏感字符进行了转义.因而使得用户第一次提交的时候不会被当做代码执行.但是这些数据存入数据库的时候却没有转义,而网站程序默认数据库中的数 ...

  2. Linux下yum下载依赖包

    先安装依赖包yum-plugin-downloadonly [root@node1 ~]# yum install yum-plugin-downloadonly 方法一: [root@node1 ~ ...

  3. JavaSE05-数组

    1.概念 同一种类型数据的集合.其实数组就是一个容器. 2.优点 可以自动给数组中的元素从0开始编号,方便操作这些元素. 3.格式 1 元素类型[] 数组名 = new 元素类型[元素个数或数组长度] ...

  4. shell,计算指定行的和,计算指定列的和

    有一个文本文件,里面某行某列为数字,那么如何用shell计算指定行(列)的和,方法如下 计算指定行的和: awk 'NR==3{for(i=1;i<=NF;i++)sum=sum+$i;}END ...

  5. nginx负载均衡引出的登录session的配置问题

    不使用session,换成cookie session是存放在服务器端的,cookie是存放在客户端的,我们可以把用户访问页面产生的session放到cookie为中转站.你访问web服务器A,产生了 ...

  6. Kafka客户端编程入门介绍

    1.maven依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka ...

  7. 旁站和C段的简要解释

    旁注与C段嗅探的意义,旁注的意思就是从同台服务器上的其他网站入手,提权,然后把服务器端了,就自然把那个网站端了.C段嗅探,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B ...

  8. Python3和高性能全文检索引擎Redisearch进行交互

    安装 pip install redisearch 使用 from redisearch import Client, TextField # 创建一个客户端与给定索引名称 client = Clie ...

  9. YOLO实践初探

    学习了Andrew Ng 深度学习第三周卷积神经网络课程后,接着看了看YOLO论文,论文看得懵懵懂懂,沉不下心精雕细琢,手痒痒,迫不及待地想试一试YOLO效果.于是乎,在github上下载了ping星 ...

  10. Python之word文档模板套用 - 真正的模板格式套用

    Python之word文档模板套用: 1 ''' 2 #word模板套用2:套用模板 3 ''' 4 5 #导入所需库 6 from docx import Document 7 ''' 8 #另存w ...