Savelyev_Vyacheslav

KursovC++2

Jun 8th, 2021
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 19.68 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <string>
  4. #include <fstream> // chtenie faila
  5. #include <stdlib.h>     //for using the function sleep
  6. #include <windows.h> // для Win32 систем
  7. #include <clocale>
  8. #include <typeinfo>
  9. #include <fstream>
  10. using namespace std;
  11.  
  12. int const feldsUniversStruct = 9;
  13. int const maxRooms = 20;
  14.  
  15. struct Hostel {
  16.     string HostelN;
  17.     string room;
  18.     string debt;
  19. };
  20.  
  21. struct  University
  22. {
  23.     string Rbook;
  24.     string name;
  25.     string surname;
  26.     string patronymic;
  27.     string faculty;
  28.     string teamN;
  29.     Hostel* HostelPtr = new Hostel();
  30.     struct University* ptr;
  31. };
  32. struct DebtObrabot {
  33.     int room;
  34.     int debt;
  35. };
  36.  
  37. //номер зачетки / фио / направление / группа / № Общаги / № комнаты /долги за общежитие
  38. // выбрать 5 комнат с макс долгом проживания
  39.  
  40. University* head;
  41. //headR = NULL;
  42. string nameFile = "write.txt";
  43. int countK = 0;
  44.  
  45. void List() { head = NULL; } // Инициализация списка
  46. int getCount() { return countK; } // Получение количества узлов списка
  47. bool isEmpty() { return head == NULL; }  // Проверка, пуст ли список
  48. void setFileName() { cout << " \nVvedite name.txt: "; cin >> nameFile; }
  49. string getValue0(University* p) { return p->Rbook; } // Получение значения  узла списка
  50. string getValue1(University* p) { return p->name; } // Получение значения узла списка patronymic
  51. string getValue2(University* p) { return p->surname; } // Получение значения узла списка
  52. string getValue3(University* p) { return p->patronymic; }
  53. string getValue4(University* p) { return p->faculty; } // Получение значения 2го узла списка
  54. string getValue5(University* p) { return p->teamN; }
  55. string getValue6(University* p) { return p->HostelPtr->HostelN; }
  56. string getValue7(University* p) { return p->HostelPtr->room; }
  57. string getValue8(University* p) { return p->HostelPtr->debt; }
  58. void SetValue(string num[]) {
  59.     cout << "Введите номер зачетной книжки:     "; cin >> num[0];
  60.     cout << "Введите имя:                       "; cin >> num[1];
  61.     cout << "Введите фамелию:                   "; cin >> num[2];
  62.     cout << "Введите отчество:                  "; cin >> num[3];
  63.     cout << "Введите направление:               "; cin >> num[4];
  64.     cout << "Введите группу:                    "; cin >> num[5];
  65.     cout << "Введите № общежития:               "; cin >> num[6];
  66.     cout << "Введите № комноты:                 "; cin >> num[7];
  67.     cout << "Введите долги:                     "; cin >> num[8];
  68. }
  69. void SetUniversity(University* elem, string num[]) {
  70.     elem->Rbook = num[0];
  71.     elem->name = num[1];
  72.     elem->surname = num[2];
  73.     elem->patronymic = num[3];
  74.     elem->faculty = num[4];
  75.     elem->teamN = num[5];
  76.     elem->HostelPtr->HostelN = num[6];
  77.     elem->HostelPtr->room = num[7];
  78.     elem->HostelPtr->debt = num[8];
  79. }
  80. University* Prev(University* nod)
  81. {
  82.     if (isEmpty()) return NULL;
  83.     if (nod == head) return NULL;
  84.     University* p = head;
  85.     while (p->ptr != nod)
  86.         p = p->ptr;
  87.     return p;
  88. }
  89. University* Next(University* university_)
  90. {
  91.     if (isEmpty()) return NULL;
  92.     return university_->ptr;
  93. }
  94.  
  95.  
  96.  
  97.     int ValidChislo(string s) {
  98.     for (auto c : s) {
  99.         if ((c <= 'z') && (c >= 'a')) {
  100.             cout << "Vi vveli text ne tuda"; return 0;
  101.         }
  102.         else if ((c <= 'Z') && (c >= 'A')) {
  103.             cout << "Vi vveli text  ne tuda"; return 0;
  104.         }
  105.         else if ((c <= 'Я') && (c >= 'А')) {
  106.             cout << "Vi vveli text  ne tuda"; return 0;
  107.         }
  108.         else if ((c <= 'я') && (c >= 'а')) {
  109.             cout << "Vi vveli text  ne tuda"; return 0;
  110.         }
  111.     }
  112.     return 1;
  113. }
  114.     int ValidText(string s) {
  115.     for (auto c : s)
  116.         if ((c <= '9') && (c >= '0')) {
  117.             cout << "Vi vveli cislo ne tuda";
  118.             return 0;
  119.         }
  120.     return 1;
  121. }
  122.     University* ChekValidALL(string num[])
  123. {  
  124.     if (!ValidChislo(num[0])) { cout << " 0-HostelN \n"; return NULL; }
  125.     if (!ValidText(num[1])) { cout << " 1-Rbook \n"; return NULL; }
  126.     if (!ValidText(num[2])) { cout << " 2-name \n"; return NULL; }
  127.     if (!ValidText(num[3])) { cout << " 3-name \n"; return NULL; }
  128.     if (!ValidText(num[4])) { cout << " 4-name \n"; return NULL; }
  129.     //if (!ValidChislo(num[5])) { cout << " 5-faculty \n"; return NULL; }
  130.     if (!ValidChislo(num[6])) { cout << " 6-HostelN \n"; return NULL; }
  131.     if (!ValidChislo(num[7])) { cout << " 7-room \n"; return NULL; }
  132.     if (!ValidChislo(num[8])) { cout << " 8-debt \n"; return NULL; }
  133. }
  134. University* Add(string num[],  University* university_ = NULL)
  135. {
  136.     //ChekValidALL(num);
  137.     University* elem = new University();
  138.     SetUniversity(elem, num);
  139.  
  140.  
  141.     //countK++;
  142.     if (university_ == NULL) // Добавление нового корня
  143.     {
  144.         if (head == NULL) {
  145.             elem->ptr = NULL;
  146.             head = elem;
  147.         }
  148.         else {
  149.             elem->ptr = head;
  150.             head = elem;
  151.         }
  152.         return elem;
  153.     }
  154.     elem->ptr = university_->ptr; // Добавление узла после текущего
  155.     university_->ptr = elem;
  156.     return elem;
  157. }
  158. University* getLast()
  159. {
  160.     University* p = head;
  161.     while (Next(p) != NULL)
  162.         p = Next(p);
  163.     return p;
  164. }
  165. void ReedOfTxtToProg(string nameFile)
  166. {
  167.    
  168.     ifstream inf(nameFile);
  169.     // Если мы не можем открыть файл для чтения его содержимого,
  170.     if (!inf)
  171.     {
  172.         // то выводим следующее сообщение об ошибке и выполняем функцию exit()
  173.         cerr << nameFile << " could not be opened for reading!" << endl;
  174.         cerr << "Perezagruzi programmu" << endl;
  175.         Sleep(5000);
  176.         exit(1);
  177.     }
  178.  
  179.     //string z0, z1, z2, z3, z4, z5, z6, z7;
  180.        string z[feldsUniversStruct];
  181.     // Пока есть, что читать,
  182.     while (inf)
  183.     {
  184.  
  185.         // то перемещаем то, что можем прочитать, в строку, а затем выводим эту строку на экран
  186.         string strInput;
  187.         getline(inf, strInput);
  188.         int ci = 0;
  189.         string word = "";
  190.         int probels = 0;
  191.  
  192.         while ((strInput[ci] != NULL)) {
  193.             strInput[ci];
  194.             if (strInput[ci] != ' ') { word += strInput[ci]; }
  195.             if ((strInput[ci] == ' ') || (strInput[ci + 1] == NULL)) {
  196.                 probels++;
  197.                 switch (probels) {
  198.                 case 1:  z[0] = word;
  199.                 case 2:  z[1] = word;
  200.                 case 3:  z[2] = word;
  201.                 case 4:  z[3] = word;
  202.                 case 5:  z[4] = word;
  203.                 case 6:  z[5] = word;
  204.                 case 7:  z[6] = word;
  205.                 case 8:  z[7] = word;
  206.                 case 9:  z[8] = word;
  207.                 default: word = "";
  208.                 }
  209.             }
  210.             ci++;
  211.         }
  212.         University* s = getLast();
  213.         if (strInput != "\0") { s = Add(z, s); }
  214.     }
  215.     Sleep(500);
  216. }
  217.  
  218.  
  219.  
  220. void PrintRow(University* p)
  221. {
  222.     if (isEmpty()) { cout << "Список пуст" << endl; return; }
  223.     cout << getValue0(p)
  224.         << " " << getValue1(p)
  225.         << " " << getValue2(p)
  226.         << " " << getValue3(p)
  227.         << " " << getValue4(p)
  228.         << " " << getValue5(p)
  229.         << " " << getValue6(p)
  230.         << " " << getValue7(p)
  231.         << " " << getValue8(p)
  232.         ;
  233.         cout << endl;
  234. }
  235. void Print()
  236. {
  237.     cout << "\n";
  238.     if (isEmpty()) { cout << "Список пуст" << endl; return; }
  239.     University* p = head;
  240.     do {
  241.         PrintRow(p);
  242.         p = Next(p);
  243.     } while (p != NULL);
  244.     cout << endl;
  245.    
  246. }
  247.  
  248.  
  249.  
  250.     void headDel(University* temp)
  251. {
  252.     University* t1 = temp;
  253.     University* t2 = Next(temp);
  254.     head = t2;
  255.     t1 = NULL;
  256.     delete t1;
  257. }
  258.     void headNextDel(University* temp)
  259. {  
  260.     University* t1 = Prev(temp);
  261.     University* t2 = temp;
  262.     University* t3 = Next(temp);
  263.     t1->ptr = t3;
  264.     t2->ptr = NULL;
  265.     delete t2;
  266. }
  267.     void DeleteEnd(University* temp)
  268. {
  269.     University* t1 = Prev(temp);
  270.     University* t2 = temp;
  271.     t1->ptr = NULL;
  272.     delete t2;
  273. }
  274.     void DeletePreEnd(University* temp)
  275. {
  276.     University* t1 = Prev(temp);
  277.     University* t2 = temp;
  278.     University* t3 = Next(temp);
  279.     t1->ptr = t3; delete t2;
  280. }
  281.     void DeleteMidle(University* nod)
  282. {
  283.     University* t1 = Prev(nod); // Удаление промежуточного узла
  284.     University* t2 = nod;
  285.     University* t3 = Next(nod);
  286.     t1->ptr = t3;
  287.     t2->ptr = NULL;
  288.     delete t2;
  289. }
  290. University* delBySurname_(string valueDell) {
  291.     University* head2 = head;
  292.     if (head2 == NULL) { return NULL; } // В списке нет узлов
  293.     University* temp = NULL;
  294.    
  295.     if (head2->surname == valueDell) { cout << "Удалить голову "; headDel(head2); return NULL; }
  296.     head2 = head2->ptr;
  297.     if (head2->surname == valueDell) { cout << "Удалить второй с головы "; headNextDel(head2); return NULL; }
  298.     head2 = head2->ptr;
  299.     int j = 0;
  300.  
  301.     while (head2->ptr->ptr != NULL) {
  302.         temp = head2;
  303.         if (temp->surname == valueDell) {
  304.             cout << "Удаление в середине\n";
  305.             DeleteMidle(temp);
  306.             return NULL;
  307.         }
  308.         head2 = head2->ptr;
  309.         j++;
  310.     }
  311.     if (head2->surname == valueDell) { cout << "Удалить второй с конца "; DeletePreEnd(head2); return NULL; }
  312.     if (head2->ptr->surname == valueDell) { cout << "Удалить первыЙ с конца "; DeleteEnd(head2->ptr); return NULL; }
  313. }
  314.  
  315.     int chekValue(University* head, University* iPtr, string s1, string s2) {
  316.  
  317.     if (iPtr == NULL) return 0;
  318.     int number1 = std::stoi(s1);
  319.     int number2 = std::stoi(s2);
  320.     if (number1 < number2) {
  321.         return 1;
  322.     }
  323.     else { return 0; }
  324. }
  325.     void Swap(University* ptr1, University* ptr2)
  326. {
  327.     if (ptr1 == NULL || ptr2 == NULL) return;
  328.     if (ptr1 == ptr2) return;
  329.  
  330.     if (ptr2->ptr == ptr1)
  331.     {
  332.         University* p = ptr1;
  333.         ptr1 = ptr2;
  334.         ptr2 = p;
  335.     }
  336.  
  337.     University* prev1 = Prev(ptr1);
  338.     University* prev2 = Prev(ptr2);
  339.     University* next1 = Next(ptr1);
  340.     University* next2 = Next(ptr2);
  341.     if (next1 == ptr2)
  342.     {
  343.         if (prev1 != NULL)
  344.             prev1->ptr = ptr2;
  345.         else
  346.             head = ptr2;
  347.         ptr2->ptr = ptr1;
  348.         ptr1->ptr = next2;
  349.         return;
  350.     }
  351.     if (prev1 != NULL)
  352.         prev1->ptr = ptr2;
  353.     else
  354.         head = ptr2;
  355.     if (prev2 != NULL)
  356.         prev2->ptr = ptr1;
  357.     else
  358.         head = ptr1;
  359.     ptr2->ptr = next1;
  360.     ptr1->ptr = next2;
  361.  
  362. }
  363.    
  364. void sortRoom() {
  365.  
  366.     University* ptr = NULL;
  367.     University* headCop = head;
  368.     int p = 0;
  369.     if (headCop->ptr == NULL) {} // В списке нет узлов
  370.     while (headCop != NULL) {
  371.         if (headCop->ptr == NULL) break;
  372.         if (headCop->name != "|имя") {
  373.         if (chekValue(headCop, headCop->ptr, headCop->HostelPtr->room, headCop->ptr->HostelPtr->room)) {
  374.             Swap(headCop, headCop->ptr);
  375.             p++;
  376.         }
  377.     }
  378.         headCop = headCop->ptr;
  379.     }
  380.     if (p != 0) {
  381.         sortRoom();
  382.     }
  383. }
  384.  
  385. University* Dobav_head()
  386. {
  387.     University* temp = NULL;
  388.     University* head2 = head;
  389.     string num[feldsUniversStruct];
  390.     SetValue(num);
  391.     ChekValidALL(num);
  392.     University* elem = new University();
  393.     SetUniversity(elem, num);
  394.     elem->ptr = head2;
  395.     head = elem;
  396.    
  397.     if (head2 == NULL) { return NULL; } // В списке нет узлов
  398.  
  399. }
  400. University* Corr_By_value()
  401. {
  402.     University* temp = NULL;
  403.     University* head2 = head;
  404.     int cor;
  405.     string valueSearch;
  406.     cout << "Поиск по фамилии: "; cin >> valueSearch;
  407.     if (head2 == NULL) { cout << "pusto "; return NULL; } // В списке нет узло
  408.     int j = 0;
  409.     while (head2 != NULL) {
  410.         temp = head2;
  411.         if (temp->surname == valueSearch) {
  412.             cout << "OPERAVION >>  \n";
  413.             cout << "зачетка_N-1 имя-2 фамелия-3 отчество-4 направление-5 группа-6 общага_N-7\n";
  414.             cout << "комната-8 долг-9 Exit - anyKEY \n";
  415.                      {
  416.                         cin >> cor;
  417.                 switch (cor) {
  418.                 case 1:
  419.                     cout << "зачетка_N\n"; cin >> temp->Rbook;
  420.                     break;
  421.                 case 2:
  422.                     cout << "имя\n"; cin >> temp->name;
  423.                     break;
  424.                 case 3:
  425.                     cout << "фамелия\n"; cin >> temp->surname;
  426.                     break;
  427.                 case 4:
  428.                     cout << "отчество\n";  cin >> temp->patronymic;
  429.                     break;
  430.                 case 5:
  431.                     cout << "направление()\n"; cin >> temp->faculty;
  432.                     break;
  433.                 case 6:
  434.                     cout << "группа()\n"; cin >> temp->teamN;
  435.                     break;
  436.                 case 7:
  437.                     cout << "общага_N;\n"; cin >> temp->HostelPtr->HostelN;
  438.                     break;
  439.                 case 8:
  440.                     cout << "комната\n"; cin >> temp->HostelPtr->room;
  441.                     break;
  442.                 case 9:
  443.                     cout << "долг()\n"; cin >> temp->HostelPtr->debt;
  444.                     break;
  445.                 default:
  446.                     cout << "Exit Corr\n"; goto tryAgain2;
  447.                     break;
  448.  
  449.                 }
  450.             }
  451.                  // это лейбл  
  452.         }
  453.         head2 = head2->ptr;
  454.         j++;
  455.    
  456. //break;
  457.     }
  458. tryAgain2:return NULL;
  459. }
  460. University* SearchByName()
  461. {
  462.     University* temp = NULL;
  463.     University* head2 = head;
  464.  
  465.     string valueSearch;
  466.     cout << "Поиск по фамилии: "; cin >> valueSearch;
  467.     if (head2 == NULL) { cout << "pusto "; return NULL; } // В списке нет узло
  468.     int j = 0;
  469.     while (head2 != NULL) {
  470.         temp = head2;
  471.         if (temp->surname == valueSearch) {
  472.             cout << "Корректировка по фамилии:\n";
  473.             PrintRow(temp);
  474.             break;
  475.         }
  476.         head2 = head2->ptr;
  477.         j++;
  478.     }
  479. }
  480. void WriteFromProgToTxt(string path)
  481. {
  482.     //string path = "write.txt";
  483.     ofstream fout;
  484.     fout.open(path, ofstream::app);
  485.     if (!fout.is_open()) {
  486.         cout << "Ошибка открытия фаила" << endl;
  487.         Sleep(5000);
  488.     }
  489.     else {
  490.         if (isEmpty()) { cout << "Список пуст" << endl; return; }
  491.         University* p = head;
  492.         do {
  493.             fout << "\n" << getValue0(p)
  494.                 << " " << getValue1(p)
  495.                 << " " << getValue2(p)
  496.                 << " " << getValue3(p)
  497.                 << " " << getValue4(p)
  498.                 << " " << getValue5(p)
  499.                 << " " << getValue6(p)
  500.                 << " " << getValue7(p)
  501.                 << " " << getValue8(p)
  502.                 ;
  503.             p = Next(p);
  504.         } while (p != NULL);
  505.     }
  506.    
  507.     fout.close();
  508. }
  509. void DelContent(string path)
  510. {
  511.     ofstream fout;
  512.     fout.open(path, ofstream::trunc);
  513.    
  514.     fout.close();
  515. }
  516. ///////////////////
  517. void Delete_ALL()
  518. {
  519.     class University* p = head;
  520.     if (p == NULL) return;
  521.     do {
  522.         University* d = p;
  523.         p = p->ptr;
  524.         delete d;
  525.     } while (p != NULL);
  526.     head = NULL;
  527. }
  528. int CountRooms()
  529. {
  530.     sortRoom();
  531.     University* t = head;
  532.  
  533.     int i = 1;
  534.     int vsego=0;
  535.  
  536.     while (t != NULL) {
  537.         if (t->ptr == NULL) return vsego;
  538.         if (t->HostelPtr->room != t->ptr->HostelPtr->room){ i++; }
  539.         t = t->ptr;
  540.         vsego = i;
  541.     }
  542.     return vsego;
  543. }
  544.  
  545. void quicksort(DebtObrabot* mas, int first, int last)
  546. {
  547.     int mid, count1, count2;
  548.     int f = first, l = last;
  549.     mid = mas[(f + l) / 2].debt; //вычисление опорного элемента
  550.     do
  551.     {  
  552.         while (mas[f].debt > mid) f++;
  553.         while (mas[l].debt < mid) l--;
  554.         if (f <= l) //перестановка элементов
  555.         {
  556.             count1 = mas[f].debt;
  557.             mas[f].debt = mas[l].debt;
  558.             mas[l].debt = count1;
  559.  
  560.             count2 = mas[f].room;
  561.             mas[f].room = mas[l].room;
  562.             mas[l].room = count2;
  563.             f++;
  564.             l--;
  565.         }
  566.     } while (f < l);
  567.  
  568.     if (first < l) quicksort(mas, first, l);
  569.     if (f < last) quicksort(mas, f, last);
  570. }
  571. void Obrabotka() {
  572.     sortRoom();
  573.    
  574.     DebtObrabot ArrObrabotka[maxRooms];
  575.     int i = 0;
  576.    
  577.     string s1;
  578.     string s2;
  579.     string s3;
  580.     int number1=0;
  581.     int number2=0;
  582.     int number3 = 0;
  583.     int a = 0;
  584.     int k = 0;
  585.     University* t = head;
  586.  
  587.     while (t != NULL) {
  588.         if (t->name == "|имя") {// delBySurname_("|фамелия");
  589.         t = t->ptr; continue; }
  590.         s1 = t->HostelPtr->room;
  591.         s3 = t->HostelPtr->debt;
  592.         number3 = std::stoi(s3);
  593.         number1 = std::stoi(s1);
  594.         if (t->ptr == NULL) {
  595.             t = t->ptr;
  596.             a = a + number3;
  597.             ArrObrabotka[i].debt = a;
  598.             ArrObrabotka[i].room = number1;
  599.             break;
  600.         }
  601.             s2 = t->ptr->HostelPtr->room;
  602.             number2 = std::stoi(s2);
  603.             a = a + number3;
  604.             t = t->ptr;
  605.             if (number1 != number2) {
  606.            
  607.             ArrObrabotka[i].debt = a;
  608.             ArrObrabotka[i].room = number1;
  609.                 a = 0;
  610.                 i++;
  611.             }
  612.     }
  613.     quicksort(ArrObrabotka, 0, maxRooms - 1);
  614.     int y = 0;
  615.     while (y<5) {
  616.         cout << "Долг-" << ArrObrabotka[y].debt << "  |  НомерКомнаты-" << ArrObrabotka[y].room << " \n";
  617.         y++;
  618.         }
  619.     system("pause");
  620. }
  621.  
  622. void gotovo() {
  623.     DelContent(nameFile);
  624.     WriteFromProgToTxt(nameFile);
  625.     Delete_ALL();
  626.     ReedOfTxtToProg(nameFile);
  627.     sortRoom();
  628.     Print();
  629. }
  630. void Help()
  631. {
  632.     system("cls");
  633.     cout << "OPERAVION >>  \n";
  634.     cout << "Dobav_head-1 delBySurname_-2 Corr_By_value-3 SearchByName-4 Obrabotka-5 Delete_ALL-6 WriteFromProgToTxt-7 Exit - anyKEY \n";
  635.     cout << "setFileName-8 Print()-9 \n";
  636.     cout << "Таблица находится в файле  write.txt \n";
  637. }
  638. void Shapka() {
  639.     University* t = head;
  640.     if (t == NULL || t->name != "|имя"
  641.         ) {
  642.         University* head2 = head;
  643.         University* elem = new University();
  644.         // зачетк / фио / направление / группа / № Общаги / № комнаты /долги за общежитие
  645.         elem->Rbook = "|зачетка_N";
  646.         elem->name = "|имя";
  647.         elem->surname = "|фамелия";
  648.         elem->patronymic = "|отчество";
  649.         elem->faculty = "|направление";
  650.         elem->teamN = "|группа";
  651.         elem->HostelPtr->HostelN = "|общага_N";
  652.         elem->HostelPtr->room = "|комната";
  653.         elem->HostelPtr->debt = "|долг\a|";
  654.         elem->ptr = head2;
  655.         head = elem;
  656.     }
  657. }
  658. void StekOperation()
  659. {
  660.     WriteFromProgToTxt(nameFile);
  661.     ReedOfTxtToProg(nameFile);
  662.     Shapka();
  663.  
  664.     string valueDell;
  665.     int opN;
  666.     Help();
  667.     gotovo();
  668.  
  669.     cin >> opN;
  670.     while (true)
  671.     {
  672.         switch (opN) {
  673.             case 1:
  674.                 cout << "Dobav_head\n";  Dobav_head();
  675.                 break;
  676.             case 2:
  677.                 cout << "delBySurname_\n";  cout << "Поиск по фамилии: "; cin >> valueDell; delBySurname_(valueDell); gotovo();
  678.                 break;
  679.             case 3:
  680.                 cout << "Corr_By_value\n";  Corr_By_value();
  681.                 break;
  682.             case 4:
  683.                 cout << "SearchByName\n";  SearchByName();
  684.                 break;
  685.             case 5:
  686.                 cout << "Obrabotka()\n";  Obrabotka();
  687.                 break;
  688.             case 6:
  689.                 cout << "Delete_ALL()\n";  Delete_ALL(); cout << "Для сохранения пустого списка нажмите - 7 \n";
  690.                 break;
  691.             case 7:
  692.                 cout << "WriteFromProgToTxt;\n";  WriteFromProgToTxt(nameFile);
  693.                 break;
  694.             case 8:
  695.                 cout << "setFileName\n"; setFileName();
  696.                 break;
  697.             case 9:
  698.                 cout << "Print()\n";
  699.                 break;
  700.         default:
  701.             cout << "Exit\n"; Delete_ALL(); goto tryAgain;
  702.         }
  703.         Help();
  704. gotovo();
  705.         cin >> opN;
  706.     }
  707. tryAgain: // это лейбл
  708.     exit;
  709. }
  710.  
  711.  
  712. // Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
  713. // Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
  714.  
  715. int main()
  716. {
  717.    
  718.     //setlocale(LC_ALL, "ru");
  719.     setlocale(LC_CTYPE, "Russian");
  720.     SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
  721.     SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
  722.     setlocale(LC_ALL, "Rus"); // Подключение русского языка
  723.     StekOperation();
  724. }
  725. // Советы по началу работы
  726. //   1. В окне обозревателя решений можно добавлять файлы и управлять ими.
  727. //   2. В окне Team Explorer можно подключиться к системе управления версиями.
  728. //   3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
  729. //   4. В окне "Список ошибок" можно просматривать ошибки.
  730. //   5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
  731. //   6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
  732.  
Add Comment
Please, Sign In to add comment