Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Write a program to do the following: - First, your program will continuously read as input lines with 4 floats. Each set of 4 floats

Write a program to do the following: - First, your program will continuously read as input lines with 4 floats. Each set of 4 floats will define a 2D rectangle using your Rect class. Add each Rect to a container data structure of your choice, such as std::vector. Stop reading rectangles when your program reads 4 negative float values (do not create the rectangle with 4 negative float values). - Next, continuously read as input lines with 2 floats. Each pair of floats here will define a 2D point using your Vec class. For each point, print out its classification (whether it is inside or outside) with respect to all previously read rectangles. Stop reading points and end the program when you read (-99.0f,-99.0f).

You are intended to use your Vec and Rect classes from the previous exercises.

EXAMPLE RUN: Type 4 floats to define a rectangle: -3 3 6 6 Type 4 floats to define the next rectangle: -2 2 4 4 Type 4 floats to define the next rectangle: -1 1 2 2 Type 4 floats to define the next rectangle: -1 -1 -1 -1

Type 2 floats to define a point: 0 0 The point is INSIDE of rectangle 0 The point is INSIDE of rectangle 1 The point is INSIDE of rectangle 2

Type 2 floats to define the next point: 2 0 The point is INSIDE of rectangle 0 The point is INSIDE of rectangle 1 The point is OUTSIDE of rectangle 2

Type 2 floats to define the next point: 2.5 1 The point is INSIDE of rectangle 0 The point is OUTSIDE of rectangle 1 The point is OUTSIDE of rectangle 2

Type 2 floats to define the next point: 4 4 The point is OUTSIDE of rectangle 0 The point is OUTSIDE of rectangle 1 The point is OUTSIDE of rectangle 2

Type 2 floats to define the next point: -99 -99 Finished!

Vech.h

#ifndef VEC_H

#define VEC_H

class Vec {

public:

float x;

float y;

Vec() : x(0), y(0) {}

Vec(float x_, float y_) : x(x_), y(y_) {}

void set(float x_, float y_) {

x = x_;

y = y_;

}

void add(const Vec& v) {

x += v.x;

y += v.y;

}

void print() const {

std::cout << "x: " << x << ", y: " << y << std::endl;

}

};

#endif // VEC_H

Rect.h

#ifndef RECT_H

#define RECT_H

#include "Vec.h"

class Rect {

public:

float x, y, width, height;

Rect(float x_, float y_, float w_, float h_) : x(x_), y(y_), width(w_), height(h_) {}

bool contains(const Vec& v) const {

return (v.x >= x && v.x <= x + width && v.y >= y && v.y <= y + height);

}

};

#endif // RECT_H

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

Practical Database Programming With Visual C# .NET

Authors: Ying Bai

1st Edition

0470467274, 978-0470467275

More Books

Students also viewed these Databases questions