Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.14 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <string>
  4. using namespace System;
  5. using namespace std;
  6.  
  7. class workspace
  8. {
  9.     string name;
  10.     string header;
  11.     int buildnum;
  12.  
  13. public:
  14.  
  15.     workspace();
  16.     workspace(workspace &Obj);
  17.     workspace(string i_name, string i_header, int i_buildnum);
  18.     ~workspace();
  19.  
  20.     void SetName();
  21.     void SetHeader();
  22.     void SetBuildNum();
  23.     workspace SaveInfo();
  24.  
  25.     void InputAllInfo();
  26.     void PrintAllInfo();
  27.  
  28. private:
  29.  
  30. };
  31.  
  32. void ClearConsole();
  33. void CreateAction(int size);
  34. int Action_InputType(int info_edit);
  35. int GetPickNumber(int size);
  36.  
  37.  
  38. workspace *wspace;
  39.  
  40. void workspace::SetName()
  41. {
  42.     cout << "Print name = ";
  43.     cin >> name;
  44. }
  45.  
  46. void workspace::SetHeader()
  47. {
  48.     cout << "Print header = ";
  49.     cin >> header;
  50. }
  51.  
  52. void workspace::SetBuildNum()
  53. {
  54.     cout << "Print buildnum = ";
  55.     cin >> buildnum;
  56. }
  57.  
  58. void workspace::InputAllInfo()
  59. {
  60.     cout << "Print name = ";
  61.     cin >> name;
  62.  
  63.     cout << "Print header = ";
  64.     cin >> header;
  65.  
  66.     cout << "Print buildnum = ";
  67.     cin >> buildnum;
  68. }
  69.  
  70. workspace workspace::SaveInfo()
  71. {
  72.     workspace info;
  73.     info.name = name;
  74.     info.header = header;
  75.     info.buildnum = buildnum;
  76.  
  77.     return info;
  78. }
  79.  
  80. void workspace::PrintAllInfo()
  81. {
  82.     cout << "Name = " << name << endl;
  83.     cout << "Header = " << header << endl;
  84.     cout << "Buildnum = " << buildnum << endl;
  85.     cout << "\n";
  86. }
  87.  
  88. workspace::workspace(workspace &Obj)
  89. {
  90.     workspace pointer;
  91.     pointer.name = Obj.name;
  92.     pointer.header = Obj.header;
  93.     pointer.buildnum = Obj.buildnum;
  94.  
  95.     cout << "workspace(workspace &Obj)\n";
  96. }
  97.  
  98. workspace::workspace()
  99. {
  100.     name.clear();
  101.     header.clear();
  102.     buildnum = 0;
  103.  
  104.     cout << "workspace()\n";
  105. }
  106.  
  107. workspace::workspace(string i_name, string i_header, int i_buildnum)
  108. {
  109.     name = i_name;
  110.     header = i_header;
  111.     buildnum = i_buildnum;
  112.  
  113.     cout << "workspace(string i_name, string i_header, int i_buildnum)\n";
  114. }
  115.  
  116. workspace::~workspace()
  117. {
  118.     cout << "\n[!] Destructor working [!]\n" << endl;
  119. }
  120.  
  121.  
  122. int main()
  123. {
  124.     setlocale(LC_CTYPE, "ukr");
  125.     int size;
  126.  
  127.     cout << "Print count workspace = ";
  128.     cin >> size;
  129.  
  130.     wspace = new workspace[size];
  131.  
  132.     for (int i = 0; i < size; i++)
  133.     {
  134.         cout << "Цех - " << i + 1 << "\n";
  135.         wspace[i].InputAllInfo();
  136.         cout << "\n";
  137.     }
  138.  
  139.     ClearConsole();
  140.  
  141.     cout << "Даннi були введенi. Виберiть наступну дiю.\n";
  142.     CreateAction(size);
  143.  
  144.     return 0;
  145. }
  146.  
  147. void CreateAction(int size)
  148. {
  149.     setlocale(LC_CTYPE, "ukr");
  150.  
  151.     cout << "1) Переглянути iнформацiю\n";
  152.     cout << "2) Змiнити iнформацiю\n";
  153.  
  154.     int type;
  155.  
  156.     cout << "\nВвiд номеру: ";
  157.     cin >> type;
  158.  
  159.     while (1)
  160.     {
  161.         if (type != 1 && type != 2)
  162.         {
  163.             cout << "Ви допустили помилку, введiть номер ще раз.";
  164.             cout << "\nВвiд номеру: ";
  165.             cin >> type;
  166.  
  167.             continue;
  168.         }
  169.  
  170.         break;
  171.     }
  172.  
  173.     int result = Action_InputType(type);
  174.     int tmpnum;
  175.  
  176.     switch (type)
  177.     {
  178.         case 1:
  179.         {
  180.             switch (result)
  181.             {
  182.                 case 1:
  183.                 {
  184.                     for (int i = 0; i < size; i++)
  185.                     {
  186.                         cout << "Номер цеху - " << i + 1 << "\n";
  187.                         wspace[i].PrintAllInfo();
  188.                     }
  189.  
  190.                     break;
  191.                 }
  192.  
  193.                 case 2:
  194.                 {
  195.                     int num = GetPickNumber(size);
  196.  
  197.                     cout << "Номер цеху - " << num + 1 << "\n";
  198.                     wspace[num].PrintAllInfo();
  199.  
  200.                     break;
  201.                 }
  202.             }
  203.  
  204.             cout << "\nВведiть '0' щоб повернутись назад.\n";
  205.             cin >> tmpnum;
  206.  
  207.             while (1)
  208.             {
  209.                 if (tmpnum != 0)
  210.                 {
  211.                     cin >> tmpnum;
  212.  
  213.                     continue;
  214.                 }
  215.  
  216.                 break;
  217.             }
  218.  
  219.             ClearConsole();
  220.             CreateAction(size);
  221.  
  222.             break;
  223.         }
  224.  
  225.         case 2:
  226.         {
  227.             switch (type)
  228.             {
  229.                 case 1:
  230.                 {
  231.                     for (int i = 0; i < size; i++)
  232.                     {
  233.                         cout << "Номер цеху - " << i + 1 << "\n";
  234.                         wspace[i].InputAllInfo();
  235.                         cout << "\n";
  236.                     }
  237.  
  238.                     break;
  239.                 }
  240.  
  241.                 case 2:
  242.                 {
  243.                     int num = GetPickNumber(size);
  244.                     int req;
  245.                     workspace tmp_info;
  246.  
  247.                     cout << "Номер цеху - " << num + 1 << "\n";
  248.                     wspace[num].InputAllInfo();
  249.                     cout << "\n";
  250.  
  251.  
  252.                     tmp_info = wspace[num].SaveInfo();
  253.  
  254.                     cout << "\nДаннi змiненi. Введіть '1' щоб пiдтвердити, '0' - повернути назад\n";
  255.                     cin >> req;
  256.  
  257.                     while (1)
  258.                     {
  259.                         if (req != 0 && req != 1)
  260.                         {
  261.                             cout << "\nДопущена помилка. Введіть '1' щоб пiдтвердити, '0' - повернути назад\n";
  262.                             cin >> req;
  263.  
  264.                             continue;
  265.                         }
  266.  
  267.                         break;
  268.                     }
  269.  
  270.                     if (!req)
  271.                     {
  272.                         cout << "Даннi повернуто назад.\n";
  273.  
  274.                         wspace[num] = tmp_info;
  275.                     }
  276.  
  277.                     break;
  278.                 }
  279.             }
  280.  
  281.             cout << "\nВведiть '0' щоб повернутись назад.\n";
  282.             cin >> tmpnum;
  283.  
  284.             while (1)
  285.             {
  286.                 if (tmpnum != 0)
  287.                 {
  288.                     cin >> tmpnum;
  289.  
  290.                     continue;
  291.                 }
  292.  
  293.                 break;
  294.             }
  295.  
  296.             ClearConsole();
  297.             CreateAction(size);
  298.  
  299.             break;
  300.         }
  301.     }
  302. }
  303.  
  304. // 1 - всю інформацію, 2 - за номером
  305. int Action_InputType(int info_edit)
  306. {
  307.     setlocale(LC_CTYPE, "ukr");
  308.     ClearConsole();
  309.     string msg_text[2] = { "Перегляд iнформацii\n", "Змiна iнформацii\n" };
  310.     int type;
  311.  
  312.     cout << msg_text[info_edit - 1];
  313.     cout << "1) Вся iнформацiя\n";
  314.     cout << "2) iнформацiя по номеру\n";
  315.     cout << "\nВвiд номеру: ";
  316.     cin >> type;
  317.  
  318.     while (1)
  319.     {
  320.         if (type != 1 && type != 2)
  321.         {
  322.             cout << "Ви допустили помилку, введiть номер ще раз.";
  323.             cout << "\nВвiд номеру: ";
  324.             cin >> type;
  325.  
  326.             continue;
  327.         }
  328.  
  329.         break;
  330.     }
  331.  
  332.     return type;
  333. }
  334.  
  335. int GetPickNumber(int size)
  336. {
  337.     setlocale(LC_CTYPE, "ukr");
  338.     int num;
  339.  
  340.     cout << "Введiть номер цеху. Значення має бути вiд 1 до " << size << ":\n";
  341.     cin >> num;
  342.  
  343.     while (1)
  344.     {
  345.         if (num < 1 || num > size)
  346.         {
  347.             cout << "Введiть номер цеху. Значення має бути вiд 1 до " << size << ":\n";
  348.             cin >> num;
  349.  
  350.             continue;
  351.         }
  352.  
  353.         break;
  354.     }
  355.  
  356.     return num - 1;
  357. }
  358.  
  359. void ClearConsole()
  360. {
  361.     for (int i = 0; i < 50; i++)
  362.         cout << "\n";
  363. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement