Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- class Person {
- std::string **personDB;
- int rows = 0, personID = 0, userID;
- const int cols = 5;
- public:
- Person() {
- this->personDB = nullptr;
- }
- void addPerson() {
- rows++;
- if (personID != 0) {
- std::string **increasePersonDB = new std::string*[rows];
- for (int i = 0; i < rows; i++) {
- increasePersonDB[i] = new std::string[cols];
- }
- for (int i = 0; i < rows - 1; i++) {
- for (int j = 0; j < cols; j++) {
- increasePersonDB[i][j] = personDB[i][j];
- }
- }
- for (int i = 0; i < rows - 1; i++) {
- delete[]this->personDB[i];
- }
- delete[] this->personDB;
- personDB = increasePersonDB;
- increasePersonDB = nullptr;
- }
- else {
- this->personDB = new std::string*[rows];
- for (int i = 0; i < rows; i++) {
- this->personDB[i] = new std::string[cols];
- }
- }
- personID++;
- personDB[rows - 1][0] = personID + '0';
- std::cout << "Введите имя: ";
- std::cin >> personDB[rows - 1][1];
- std::cout << "Введите фамилию: ";
- std::cin >> personDB[rows - 1][2];
- std::cout << "Введите возраст пользователя " << personDB[rows - 1][1] << " " << personDB[rows - 1][2] << ": ";
- std::cin >> personDB[rows - 1][3];
- std::cout << "Введите вес пользователя " << personDB[rows - 1][1] << " " << personDB[rows - 1][2] << ": ";
- std::cin >> personDB[rows - 1][4];
- std::cout << std::endl;
- }
- ~Person();
- void shawUsers() {
- if (this->personDB != nullptr) {
- std::cout << "ID\tИмя\tФамилия\tВозраст\tВес" << std::endl;
- for (int i = 0; i < rows; i++) {
- for (int j = 0; j < cols; j++) {
- std::cout << this->personDB[i][j] << "\t";
- }
- std::cout << std::endl;
- }
- std::cout << std::endl;
- }
- else {
- std::cout << "Вы ещё не добавили пользователей" << std::endl;
- std::cout << std::endl;
- }
- }
- void changeUserData() {
- if (this->personDB == nullptr) {
- std::cout << "Вы ещё не добавили пользователей" << std::endl;
- std::cout << std::endl;
- }
- else {
- do {
- std::cout << "Введите id пользователя, данные которого необходимо изменить: ";
- std::cin >> userID;
- if (userID > rows) {
- std::cout << "Пользователь с id = " << userID << " не найден." << std::endl;
- }
- } while (userID > rows);
- userID--;
- std::cout << "Введите имя: ";
- std::cin >> personDB[userID][1];
- std::cout << "Введите фамилию: ";
- std::cin >> personDB[userID][2];
- std::cout << "Введите возраст пользователя " << personDB[rows - 1][1] << " " << personDB[rows - 1][2] << ": ";
- std::cin >> personDB[userID][3];
- std::cout << "Введите вес пользователя " << personDB[rows - 1][1] << " " << personDB[rows - 1][2] << ": ";
- std::cin >> personDB[userID][4];
- std::cout << std::endl;
- }
- }
- };
- Person::~Person() {
- for (int i = 0; i < rows; i++) {
- delete[] this->personDB[i];
- }
- delete[] this->personDB;
- this->personDB = nullptr;
- }
- int main() {
- setlocale(LC_ALL, "ru");
- char answer;
- Person dataBase;
- while (true) {
- do {
- std::cout << "1 - Добавить нового пользователя\n2 - Отобразить пользователей\n3 - Изменить данные пользователя\ne - Завершить работу" << std::endl;
- std::cout << "Введите номер действия, которое хотите выполнить: ";
- std::cin >> answer;
- if (answer != '1' && answer != '2' && answer != '3' && answer != 'e') {
- std::cout << "\nНеверный ответ\n" << std::endl;
- }
- } while (answer != '1' && answer != '2' && answer != '3' && answer != 'e');
- std::cout << std::endl;
- switch (answer) {
- case '1':
- dataBase.addPerson();
- break;
- case '2':
- dataBase.shawUsers();
- break;
- case '3':
- dataBase.changeUserData();
- break;
- case 'e':
- return 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement