Implementing classes and creating a driver function?
CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 4 of 4

Thread: Implementing classes and creating a driver function?

Hybrid View

  1. #1
    Join Date
    Nov 2012
    Posts
    4

    Implementing classes and creating a driver function?

    Hi everyone, I'm taking my first class in c++, and I'm am having a few issues with this program, they stem from passing the color.h and .cpp into another .h and .cpp, and frankly getting how those two things really fit together.

    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’ll 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.


    What I have so far, and I'm pretty lost;

    color.h

    Code:
    //color.h
    //Color class definition
    
    #include "stdafx.h"
    #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;
    };
    #endif

    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 "stdafx.h"
    #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



    Thanks for any help. I'm pretty lost for this one

  2. #2
    Join Date
    Apr 1999
    Posts
    27,446

    Re: Implementing classes and creating a driver function?

    Code:
    g++ circletest.o circle.o -o circle
    Note that this is a Visual C++ forum. The compiler you're using is not Visual C++.

    Please post in the Non-Visual C++ forum.

    Regards,

    Paul McKenzie

  3. #3
    Join Date
    Nov 2012
    Posts
    4

    Re: Implementing classes and creating a driver function?

    will do,
    thank you

  4. #4
    Join Date
    Nov 2012
    Posts
    4

    Re: Implementing classes and creating a driver function?

    do you know how i go about deleting this thread?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


Windows Mobile Development Center


Click Here to Expand Forum to Full Width

This is a CodeGuru survey question.


Featured


HTML5 Development Center