Remember from lecture that using

Assignment Help Basic Computer Science
Reference no: EM13160051

For this assignment, you must create a simple calculator program. In a normal calculator, you give the first number (the X value), then the operation (+,-,*,/), then the second number (the Yvalue) and finally you hit the equal sign. In this calculator, there is no equal sign. You enter the first number (the X value), then the second number (the Y value), and lastly the operation (+,-,*,/). The result is given as soon as you enter the operation.(That style of calculation is called "Reverse Polish" and is the style used by the original HP calculator. For engineers, it is more efficient and does not require parentheses in long expressions.)

To implement this program, declare two integer variables for the X and Y values. Starting with this assignment, coding styles will be enforced, including Hungarian prefixes. So you should name your variables iValue1 and iValue2 or iXoperand and iYoperand or similar names that are descriptive and include a type prefix. For the operation, you are to read in a single character. The character type is a char. Name this variable chOperator.You will need to use if or if else statements to perform only the operation that is requested. A literal character is not a string, an d uses single quotes as in the following example:if (chOperand =='+') In the code, make sure that you include a prompt for each value. For reasons that you will see later, make sure that you prompt for the first and second values separately. Make sure that your program works before moving on to the next part. It should be able to perform the following dialog: Enter the first value as an integer: 12 Enter the second value as an integer: 5

Enter the operation you want to perform:- The result is 7 For the

next part, make the following changes. In the two prompts, change the words "first"

to "initial" and the word "second" to "next". When you compute the result of the operation,

assign the result to the first variable (e.g. iXoperand = iXoperand + iYoperand).

Make sure that your program still works. Then add the following two lines. Between the cin

line that reads the initial variable and the cout line that prompts for the next variable, insert the line:

do {Then,

right before the ending " return 0; " line, insert the line:} while (iXoperand != 0);

For the name iXoperand, use whatever name you used for your first variable which is the one

that also got the result of the operation.Now try running your program. The program should continue to get new values and operations to apply to the previous result. It will stop when the result is 0. Enter the initial value as an integer: 5 Enter the next value as an integer: 7 Enter the operation you want to perform: + The result is 12

Enter the next value as an integer: 3 Enter the operation you want to perform: -

The result is 9 Enter the next value as an integer: 10 Enter the operation you want to perform: + The result is 19 Enter the next value as an integer: 19 Enter the operation you want to perform: - The result is 0 Press any key to continue . . . Making your program robust For the divide operation, you should add another condition to make sure that the second or Y operand is not zero. Do not perform divide if the divisor is 0. The cin operation is fragile. If you enter something other than an integer, you can get odd results. If your program starts to loop forever, type Ctrl -

C to stop it. To prevent this behavior,you can add the following code. After a cin to read an integer, add this code: if ( { cout <<"No integer found . Using"<< iYoperand << endl; cin.clear(); cin.ignore(10000, '\n');}

Remember from lecture that using { and } creates a block of code within the condition instead of just one line.Also, not the use of single quotes instead of double quotes. (Double quotes signify a literal string while single quotes signify a literal character.) If reading the integer failed, you can either proceed with whatever the previous value of iYoperand might have been, or you can avoid doing anything else in the loop. There are two ways to prevent the rest of the code from being executed. One way is to make the rest of the code

be the else case from this if: else { ... }all the way to just before the while at the end of the loop. The other way

to have the same effect is the use a special loop "continue" statement which

says: skip the rest of the loop but keep looping. if ({ cout << "No integer

found. Try again."<< endl;cin.clear();cin.ignore(10000,'\n');continue;}

The cin to read a character will read any character so the problem here is different. If you

type more than one character, the input will be messed up. In this case you need an extra line to clear any bad input. In this case, just add the following two lines just before the while statement (inside the loop, but at the end of the loop code).cin.clear();cin.ignore(10000,'\n'); 

Reference no: EM13160051

Develop a process pattern using the template

Develop a process pattern (this would be a stage pattern) using the template presented in Section 2.1.3 that addresses this problem and suggest an effective approach to it.

Cybersecurity at the global level

Not only must asymmetric advantages be countered domestically, attackers often originate from outside the United States. Given that situation, describe how the Westphalian m

Securities and exchange commission

In 1934, Congress created the Securities and Exchange Commission (SEC) and gave the commission both the power and responsibility for setting accounting and reporting standar

List the cash flows and their timing for the seller

A default occurs after four years and two months, and the calculation agent estimates that the price of the reference bond is 40% of its face value shortly after the default

Exploration paper on software engineering

An exploration paper on software engineering. You can discover the code on any parts of software engineering, in any event the code can't be excessively straightforward. The

Linux servers versus windows servers

What advantages are offered by Linux servers versus Windows servers? Do a little research and discuss the types of Linux servers found in networks. What do you consider the

Create a dictionary to hold the terms to traslate

A dictionary can't contain multiple item with the same key. A key must be immutable. It can be a string, number or a tuple. A key must be immutable to make sure it is not cha

Unix shell programming

Write a program called home5. Write a program called home that takes the name of a user as its single argument and prints that user's home directory. So home steve would print


Write a Review

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