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 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  10. 谈谈一些有趣的CSS题目(七)-- 消失的边界线问题

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

随机推荐

  1. flash小游戏在Kongregate上线——BasketBall Master(篮球大师)

    小游戏地址,欢迎上去留言评论.游戏完成度没有达到期望水平,只能算完成了核心玩法吧,一些其他构想来不及实现. BasketBall Master(篮球大师) 这个小游戏很早之前就基本做好了,只因有些细节 ...

  2. Linux下查看mysql、apache是否安装,安装,卸载等操作

    Linux下查看mysql.apache是否安装,并卸载. 指令 ps -ef|grep mysql 得出结果 root               ?        :: /bin/sh /usr/ ...

  3. Scala 中的函数式编程基础(一)

    主要来自 Scala 语言发明人 Martin Odersky 教授的 Coursera 课程 <Functional Programming Principles in Scala>. ...

  4. shell随机写入指定文件

    具体思路如下,求代码 shell随机读取file.txt文本,file.txt文本有许多行文字 想用shell随机读取file.txt的任意一行文字并且写入到file.php第四行文件. sed -i ...

  5. 《Spring3.0就这么简单》第1章快速入门

    问题 [如何将jsp中传递到HttpServletRequest的参数,自动装配到Java对象中] [成功] public void setUsernAme(String username) < ...

  6. CAF(C++ actor framework)使用随笔(unbecome与keep_behavior用法)

    看usermanual(使用随笔一里面有)看到差不多一半的时候,这个keep_behavior与unbeacome的结合引起了我的注意.(这是为什么呢?) 因为它的示例代码写的太简单了!我真的没看太懂 ...

  7. springboot(四):thymeleaf使用详解

    在上篇文章springboot(二):web综合开发中简单介绍了一下thymeleaf,这篇文章将更加全面详细的介绍thymeleaf的使用.thymeleaf 是新一代的模板引擎,在spring4. ...

  8. BugPhobia开发篇章:Beta阶段第IX次Scrum Meeting

    0x01 :Scrum Meeting基本摘要 Beta阶段第九次Scrum Meeting 敏捷开发起始时间 2015/12/25 00:00 A.M. 敏捷开发终止时间 2015/12/28 23 ...

  9. 新手必看ES6基础

    ES6 基础 一.新的变量声明方式 let/const 与var不同,新的变量声明方式带来了一些不一样的特性,其中最重要的两个特性就是提供了块级作用域与不再具备变量提升. 通过2个简单的例子来说明这两 ...

  10. Robotium源码解读-native控件/webview元素的获取和操作

    目前比较有名的Uitest框架有Uiautomator/Robotium/Appium,由于一直对webview元素的获取和操作比较好奇,另外Robotium代码量也不是很大,因此打算学习一下. 一. ...