Economics Homework Assignment Paper

Read this Entire Document Before Writing Any Code!!! Problem Overview: What happens when your program asks the user to enter a number and they type something that is all or partly non-numeric? Consider Program 1 below on the left. Five I/O sessions are shown with user input underlined. Recall that the extraction operator (>>) reads from whitespace to whitespace in the input stream. When extracting numeric values from the input stream the extraction operator stops when it encounters a non-whitespace character that can’t be interpreted as part of a number. This can result in a failed input operation and it can leave unprocessed characters in the stream. For example the ‘a’ in sessions #1 and #3, the “34” characters in #2 and the “- 5” in session #5 are left unprocessed in the input stream. One way to avoid the problems encountered with inputting values into numeric variables is to input them into string variables (objects) using the getline function as shown in Program 2 on the right below. Unfortunately, while this fixes the problem of leaving unprocessed characters in the input stream, it introduces the new problem that you can’t perform arithmetic on string objects! You must compute the numeric equivalent of the string value in order to do arithmetic. //PROGRAM 1 //Input numeric variable value directly #include [removed] using namespace std; int main() { long num; cout <[removed]> num; cout << “You typed ” << num << endl; return 0; } I/O Session #1: Type a number: a You typed -858993460 I/O Session #2: Type a number: 12 34 You typed 12 I/O Session #3: Type a number: 8a You typed 8 I/O Session #4: Type a number: -5 You typed -5 I/O Session #5: Type a number: – 5 You typed -858993460 //PROGRAM 2 //Input numeric data into string object #include [removed] #include [removed] using namespace std; int main() { string num; cout << “Type a number: “; getline(cin,num); cout << “You typed ” << num << endl; return 0; } I/O Session #1: Type a number: a You typed a I/O Session #2: Type a number: 12 34 You typed 12 34 I/O Session #3: Type a number: 8a You typed 8a I/O Session #4: Type a number: -5 You typed -5 I/O Session #5: Type a number: – 5 You typed – 5 Program 9 Specifications: You will create a set of C++ source code files that together will declare, implement and test an InputNumber class. An InputNumber object will accept a user’s input from the console as a string of characters. The string of characters will then be converted into a corresponding numeric value, or a flag will be set to indicate that the string of characters did not represent a valid numeric value and so could not be converted. Your InputNumber class should meet the specifications given in the UML diagram below. After implementing the no-arg constructor, the input, appropriate setNum and accessor functions, you could write Program 3 as follows: //PROGRAM 3 //Input numeric data using an InputNumber object #include [removed] #include [removed] #include “InputNumber.h” using namespace std; int main() { InputNumber num; cout << “Type a number: “; num.input(); cout << “You typed ” << num.getInputString() << endl; if(num.validInputValue()) cout << “What you typed has numeric value ” << num.getValue() << endl; else cout << “What you typed is not a valid numeric value. ” << endl; return 0; } HINT 1: New C++ string objects can be assigned the value of a null-terminated C-string char array as follows: cpp_String = c_char_array; But if you want to go the other direction you will have to use the page 239 C-string function strcpy and page 312 c_str function as follows: strcpy(c_char_array,cpp_String.c_str()); HINT 2: You may find some of the old-style C-string functions on pages 237-239 useful. For example, you could use atol (for ascii-to-long) to convert a C-string into an equivalent long value. (Note, if the C-string value is invalid such as “abc” the converted value will be 0. There is no way to tell if a value of 0 is based on a legitimate string value or not.) To go the other direction you could use ltoa (for long-to-ascii similar to itoa on page 239), with radix argument value 10 to indicate you want to convert long number into a base 10 string equivalent. Alternatively, you might try the stringstream object approach on page 316 to convert a number into a string of ascii characters. HINT 3: Feel free to add private utility functions to the class to help you perform the public tasks if desired. For example, I found it helpful to code a private bool function whose only job was to determine if the value of inString represented a valid number or not. Expect to have to use a for-loop to visit each character in inString to perform this task. HINT 4: Recall from Chapter 9 that you may wish to first write the declaration, implementation and testing code all in one file as shown in Listing 9.1 on page 286. Once your class is working correctly you can divide the code appropriately among separate header, implementation, and testing files. Language Usage Criteria 1 pt • Find an appropriate use for the isdigit() character function described on page 173. 3 pts • Your class declaration code is separated from your class implementation code and your class client testing code. You will earn both points if the class declaration code is in a separate header file as shown in Listing 9.8 on page 295. If not in a separate file, the class declaration should be above the class implementation code and main() of the client testing code. 1 pt • Find an appropriate use for the atol() C-string function described on page 239. 1 pt • Find an appropriate use for the ltoa() C-string function which is exactly like the itoa() function described on page 239 and in HINT 2 above or use the stringstream technique shown on page 316 2 pts • Find an appropriate use for at least two of the string functions and/or operators mentioned in Chapter 10. 3 pts • The tester program contains a void displayNum function that accepts a reference to a InputNumber object and any other parameters you may wish to use. Whenever your tester program wants to display the contents of an InputNumber object it should call the displayNum function. 3 pts • The tester program declares and uses an array of InputNumber objects. You may have other InputNumber objects besides those in the array, but you are to demonstrate the ability declare and access effectively an array of objects. 14 pts for Language Usage Functionality Criteria 1 pt • The no-arg constructor sets numValue to 0, inString to “0” and validInput to true. 1 pt • The second constructor calls the appropriate setNum function with the parameter value as the argument. 1 pt • The third constructor calls the appropriate setNum function with the parameter value as the argument. 1 pt • The getValue() function returns the current value of the numValue data field. 1 pt • The validInputValue() function returns the current value of the validInput data field. NOTE: Not all “get” functions have to have “get” as part of their name! 1 pt • The getInString() function returns the current value of the inString data field. 1 pt • The input() function uses the getline() function descibed on pages 315-316 to input what the user typed into a local string object. It then calls the appropriate setNum function with the user’s input as the argument. 3 pts • The commaString() function returns a string representation of the number containing commas if and where appropriate. E.g. If inString is “1000” commaString() returns a string with the value “1,000”; if inString is “1000000” commaString() returns a string with the value “1,000,000”; etc. Note: commaString() does not change the value of inString! 3 pts • The first setNum() function sets numValue to the newNum parameter’s value, inString to the string equivalent of numValue, and validInput to true. 3 pts • The second setNum() function sets inString to the strNum parameter value, and numValue to the best possible numeric equivalent of inString. If there are no errors interpreting inString as a number, validInput is set too true, otherwise it is set to false. Checkpoint Stub Code: Just assume that the strNum parameter represents a valid numeric value. 5 pts • The InputNumber class code correctly identifies whenever inString is set to a non-numeric value as follows: ○ Any spaces at the beginning and ending of the string are ok, but… ○ …spaces in the middle of the string cause it to be invalid. That is, “ 123 “ is a valid numeric string value, but “1 23” is not. ○ Aside from leading and trailing spaces, no other non-digit characters are valid in the string… ○…except that ‘-‘ (minus sign) is allowed to precede the first digit in the string. That is, “-45” is ok, but “4-5” is not. 6 pts • The client testing code exhaustively tests all of the functions of the InputNumber class. How do the functions of the class behave when they are “fed” good data? What about bad data? Checkpoint Tester Code: Just use Program 3 below the InputNumber UML above. 27 pts for Functionality Style Criteria 1 pt • The first lines of each source code file contain comments that include the programmer name(s) and a brief description of the purpose of the code in the file. 1 pt • Use a consistent and appropriate indentation style as discussed in 2.12.3 on page 59. Follow the indentation style used in the sample code throughout the book. 1 pt • Use appropriate spacing and blank lines to enhance program readability as discussed in 2.12.3 on page 59. 1 pt • All code is necessary to the proper functioning of the program; e.g. no unused variable declarations, no unnecessarily complex code. 4 pts for Style Total Lab 9 points possible: 45 Turn in Send your header, implementation and client tester files as email attachments. The subject field of the email should say CS 210 Lab 9. The message field of the email should contain the programmer name(s). If you are programming in a team, be sure to cc your teammates.

Order a unique copy of this paper
(550 words)

Approximate price: $22

Basic features
  • Free title page and bibliography
  • Unlimited revisions
  • Plagiarism-free guarantee
  • Money-back guarantee
  • 24/7 support
On-demand options
  • Writer’s samples
  • Part-by-part delivery
  • Overnight delivery
  • Copies of used sources
  • Expert Proofreading
Paper format
  • 275 words per page
  • 12 pt Arial/Times New Roman
  • Double line spacing
  • Any citation style (APA, MLA, Chicago/Turabian, Harvard)

Our guarantees

We value our customers and so we ensure that what we do is 100% original..
With us you are guaranteed of quality work done by our qualified experts.Your information and everything that you do with us is kept completely confidential.

Money-back guarantee

You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.

Read more

Zero-plagiarism guarantee

The Product ordered is guaranteed to be original. Orders are checked by the most advanced anti-plagiarism software in the market to assure that the Product is 100% original. The Company has a zero tolerance policy for plagiarism.

Read more

Free-revision policy

The Free Revision policy is a courtesy service that the Company provides to help ensure Customer’s total satisfaction with the completed Order. To receive free revision the Company requires that the Customer provide the request within fourteen (14) days from the first completion date and within a period of thirty (30) days for dissertations.

Read more

Privacy policy

The Company is committed to protect the privacy of the Customer and it will never resell or share any of Customer’s personal information, including credit card data, with any third party. All the online transactions are processed through the secure and reliable online payment systems.

Read more

Fair-cooperation guarantee

By placing an order with us, you agree to the service we provide. We will endear to do all that it takes to deliver a comprehensive paper as per your requirements. We also count on your cooperation to ensure that we deliver on this mandate.

Read more

Calculate the price of your order

550 words
We'll send you the first draft for approval by September 11, 2018 at 10:52 AM
Total price:
The price is based on these factors:
Academic level
Number of pages
Open chat
You can contact our live agent via WhatsApp! Via +1 817 953 0426

Feel free to ask questions, clarifications, or discounts available when placing an order.

Order your essay today and save 30% with the discount code STARS