Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Create a program to work with points, discussed in 10.4 of Stroustrup. Use the files Points.h, Points.cpp, and main.cpp. Begin by defining a struct Point

  • Create a program to work with points, discussed in 10.4 of Stroustrup. Use the files Points.h, Points.cpp, and main.cpp. Begin by defining a struct Point in Points.h that has two int coordinate membersx and y:
struct Point { int x, y; }; 
  • Define the following operators for Point in Point.cpp, as declared in Points.h:
///Output in the format (x,y), no newline ostream& operator<<(ostream& os, const Point& p); ///Input in the form (x,y) ///if is fails (!is), return is. This is necessary for loops later on. ///also return is at the end of the function. istream& operator>>(istream& is, Point& p); ///true if the (x,y) values match bool operator==(const Point& p1, const Point& p2); bool operator!=(const Point& p1, const Point& p2); ///Output a vector of points ///Call the << operator for a Point (above) for each point in the vector ///Separate by newlines ostream& operator<<(ostream& os, const vector & points) 
  • Using the code and discussion in 10.4, prompt the user in main.cpp to input seven (x,y) pairs. As the data is entered, input it using your >> operator for Points and store it in a vector of Points called original_points.

  • Print the data in original_points to see what it looks like using your << operator for a vector of Points.

  • Open an ofstream and output each point to a file named mydata.txt. I suggest the .txt suffix to make it easier to look at the data with an ordinary text editor. Use your << operator for a vector of Points, but use it with your ofstream object as the left operand:

ofs << original_points; 

It will work the same way it did with cout, because they both inherit from the same class (ostream). This will be described more in a later chapter.

  • Close the ofstream and then open an ifstream for mydata.txt. Read the data from mydata.txt and store it in a new vector called processed_points. Use your >> operator for Points, then push_back each Point into your vector, until the ifstream fails (use the typical while loop for file input). Use >> the same way you used it with cin, but with your ifstream object as the left operand:
Point p; while(ifs >> p) //... 
  • Print the data elements from both vectors. Again, use <<.

  • Compare the two vectors and print Something's wrong! if the number of elements or the values of elements differ. Otherwise print Vectors equal!. Use the != operator to compare your two vectors. It is already defined by the std library for vectors, and it will automatically use the == operator you wrote for Points. It should only be one line to compare the vectors:

if(original_points != processed_points) //... 
  • Sample output:
(x,y): (0,1) (x,y): (2,3) (x,y): (4,5) (x,y): (6,7) (x,y): (8,9) (x,y): (10,11) (x,y): (12,13) (0,1) (2,3) Points.h 

#ifndef POINTS_H_INCLUDED

#define POINTS_H_INCLUDED

#include "std_lib_facilities.h"

struct Point

{

int x, y;

};

///Output in the format (x,y), no newline

ostream& operator<<(ostream& os, const Point& p);

///Input in the form (x,y)

///if is fails (!is), return is. This is necessary for loops later on.

istream& operator>>(istream& is, Point& p);

///true if the (x,y) values match

bool operator==(const Point& p1, const Point& p2);

bool operator!=(const Point& p1, const Point& p2);

///Output a vector of points

///Call the << operator for a Point (above) for each point in the vector

///Separate by newlines

ostream& operator<<(ostream& os, const vector & points);

#endif // POINTS_H_INCLUDED

 (4,5) (6,7) (8,9) (10,11) (12,13) Data from file: (0,1) (2,3) (4,5) (6,7) (8,9) (10,11) (12,13) Original data: (0,1) (2,3) (4,5) (6,7) (8,9) (10,11) (12,13) Vectors equal!

write Points.cpp and main.cpp

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Spatial Database Systems Design Implementation And Project Management

Authors: Albert K.W. Yeung, G. Brent Hall

1st Edition

1402053932, 978-1402053931

More Books

Students also viewed these Databases questions

Question

What is the basis for Security Concerns in Cloud Computing?

Answered: 1 week ago

Question

Describe the three main Cloud Computing Environments.

Answered: 1 week ago