Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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)

image text in transcribed

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

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

New Trends In Databases And Information Systems Adbis 2019 Short Papers Workshops Bbigap Qauca Sembdm Simpda M2p Madeisd And Doctoral Consortium Bled Slovenia September 8 11 2019 Proceedings

Authors: Tatjana Welzer ,Johann Eder ,Vili Podgorelec ,Robert Wrembel ,Mirjana Ivanovic ,Johann Gamper ,Mikolaj Morzy ,Theodoros Tzouramanis ,Jerome Darmont

1st Edition

3030302776, 978-3030302771

More Books

Students also viewed these Databases questions

Question

6 = 5 2 . 5 0 - 0 . 9 5 x

Answered: 1 week ago