We have to create a program that does post operator calculation with some inputs (numbers and operators).
At first I used friend function, but icould not solve it. Then I used member function. I solved the program successfully.
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(); } |
No comments:
Post a Comment