Advertisement
Kolyach

Untitled

Jun 2nd, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.63 KB | None | 0 0
  1.  
  2. #include "GiantInteger.h";
  3. #include <cmath>
  4. #include <conio.h>
  5. #include <fstream>
  6.  
  7. int main() {
  8.     setlocale(LC_ALL, "russian");
  9.     string str1, str2, a;
  10.     ofstream log1;
  11.     ifstream log2;
  12.     int i, key;
  13.     bool check;
  14.  
  15.     cout << "->Для начала работы нажмите любую клавишу\n->Для просмотра истории операций нажмите пробел\n->Для выхода из программы нажмите ESC";
  16.     key = _getch();
  17.  
  18.     if (key == 32) {
  19.         log2.open("log.txt");
  20.         std::system("cls");
  21.         if (log2.peek()==EOF) {
  22.             cout << "История операций пуста\n\n";
  23.             log2.close();
  24.         }
  25.         else {
  26.             while (!log2.eof()) {
  27.                 getline(log2, str1);
  28.                 cout << str1 << endl;
  29.             }
  30.             log2.close();
  31.         }
  32.         cout << "->Для очистки истории операций нажмите пробел\n->Для продолжения работы нажмите любую клавишу\n->Для выхода из программы нажмите ESC\n";
  33.         key = _getch();
  34.         if (key == 32) {
  35.             log1.open("log.txt", ios::trunc); log1.close(); std::system("cls"); cout << "Удаление прошло успешно!\n\n"; std::system("pause");
  36.             std::system("cls");
  37.             cout << "->Для начала работы нажмите любую клавишу\n->Для выхода из программы нажмите ESC\n";
  38.             key = _getch();
  39.             if (key == 27) return 0;
  40.         }
  41.         if (key == 27) return 0;
  42.     }
  43.  
  44.     std::system("cls");
  45.     while (key != 27) {
  46.         cout << "Введите 1-е число: ";
  47.         do {
  48.             cin >> str1;
  49.             for (int i = 0; i < str1.size(); i++) {
  50.                 if (str1[i] >= '0' && str1[i] <= '9') {
  51.                     check = true;
  52.                 }
  53.                 else {
  54.                     check = false;
  55.                     cout << "Неверный ввод! Введите новое число: \n";
  56.                     break;
  57.                 }
  58.             }
  59.         } while (check != 1);
  60.         GiantInteger number(str1);
  61.  
  62.         do {
  63.             std::system("cls");
  64.             cout << "1-е число: " << number << endl;
  65.             cout << "Введите 2-e число: ";
  66.             do {
  67.                 cin >> str2;
  68.                 for (int i = 0; i < str2.size(); i++) {
  69.                     if (str2[i] >= '0' && str2[i] <= '9') {
  70.                         check = true;
  71.                     }
  72.                     else {
  73.                         check = false;
  74.                         cout << "Неверный ввод! Введите новое число: \n";
  75.                         break;
  76.                     }
  77.                 }
  78.             } while (check != 1);
  79.             GiantInteger number2(str2);
  80.             std::system("cls");
  81.             cout << "1-е число: " << number << endl << "2-е число: " << number2 << endl;
  82.  
  83.             cout << "Выберите операцию: \n1)Сложение\n2)Вычитание\n3)Умножение\n4)Деление\n";
  84.             do {
  85.                 cin >> a;
  86.                 if ((a.size() == 1) && (a[0] == '1' || a[0] == '2' || a[0] == '3' || a[0] == '4')) check = true;
  87.                 else check = false;
  88.                 switch (atoi(a.c_str())) {
  89.                 case 1: {std::system("cls");cout << "1-е число: " << number << "\n2-е число: " << number2 << "\nОперация: сложение\n" << "Результат: " << number + number2 << endl << endl;
  90.                     log1.open("log.txt", ios::app); log1 << "1-е число: " << number << "\n2-е число: " << number2 << "\nОперация: сложение\n" << "Результат: " << number + number2 << endl << endl;
  91.                     number = number + number2; break;}
  92.                 case 2: {std::system("cls");cout << "1-е число: " << number << "\n2-е число: " << number2 << "\nОперация: вычитание\n" << "Результат: " << number - number2 << endl << endl;
  93.                     log1.open("log.txt", ios::app); log1 << "1-е число: " << number << "\n2-е число: " << number2 << "\nОперация: вычитание\n" << "Результат: " << number - number2 << endl << endl;
  94.                     number = number - number2; break;}
  95.                 case 3: {std::system("cls");cout << "1-е число: " << number << "\n2-е число: " << number2 << "\nОперация: умножение\n" << "Результат: " << number * number2 << endl << endl;
  96.                     log1.open("log.txt", ios::app); log1 << "1-е число: " << number << "\n2-е число: " << number2 << "\nОперация: умножение\n" << "Результат: " << number * number2 << endl << endl;
  97.                     number = number * number2; break;}
  98.                 case 4: {
  99.                     std::system("cls");
  100.                     if (number2 != 0) {
  101.                         cout << "1-е число: " << number << "\n2-е число: " << number2 << "\nОперация: деление\n" << "Результат: " << number / number2 << endl;
  102.                         log1.open("log.txt", ios::app); log1 << "1-е число: " << number << "\n2-е число: " << number2 << "\nОперация: деление\n" << "Результат: " << number / number2 << endl << endl; log1.close();
  103.                         number = number / number2; break;
  104.                     }
  105.                     else {
  106.                         cout << "На ноль делить нельзя!\nВы можете продолжить работу с первым числом или ввести новые\n\n";
  107.                         log1.open("log.txt", ios::app); log1 << "1-е число: " << number << "\n2-е число: " << number2 << "\nОперация: деление\n" << "Результат: Ошибка! Делить на ноль нельзя!\n\n";
  108.                         break;
  109.                     }
  110.                 }
  111.                 default: {cout << "Неправильный ввод!\n";break;}
  112.                          
  113.                 }
  114.                 log1.close();
  115.             } while (check != 1);
  116.             cout << "->Для продолжения работы с итоговым числом нажмите пробел\n->Для работы с новыми числами нажмите любую клавишу\n->Для выхода из программы нажмите ESC";
  117.             key = _getch();
  118.         } while (key == 32);
  119.         std::system("cls");
  120.     }
  121.     return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement