简单实战三
创建项目
- 打开VS,点击创建一个新项目
- 创建一个空项目
- 点击下一步
- 点击工程名称,选择添加
- 选择新建项
- 选择C++类
- 取名
- 点击确定,这时候还需要一个main.cpp
像4和5步一样,但是不选择C++类,而选择C++文件(.cpp)
弄完了之后,界面就是三个文件
- 将源.cpp修改为main.cpp(右击鼠标选择重命名)
最终的页面就是这样
根据项目需求写代码
在compare.h中创建两个类(AdvCircle和Point)
#pragma once
class Point
{
private:
double m_x;
double m_y;
public:
void setX(void);
void setY(void);
double getX(void);
double getY(void);
};
class AdvCircle
{
private:
double m_x;
double m_y;
double m_r;
public:
void setX(void);
void setY(void);
void setR(void);
double getX(void);
double getY(void);
double getR(void);
int compare(Point& p1);
};
在compare.cpp中实现方法
#include "Compare.h"
#include<iostream>
using namespace std;
void Point::setX(void)
{
cout << "请输入要比较的点的X坐标" << endl;
cin >> m_x;
}
void Point::setY(void)
{
cout << "请输入要比较的点的Y坐标" << endl;
cin >> m_y;
}
double Point::getX(void)
{
return m_x;
}
double Point::getY(void)
{
return m_y;
}
void AdvCircle::setX(void)
{
cout << "请输入要比较的圆的X坐标" << endl;
cin >> m_x;
}
void AdvCircle::setY(void)
{
cout << "请输入要比较的圆的Y坐标" << endl;
cin >> m_y;
}
void AdvCircle::setR(void)
{
cout << "请输入要比较的圆的R的大小" << endl;
cin >> m_r;
}
double AdvCircle::getX(void)
{
return m_x;
}
double AdvCircle::getY(void)
{
return m_y;
}
double AdvCircle::getR(void)
{
return m_r;
}
int AdvCircle::compare(Point& p1)
{
double result;
result = (p1.getX() - m_x) * (p1.getX() - m_x) + (p1.getY() - m_y) * (p1.getY() - m_y);
if (result == m_r * m_r) {
return 1;
}
else if (result <= m_r * m_r) {
return 2;
}
else return 3;
}
在main.cpp中实例化对象
#include<iostream>
#include"Compare.h"
using namespace std;
//判断位置关系的全局函数的实现
int compare1(AdvCircle &c,Point &p) {
double result;
result = (p.getX() - c.getX()) * (p.getX() - c.getX()) + (p.getY() - c.getY()) * (p.getY() - c.getY());
if (result == c.getR() * c.getR()) {
return 1;
}
else if (result <= c.getR() * c.getR()) {
return 2;
}
else return 3;
}
int main() {
//使用两个类分别实例化两个对象
AdvCircle c;
Point p;
//得到点的x,y坐标
p.setX();
p.setY();
//得到圆的x,y坐标和r的大小
c.setX();
c.setY();
c.setR();
//使用成员函数判断位置关系
if (c.compare(p)==1) {
cout << "点在圆内" << endl;
}
else if (c.compare(p) == 2) {
cout << "点在圆内" << endl;
}
else cout << "点在圆外" << endl;
//使用全局函数判断位置关系
if (compare1(c,p) == 1) {
cout << "点在圆内" << endl;
}
else if (compare1(c,p) == 2) {
cout << "点在圆内" << endl;
}
else cout << "点在圆外" << endl;
}