Advertisement
tranerius

23. Типо бд

Dec 25th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.08 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. class Person {
  4.     std::string **personDB;
  5.     int rows = 0, personID = 0, userID;
  6.     const int cols = 5;
  7. public:
  8.     Person() {
  9.         this->personDB = nullptr;
  10.     }
  11.     void addPerson() {
  12.         rows++;
  13.         if (personID != 0) {
  14.             std::string **increasePersonDB = new std::string*[rows];
  15.             for (int i = 0; i < rows; i++) {
  16.                 increasePersonDB[i] = new std::string[cols];
  17.             }
  18.             for (int i = 0; i < rows - 1; i++) {
  19.                 for (int j = 0; j < cols; j++) {
  20.                     increasePersonDB[i][j] = personDB[i][j];
  21.                 }
  22.             }
  23.             for (int i = 0; i < rows - 1; i++) {
  24.                 delete[]this->personDB[i];
  25.             }
  26.             delete[] this->personDB;
  27.             personDB = increasePersonDB;
  28.             increasePersonDB = nullptr;
  29.         }
  30.         else {
  31.             this->personDB = new std::string*[rows];
  32.             for (int i = 0; i < rows; i++) {
  33.                 this->personDB[i] = new std::string[cols];
  34.             }
  35.         }
  36.         personID++;
  37.         personDB[rows - 1][0] = personID + '0';
  38.         std::cout << "Введите имя: ";
  39.         std::cin >> personDB[rows - 1][1];
  40.         std::cout << "Введите фамилию: ";
  41.         std::cin >> personDB[rows - 1][2];
  42.         std::cout << "Введите возраст пользователя " << personDB[rows - 1][1] << " " << personDB[rows - 1][2] << ": ";
  43.         std::cin >> personDB[rows - 1][3];
  44.         std::cout << "Введите вес пользователя " << personDB[rows - 1][1] << " " << personDB[rows - 1][2] << ": ";
  45.         std::cin >> personDB[rows - 1][4];
  46.         std::cout << std::endl;
  47.     }
  48.     ~Person();
  49.     void shawUsers() {
  50.         if (this->personDB != nullptr) {
  51.             std::cout << "ID\tИмя\tФамилия\tВозраст\tВес" << std::endl;
  52.             for (int i = 0; i < rows; i++) {
  53.                 for (int j = 0; j < cols; j++) {
  54.                     std::cout << this->personDB[i][j] << "\t";
  55.                 }
  56.                 std::cout << std::endl;
  57.             }
  58.             std::cout << std::endl;
  59.         }
  60.         else {
  61.             std::cout << "Вы ещё не добавили пользователей" << std::endl;
  62.             std::cout << std::endl;
  63.         }
  64.     }
  65.     void changeUserData() {
  66.         if (this->personDB == nullptr) {
  67.             std::cout << "Вы ещё не добавили пользователей" << std::endl;
  68.             std::cout << std::endl;
  69.         }
  70.         else {
  71.             do {
  72.                 std::cout << "Введите id пользователя, данные которого необходимо изменить: ";
  73.                 std::cin >> userID;
  74.                 if (userID > rows) {
  75.                     std::cout << "Пользователь с id = " << userID << " не найден." << std::endl;
  76.                 }
  77.             } while (userID > rows);
  78.             userID--;
  79.             std::cout << "Введите имя: ";
  80.             std::cin >> personDB[userID][1];
  81.             std::cout << "Введите фамилию: ";
  82.             std::cin >> personDB[userID][2];
  83.             std::cout << "Введите возраст пользователя " << personDB[rows - 1][1] << " " << personDB[rows - 1][2] << ": ";
  84.             std::cin >> personDB[userID][3];
  85.             std::cout << "Введите вес пользователя " << personDB[rows - 1][1] << " " << personDB[rows - 1][2] << ": ";
  86.             std::cin >> personDB[userID][4];
  87.             std::cout << std::endl;
  88.         }
  89.     }
  90. };
  91. Person::~Person() {
  92.     for (int i = 0; i < rows; i++) {
  93.         delete[] this->personDB[i];
  94.     }
  95.     delete[] this->personDB;
  96.     this->personDB = nullptr;
  97. }
  98. int main() {
  99.     setlocale(LC_ALL, "ru");
  100.     char answer;
  101.     Person dataBase;
  102.     while (true) {
  103.         do {
  104.             std::cout << "1 - Добавить нового пользователя\n2 - Отобразить пользователей\n3 - Изменить данные пользователя\ne - Завершить работу" << std::endl;
  105.             std::cout << "Введите номер действия, которое хотите выполнить: ";
  106.             std::cin >> answer;
  107.             if (answer != '1' && answer != '2' && answer != '3' && answer != 'e') {
  108.                 std::cout << "\nНеверный ответ\n" << std::endl;
  109.             }
  110.         } while (answer != '1' && answer != '2' && answer != '3' &&  answer != 'e');
  111.         std::cout << std::endl;
  112.         switch (answer) {
  113.         case '1':
  114.             dataBase.addPerson();
  115.             break;
  116.         case '2':
  117.             dataBase.shawUsers();
  118.             break;
  119.         case '3':
  120.             dataBase.changeUserData();
  121.             break;
  122.         case 'e':
  123.             return 0;
  124.         }
  125.     }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement