1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
|
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
/**************************************************************
* Here are included the definitions of the class and functions
* Do not modify this part
*************************************************************/
class Point
{
public:
Point(double xparam, double yparam);
Point();
double getX();
double getY();
void setX(double xparam);
void setY(double yparam);
void display();
private:
double x;
double y;
};
struct Triangle
{
Point p1;
Point p2;
Point p3;
};
double distancepoints(Point& p1, Point& p2);
int closest(Point& start, vector<Point>& village);
Triangle three_closest(Point& start, vector<Point>& village);
void displayTriangle(Triangle T);
Point suggest(Triangle T);
/*******************************************
* End of definitions here
*******************************************/
// ----------------------------------------------------------------------
int main()
{
/****************************************************************************
* Part 1 Creating 5 points representing 5 houses in the village
and adding them to village vector
This code will work once you implement the member functions of the Point Class
and the distance function
***************************************************************************/
Point p1(1, 5), p2(1.25, 0.5), p3(3, 2), p4(5, 6.25), p5(5.5, 1.5), location(4, 3);
vector<Point> village;
village.push_back(p1);
village.push_back(p2);
village.push_back(p3);
village.push_back(p4);
village.push_back(p5);
cout << "For the starting location ";
location.display();
cout << " in the village : ";
for (unsigned int i = 0; i < village.size(); i++)
{
village[i].display();
}
cout << "\n the distances from the houses are :" << endl;
for (unsigned int i = 0; i < village.size(); i++)
{
cout << " ";
village[i].display();
cout << " --> " << distancepoints(village[i], location) << endl;
}
/*******************************************
* End of Part1
*******************************************/
/*************************************************************
* Part2
This code will work once you implement the closest function
**************************************************************/
cout << "\n the closest point is ";
Point unluckiest = village[closest(location, village)];
unluckiest.display();
/*******************************************
* End of Part2
*******************************************/
/*************************************************************
* Part3 and 4
This code will work once you implement the three_closest function
and the suggest function
**************************************************************/
cout << "," << endl << " The three closes points are ";
Triangle unlucky = three_closest(location, village);
displayTriangle(unlucky);
cout << "\n and the new suggested location for the landfill ";
Point landfill = suggest(unlucky);
landfill.display();
cout << "." << endl;
/*******************************************
* End of Parts 3 and 4
*******************************************/
return 0;
}
/*****************************************************
* Your Code here
Implement the member functions of the class Point
Point(double xparam, double yparam);
Point();
double getX();
double getY();
void setX(double xparam);
void setY(double yparam);
the function display() is already implemented
*****************************************************/
void Point::display()
{
cout << " (" << x << ", " << y << ") ";
}
/*****************************************************
* Your Code here
Implement the following functions
double distancepoints(Point& p1, Point& p2);
int closest(Point& start, vector<Point>& village);
Point suggest(Triangle T )
the functions displayTriangle(),
three_closest(Point& start, vector<Point>& village)
are already implemented
*****************************************************/
Triangle three_closest(Point& start, vector<Point>& village)
{
int p;
Triangle T;
p = closest(start, village);
T.p1 = village[p];
village.erase(village.begin() + p);
p = closest(start, village);
T.p2 = village[p];
village.erase(village.begin() + p);
p = closest(start, village);
T.p3 = village[p];
return T;
}
void displayTriangle(Triangle T)
{
T.p1.display();
T.p2.display();
T.p3.display();
}
/*******************************************
* End of your code here
*******************************************/
|