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. c++11-17 模板核心知识(十五)—— 解析模板之依赖型类型名称与typename Dependent Names of Types

    模板名称的问题及解决 typename规则 C++20 typename 上篇文章c++11-17 模板核心知识(十四)-- 解析模板之依赖型模板名称 Dependent Names of Templ ...

  2. 深入解析ConcurrentHashMap:感受并发编程智慧

    如果有一个整型变量count,多个线程并发让count自增1,你会怎么设计? 你知道如何让多个线程协作完成一件事件吗? 前言 很高兴遇见你~ ConcurrentHashMap是个老生常谈的集合类了, ...

  3. 要你命3000会员版v20.03_全球抖音模式

    要你命3000是搭配抖音和极其多软件的神器,支持国际版.国内版,可以去除全部限制,无需爬墙,无需拔卡,35个国家/自由切换,真心强大,请务必低调,谢谢合作. 下载地址:https://sansuinb ...

  4. 开始学习Django,配置静态登录页面

    开始学习Django,配置静态登录页面 准备阶段 众所周知,Django是一个重量级的设备齐全的web开发框架.在学习Django前我们需要具备如下的知识点: python基础编程 并发 网络编程 H ...

  5. mysql批量刷新用户密码

    不知道用户密码,并且不改变用户密码的情况下,批量刷新MySQL数据库用户的密码 select concat('alter user \'',user,'\'@\'',host,'\' identifi ...

  6. Javascript JQuery select选择之Safari与Firefox

    发现在苹果IOS手机及Safari浏览其中,如下代码不工作. $("#users option[value='hello']").attr("selected" ...

  7. xss靶场练习(7.22)

    靶场地址:http://xss.fbisb.com/ 参考的文章:https://www.cnblogs.com/cute-puli/p/10834954.html  感谢大佬的分享 做这个题的思路就 ...

  8. PHP7.4.3的BUG导致微信公众号CURl上传文件的412错误

    https://segmentfault.com/q/1010000021407039 升级PHP就好了 https://segmentfault.com/q/1010000021407039

  9. (十三)、向shell脚本中传参

    一.向脚本中传递位置参数 向脚本中传递参数的数目理论上可以无数多,但是只有前9个能被访问,使用shift可以改变此限制 $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 脚本名字 first ...

  10. (五)vimscript打印信息

    1.打印信息 使用vimscript时,打印信息的命令是echo和echom,可以通过help echo及help echom命令查看帮助文档,而echo与echom有些许的区别, :echom &q ...