Monday, August 15, 2011

We have to create a program that does post operator calculation with some inputs

We have to create a program that does post operator calculation with some inputs (numbers and operators).

Class Diagram:
Class post
Private:
Char input, op, number
Int num, result
Public:
Void getdata()
Void display()
Void calc()

Solution:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

class post{
private:
       char input[80];
       int num, result;
       char op[80],number[80];
public:
       void getdata(){
       printf("Enter your number and operator: ");
       gets(input);
       }

       void display(){
       printf("Result: %d",result);
       }
      
       void calc(){
              num = atoi(input);
              op[0]='\0';
              result = 0;
              int i,j,breaker=0;
              j=0;
              for (i=0; ; i++){
                     number[i]=num%10;
                     num=num/10;
                     if (!num)
                           break;
                     }
              for (i=0; i<strlen(input); i++){
                     if (((input[i] == '+') || (input[i] == '-') || (input[i] == '*') || (input[i] == '/'))){
                           op[j]=input[i];
                           j++;
                           if (!breaker)
                                  continue;
                           else if (i != (breaker+1))
                                  break;
                           breaker = i;
                           }
                     }
              int k=0,temp=j-1;
              for (i=j-1; i>=0; i--){
                     if (op[i] == '+'){
                           if (k==j)
                                  break;
                           if (k==0)
                                  result = number[k+1]+number[k];
                           else
                                  result = number[k+1]+result;
                     }
                     else if (op[i] == '-'){
                           if (k==j)
                                  break;
                           if (k==0)
                                  result = number[k+1]-number[k];
                            else
                                  result = number[k+1]-result;
                     }
                     else if (op[i] == '*'){
                           if (k==j)
                                  break;
                           if (k==0)
                                  result = number[k+1]*number[k];
                           else
                                  result = number[k+1]*result;
                     }
                     else if (op[i] == '/'){
                           if (k==j)
                                  break;
                           if (k==0)
                                  result = number[k+1]/number[k];
                           else
                                  result = number[k+1]/result;
                           }
                     k++;
                     }
              }
       };

void main(){
       post test;
       test.getdata();
       test.calc();
       test.display();
       getch();
}


At first I used friend function, but icould not solve it. Then I used member function.  I solved the program successfully.

No comments:

Post a Comment

Vision