C/C++ :: Postfix Calculator Using Stack With Exception Handling?

Mar 15, 2015

I'm having some significant trouble with an assignment to create a postfix calculator that simulates the dc calculator function in linux. I have attached the handout with project instructions, but my main problem at the moment lies with parsing through the string input and adding the numbers into a stack of ints.

 Project #2.pdf (47.78K)

Here's a brief summary of the methods used in the switch statement:

OPERATORS AND COMMMAND INPUTS
+ : Pops two values off the stack, adds them, and pushes the result.
- : Pops two values, subtracts the first one popped from the second one popped, and pushes the result.
* : Pops two values, multiplies them, and pushes the result.
/ : Pops two values, divides the second one popped from the first one popped, and pushes the result.
% : Pops two values, computes the remainder of the division that the / command would do, and pushes that.

Commands

p - Prints the value on the top of the stack, without altering the stack. A newline is printed after the value.

f - Prints the entire contents of the stack without altering anything. A newline is printed after each value

n - Prints the value on the top of the stack, pops it off, and does not print a newline after.

c - Clears the stack, rendering it empty.

d - Duplicates the value on the top of the stack, pushing another copy of it. Thus "4d*p" computes 4 squared and prints it.

r - Reverses the order of (swaps) the top two values on the stack.

Exception handling also needs to be added to account for division by zero and and invalid operator.

Right now my biggest problem is that I keep getting the following strange output where a 0 is automatically added to the stack when I call a function or operator. I realize this is probably because of the lines I have placed outside of the for loop that read

//END FOR LOOP
int num = atoi(operands.c_str());
myStack.push(num);
operands = "";
cout << num << " added." << endl;

But when I tried putting these statements INSIDE the for loop, I just get more errors. I've been working on this for a number of hours but I can't figure out my issue. I've also attached an image of my current output.

#include <iostream>
#include <cctype>
#include <string>
#include <cstdlib>
using namespace std;
#include "stack.h"
bool isOperator(const char& input );

[code]....

View 6 Replies


ADVERTISEMENT

C++ :: Write A Postfix Calculator Program Using Stack

Dec 14, 2013

i try to write a postfix calculator program using stack in C++ the in put must be the infix expression but can dont know how to write a infix expression in put.

this is my code :

#include <iostream>
#include <stdio.h>
#include <math.h>
#include <conio.h>
using namespace std;
}

[code]....

View 2 Replies View Related

C++ :: Calculator Using Stack - How To Convert Operation From Infix To Postfix

Sep 25, 2013

I trying to write a code for a calculator using stack is how to convert an operation from infix to postfix . Here is my attempt I created a header file.

#ifndef STACK_H
#define STACK_H
#include <iostream>
using namespace std;
template<class T>
struct node {
T item;

[Code] .....

View 1 Replies View Related

C++ :: Infix To Postfix Using Stack Conversion

Mar 8, 2013

I am Getting following errors I don't know why.I have mentioned the lines (in comments) where these errors are occurring.
__________________________________________________
warning C4018: '<' : signed/unsigned mismatch
error C2064: term does not evaluate to a function taking 0 arguments
error C2064: term does not evaluate to a function taking 0 arguments
__________________________________________________ _

Code:
/////////////////////////////////////////////////
//libraries
/////////////////////////////////////////////////
#include <iostream>
#include <string>
using namespace std;

[Code] .....

View 1 Replies View Related

C++ :: How Exception Handling Works

Oct 25, 2014

I know how exception handling works, but how should I actually use it in action? Let's say I have something like this:

Class X
{
public:
X();
//Pre-condition: example can't be 3.
void number(int example);

[code]......

If I know that the exception can only happen at the beginning of the function, is it okay to catch it right away?

View 7 Replies View Related

C/C++ :: Exception Handling Program

Feb 17, 2015

write a program as described below: program that reads in two integers (age, social security number). You should write functions that throw an out-of-range exception forage (no negative numbers)SSN (must be a 9-digit integer) My code is written below:

#include "std_lib_facilities_4.h"
int main(){
int age = 0;
int ssn = 0;

[Code].....

View 8 Replies View Related

C++ :: Handling More Than One Exception At A Time

Feb 12, 2015

It is advisable not to throw the exception from destructor. Because if exception happens stack unwinding happens. suppose the destructor again throws the exception then on part of first exception again one exception is thrown and exceptions can not be handled at same time. This is what i read from stack over flow.

View 10 Replies View Related

C++ :: Exception Handling Object?

Jun 9, 2012

I'm out of track how to realize one point in exercise condition wording :

Give the OutOfBoundsException class a constructor with an int as argument that indicates the erroneous array index and store it in a data member.

How should I change the code below .

Code:
//array.h
#ifndef Array_H
#define Array_H
#include "point.h"
#include <string>
using namespace std;
class Array {
private:
Point* m_data; // Dynamic Array of Point pointers

[code]....

View 5 Replies View Related

C++ :: Running Infix To Postfix Stack Conversion Program

Mar 27, 2014

I keep getting the same error messages every time on Visual Studio. I don't know where the error is originating. Basically I'm trying to convert an infix expression (A+B-C) to a postfix expression (AB+C-) using stacks.

#include <iostream>
#include <fstream>
#include <string>
#include <stack>
#include "Expression.h"
#include "stackType.h"
using namespace std;
int main() {
string fileName;
string infixExpression, postfixExpression;

[Code] .....

View 2 Replies View Related

C++ :: Operator Overloading And Exception Handling

Nov 15, 2013

I have a date class and i overloaded operator >> to accept input in dd/mm/yyyy format. if i enter the wrong date format my program will crash. How do i do exception handling for this? How should i do the try part? and for catch, I'll just catch a date class variable?

Code:
void operator >> (istream &is, clsDate &date) {
string inputDate;
is >> inputDate;
int mm = stringToNumber(inputDate.substr(3,2)); // read 2 characters from character number 3 start
int dd = stringToNumber(inputDate.substr(0,2)); // read 2 characters from character number 0 start
int yy = stringToNumber(inputDate.substr(6,4)); // read 4 characters from character number 6 start

[Code] .....

View 2 Replies View Related

C :: Program To Evaluate Postfix Expression Using Array Implementation Of Stack

Apr 26, 2014

Write a program that evaluates postfix expression using array implementation of stack.

The expression [the input] is evaluated from left to right using a stack. When the element read from the expression is an operand, push it into the stack.When the element read from the expression is an operator: Pop two operands from the stack.Evaluate the two operandsPush the result of the evaluation into the stack.

The final result lies on the top of the stack at the end of the calculation. Make sure to display the result before terminating the program.Write a program that evaluates postfix expression using array implementation of stack.

Code:
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#define M 20

typedef struct{

[Code] ....

View 1 Replies View Related

C++ :: Array Base Stack Class - Infix To Postfix Conversion

Feb 4, 2014

Array based stack class. So i am having a problem, i do not understand how to convert an infix notation into a postfix notation from a txt file. The infix expressions are stored in a text file. for example inside the text file is

6+9
2+7*8
(1+5)*3
5+(6-2)*((2-8)

at the moment my header file is

#ifndef STACKS_H
#define STACKS_H
#include <iostream>
using namespace std;
const int STACKS_CAPACITY = 128;
typedef int StacksElement;

[Code] ....

but how to make it convert the into postfix...

View 3 Replies View Related

C++ :: Writing A Program That Requires Exception Handling

Nov 24, 2013

writing a program that requires exception handling. if an error occurs, i what the program to go back to the begging of the loop. i tried using break but that just makes the program crash when it receives a bad input. how do i do this? this is what i have so far (this part of the program any ways)

while (! quit)
{
// Output phone book menu
cout << endl

[Code].....

View 1 Replies View Related

Visual C++ :: Unable To Find Setting For Exception Handling In MFC

Jan 24, 2013

My MDI Project(VC++2010 Professional) is unable to catch errors ,though I return ,try catch block. So I developed simple dialog based application .Placed one button on Dialog and on its click written following code

Collapse | Copy Code
void CMFCExecDlg::OnBnClickedButton1() {
try {
int j = 0;
int i = 10/j;
}
catch(CException * e) {
MessageBox(_T("Hello"),_T(""),MB_OK);
}
}

But still program control does not come in catch block it simply gives error. I tried all child classes of CException but no use.I think there will be some setting in Visual Studio. How to handle exceptions

View 1 Replies View Related

C++ :: Templates (composition) Exception Handling Run-time Error

Aug 4, 2012

The code is compiled.

If I do loops for push and pop fucntions in main.cpp the same size as Stoke everything is working properly

If loops are larger than the Stack size that goes here is a picture in the console (see screen print)

Code:
//
//(---.Array_hpp---)
//
#ifndef Array_HPP// Preprocessor gates
#define Array_HPP
#include <sstream>
#include <iostream>
#include <exception>
template <class Type>//Remove the "=double" default parameter.

[code]....

View 4 Replies View Related

C/C++ :: How To Incorporate Exception Handling Code Into Calculate Mortgage Program

Dec 15, 2014

How to incorporate exception handling code into my existing calcMortgage code. While I was researching exception handling, I thought "what would happen with my current code if someone input the principal with a comma in it?". Typically people write two hundred thousand like so.... 200,000. While experimenting with my original code, I remembered reading in my research that someone had done their calcMortgage with the output prompt "DO NOT USE COMMAS". So, when checking to see if my code would run, I did not use commas.

Well, guess what...using a comma in the principal causes an error with a negative numerical output. lol PERFECT!!!! Obviously, the easy thing to do would be to put output instructions in the code telling the user NOT to use commas, but the assignment requires me to use exception handling. The code itself works, but the calculation produces a negative monthly payment.

How would I insert exception handling code into my current code to correct this problem??

#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
struct calcMortgage {
double Principal, numYears, IntRate, monthlyPayments;};
int main(){

[Code]...

would I use a try or a throw??

View 14 Replies View Related

C/C++ :: Calculate Postfix Notation

Feb 15, 2015

My program suppose calculate postfix expression.

Ex. 5 4 + 3 10 * + the answer is 39 because if I change it to infix, it's (5 + 4) + (3 * 10)

I need to use vector to compute the value. Here is what I think. First, I save leftmost from the string. If it is a number, I push. If that is a operation, I pop twice and push the result. By doing it until the string is emptied, the vector will only contain the final answer. And here is my code

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(){
vector<int> stack;
string input;

[Code] .....

When I put 1 1 + or 2 2 +, it showing me a correct answer, but when I put the above example which is 5 4 + 3 10 * +, it shows 30 instead of 39.

View 8 Replies View Related

C/C++ :: Infix To Postfix Notation

Sep 14, 2014

I'm trying to make an infix to postfix notation calculator. The difficult thing is th stack class is custom. It's not to hard to understand, I don't know if the fact that it is that way will not allow me to receive support. The difference is that the pop functions is as such:

stack<char> conversion;
char temp;
conversion.pop(temp);//It receives a parameter and puts the popped element in there.
conversion.peek(temp);//Places the top element in said parameter

not only that... but these are boolean functions. they return true if the operation was completed. So they can be used as conditions.

#include<iostream>
#include<string>
#include<stdio.h>
#include"stack.h"
using namespace std;
int main(void) {
Stack<char> conversion;
string infix,inter,temps;

[Code] .....

The error is that i am mismanaging parenthesis handling and i can't seem to grasp where and how.

An example input is:(35+7)-(9-2)
that input gives me:35 7 + 9 2 ) -
but another input such as :(35+7)/7
outputs as: 35 7 + 7 /. Totally fine.

View 3 Replies View Related

C :: Postfix And Prefix On Array Pointer

Apr 25, 2013

first code,

Code:

int aRRay[] = {2,4,8,-2,-1,100};
int *ptr;
int loop;
ptr = &aRRay[0];
}

[code].....

first code result, " aRRay[] " and " ptr + loop " are in the same result
second code result, " aRRay[] " and "ptr + loop " are in the same result too,
third code result, " aRRay[] " and "ptr + loop " are in the same result Except "aRRay[4] = -1 with ptr + 4 = 100 " and "aRRay[5] = 100 with ptr + 5 = 14"

Question:Why the third code had a different result ? Its only because of the increment ++ptr or the round brackets on the *(++ptr) ?

View 4 Replies View Related

C++ :: Converting Expression From Postfix To Infix

Oct 1, 2013

Program which convert expression from PostFiz to Infix and also wants to evaluate them....

View 3 Replies View Related

C++ :: Evaluating Postfix Expression Using Stacks

Nov 3, 2013

i feel like im really close to completing this but i cant seem to get the result printed out i dont think im calling my evaluate function correctly and its not performing the operations..

#include <iostream>
#include <stack> //stack header file
using namespace std;

[Code].....

View 1 Replies View Related

C++ :: Postfix Operator Overloading Error

Jul 27, 2012

Recently, i successfully overloaded postfix operator to class counter by using Object and Class. Now, i want to overload same postfix operator to Inheritance. I created my code and generated in compiler. But, my compiler signaled me uncommon error(saw first time) and i couldn't generate any idea where my actually mistake is.

Here is my Code which objective is to count the number increasingly or decreasingly as per object created of CountDn class.

Code:
#include <iostream>
using namespace std;
class Counter // base class
{
protected : // NOTE : Not Private
unsigned int count;

[Code] ....

Error :|41|error: no 'operator++(int)' declared for postfix '++', trying prefix operator instead|
|42|error: no 'operator++(int)' declared for postfix '++', trying prefix operator instead|
|42|error: no match for 'operator=' in 'c2 = c1.CountDn::<anonymous>.Counter:perator++()'|
|44|error: no 'operator--(int)' declared for postfix '--', trying prefix operator instead|

View 10 Replies View Related

C :: Return Local Variable - Infix To Postfix

Nov 21, 2014

So I have been working my way through this assignment and I'm just stuck now. I cannot get this work properly It just tells me I'm trying to return a local variable when attempting to return postfix in the to_postfix function. It is line 97 that wont compile. Also I cannot change anything in runner.c.

Calculator.c
Code:

1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <ctype.h>
4 #include <string.h>
5 #include "stack.h"

[Code] .....

View 11 Replies View Related

C++ :: Infix To Postfix Reading From Text File

Feb 6, 2014

So i solved my earlier problem but now how do i make it read from the text file that i have and output the postfix notations? Because right now it is only outputting what is currently in the text file for example

6+9
2+7*8
(1+5)*3
5+(6-2)*((2-8)

Header file is

#ifndef STACKS_H
#define STACKS_H
#include <iostream>
using namespace std;
const int STACKS_CAPACITY = 128;
typedef int StacksElement;

[Code]...

test client cpp is

#include <iostream>
using namespace std;
#include "Stacks.h"
#include <fstream>
#include <string>
#include <cassert>
#include <cctype>

[Code]...

View 10 Replies View Related

C++ :: Month Class - Overloading Prefix And Postfix?

May 2, 2013

The objective is to build a month class that hold data on the number of the month and the name of the month. Using constructors and overloads, set it up to where you can input either the month or the name and it will output the results for both the month number and name.

Here is the code I have so far:

#include<iostream>
#include<string>
using namespace std;
class Month{
private: string name;
int monthNumber;

[Code] ....

It is almost fully compiled if I go by the error list. The only problems I see to be having are with the prefix and postfix overloads.

View 5 Replies View Related

C/C++ :: Infix To Postfix Conversion And Evaluating Expression

Apr 12, 2015

I am trying to convert from infix to postfix, and then evaluating the postfix expression to get the final answer. I am having a severe problem though, because for somereason the conversion is not working at all. For example, when I input the first infix expression:

24 + 33 * ( 7 - 5 ) + 8 / 3 it ouputs 24 33 7 5 - 5 ) + 8 / 3( 7 - 5 ) + 8 / 3* ( 7 - 5 ) + 8 / 3+ 33 * ( 7 - 5 ) + 8 / 3 8 3/ 3+ 8 / 3

Which is obviously very wrong. I am not really sure where the problem is though.

Below I have included all of the code needed. I also had to create my own stack class, so I will include it too .

#include "stacks.h"
#include <iostream>
using namespace std;
bool IsOperand(char C) {
if(C >= '0' && C <= '9') return true;
if(C >= 'a' && C <= 'z') return true;

[Code] .....

View 1 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved