Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Please add additional //comments to the lines of code below. Circle.cpp #include

ID: 3911359 • Letter: P

Question

Please add additional //comments to the lines of code below.

Circle.cpp

#include "circle.h"

#include <iostream>

#include <string>

using namespace std;

void Circle::input()

{

ID = 1;

type = "Circle";

cout << "Enter radius: ";

cin >> radius;

cout << "Enter Unit Of Measure: ";

cin >> unitOfMeasure;

}

void Circle::print()

{

// circumference of circle

double circumference = 2 * 3.14159 * radius;

cout << type << " with ID = " << ID

<< ", radius = " << radius << " " << unitOfMeasure

<< ", area = " << GetArea() << " " << unitOfMeasure << "^2"

<< ", circumference = " << " " << circumference << unitOfMeasure << endl;

}

double Circle::GetArea()

{

// area of circle

return 3.14159 * radius * radius;

}

Main.cpp

#include <iostream>

#include "square.h"

#include "circle.h"

#include "triangle.h"

using namespace std;

int main()

{

char type;

// Loop till user want to quit

Shape* sh = nullptr;

while (true)

{

// Prompt user for option

cout << "Enter type of figure(C - Circle, S - Square, T - Triangle or Q - quit: ";

cin >> type;

switch(type)

{

case 'C': sh = new Circle; break;

case 'S': sh = new Square; break;

case 'T': sh = new Triangle; break;

case 'Q': exit(0);

default:

cout << "Invalid ";

break;

}

if(sh)

{

sh->input();

sh->print();

delete sh;

sh = nullptr;

}

cout << endl;

}

return 0;

}

Square.cpp

// include square.h header file

#include "square.h"

// Constructor

Square::Square(double _a)

: a(_a)

{

}

// function to calculate area

double Square::GetArea()

{

return a * a;

}

// function to read sides

void Square::input()

{

ID = 2;

type = "Square";

cout << "Enter side: ";

cin >> a;

cout << "Enter Unit Of Measure: ";

cin >> unitOfMeasure;

}

// print sides and area

void Square::print()

{

cout << type << endl;

cout << "ID: " << ID << endl;

cout << "Side: " << a << " " << unitOfMeasure << endl;

cout << "Area: " << GetArea() << " " << unitOfMeasure << "^2" << endl;

}

Triangle.cpp

#include "triangle.h"

#include <cmath>

double Triangle::GetArea()

{

double s = (a + b + c)/2;

return sqrt((s*(s-a)*(s-b)*(s-c)));

}

void Triangle::input()

{

ID = 3;

type = "Triangle";

cout << "Enter side a: ";

cin >> a;

cout << "Enter side b: ";

cin >> b;

cout << "Enter side c: ";

cin >> c;

cout << "Enter Unit Of Measure: ";

cin >> unitOfMeasure;

}

void Triangle::print()

{

cout << type << endl;

cout << "ID: " << ID << endl;

cout << "Side a: " << a << " " << unitOfMeasure << ", Side b: "

<< b << " " << unitOfMeasure

<< ", Side c: " << c << " " << unitOfMeasure << endl;

cout << "Area: " << GetArea() << " " << unitOfMeasure << "^2" << endl;

}

Circle.h

#ifndef CIRCLE_H_INCLUDED

#define CIRCLE_H_INCLUDED

#include <iostream>

#include "shape.h"

using namespace std;

class Circle : public Shape

{

private:

double radius;

double GetArea() override;

public:

Circle() = default;

void input() override;

void print() override;

};

#endif // CIRCLE_H_INCLUDED

Shape.h

#ifndef SHAPE_H_INCLUDED

#define SHAPE_H_INCLUDED

#include <iostream>

using namespace std;

class Shape

{

protected:

int ID;

string type;

string unitOfMeasure;

Shape() = default;

virtual double GetArea() = 0;

public:

virtual void input() = 0;

virtual void print() = 0;

virtual ~Shape(){}

};

#endif // SHAPE_H_INCLUDED

Square.h

#ifndef SQUARE_H_INCLUDED

#define SQUARE_H_INCLUDED

#include <iostream>

#include <string>

#include "shape.h"

using namespace std;

class Square : public Shape

{

private:

double a;

//declaration of functions in header file

double GetArea() override;

public:

// constructor with default arguments 0.0

Square(double _a = 0.0);

void print() override;

void input() override;

};

#endif // SQUARE_H_INCLUDED

Triangle.h

#ifndef TRIANGLE_H

#define TRIANGLE_H

#include "shape.h"

class Triangle : public Shape

{

private:

double a, b, c;

double GetArea() override;

public:

Triangle() = default;

void input() override;

void print() override;

};

#endif // TRIANGLE_H

Explanation / Answer

Circle.cpp

#include "circle.h" // include circle class declared in circle.h

#include <iostream>

#include <string>

using namespace std;

void Circle::input() // implement input() method

{

ID = 1;

type = "Circle";

cout << "Enter radius: ";

cin >> radius;

cout << "Enter Unit Of Measure: ";

cin >> unitOfMeasure;

}

void Circle::print()

{

// circumference of circle

double circumference = 2 * 3.14159 * radius;

cout << type << " with ID = " << ID

<< ", radius = " << radius << " " << unitOfMeasure

<< ", area = " << GetArea() << " " << unitOfMeasure << "^2"

<< ", circumference = " << " " << circumference << unitOfMeasure << endl;

}

double Circle::GetArea()

{

// area of circle

return 3.14159 * radius * radius;

}

Main.cpp

#include <iostream>

#include "square.h" // include square class declared in square.h

#include "circle.h" // include circle class declared in circle.h

#include "triangle.h" // include triangle class declared in triangle.h

using namespace std;

int main()

{

char type;

// Loop till user want to quit

Shape* sh = nullptr; // base class Shape pointer which can point to any derived class

while (true)

{

// Prompt user for option

cout << "Enter type of figure(C - Circle, S - Square, T - Triangle or Q - quit: ";

cin >> type;

switch(type)

{

case 'C': sh = new Circle; break; // base class pointer points to Circle object

case 'S': sh = new Square; break; // base class pointer points to Square object

case 'T': sh = new Triangle; break; // base class pointer points to Triangle object

case 'Q': exit(0);

default:

cout << "Invalid ";

break;

}

if(sh) // if sh pointers points to any derived class object

{ // call the functions

sh->input();

sh->print();

delete sh; // delete pointer

sh = nullptr;

}

cout << endl;

}

return 0;

}

Square.cpp

// include square.h header file

#include "square.h"

// Constructor

Square::Square(double _a)

: a(_a)

{

}

// function to calculate area

double Square::GetArea()

{

return a * a;

}

// function to read sides

void Square::input()

{

ID = 2;

type = "Square";

cout << "Enter side: ";

cin >> a;

cout << "Enter Unit Of Measure: ";

cin >> unitOfMeasure;

}

// print sides and area

void Square::print()

{

cout << type << endl;

cout << "ID: " << ID << endl;

cout << "Side: " << a << " " << unitOfMeasure << endl;

cout << "Area: " << GetArea() << " " << unitOfMeasure << "^2" << endl;

}

Triangle.cpp

#include "triangle.h"

#include <cmath>

double Triangle::GetArea()

{

double s = (a + b + c)/2;

return sqrt((s*(s-a)*(s-b)*(s-c)));

}

void Triangle::input()

{

ID = 3;

type = "Triangle";

cout << "Enter side a: ";

cin >> a;

cout << "Enter side b: ";

cin >> b;

cout << "Enter side c: ";

cin >> c;

cout << "Enter Unit Of Measure: ";

cin >> unitOfMeasure;

}

void Triangle::print()

{

cout << type << endl;

cout << "ID: " << ID << endl;

cout << "Side a: " << a << " " << unitOfMeasure << ", Side b: "

<< b << " " << unitOfMeasure

<< ", Side c: " << c << " " << unitOfMeasure << endl;

cout << "Area: " << GetArea() << " " << unitOfMeasure << "^2" << endl;

}

Circle.h

#ifndef CIRCLE_H_INCLUDED

#define CIRCLE_H_INCLUDED

#include <iostream>

#include "shape.h"

using namespace std;

class Circle : public Shape // Circle class is derived class of Shape

{

private:

double radius;

double GetArea() override; // GetArea() virtual method of Shape class is overridden in derived class Circle

public:

Circle() = default;

void input() override; // override base class virtual methods

void print() override;

};

#endif // CIRCLE_H_INCLUDED

Shape.h

#ifndef SHAPE_H_INCLUDED

#define SHAPE_H_INCLUDED

#include <iostream>

using namespace std;

class Shape

{

protected: // all protected data members can be accessed by derived classes

int ID;

string type;

string unitOfMeasure;

Shape() = default;

virtual double GetArea() = 0; // virtual function , will be overriden in derived classes

public:

virtual void input() = 0; // virtual function , will be overriden in derived classes

virtual void print() = 0; // virtual function , will be overriden in derived classes

virtual ~Shape(){} // virtual Constructor

};

#endif // SHAPE_H_INCLUDED

Square.h

#ifndef SQUARE_H_INCLUDED

#define SQUARE_H_INCLUDED

#include <iostream>

#include <string>

#include "shape.h"

using namespace std;

class Square : public Shape

{

private:

double a;

//declaration of functions in header file

double GetArea() override;

public:

// constructor with default arguments 0.0

Square(double _a = 0.0);

void print() override;

void input() override;

};

#endif // SQUARE_H_INCLUDED

Triangle.h

#ifndef TRIANGLE_H

#define TRIANGLE_H

#include "shape.h"

class Triangle : public Shape

{

private:

double a, b, c;

double GetArea() override;

public:

Triangle() = default;

void input() override;

void print() override;

};

#endif // TRIANGLE_H

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote