c++打卡第二天
一、十进制转化为二进制
1、问题描述
输入一个十进制的数,将其转化为二进制。
2、设计思路:
①、首先输入一个十进制的数字。
②、十进制数每除余2所得余数记录下来 同时这个数除以二 最终得到的余数是先低位后高位的 我们把它们有序排列 最终得到此十进制数转化为的二进制数。
3.流程图

4、代码实现
#include<iostream> using namespace std; int a[100]; int main() { int n; cin>>n; int i=0; while(n>0) { a[i++]=n%2; n=n/2; } for(int j=i-1;j>=0;j--) { cout<<a[j]<<" "; } return 0; }
二、作业题
题目描述:以点类Point为基类公有派生圆类Circle,并以圆类Circle为基类公有派生球类Sphere,main(void)函数完成对其的测试。
Point类的数据成员包括:
①私有数据成员:X坐标x(double型),Y坐标y(double型)。
Point类成员函数包括:
①有参构造函数Point(double, double)和拷贝构造函数Point(const Point &),其中有参构造函数参数默认值为0,输出信息“Point Constructor run”,拷贝构造函数输出信息“Point CopyConstructor run”
②析构函数,析构函数输出信息“Point Destructor run”
③公有函数成员:void setX(double)和double getX() const分别返回和设置X坐标
④公有函数成员:void setY(double)和double getY() const分别返回和设置Y坐标
⑤公有成员函数void show() const用于显示点的坐标信息,显示格式为:(x,y)
⑥公有成员函数double area() const用于计算点的面积,点的面积为0
公有派生圆类Circle以点类Point为基类,相较于点类Point,Circle类的结构说明如下:
Circle类的数据成员包括:
①私有数据成员:X坐标x继承自Point类,Y坐标y继承自Point类。
②私有数据成员:半径radius(double型)
③静态数据常量PI(double型),其值为3.14159
Circle类成员函数包括:
①定义有参构造函数Circle(double, double, double)和拷贝构造函数Circle(Circle &),其中有参构造函数参数包括圆心坐标和半径,圆心调用Point类构造函数进行构造,各参数默认值为0,输出信息“Circle Constructor run”,拷贝构造函数输出信息“Circle CopyConstructor run”
②定义析构函数,析构函数输出信息“Circle Destructor run”
③定义公有函数成员:void setRadius(double)和double getRadius() const分别返回和设置radius
④定义公有成员函数double circumference() const用于计算圆的周长
⑤重载double area() const用于计算圆的面积
⑥重载void show() const用于显示圆的信息,显示格式为:
(圆心X坐标,圆心Y坐标),Radius=半径
公有派生球类Sphere以圆类Circle为基类,Sphere类的结构说明如下:
Sphere类的数据成员包括:
①私有数据成员:X坐标x继承自Circle类,Y坐标y继承自Circle类,半径radius继承自Circle类。
②静态数据常量PI继承自Circle类。
Sphere类成员函数包括:
①定义有参构造函数Sphere(double, double, double)和拷贝构造函数Sphere(Sphere &),其中有参构造函数参数包括圆心坐标和半径,圆心调用Point类构造函数进行构造,各参数默认值为0,输出信息“Sphere Constructor run”,拷贝构造函数输出信息“Sphere CopyConstructor run”
②定义析构函数,析构函数输出信息“Sphere Destructor run”
③定义公有成员函数double volume() const用于计算球的体积
④重载double area() const用于计算球的表面积
代码实现:
#include <iostream> using namespace std; class Point { protected: double x; double y; public: Point(double xv=0,double yv=0);//有参构造 Point(const Point &p); //拷贝构造 ~Point(); //析构函数 void show() const; //显示Point信息 double area()const; //面积=0 void setX(double xv); //设置X坐标 void setY(double yv); //设置Y坐标 double getX() const; //获取X坐标 double getY() const; //获取Y坐标 }; //有参构造 Point::Point(double xv,double yv) { x=xv; y=yv; cout<<"Point Constructor run"<<endl; } //拷贝构造 Point::Point(const Point &p) { x=p.x; y=p.y; cout<<"Point CopyConstructor run"<<endl; } //析构函数 Point::~Point() { cout<<"Point Destructor run"<<endl; } //显示Point void Point::show() const { cout<<"("<<x<<","<<y<<")"; } //设置X坐标 void Point::setX(double xv) { x=xv; } //设置Y坐标 void Point::setY(double yv) { y=yv; } //面积函数 double Point::area() const { return 0; } //获取X坐标 double Point::getX() const { return x; } //获取Y坐标 double Point::getY() const { return y; } #define PI 3.14159 class Circle:public Point { public: double radius; Circle(double a=0,double b=0,double c=0):Point(a,b) { radius=c; cout<<"Circle Constructor run"<<endl; } Circle(Circle &p):Point(p) { radius=p.radius; cout<<"Circle CopyConstructor run"<<endl; } ~Circle() { cout<<"Circle Destructor run"<<endl; } void setRadius(double c) { radius=c; } double getRadius() const { //分别返回和设置radius return radius; } double circumference() const { //用于计算圆的周长 return 2*PI*radius; } double area() const { //用于计算圆的面积 return PI*radius*radius; } void show() const { cout<<"("<<x<<","<<y<<"),Radius="<<radius; } }; class Sphere:public Circle { public: Sphere(double a, double b, double c):Circle(a,b,c) { cout<<"Sphere Constructor run"<<endl; } Sphere(Sphere &p):Circle(p) { radius=p.radius; cout<<"Sphere CopyConstructor run"<<endl; } ~Sphere() { cout<<"Sphere Destructor run"<<endl; } double volume() const { //用于计算球的体积 double t=area(); double l=circumference(); double m=2*t*l; double n=3*PI; double v=m/n; return v/4; } double area() const { double t=circumference(); return (t*t)/PI; } }; int main(void) { double r; cin>>r; Sphere s1(1,2,4),s2(s1); s1.show(); cout<<endl<<"Area="<<s1.area()<<endl<<"Volume="<<s1.volume()<<endl; s2.setRadius(r); s2.Circle::show(); cout<<endl<<"Area="<<s2.Circle::area()<<endl<<"Circumference="<<s2.Circle::circumference()<<endl; return 0; }
输入样例:6.0
输出结果:
Point Constructor run Circle Constructor run Sphere Constructor run Point CopyConstructor run Circle CopyConstructor run Sphere CopyConstructor run (1,2),Radius=4 Area=201.062 Volume=268.082 (1,2),Radius=6 Area=113.097 Circumference=37.6991 Sphere Destructor run Circle Destructor run Point Destructor run Sphere Destructor run Circle Destructor run Point Destructor run
今天完成实验二,20223.4.11打卡。

浙公网安备 33010602011771号