Assignment, C/C++ Programming

Assignment Help:
(RationalNumber Class) A rational number is a number that can be represented as the quotient of two
integers. For example, 1/3, 5/7, 7/2, and so forth are rational numbers (By 2/1, etc., we mean the
everyday meaning of the fraction, not the integer division this expression would produce in a C++
program.) In general a rational number is represented as a/b where a and b are the numerator and
the denominator, respectively, and the denominator does not equal to 0.
Suppose a/b and c/d are rational numbers. Arithmetic operations on rational numbers are defined
by the following rules:
a / b + c / d = (ad + bc) / bd
a / b - c / d = (ad - bc)/bd
a / b x c / d = ac / bd
(a / b) / (c / d) = ad / bc, where c / d ? 0
Rational numbers are compared as follows: a/b op c/d if ad op bc, where op is any of the
relational operations. For example, a/b < c/d if ad < bc.
In this exercise, define a class named as RationalNumber. Suppose x, y, and z are objects of type
RationalNumber. The class RationalNumber
? Includes private member variables
o numerator and denominator of type int.
o str of type char*. This member variable is a C string with the format
numerator/denominator
and is managed by new and delete.
? Includes a member function reduction to normalize the values stored so that, after any
operation (construction, initialization, assignment, any arithmetic operations, etc), the greatest
common divisor (gcd) of numerator and denominator is 1. For example, after reduction, 21/14
becomes 3/2, i.e., the values of numerator and denominator are 3 and 2, respectively, and
str is a C string “3/2”.
? Includes a constructor where the default values of the numerator and the denominator are 0
and 1, respectively.
? Includes a copy constructor, which performs deep copy of class member variables.
? Overloads the stream extraction (>>) and stream insertion (<<) operators.
o If the input is 4/6, the statement “cin >> x;” would store 2/3 into object x.
o If x is 2/3, the statement “cout << x;” would output “2/3” to stdout.
? Overloads the assignment operator (=), and the following arithmetic operators: +, -, *, /.
o For example, the statement “cout << x + y << endl;” sends the resulting value
of x + y in rational number format to stdout.
o For example, the statement “z = x + y;” assigns the sum of x and y into z in
rational number.
? Overloads the following operators: ==, !=, >, >=, <, <=.
Write a driver program called testRationalNumber.cpp to test each of the above functions and
overloaded operators in the RationalNumber class.
Additional requirements: 2

? Include your first name in output and screenshot.
? Add “const” to appropriate formal parameters, and member/nonmember functions.
? State purpose, pre-conditions, and post-conditions for each function.
? Add proper comments to code.
? Check boundary and error conditions without crash.
Turn in the following as separate files:
? RationalNumber.h: class declaration
? RationalNumber.cpp: class implementation
? testRationalNumber.cpp: driver program
? Screenshots of output

Related Discussions:- Assignment

Define variable declaration in c++, Variable Declaration This declarati...

Variable Declaration This declaration of variables in the C language is permitted only in the starting of their block, prior to executable program statements. In C++ declaratio

Define the classification of operators in c language, Define the Classifica...

Define the Classification of Operators in C Language? Depending on the function performed the operator can be classified as 1. Arithmetic Operator 2. Logical Operator 3. Inc

Probabilistic hough transform, Two kinds of line detection are implemented ...

Two kinds of line detection are implemented in OpenCV, the Hough Transform and the probabilistic Hough transform. Assume that there are n feature points in an image and that it tak

Write the statements which are used to connect php, Write the statements wh...

Write the statements which are used to connect PHP with MySQL? Statements which can be used to connect PHP with MySQL is: $conn = mysql_connect('localhost'); echo $co

Project, Project Overview A certain financial institution (bank) wishes to ...

Project Overview A certain financial institution (bank) wishes to promote its new business products/services by conducting road shows in rural areas. Their aim is to encourage peop

Fundamental input - output routines getc and putc, Access to the channel/de...

Access to the channel/devices is achieved by means of general purpose I/O routines Theses are standard functions described in stdio.h header file namely getc and putc. Getc and put

Calculate the average assignment grade, 1. The main program must be in a fi...

1. The main program must be in a file called A4.cpp 2. The data must be read in from a data file.  The user must enter the filename.  A sample data file will be provided on Mood

What should one catch?, A: By keeping along with the C++ tradition of "ther...

A: By keeping along with the C++ tradition of "there's more than one method to do that" (translation: "give programmers options & tradeoffs so they can choose what's best for them

Program for greatest common divisor – c++ program, Greatest Common Divisor ...

Greatest Common Divisor (GCD) - The greatest common divisor (GCD) of two integers is the largest integer that will evenly divide both integers. The GCD algorithm involves intege

Prob, Given an integer n and a permutation of numbers 1, 2 ... , n-1, n wri...

Given an integer n and a permutation of numbers 1, 2 ... , n-1, n write a program to print the permutation that lexicographically precedes the given input permutation. If the given

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd