Advertisement
35657

Untitled

Mar 1st, 2024
588
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.86 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. struct date_time {
  4.     int day;
  5.     int month;
  6.     int year;
  7.     int hour;
  8.     int minutes;
  9.     int seconds;
  10. };
  11. struct cases {
  12.     char title[100];
  13.     char description[100];
  14.     date_time dt;
  15.     int priority;
  16. };
  17. struct list_cases {
  18.     cases store[100];//хранилище
  19.     int cases_number = 0;//текущее количество элементов хранилища
  20. };
  21. //Добавить задание(+)
  22. void add_cases(list_cases& some_list, const char* title, const char* description, const date_time dt, const int priority) {
  23.     if (some_list.cases_number == 100) {
  24.         cout << "Задание не может быть добавлено" << endl;
  25.         return;
  26.     }
  27.     strcpy(some_list.store[some_list.cases_number].title, title);
  28.     strcpy(some_list.store[some_list.cases_number].description, description);
  29.     some_list.store[some_list.cases_number].dt = dt;
  30.     some_list.store[some_list.cases_number].priority = priority;
  31.     some_list.cases_number++;
  32. }
  33. //Удалить задание(+)
  34. void del_case(list_cases& some_list, const char* title) {
  35.     for (int i = 0; i < some_list.cases_number; i++) {
  36.         if (!strcmp(some_list.store[i].title, title)) {
  37.             for (int j = i; j < some_list.cases_number - 1; j++) {
  38.                 some_list.store[j] = some_list.store[j + 1];
  39.             }
  40.             some_list.cases_number--;
  41.         }
  42.     }
  43. }
  44.  
  45. //Найти задание по названию(+)
  46. void find_case_by_title(struct list_cases& some_list, const char* title) {
  47.     for (int i = 0; i < some_list.cases_number; i++) {
  48.         if (!strcmp(some_list.store[i].title, title)) {
  49.             cout << some_list.store[i].title << ", описание - " << some_list.store[i].description << ", дата - " << some_list.store[i].dt.day << '.' << some_list.store[i].dt.month << '.' << some_list.store[i].dt.year << " " << ", время - " << some_list.store[i].dt.hour << ":" << some_list.store[i].dt.minutes << ":" << some_list.store[i].dt.seconds << ", важность - " << some_list.store[i].priority << endl;
  50.         }
  51.     }
  52.     cout << endl;
  53. }
  54. //по важности(+)
  55. void find_case_by_priority(struct list_cases& some_list, const int priority) {
  56.     int max = 0, num;
  57.     for (int i = 0; i < some_list.cases_number; i++) {
  58.         if (some_list.store[i].priority == priority) {
  59.             if (some_list.store[i].priority > max) {
  60.                 max = some_list.store[i].priority;
  61.                 num = i;
  62.             }
  63.  
  64.             cout << some_list.store[num].title << ", описание - " << some_list.store[num].description << ", дата - " << some_list.store[num].dt.day << '.' << some_list.store[num].dt.month << '.' << some_list.store[num].dt.year << " " << ", время - " << some_list.store[num].dt.hour << ":" << some_list.store[num].dt.minutes << ":" << some_list.store[num].dt.seconds << ", важность - " << some_list.store[num].priority << endl;
  65.         }
  66.     }
  67. }
  68. //по дате и времени(+) ура!!! заработало))
  69. void find_case_by_dt(list_cases& some_list, struct date_time d) {
  70.     for (int i = 0; i < some_list.cases_number; i++) {
  71.         if (some_list.store[i].dt.day == d.day && some_list.store[i].dt.month == d.month && some_list.store[i].dt.year == d.year || some_list.store[i].dt.hour == d.hour && some_list.store[i].dt.minutes == d.minutes && some_list.store[i].dt.seconds == d.seconds) {
  72.             cout << some_list.store[i].title << ", описание - " << some_list.store[i].description << ", дата - " << some_list.store[i].dt.day << '.' << some_list.store[i].dt.month << '.' << some_list.store[i].dt.year << " " << ", время - " << some_list.store[i].dt.hour << ":" << some_list.store[i].dt.minutes << ":" << some_list.store[i].dt.seconds << ", важность - " << some_list.store[i].priority << endl;
  73.         }
  74.     }
  75. }
  76. //по описанию(+)
  77. void find_case_by_description(struct list_cases& some_list, const char* description) {
  78.     for (int i = 0; i < some_list.cases_number; i++) {
  79.         if (!strcmp(some_list.store[i].description, description)) {
  80.             cout << some_list.store[i].title << ", описание - " << some_list.store[i].description << ", дата - " << some_list.store[i].dt.day << '.' << some_list.store[i].dt.month << '.' << some_list.store[i].dt.year << " " << ", время - " << some_list.store[i].dt.hour << ":" << some_list.store[i].dt.minutes << ":" << some_list.store[i].dt.seconds << ", важность - " << some_list.store[i].priority << endl;
  81.         }
  82.     }
  83.     cout << endl;
  84. };
  85. //редактировать задание(работает)
  86. void edit_case(list_cases& some_list, const char* title, int index, int value) {
  87.     for (int i = 0; i < some_list.cases_number; i++) {
  88.         if (!strcmp(some_list.store[i].title, title)) {
  89.             if (index < 0 || index > some_list.cases_number) {
  90.                 cout << "Индекс некорректный" << endl;
  91.                 return;
  92.             }
  93.             for (int i = 0; i < some_list.cases_number; i++) {
  94.                 some_list.store[index].priority = value;
  95.             }
  96.         }
  97.     }
  98. }
  99.  
  100. //сортировка в порядке возрастания приоритета (для сортировки в порядке убывания поменять знак в if)
  101. void sort_by_priority(list_cases& some_list) {
  102.     cases temp;
  103.     for (int i = 0; i < some_list.cases_number - 1; i++) {
  104.         for (int j = i + 1; j < some_list.cases_number; j++) {
  105.             if (some_list.store[j].priority < some_list.store[i].priority) {
  106.                 temp = some_list.store[i];
  107.                 some_list.store[i] = some_list.store[j];
  108.                 some_list.store[j] = temp;
  109.             }
  110.         }
  111.     }
  112. }
  113.  
  114.  
  115. //Вывели все задания
  116. void print(const list_cases& some_list) {
  117.     for (int i = 0; i < some_list.cases_number; i++) {
  118.         cout << some_list.store[i].title << ", описание - " << some_list.store[i].description << ", дата - " << some_list.store[i].dt.day << '.' << some_list.store[i].dt.month << '.' << some_list.store[i].dt.year << " " << ", время - " << some_list.store[i].dt.hour << ":" << some_list.store[i].dt.minutes << ":" << some_list.store[i].dt.seconds << ", важность - " << some_list.store[i].priority << endl;
  119.     };
  120.     cout << endl;
  121. }
  122. int main()
  123. {
  124.     setlocale(LC_ALL, "ru");
  125.     list_cases my_cases;
  126.     add_cases(my_cases, "Case1", "Description1", { 01,02,2024,11,00,00 }, 3);
  127.     add_cases(my_cases, "Case2", "Description2", { 02,02,2024,12,00,00 }, 4);
  128.     add_cases(my_cases, "Case3", "Description3", { 03,02,2024,13,00,00 }, 5);
  129.     add_cases(my_cases, "Case4", "Description4", { 04,02,2024,14,00,00 }, 2);
  130.     add_cases(my_cases, "Case5", "Description5", { 05,02,2024,15,00,00 }, 1);
  131.  
  132.     print(my_cases);
  133.     //del_case(my_cases, "Case2");//Удалить Case2
  134.     //print(my_cases);//Вывод после удаления Case2
  135.     //find_case_by_title(my_cases, "Case4");
  136.     //find_case_by_priority(my_cases, 5);
  137.     //find_case_by_description(my_cases, "Description4");
  138.     //find_case_by_dt(my_cases, { 03,02,2024, 13,0,0});//поиск по дате и времени
  139.     //edit_case(my_cases, "Case2", 3, 444);//для int
  140.     sort_by_priority(my_cases);
  141.     print(my_cases);
  142.     //cout << endl;
  143.     //print(my_cases);
  144.  
  145. }
  146.  
  147.  
  148.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement