Vla_DOS

Untitled

May 25th, 2022
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <string>
  4. #include<conio.h>
  5. #include<cctype>
  6. #include <Windows.h>
  7. using namespace std;
  8. void SetColor_1(int text, int bg) {
  9.     HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  10.     SetConsoleTextAttribute(hStdOut, (WORD)((bg << 4) | text));
  11. }
  12. void SetColor(int color)
  13. {
  14.     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
  15. }
  16. struct Employee
  17. {
  18.     int id;
  19.     char name[80];
  20.     char position[80];
  21.     int time_work;
  22.     int time_month;
  23.     int salary;
  24. };
  25. void PrintEmployee(Employee std);
  26. void PrintTable(Employee* stds, int size);
  27. void Table_main();
  28. void ChangeData(Employee emp[], int id, int size);
  29. void Add(Employee* emp, int size);
  30. //void Show(Labor_Accounting a, Timesheet b)
  31. //{
  32. //  cout << "Name: " << b.Name << endl;
  33. //  cout << "Position: " << b.Position << endl;
  34. //  cout << "Hours per month: " << a.working_hours << endl;
  35. //  cout << "Hours worked: " << b.hours_worked << endl;
  36. //  cout << "Hours not worked: " << a.working_hours - b.hours_worked << endl;
  37. //  cout << "Salary: " <<(float)(b.hours_worked * a.salary) / a.working_hours << endl;
  38. // 
  39. //}
  40.  
  41. void main()
  42. {
  43.     setlocale(LC_ALL, "ukr");
  44.     const int size = 4;
  45.     char choose = NULL;
  46.     Employee* emp = new Employee[4]
  47.     {
  48.         Employee{ 1,"Ivanchuk S.O","бухгалтер",50,3, 15001 },
  49.         Employee{ 2,"Panachenko I.A","бухгалтер",52,4,60000 },
  50.         Employee{ 3,"Zayec I.M","бухгалтер",34,6,35000 },
  51.         Employee{ 4,"Kravchenko Z.I","бухгалтер",39,5,28000 }
  52.  
  53.     };
  54.     PrintTable(emp, 4);
  55.  
  56.         while (true) {
  57.         SetColor(6);
  58.         cout << "\t\t\t\t\tМЕНЮ" << "\n\t\t1.Перегляд даних про всiх спiвробiтникiв  " << "\n\t\t2.Доповнення бази даних новим спiвробiтником " <<
  59.             "\n\t\t3.Видалення iз бази даних спiвробiтника " << "\n\t\t4.Упорядкування спiвробiтників " << "\n\t\t5.Пошук спiвробiтника" << "\n\t\t6.Змiна посади спiвробiтника " <<
  60.             "\n\t\t7.Обчислення: середня кiлькiсть..." << endl;
  61.         SetColor(15);
  62.         cout << "Мiй вибiр - ";
  63.         cin >> choose;
  64.         cin.ignore();
  65.         switch (choose)
  66.         {
  67.         case '1': //DONE
  68.             system("cls");
  69.             PrintTable(emp, size+1);
  70.             break;
  71.         case '2':
  72.             system("cls");
  73.             Add(emp, size+1);
  74.             PrintTable(emp, size+1);
  75.             break;
  76.         case '3':
  77.             system("cls");
  78.             break;
  79.         case '4':
  80.             system("cls");
  81.             break;
  82.         case '5':
  83.             system("cls");
  84.             break;
  85.         case '6': // DONE
  86.             system("cls");
  87.             cout << "Enter id: ";
  88.             int id;
  89.             cin >> id;
  90.             ChangeData(emp, id, size);
  91.             break;
  92.         case '7':
  93.             system("cls");
  94.             break;
  95.  
  96.         default:
  97.             SetColor(9);
  98.             system("cls");
  99.             cout << "Не вiрно набраний текст!";
  100.             SetColor(15);
  101.             break;
  102.         }
  103.  
  104.         SetColor(3);
  105.         cout << "\n\nБажаєте вернутися до поточної сторiнки? y/n ";
  106.         cin >> choose;
  107.         //choose = _getch();
  108.         system("cls");
  109.         SetColor(15);
  110.         if (choose == 'n') { delete[]emp; break; }
  111.         }
  112.  
  113.     //delete[]emp;
  114.  
  115. }
  116.  
  117. void PrintTable(Employee* stds, int size)
  118. {
  119.     Table_main();
  120.     for (int i = 0; i < size; i++)
  121.     {
  122.         /*cout << setw(10) << i + 1 << ". ";*/
  123.         PrintEmployee(stds[i]);
  124.     }
  125.  
  126.  
  127. }
  128. void PrintEmployee(Employee std)
  129. {
  130.     cout << setw(11) << std.id << setw(8);
  131.     cout << setw(15) << std.name << setw(8);
  132.     cout << setw(15) << std.position << setw(8);
  133.     cout << setw(10) << std.time_work << setw(8);
  134.     cout << setw(18) << std.time_month << setw(8);
  135.     cout << setw(21) << std.salary << setw(8);
  136.     cout << endl;
  137.     cout << endl;
  138. }
  139. void Table_main()
  140. {
  141.     cout << setw(11) << "№ " << setw(15) << "|       ПIБ      |" << setw(13) << "|    ПОСАДА    |" << setw(12) << "|ВIДПРАЦЬОВАНI|" << setw(8) << "| К-ТЬ НЕРОБОЧИХ ДНIВ |" << setw(13) << "| ЗАРПЛАТНЯ |" << endl;
  142.     cout << setw(10) << " " << setw(16) << " |                |" << setw(13) << "|              |" << setw(12) << "|   ГОДИНИ    |" << setw(8) << "|      ЗА МIСЯЦЬ      |" << setw(13) << "|           |" << endl;
  143.     cout << "         _______________________________________________________________________________________________" << endl;
  144. }
  145. void ChangeData(Employee emp[], int id, int size)
  146. {
  147.     char ch;
  148.     int ch_1;
  149.     for (int i = 0; i < size; i++)
  150.     {
  151.         if (emp[i].id == id)
  152.         {
  153.             PrintTable(emp, size);
  154.             cin.ignore();
  155.             cout << "Введiть нову посаду: ";
  156.             cin.getline(emp[i].position, 80);
  157.  
  158.         }
  159.  
  160.     }
  161.     cout << "Ви бажаєте ще щось вiдредагувати? y/n - ";
  162.     cin >> ch;
  163.     if (ch == 'y')
  164.     {
  165.         SetColor(8);
  166.         cout << "\n\n\t\tОберiть що саме ви бажаєте вiдредагувати:" <<
  167.             "\n\t\t1.ПIБ" <<
  168.             "\n\t\t2.К-ть вiдпрацьованих годин" <<
  169.             "\n\t\t3.К-ть неробочих днів за мiсяць";
  170.         SetColor(15);
  171.         cout << "\n\n\tВаш вибiр - ";
  172.         cin >> ch_1;
  173.         switch (ch_1)
  174.         {
  175.         case 1:
  176.             for (int i = 0; i < size; i++)
  177.             {
  178.                 if (emp[i].id == id)
  179.                 {
  180.                     cout << "\nВведiть ПIБ: ";
  181.                     cin >> emp[i].name;
  182.                 }
  183.             }
  184.             break;
  185.         case 2:
  186.             for (int i = 0; i < size; i++)
  187.             {
  188.                 if (emp[i].id == id)
  189.                 {
  190.                     cout << "\nВведiть к-ть вiдпрацьованих годин: ";
  191.                     cin >> emp[i].time_work;
  192.                 }
  193.             }
  194.             break;
  195.         case 3:
  196.             for (int i = 0; i < size; i++)
  197.             {
  198.                 if (emp[i].id == id)
  199.                 {
  200.                     cout << "\nВведiть к-ть неробочих днiв за мiсяць : ";
  201.                     cin >> emp[i].time_month;
  202.                 }
  203.             }
  204.             break;
  205.         default:
  206.             system("cls");
  207.             SetColor(9);
  208.             cout << "Помилка! Будь ласка, введiть данi ще раз";
  209.             SetColor(15);
  210.             break;
  211.         }
  212.     }
  213.  
  214. } //
  215.  
  216.  
  217.  
  218. void Add(Employee* emp, int size)
  219. {
  220.     //int id;
  221.     //char* name;
  222.     //char position[80];
  223.     //int time_work;
  224.     //int time_month;
  225.     //int salary;
  226.     ////Employee em;
  227.     //cin >> id;
  228.     //cin >> name;
  229.     //emp = new Employee[1]
  230.     //{
  231.     emp = new Employee[5]{5, "d","df",50,3, 15001};
  232.     //};
  233.     //emp->id = 5;
  234.     //cin >> emp->name;
  235.     //cin >> emp->position;
  236.     //emp->salary = 9;
  237.     //emp->time_month = 9;
  238.     //emp->time_work = 11;
  239.     //for (int i = 5; i < 6; i++)
  240.     //{
  241.     //emp[4] = emp[0];
  242.     //}
  243.     PrintTable(emp, 4+1);
  244.     //char** temp = new char* [size + num];
  245.     //for (int i = 0; i < 1; i++)
  246.     //{
  247.     //  temp[i] = stds[i];
  248.     //}
  249.     //temp[size] = new char[255];
  250.     //Fill(temp[size]);
  251.     //size++;
  252.     //delete[]stds;
  253.     //stds = temp;
  254. }
  255.  
  256.  
  257. //void Add_new()
  258. //{
  259. //  Employee std;
  260. //
  261. //  cout << "Введіть ім'я нового працівника: ";
  262. //  //cin >> str;
  263. //  cin.ignore();
  264. //  cin >> std.name;
  265. //
  266. //  cout << "Введіть посаду: ";
  267. //  cin.ignore();
  268. //  cin>> std.position;
  269. //
  270. //  cout << "Введіть к-ть його відпрацьованих годин: ";
  271. //  cin >> std.time_work;
  272. //
  273. //  cout << "Введіть к-ть його не робочих днів за місяць: ";
  274. //  cin >> std.time_month;
  275. //
  276. //  cout << "Введіть к-ть його не робочих днів за місяць: ";
  277. //  cin >> std.time_month;
  278. //
  279. //  cout << "Введіть його початкову зарплатню: ";
  280. //  cin >> std.salary;
  281. //
  282. //
  283. //  return std;
  284. //}
  285. //Employee* AddEmployeeArr(Employee* stds, int size, Employee std)
  286. //{
  287. //  char** temp = new char* [size + 1];
  288. //  for (int i = 0; i < size+1; i++)
  289. //  {
  290. //      temp[i] = stds[i];
  291. //  }
  292. //  temp[size] = new char[255];
  293. //  Add_new();
  294. //  size++;
  295. //  delete[]stds;
  296. //  std = temp;
  297. //
  298. //  /*Employee* res;
  299. //  res = new Employee[size + 1];
  300. //  for (int i = 0; i < size + 1; i++)
  301. //  {
  302. //      if (i < size)
  303. //      {
  304. //          res[i] = stds[i];
  305. //      }
  306. //      else
  307. //      {
  308. //          res[i] = std;
  309. //      }
  310. //  }
  311. //  return res;
  312. //  delete[]res;*/
  313. // 
  314. //}
  315. //void Delete_emp(Employee stds[], int size, int pos)
  316. //{
  317. //  char** temp = new char* [size - 1];
  318. //  for (int i = 0; i < pos; i++)
  319. //  {
  320. //      temp[i] = stds[i];
  321. //  }
  322. //  delete[]stds[pos];
  323. //  for (int i = pos; i < size; i++)
  324. //  {
  325. //      temp[i] = stds[i + 1];
  326. //  }
  327. //  delete[]stds;
  328. //  stds[] = temp;
  329. //  size--;
  330. //}
  331. //void DelTeachByName(Employee stds[], int size, char* name)
  332. //{
  333. //  int index = -1;
  334. //  for (int i = 0; i < size; i++)
  335. //  {
  336. //      if (_strcmpi(stds[i], name) == 0)
  337. //      {
  338. //          index = i;
  339. //          break;
  340. //      }
  341. //
  342. //  }
  343. //  if (index == -1)
  344. //  {
  345. //      cout << "Not found" << endl;
  346. //      return;
  347. //  }
  348. //  Delete_emp(stds, size, index);
  349. // 
  350. //}
Advertisement
Add Comment
Please, Sign In to add comment