Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа обработки массива данных класса "Предпри 
:(
    Опции темы
molotokan
Дата 29.10.2019, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.10.2019

Репутация: нет
Всего: нет



Дан класс Предприятие с приватными (private) полями: название, адрес, имя директора, количество сотрудников и публичные поля: конструктор без параметров, конструктор с параметрами, деструктор и вспомогательные функции. Создать программу, в кот. Объявляется массив объектов этого класса и меню (каждый пункт меню – отдельная функция):

1) Ввести элементы массива с клавиатуры;

2) Вывести на экран элементы массива (объекты);

3) Сортировать по убыванию по полю Количество сотрудников;

4) Вывести на экран элементы, для кот. известно Название;

5) Добавить на первую позицию новый элемент;

6) Изменить элемент для которого знаем Адрес;

7) Записать элементы массива в файл;

8) Вывести на экран последний элемент из файла.
PM MAIL   Вверх
kapbepucm
Дата 5.11.2019, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



Код
#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;
}



--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1140 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.