Advertisement
aLT22

4semlab3 (C++) BABAEV'S LAB

May 4th, 2015
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.43 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Pair {
  6. private:
  7.     int number_one, number_two;
  8. public:
  9.     Pair() {
  10.         number_one = number_two = 0;
  11.     }
  12.     Pair(int X, int Y) {
  13.         number_one = X;
  14.         number_two = Y;
  15.     }
  16.     void change_numbers(int X, int Y) {
  17.         number_one += X;
  18.         number_two += Y;
  19.     }
  20.     Pair operator+ (Pair t) {
  21.         Pair result;
  22.         result.number_one = number_one + number_two;
  23.         result.number_two = t.number_one + t.number_two;
  24.         return result;
  25.     }
  26.     void show() {
  27.         cout << "Пара: " << number_one << ' ' << number_two;
  28.         cout << endl;
  29.     }
  30. };
  31.  
  32. class Long : public Pair {
  33. private:
  34.     int elder, junior;
  35. public:
  36.     Long() {
  37.         elder = junior = 0;
  38.     }
  39.     Long(int X) {
  40.         elder = (int) X/256;
  41.         junior = (int) X%256;
  42.     }
  43.     Long operator+ (Long t) {
  44.         Long result;
  45.         result.elder = elder + t.elder;
  46.         result.junior = junior + t.junior;
  47.         return result;
  48.     }
  49.     Long multiply(Long t) {
  50.         Long result;
  51.         result.elder = elder * t.elder;
  52.         result.junior = junior * t.junior;
  53.         return result;
  54.     }
  55.     Long residual(Long t) { //разность
  56.         Long result;
  57.         result.elder = elder - t.elder;
  58.         result.junior = junior - t.junior;
  59.         return result;
  60.     }
  61.     void show() {
  62.         cout << "Старшая часть числа: " << elder << " младшая: " << junior << endl;
  63.     }
  64. };
  65.  
  66. int main() {
  67.     setlocale(LC_ALL, "Russian");
  68.     int X, Y, Z;
  69.     cout << "Введите пару целых чисел: ";
  70.     cin >> X >> Y;
  71.     Pair p(X, Y);
  72.     p.show();
  73.     cout << "Введите число, у которого будем определять старшую и младшую части: ";
  74.     cin >> Z;
  75.     Long l(Z);
  76.     l.show();
  77.     char choice;
  78.     label_main : cout << "Выберите с чем работать: (1 - пара, 2 - старшая и младшая части, 3 - выход): ";
  79.     cin >> choice;
  80.     if (choice == '1') {
  81.         label1 : cout << "Выберите что сделать с парой (1 - изменить на указанные введенные величины, 2 - сложить две пары чисел, 3 - выход): ";
  82.         cin >> choice;
  83.         cout << endl;
  84.         if (choice == '1') {
  85.             int delta_x, delta_y;
  86.             cout << "Введите величины, на которые изменять пару: ";
  87.             cin >> delta_x >> delta_y;
  88.             cout << endl;
  89.             p.change_numbers(delta_x, delta_y);
  90.             p.show();
  91.             goto label1;
  92.         } else if(choice == '2') {
  93.             cout << "Введите пару целых чисел, с которой складывать: ";
  94.             cin >> X >> Y;
  95.             Pair temp(X, Y);
  96.             Pair result = p + temp;
  97.             result.show();
  98.             goto label1;
  99.         } else {
  100.             goto label_main;
  101.         }
  102.     } else if (choice == '2') {
  103.         label2 : cout << "Выберите что сделать со старшей и младшей частью числа (1 - сложить старшие и младшие части двух различных чисел, 2 - умножить старшие и младшие части двух различных чисел, 3 - вычесть старшие и младшие части двух различных чисел, 4 - выход): ";
  104.         cin >> choice;
  105.         cout << endl;
  106.         if (choice == '1') {
  107.             cout << "Введите новое число, с младшей и старшей частью которого работать: ";
  108.             cin >> Z;
  109.             cout << endl;
  110.             Long temp(Z);
  111.             temp.show();
  112.             Long result = l + temp;
  113.             result.show();
  114.             goto label2;
  115.         } else if (choice == '2') {
  116.             cout << "Введите новое число, с младшей и старшей частью которого работать: ";
  117.             cin >> Z;
  118.             cout << endl;
  119.             Long temp(Z);
  120.             temp.show();
  121.             Long result = l.multiply(temp);
  122.             result.show();
  123.             goto label2;
  124.         } else if (choice == '3') {
  125.             cout << "Введите новое число, с младшей и старшей частью которого работать: ";
  126.             cin >> Z;
  127.             cout << endl;
  128.             Long temp(Z);
  129.             temp.show();
  130.             Long result = l.residual(temp);
  131.             result.show();
  132.             goto label2;
  133.         } else {
  134.             goto label_main;
  135.         }
  136.     } else {
  137.         goto label;
  138.     }
  139.     label : char final_choice;
  140.     cout << "Введите 1, чтобы остаться в программе и начать заново или что-нибудь еще, чтобы выйти из этого позора к хуям и получить зачет: ";
  141.     cin >> final_choice;
  142.     if (final_choice == '1') {
  143.         main();
  144.     } else {
  145.         system("pause");
  146.         return 0;
  147.     }
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement