C++ STL; Реализовать иерархию классов
3 000 руб. за проект
Здравствуйте! Нужно написать две маленькие программы на C++.
1) Наследование и полиморфизм. Сделать базовый класс Person. Помимо базового класса реализовать не менее 5 производных классов и, по крайней мере, 3
уровня в иерархии (н-р, класс С наследует B, а класс B наследует A).
В каждом классе ввести закрытые поля и открытые методы доступа к полям.
В базовом классе ввести виртуальные методы (н-р, toString, show), в производных классах ввести
переопределения виртуальных методов.
Ввести статические элементы хотя бы в 3 классах (н-р, статическое поле - наибольший рост
человека Human::MaximalGrowth).
В главном модуле (с функцией main) ввести массив указателей на объекты базового класса. Число
элементов массива можно задать константой (N >= 10) или определять динамически в программе.
Заполнить массив объектами разных типов. Выполнить обработку массива объектов для того,
чтобы:
- подсчитать количество объектов каждого типа; для проверки типа объекта в массиве можно
использовать операторы dynamic_cast или typeid;
- вывести информацию по каждому объекту, используя виртуальные методы базового класса (н-р,
show или toString);
- найти объекты, удовлетворяющие условию; например, найти студентов с самым ранним годом
поступления.
Предусмотреть освобождение динамической памяти.
2) Работа с контейнерами и алгоритмами STL.
Сделать базовый класс City. В классе введите по крайней мере три поля разного типа (н-р, int, string, float).
Реализуйте консольное меню для возможности работы с коллекцией объектов (добавление,
удаление и вывод). В качестве коллекции можно использовать контейнер из STL (vector, list, stack,
map и т.п.).
Через консольное меню реализуйте возможность выполнения следующих операций: сортировка
элементов, поиск максимального или минимального элемента (н-р, поиск города с наибольшей
численностью), вычисление агрегированного значения (н-р, суммарное население городов), поиск элемента по заданному названию (н-р, поиск по названию города), поиск элемента,
удовлетворяющего условию (н-р, поиск города с площадью, большей чем 20 000 км2
). Для
реализации операций используйте алгоритмы STL (заголовочные файлы algorithm, functional): sort,
min_element, transform, accumulate, for_each, find_if.
!!!! Пожалуйста, комментируйте код так, чтобы было понятно, что делает каждая строчка!
1) Наследование и полиморфизм. Сделать базовый класс Person. Помимо базового класса реализовать не менее 5 производных классов и, по крайней мере, 3
уровня в иерархии (н-р, класс С наследует B, а класс B наследует A).
В каждом классе ввести закрытые поля и открытые методы доступа к полям.
В базовом классе ввести виртуальные методы (н-р, toString, show), в производных классах ввести
переопределения виртуальных методов.
Ввести статические элементы хотя бы в 3 классах (н-р, статическое поле - наибольший рост
человека Human::MaximalGrowth).
В главном модуле (с функцией main) ввести массив указателей на объекты базового класса. Число
элементов массива можно задать константой (N >= 10) или определять динамически в программе.
Заполнить массив объектами разных типов. Выполнить обработку массива объектов для того,
чтобы:
- подсчитать количество объектов каждого типа; для проверки типа объекта в массиве можно
использовать операторы dynamic_cast или typeid;
- вывести информацию по каждому объекту, используя виртуальные методы базового класса (н-р,
show или toString);
- найти объекты, удовлетворяющие условию; например, найти студентов с самым ранним годом
поступления.
Предусмотреть освобождение динамической памяти.
2) Работа с контейнерами и алгоритмами STL.
Сделать базовый класс City. В классе введите по крайней мере три поля разного типа (н-р, int, string, float).
Реализуйте консольное меню для возможности работы с коллекцией объектов (добавление,
удаление и вывод). В качестве коллекции можно использовать контейнер из STL (vector, list, stack,
map и т.п.).
Через консольное меню реализуйте возможность выполнения следующих операций: сортировка
элементов, поиск максимального или минимального элемента (н-р, поиск города с наибольшей
численностью), вычисление агрегированного значения (н-р, суммарное население городов), поиск элемента по заданному названию (н-р, поиск по названию города), поиск элемента,
удовлетворяющего условию (н-р, поиск города с площадью, большей чем 20 000 км2
). Для
реализации операций используйте алгоритмы STL (заголовочные файлы algorithm, functional): sort,
min_element, transform, accumulate, for_each, find_if.
!!!! Пожалуйста, комментируйте код так, чтобы было понятно, что делает каждая строчка!
Отзывы
Очень быстро и качественно выполнил работу. Приятный в общении; аккуратный, красивый код. Все прекрасно.
~ 2 года
назад
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.