123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #include <iostream>
- #include <string>
- #include <cstdio>
- #include <cmath>
- #include <cstring>
- #include <assert.h>
- #include <cstdlib>
- #include <vector>
- #include "sStack.h"
- #include "sCPU.h"
- #include "const_gurd.h"
- using std::cout;
- using std::endl;
- void abstract ();
- int main () {
-
- bool end_of_while = true;
- sCPU cpu1;
- sStack stack;
-
- Stack_constructor (&stack);
- //sStack_show (&stack);
- cpu_constructor (&cpu1, &stack);
-
- abstract ();
-
- while (end_of_while) {
- char comand [12];
- double number = 0;
-
- //std::vector< std::vector<const char> > analogue;
-
- //analogue.push_back(analogue1);
- const char analogue [][44] =
- {"push", "sin", "cos", "add", "sub", "mul", "end","last", "show"};
-
-
- scanf ("%s", comand);
-
- if (0 == strcmp(analogue [0], comand)) {
- scanf ("%le", &number);
- //cout << number << endl;
- }
-
- for (int i = 0; i < NUMBER_OF_COMAND; i++) {
-
- if (0 == strcmp(analogue [i], comand)) {
- switch (i) {
- case 0:
- sStack_Push (&stack, number);
- break;
-
- case 1:
- sCPU_sinus (&cpu1);
- break;
-
- case 2:
- sCPU_cosine (&cpu1);
- break;
-
- case 3:
- sCPU_addition (&cpu1);
- break;
-
- case 4:
- sCPU_subtraction (&cpu1);
- break;
-
- case 5:
- sCPU_multiplication (&cpu1);
- break;
-
- case 6:
- cout << "The calculation result: " << sStack_show_last_element (&stack) << endl;
- end_of_while = false;
- break;
-
- case 7:
- cout << "The last element: " <<
- sStack_show_last_element (&stack) << endl;
- break;
-
- case 8:
- sStack_show (&stack);
- break;
- } // end of switch
-
- } // end of if
-
- } // end of for
-
- } // end of while
- return 0;
- }
- /*!
- Gide to comand
- */
- void abstract () {
- cout << "Hellow ! \n"
- << "Comand Enter like \n"
- << "push 232 \n"
- << "sin \n"
- << "cos \n"
- << "add --- +\n"
- << "sub --- -\n"
- << "mul --- * \n"
- << "show \n"
- << "last \n"
- << "end " << endl;
- }
|