Код | #include <iostream> #include <cstring>
#define STRING_SIZE 20 #define ARRAY_SIZE 3
class Company { private: char* name_; char* address_; char* owner_; int slavesCount_; public: Company(): Company("", "", "", 0) { } Company(const char* name, const char* address, const char* owner, const int slavesCount) { name_ = new char[STRING_SIZE]; strncpy(name_, name, STRING_SIZE-1); name_[STRING_SIZE-1] = 0;
address_ = new char[STRING_SIZE]; strncpy(address_, address, STRING_SIZE-1); name_[STRING_SIZE-1] = 0;
owner_ = new char[STRING_SIZE]; strncpy(owner_, owner, STRING_SIZE-1); owner_[STRING_SIZE-1] = 0;
slavesCount_ = slavesCount; } ~Company() { delete[] name_; delete[] address_; delete[] owner_; } void edit() { char buffer[STRING_SIZE];
std::cout << "enter company name: "; std::cin >> buffer; strncpy(name_, buffer, STRING_SIZE-1);
std::cout << "enter company address: "; std::cin >> buffer; strncpy(address_, buffer, STRING_SIZE-1);
std::cout << "enter company director name: "; std::cin >> buffer; strncpy(owner_, buffer, STRING_SIZE-1);
std::cout << "enter company employees count: "; std::cin >> slavesCount_; } void edit(const char* address) { if (strncmp(address_, address, STRING_SIZE) == 0) edit(); } void show() { std::cout << "company name: " << name_ << std::endl; std::cout << "company address: " << address_ << std::endl; std::cout << "company director name: " << owner_ << std::endl; std::cout << "company employees count: " << slavesCount_ << std::endl; } void show(const char* name) { if (strncmp(name_, name, STRING_SIZE) == 0) show(); } }; //=============================================================== void editArray(Company* array, const int count) { int i; for(i=0; i < count; ++i) { std::cout << "----- edit company " << i << " -----" << std::endl; array[i].edit(); } } //=============================================================== void showArray(Company* array, const int count) { int i; for(i=0; i < count; ++i) { std::cout << "----- show company " << i << " -----" << std::endl; array[i].show(); } } //=============================================================== void showElementByName(Company* array, const int count) { int i; char name[STRING_SIZE]; std::cout << "--------------------------" << std::endl; std::cout << "enter known name: "; std::cin >> name; std::cout << "----- search result for " << name << " -----" << std::endl; for(i=0; i < count; ++i) array[i].show(name); } //=============================================================== void editElementByAddress(Company* array, const int count) { int i; char address[STRING_SIZE]; std::cout << "--------------------------" << std::endl; std::cout << "enter known address: "; std::cin >> address; std::cout << "----- edit elements with address " << address << " -----" << std::endl; for(i=0; i < count; ++i) array[i].edit(address); } //=============================================================== int main(int, char**) { //Объявляется массив объектов этого класса Company* array = new Company[ARRAY_SIZE];
//1) Ввести элементы массива с клавиатуры; editArray(array, ARRAY_SIZE);
//2) Вывести на экран элементы массива (объекты); showArray(array, ARRAY_SIZE);
//4) Вывести на экран элементы, для кот. известно Название; showElementByName(array, ARRAY_SIZE);
//6) Изменить элемент для которого знаем Адрес; editElementByAddress(array, ARRAY_SIZE);
delete[] array; } |
|