[Solved] CS151 Module 5

$25

File Name: CS151_Module_5.zip
File Size: 131.88 KB

SKU: [Solved] CS151 Module 5 Category: Tag:
5/5 - (1 vote)

Design a class Numbers that can be used to translate whole dollar* amounts in the range of 0 through 9999 into an English description* of the number.** Algorithm:* 1. Accept input from user. Validate that number is between 0 and 9999* 2. Determine how many digits the number has* 3. Using the number of digits, select the most significant digit and* output it in English* 4. Remove the most significant digit to move place value lower* 5. Continue to determine the most significant digit, display it* in English, and lower the place value until the number is less than* 20*/

#include <iostream>

using namespace std;

class Number{private:int number;

public:Number(int);const static string LESSTHAN20[];const static string TENS[];const static string HUNDRED;const static string THOUSAND;int getNumber();int parseDigits(int);void print();};

Number::Number(int n){number = n;}

const string Number::LESSTHAN20[] = { zero, one, two, three, four, five, six, seven, eight, nine, ten,eleven, twelve, thirteen, fourteen, fifteen, sixteen, seventeen,eighteen, nineteen };const string Number::TENS[] = { twenty, thrity, forty, fifty, sixty, seventy, eighty, ninety };const string Number::HUNDRED = hundred;const string Number::THOUSAND = thousand;

int Number::getNumber(){return number;}

/*** Count the number of digits in the numeral provided*/int Number::parseDigits(int num){return floor(log10(num) + 1);}

void Number::print(){int digits = parseDigits(number);int msd = 0;

// Using the number of digits to deterime where to start dividing// by the highest place valueswitch (digits){case 4:msd = number / 1000; // Determine value of most significant digitcout << LESSTHAN20[msd];cout << << THOUSAND << ;case 3:number = number % 1000; // as the code falls through,// need to chop off the previous most significant digitmsd = number / 100; // Determine value of most significant digitcout << LESSTHAN20[msd];cout << << HUNDRED << ;default:number = number % 100; // chop off previous msdif (number < 20){cout << LESSTHAN20[number] << endl;} else{msd = number / 10; // Determine value of most significant digitcout << TENS[msd 2];cout << << LESSTHAN20[number % 10] << endl;}}}

int inputNumber();

int main(){Number n(inputNumber());

n.print();

return 0;}

int inputNumber(){int num;bool validInput = false;cout << Enter a number between 0 and 9999:
;cin >> num;

while (!validInput) {if (num < 0 || num > 9999) {cout << Invalid input. Re-enter number between 0 and 9999.
;cin >> num;} else {validInput = true;}}

return num;}

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[Solved] CS151 Module 5[Solved] CS151 Module 5
$25