Advertisement
Qellex

siaod lab 2 - 5v

Mar 17th, 2022 (edited)
767
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.22 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <iostream>
  3. #include <string.h>
  4. #include <locale.h>
  5. using namespace std;
  6. #define STR_LENGTH 90
  7. /*5) Создать АТД, который описывает библиотечную карточку. АТД должен хранить заглавие книги,
  8. имя автора, суммарное количество экземпляров данной книги и выданное на руки число
  9. экземпляров книги.
  10. Функции:
  11.   ввод информации о книге;
  12.   вывод информации о книге на экран;
  13.   изменения количества экземпляров книги*/
  14.  
  15.   // создаем структуру для книги
  16. struct Card {
  17. private:
  18.     string caption;
  19.     string author;
  20.     int total_count;
  21.     int given_count;
  22.     // функции для структуры
  23. public:
  24.     void set(string, string, int, int); // для добавления значений
  25.     void print(); // для вывода
  26.     void change_count(int, int); // для изменений значения
  27. };
  28.  
  29. typedef struct Card card;
  30.  
  31. // для добавления значений
  32. void Card::set(string c, string a, int tc, int gc) {
  33.     caption = c;
  34.     author = a;
  35.     total_count = tc;
  36.     given_count = gc;
  37. }
  38. // для вывода
  39. void Card::print(void) {
  40.     cout << "Книга: " << caption << "\nАвтор: " << author << "\nВсего книг: " << total_count << "\nВыдано на руки: " << given_count << "\n";
  41. }
  42. // для изменений значения
  43. void Card::change_count(int total_count_, int given_count_) {
  44.     total_count = total_count_;
  45.     given_count = given_count_;
  46. }
  47.  
  48. card Card;
  49.  
  50. // для изменений значения
  51. void menu_edit_book_count() {
  52.     int total_count, given_count;
  53.     do {
  54.         cout << "Введите суммарное кол-во экземпляров книги: ";
  55.         cin >> total_count;
  56.     } while (total_count < 0);
  57.     do {
  58.         cout << "Введите выданное на руки число экземпляров книги: ";
  59.         cin >> given_count;
  60.     } while (given_count<0 || given_count>total_count);
  61.     Card.change_count(total_count, given_count);
  62. }
  63. // для ввода значений
  64. void menu_add_book() {
  65.     string caption, author;
  66.     cout << "Введите название книги: ";
  67.     cin >> caption;
  68.     cout << "Введите автора книги: ";
  69.     cin >> author;
  70.     Card.set(caption, author, 0, 0);
  71.     menu_edit_book_count();
  72. }
  73.  
  74. // для вывода
  75. void menu_show_book() {
  76.     Card.print();
  77. }
  78.  
  79. // менюшка
  80. void menu() {
  81.     int c;
  82.     string text = "1) Добавить книгу\n2) Изменить кол-во книги\n3) Показать книгу \n4) Выйти\n>>>";
  83.     cout << text;
  84.     cin >> c;
  85.     switch (c) {
  86.     case 1: menu_add_book(); break;
  87.     case 2: menu_edit_book_count(); break;
  88.     case 3: menu_show_book(); break;
  89.     case 4: return;
  90.     default: cout << "Некорректный ввод. Попробуйте ещё раз.";
  91.     }
  92.     menu();
  93. }
  94.  
  95. int main() {
  96.     setlocale(LC_ALL, "rus");
  97.     menu();
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement