练习案例1:设计立方体类
设计立方体类(Cube)
求出立方体的面积和体积
分别用全局函数和成员函数判断两个立方体是否相等。

#include <iostream>
using namespace std;
//立方体类设计
//1.创建立方体类
//2.设计属性
//3.设计行为 获取立方体的面积和体积
//4.分别利用全局函数和成员函数 判断两个立方体是否相等
class Cube
{
public:
//设置长
void setL(int l){
m_L=l;
}
//获取长
int getL(){
return m_L;
}
//设置宽
void setW(int w){
m_W=w;
}
//获取宽
int getW(){
return m_W;
}
//设置高
void setH(int h){
m_H=h;
}
//获取高
int getH(){
return m_H;
}
//获取立方体的面积
int calculateS(){
return 2*(m_L*m_W+m_L*m_H+m_W*m_H);
}
//获取立方体的体积
int calculateV(){
return m_L*m_W*m_H;
}
//利用成员函数判断两个立方体是否相等
bool isSameByClass(Cube& c){
if(m_L==c.getL() && m_W==c.getW() && m_H==c.getH()){
return true;
}
}
private :
int m_L; //长
int m_W; //宽
int m_H; //高
};
//利用全局函数判断 两个立方体是否相等
bool isSame(Cube& c1,Cube& c2){
if(c1.getL()==c2.getL() && c1.getW()==c2.getW() && c1.getH()==c2.getH()){
return true;
}
}
int main() {
//创建一个立方体对象
Cube c1;
c1.setL(10);
c1.setW(10);
c1.setH(10);
cout<<"c1的面积为:"<<c1.calculateS()<<endl;
cout<<"c1的体积为:"<<c1.calculateV()<<endl;
//创建第二个立方体
Cube c2;
c2.setL(10);
c2.setW(10);
c2.setH(10);
//利用全局函数判断的
bool ret=isSame(c1,c2);
if(ret){
cout<<"全局函数判断:c1和c2是相等的"<<endl;
}else{
cout<<"全局函数判断:c1和c2是不相等的"<<endl;
}
//利用成员函数判断
ret=c1.isSameByClass(c2);
if(ret){
cout<<"成员函数判断:c1和c2是相等的"<<endl;
}else{
cout<<"成员函数判断:c1和c2是不相等的"<<endl;
}
system("pause");
return 0;
}
练习案例2:点和圆的关系
设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。

#include <iostream>
using namespace std;
//点和圆的关系案例
//点类
class Point{
public:
void setX(int x){
m_X=x;
}
int getX(){
return m_X;
}
void setY(int y){
m_Y=y;
}
int getY(){
return m_Y;
}
private:
int m_X;
int m_Y;
};
//圆类
class Circle{
public:
void setR(int r){
m_R=r;
}
int getR(){
return m_R;
}
void setCenter(Point center){
m_Center=center;
}
Point getCenter(){
return m_Center;
}
private:
int m_R; //半径
//在类中可以让另一个类 作为本类的一个成员
Point m_Center;
};
//判断点和圆的关系
void isInCircle(Circle& c,Point& p){
//计算两点距离的平方
int distance=
(c.getCenter().getX()-p.getX())*(c.getCenter().getX()-p.getX())+(c.getCenter().getY()-p.getY())*(c.getCenter().getY()-p.getY());
//计算半径的平方
int rDistance=c.getR()*c.getR();
//判断关系
if(distance == rDistance){
cout<<"点在圆上"<<endl;
}else if(distance > rDistance){
cout<<"点在圆外"<<endl;
}else{
cout<<"点在圆内"<<endl;
}
}
int main(){
//创建圆
Circle c;
c.setR(10);
Point center;
center.setX(10);
center.setY(0);
c.setCenter(center);
//创建点
Point p;
p.setX(10);
p.setY(11);
isInCircle(c,p);
system("pause");
return 0;
}


point.h
#pragma once
#include <iostream>
using namespace std;
//点类
class Point{
public:
void setX(int x);
int getX();
void setY(int y);
int getY();
private:
int m_X;
int m_Y;
};point.cpp
#include "point.h"
void Point::setX(int x){
m_X=x;
}
int Point::getX(){
return m_X;
}
void Point::setY(int y){
m_Y=y;
}
int Point::getY(){
return m_Y;
}circle.h
#pragma once
#include <iostream>
using namespace std;
#include "point.h"
//圆类
class Circle{
public:
void setR(int r);
int getR();
void setCenter(Point center);
Point getCenter();
private:
int m_R; //半径
//在类中可以让另一个类 作为本类的一个成员
Point m_Center;
};circle.cpp
#include "circle.h"
void Circle::setR(int r){
m_R=r;
}
int Circle::getR(){
return m_R;
}
void Circle::setCenter(Point center){
m_Center=center;
}
Point Circle::getCenter(){
return m_Center;
}stars.cpp
#include <iostream>
using namespace std;
#include "circle.h"
#include "point.h"
//判断点和圆的关系
void isInCircle(Circle& c,Point& p){
//计算两点距离的平方
int distance=
(c.getCenter().getX()-p.getX())*(c.getCenter().getX()-p.getX())+(c.getCenter().getY()-p.getY())*(c.getCenter().getY()-p.getY());
//计算半径的平方
int rDistance=c.getR()*c.getR();
//判断关系
if(distance == rDistance){
cout<<"点在圆上"<<endl;
}else if(distance > rDistance){
cout<<"点在圆外"<<endl;
}else{
cout<<"点在圆内"<<endl;
}
}
int main(){
//创建圆
Circle c;
c.setR(10);
Point center;
center.setX(10);
center.setY(0);
c.setCenter(center);
//创建点
Point p;
p.setX(10);
p.setY(11);
isInCircle(c,p);
system("pause");
return 0;
}

版权声明:本文为qq_39368007原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。