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

Structures, how to define the structures

how to define the structures

Program to draw a circle - c program, Program to draw a circle: int ma...

Program to draw a circle: int main(void) {    /* request auto detection */    int gdriver = DETECT, gmode, errorcode;    int midx, midy;    int radius = 100;

Arrays, #questi An array of n numbers is given, where n is an even number. ...

#questi An array of n numbers is given, where n is an even number. The maximum as well as minimum of these given numbers need to be determined. Which of the following is true about

multithreaded server, Implement a multithreaded server that can be used as...

Implement a multithreaded server that can be used as a proxy server to access some designated file (say it reflects the proxy copy of two file1.txt, file2.txt). Now use a client to

Input, I want to take 1.1 as input but when I am declaring it as float the ...

I want to take 1.1 as input but when I am declaring it as float the output is given as 1.1000000

C expressions - assume variables are double or float, Assume variables x, f...

Assume variables x, f, and d are of type int, float, and double, respectively.  Their values are arbitrary, except that neither f nor d equals +∞, -∞, or NaN .  For each of the fo

AREA UNDER CURVE, Write a program to find the area under the curve y = f(x)...

Write a program to find the area under the curve y = f(x) between x = a and x = b, integrate y = f(x) between the limits of a and b. The area under a curve between two points can b

Padovan string, padovan string for natural numbers program in java /...

padovan string for natural numbers program in java // aakash , suraj , prem sasi kumar kamaraj college program 1 : package test.padovanstring; public class Padov

Program for basically a small store, ¦It should ask customers to enter deta...

¦It should ask customers to enter details such as their names and addresses. ¦It should print a welcome message that includes the customer’s name. ¦It should provide a list of avai

Arrays and pointers, i have an array of structs, and am trying to make a po...

i have an array of structs, and am trying to make a pointer that can point to a certain struct within the array

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