Question: C++ Linux Need help with lab assignment. Instructions and code is posted below (FeetInches.cpp, FeetInches.h, main.cpp) FeetInches.cpp // Implementation file for the FeetInches class #include

C++ Linux

Need help with lab assignment. Instructions and code is posted below (FeetInches.cpp, FeetInches.h, main.cpp)

C++ Linux Need help with lab assignment. Instructions and code is posted

FeetInches.cpp

// Implementation file for the FeetInches class

#include // Needed for abs()

#include "FeetInches.h"

//************************************************************

// Definition of member function simplify. This function *

// checks for values in the inches member greater than *

// twelve or less than zero. If such a value is found, *

// the numbers in feet and inches are adjusted to conform *

// to a standard feet & inches expression. For example, *

// 3 feet 14 inches would be adjusted to 4 feet 2 inches and *

// 5 feet -2 inches would be adjusted to 4 feet 10 inches. *

//************************************************************

void FeetInches::simplify() {

if (inches >= 12) {

feet += (inches / 12);

inches = inches % 12;

} else if (inches

feet -= ((abs(inches) / 12) + 1);

inches = 12 - (abs(inches) % 12);

}

}

//**********************************************

// Overloaded binary + operator. *

//**********************************************

FeetInches FeetInches::operator +(const FeetInches &right) {

FeetInches temp;

temp.inches = inches + right.inches;

temp.feet = feet + right.feet;

temp.simplify();

return temp;

}

//**********************************************

// Overloaded binary - operator. *

//**********************************************

FeetInches FeetInches::operator -(const FeetInches &right) {

FeetInches temp;

temp.inches = inches - right.inches;

temp.feet = feet - right.feet;

temp.simplify();

return temp;

}

//*************************************************************

// Overloaded prefix ++ operator. Causes the inches member to *

// be incremented. Returns the incremented object. *

//*************************************************************

FeetInches FeetInches::operator ++() {

++inches;

simplify();

return *this;

}

//***************************************************************

// Overloaded postfix ++ operator. Causes the inches member to *

// be incremented. Returns the value of the object before the *

// increment. *

//***************************************************************

FeetInches FeetInches::operator ++(int) {

FeetInches temp(feet, inches);

inches++;

simplify();

return temp;

}

//************************************************************

// Overloaded > operator. Returns true if the current object *

// is set to a value greater than that of right. *

//************************************************************

bool FeetInches::operator >(const FeetInches &right) {

bool status;

if (feet > right.feet)

status = true;

else if (feet == right.feet && inches > right.inches)

status = true;

else

status = false;

return status;

}

//************************************************************

// Overloaded

// is set to a value less than that of right. *

//************************************************************

bool FeetInches::operator

bool status;

if (feet

status = true;

else if (feet == right.feet && inches

status = true;

else

status = false;

return status;

}

//*************************************************************

// Overloaded == operator. Returns true if the current object *

// is set to a value equal to that of right. *

//*************************************************************

bool FeetInches::operator ==(const FeetInches &right) {

bool status;

if (feet == right.feet && inches == right.inches)

status = true;

else

status = false;

return status;

}

//********************************************************

// Overloaded

// directly display FeetInches objects. *

//********************************************************

ostream& operator

strm

return strm;

}

//********************************************************

// Overloaded >> operator. Gives cin the ability to *

// store user input directly into FeetInches objects. *

//********************************************************

istream& operator >>(istream &strm, FeetInches &obj) {

// Prompt the user for the feet.

cout

strm >> obj.feet;

// Prompt the user for the inches.

cout

strm >> obj.inches;

// Normalize the values.

obj.simplify();

return strm;

}

//*************************************************************

// Conversion function to convert a FeetInches object *

// to a double. *

//*************************************************************

FeetInches::operator double() {

double temp = feet;

temp += (inches / 12.0);

return temp;

}

//*************************************************************

// Conversion function to convert a FeetInches object *

// to an int. *

//*************************************************************

FeetInches::operator int() {

return feet;

}

FeetInches.h

// Specification file for the FeetInches class

#ifndef FEETINCHES_H

#define FEETINCHES_H

#include

using namespace std;

class FeetInches;

// Forward Declaration

// Function Prototypes for Overloaded Stream Operators

ostream& operator

istream& operator >>(istream&, FeetInches&);

// The FeetInches class holds distances or measurements

// expressed in feet and inches.

class FeetInches {

private:

int feet; // To hold a number of feet

int inches; // To hold a number of inches

void simplify(); // Defined in FeetInches.cpp

public:

// Constructor

FeetInches(int f = 0, int i = 0) {

feet = f;

inches = i;

simplify();

}

// Mutator functions

void setFeet(int f) {

feet = f;

}

void setInches(int i) {

inches = i;

simplify();

}

// Accessor functions

int getFeet() const {

return feet;

}

int getInches() const {

return inches;

}

// Overloaded operator functions

FeetInches operator +(const FeetInches&); // Overloaded +

FeetInches operator -(const FeetInches&); // Overloaded -

FeetInches operator ++(); // Prefix ++

FeetInches operator ++(int); // Postfix ++

bool operator >(const FeetInches&); // Overloaded >

bool operator

bool operator ==(const FeetInches&); // Overloaded ==

// Conversion functions

operator double();

operator int();

// Friends

friend ostream& operator

friend istream& operator >>(istream&, FeetInches&);

};

#endif

Main.cpp

// This program demonstrates the the FeetInches class's

// conversion functions.

#include

#include "FeetInches.h"

using namespace std;

int main() {

double d; // To hold double input

int i; // To hold int input

// Define a FeetInches object.

FeetInches distance;

// Get a distance from the user.

cout

cin >> distance;

// Convert the distance object to a double.

d = distance;

// Convert the distance object to an int.

i = distance;

// Display the values.

cout

cout

cout

return 0;

}

FeetInches Modification. Download the source code of Chapter 14 from code archive at MyClasses, and modify the FeetInches class so it overloads the following operators: =!= Demonstrate the class's capabilities in a simple program

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!