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

C++ For this problem, you will design and implement 2 classes and then write a d

ID: 3539163 • Letter: C

Question


C++

For this problem, you will design and implement 2 classes and then write a driver function to test these classes. The first will be a C++ class for an abstract data type color with a public enumeration type colorType that has the color values shown in Listing 10.8. Your abstract data type should have an attribute for storing a single value of type colortype and member functions for reading (readColor) and writing (writeColor) a color value as well as setting and accessing it. The function readColor should read a color as a string and store the corresponding color value in the value attribute of a type color object. The function writeColor should display as a string the value stored in the value attribute of a type color object (see Figure 7.5). Modify class circle and the driver function in Listing 10.9 to include and use this class. You%u2019ll need to remove the declaration for color in class circle. Test your modified driver function with the new color and circle classes.



The second class will be to design and implement a rectangle class similar to class circle. Be sure to incorporate the new color class you have written and tested in the first part of the programming exercise. Write a client program that asks the user to enter a shape name (circle or rectangle) and then asks the user for the necessary data for an object of that class. The program should create the object and display all its attributes.



The circle class .h and .cpp files as well as the original driver function will be supplied. You are to provide the .h and .cpp files for the new color class and the modified driver function as well as the .h and .cpp files for the rectangle class and the client program that uses all three classes.

For this , your classes and driver programs should combine them into a single executable.

code so far

_________________________________________________________________________________






















































Explanation / Answer

//color.h

//Color class definition


#ifndef COLOR_H

#define COLOR_H


class color

{

public:

enum colorType {black, blue, green, cyan, red, magenta, brown, lightgray, nocolor};


//Member functions

//read color in

void readColor (color);

//write color out

void writeColor (color);


//accessor functions

color getColor() const;


private:

//data members

color cColor;

};


color.cpp

Code:


// File color.cpp

// Color class implementation


#include "stdafx.h"

#include "color.h"

#include <iostream>

using namespace std;


// Member Functions...

// Set color

void color::readColor(color c)

{

cColor = c;

}



void color::writeColor() const

{

cout << "color is " << int(cColor) << endl;

}



// accessor functions

circle::color circle::getColor() const

{

return cColor;

}




circle.h

Code:


// File circle.h

// Circle class definition


#include "color.h"

#ifndef CIRCLE_H

#define CIRCLE_H


class circle

{

public:

// Member Functions

// constructor

circle(int);


// Set center coordinates

void setCoord(int, int);


// Set radius

void setRadius(int);


// Set color

void readColor(color);


// Compute the area

float computeArea();


// Compute the perimeter

float computePerimeter();


// Display attributes

void displayCircle() const;


// accessor functions

int getX() const;

int getY() const;

int getRadius() const;

color getColor() const;



private:

// Data members (attributes)

int x;

int y;

int radius;

color cColor;

};


#endif // CIRCLE_H



circle.cpp

Code:



// File circle.cpp

// Circle class implementation


#include "stdafx.h"

#include "circle.h"

#include "color.h"

#include <iostream>

using namespace std;


const float pi = 3.14159;


// Member Functions...

// constructor

circle::circle(int r)

{

x = 0;

y = 0;

radius = r;

cColor = nocolor;

}


// Set center position

void circle::setCoord(int xArg, int yArg)

{

x = xArg;

y = yArg;

}



// Set radius

void circle::setRadius(int r)

{

radius = r;

}



// Set color

void circle::readColor(color c)

{

cColor = c;

}



// Compute the area

float circle::computeArea()

{

return pi * radius * radius;

}



// Compute the perimeter

float circle::computePerimeter()

{

return 2 * pi * radius;

}



// Display attributes

void circle::displayCircle() const

{

cout << "x-coordinate is " << x << endl;

cout << "y-coordinate is " << y << endl;

cout << "radius is " << radius << endl;

cout << "color is " << int(cColor) << endl;


}



// accessor functions

circle::color circle::getColor() const

{

return cColor;

}


// Insert definitions for rest of accessor functions here.

// ...


int circle::getX() const

{ return x;

}


int circle::getY() const

{ return y;

}


int circle::getRadius() const

{ return radius;

}



makefile

Code:


circletest: circle.o circletest.o

g++ circletest.o circle.o -o circle


circle.o: circle.cpp circle.h color.cpp color.h

g++ -c circle.cpp


circletest.o: circletest.cpp circle.h color.h

g++ -c circletest.cpp


clean

rm circletest circletest.o circle.o

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