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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.