|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.12.2012, 18:24 | #1 |
Регистрация: 20.12.2012
Сообщений: 9
|
К.Р. по C++
Помогите, пожалуйста решить задания к к.р. по С++!
Задачи 1. Спецификация класса строк имеет вид: class string{ private: char * str; /* указатель на строку*/ int length; /*длина строки*/ public: string (int size); string (char * str); string ( ); ~string ( ): ……. } Дать определение и реализацию конструкторов (конструктор без параметров-по умолчанию (инициализирует указатель на строку значением null и устанавливает значение длины строки в 0), коструктор с параметром int size инициализирует строку соответствующей длины, заполненную пробелами, конструктор с параметром строкой выбирает для инициализации этот параметр. Дать реализацию деструктора и перегрузить оператор присваивания. 2. Дать определение и реализацию класса Intset, моделирующего множество целых (Любые элементы целог типа могут размещаться в этом множестве). Максимальный размер множества – не более 100 элементов ( следовательно допускается размещение массива непосредственно в объекте без использования heap-памяти). Определить конструктор по-умолчанию-создает пустое множество. Определить методы 1) для включения в множество элемента, 2) для его его удаления. 3. Класс моделирования стека литерных имеет спецификацию: class StackOfChars{ private: ……. public: StackOfChars(); /* констр-р */ StackOfChars(char c); /* констр-р */ …. ~StackOfChars( ); /* дест-р */ void push (char c); /* запись в стек */ char pop ( ); /* извлечение из стека верхнего элемента с удалением из стека*/ int isEpty(); /*проверка пустоты стека*/ } Дать спецификацию и реализацию класса. Размер стека не ограничен и необходимо использовать heap-память для размещения элементов. 4. Дать определение класса Matrix – квадратных матриц и реализацию этого класса. Конструктор принимает два параметра – первый указывает размерность матрицы, а второй позволяет сформировать ее элементы на основе одинаковых значений из значения второго параметра. Дать реализацию метода перемножения матриц и дополнительно дать реализацию конструктора копирования. 5. Дать спецификацию и реализацию класса Complex (действительная и мнимая части представлены типом double). Дать реализацию 2 конструкторов – 1) конструктора по умолчанию, 2) конструктора с 2 параметрами, для установки значения мнимой величины. Перегрузить оператор + (сложения) в классе комплексных. Обеспечить преобразование типа double в тип Complex. 6. Дать определение класса Matrix2 – квадратных матриц и реализацию этого класса. Конструктор принимает два параметра – первый указывает размерность матрицы, а второй позволяет сформировать ее элементы на основе одинаковых значений из значения второго параметра. Перегрузить операторы + и = в этом классе. 7. Дать спецификацию и реализацию класса Complex2 (действительная и мнимая части представлены типом double). Дать реализацию 2 конструкторов – 1) конструктора по умолчанию, 2) конструктора с 2 параметрами, для установки значения мнимой величины. Перегрузить оператор * (умножения) в классе комплексных. Обеспечить преобразование типа Complex2 к типу double. 8. Дать определение и реализацию класса AssociationList, в котором размещаются символьные пары <ключ, значение> (использовать реализацию на основе списков). Определить и дать реализацию конструктора класса по умолчанию, создающего объект без элементов и метод для добавления пары <ключ, значение>. Дополнительно дать реализацию конструктора копирования. 9. Дать определение и реализацию класса AssociationList2, в котором размещаются символьные пары <ключ, значение> (использовать реализацию на основе списков). Определить и дать реализацию 1) конструктора с одним параметром <ключ, значение>, создающего объект содним элементом и 2) метода для поиска элемента по ключу- параметру, возвращающего соответствующее ключу значение. Дополнительно дать реализацию деструктора. 10. Класс Ship включает данные о текущих координатах корабля (широта и долгота заданные тройками – градусы, минуты и секунды), его скорости, названия порта куда он направляется, грузоподъемности и названии (char *). Название является константой. Если корабль никуда не направляется, то его скорость указывается нулем и название порта, куда он направляется пустой строкой. Дать реализацию методов, позволяющих читать и изменять свойства. Константные свойства, естественно, не изменяются. Обратить внимание на то, что название корабля – константа и его надо инициализировать в момент создания объекта, а не формировать присваиванием. Дополнительно дать реализацию конструктора копирования. |
20.12.2012, 18:24 | #2 |
Регистрация: 20.12.2012
Сообщений: 9
|
11. Дать спецификацию и реализацию класса Port, в котором размещаются объекты
класса Ship (это можно представить списком). Объекты класса Port включают два параметра – название и пропускная способность. Последнее это максимальный тоннаж кораблей, которые могут находиться в порту. Объекты класса Ship характеризуются двумя свойствами – названием и тоннажем. Дать реализацию конструкторов с соответствующим числом параметров для обоих классов, которые позволяют – создавать объекты классов. Представить метод, который позволяет добавлять корабль в список кораблей в порту, при этом не добавлять элемент в список, если общий тоннаж кораблей в списке будет превышать максимально допустимый тоннаж для объекта-порта. 12. Дать спецификацию и реализацию класса Port2, в котором размещаются объекты класса Ship2 (это можно представить списком). Объекты класса Port2 включают два параметра – название и пропускная способность. Последнее это максимальный тоннаж кораблей, которые могут находиться в порту. Объекты класса Ship2 характеризуются двумя свойствами – названием и тоннажем. Дать реализацию конструкторов с соответствующим числом параметров для обоих классов, которые позволяют – создавать объекты классов. Дополнительно дать реализацию конструктора копирования для класса Port, который «берет» из исходного объекта значение пропускной способности, название устанавливает равным “None”, а список кораблей в порту копирует из исходного списка. 13. Дать определение и реализацию класса AlarmSky, являющегося моделью системы отслеживания состояния некоторого участка воздушного пространства. Объекты этого класса содержат: название-строку (char *, константа), количество ракет и список объектов класса Target. Объекты класса Target содержат 2 параметра – тип объекта (символьная строка до 10 символов) и данные о высоте, на которой находится объект. Дать реализацию конструкторов для обоих классов. Дать реализацию метода для добавления объектов класса Target в список объектов, который размещается в классе AlarmSky. Перегрузить оператор == (сравнения) в классе AlarmSky, который сравнивает на равенство только 2 свойства объектов этого класса – название и количество ракет. 14. Дать определение и реализацию класса AlarmSky2, являющегося моделью системы отслеживания состояния некоторого участка воздушного пространства. Объекты этого класса содержат: название-строку (char *, константа), количество ракет и список объектов класса Target2. Объекты класса Target2 содержат 2 параметра – тип объекта (символьная строка до 10 символов) и данные о высоте, на которой находится объект. Дать реализацию конструкторов для обоих классов. Дать реализацию метода hypothesis() в классе AlarmSky2, который позволяет вычислить предполагаемое число ракет для уничтожения всех объектов класса Target2, если для этого необходимо по 2 ракеты для объектов ниже 5 км и по 3 ракеты для тех, которые выше. Дать реализацию конструктора копирования в классе Target2. 15. Дать спецификацию и реализацию класса Dispatch, в котором размещается список объектов класса Ship. Объекты класса Dispatch содержат 2 свойства – название (char *,константа) и список объектов класса Ship. Объекты класса Ship характеризуются 2 свойствами – бортовым номером (строка до 20 символов) и расстоянием в км до аэропорта прибытия (тип double). Дать реализацию конструкторов для обоих классов. Дать реализацию метода add в классе Dispatch, который позволяет добавлять объекты класса Ship в список объектов. Дать реализацию метода Graphic(Х, У) в классе Dispatch, который позволяет вычислить общее количество объектов класса Ship, которые прибудут в аэропорт не позднее чем через Х минут, если исходить из средней скорости У км/час. |
20.12.2012, 18:24 | #3 |
Регистрация: 20.12.2012
Сообщений: 9
|
16. Дать спецификацию и реализацию класса Elephant. Класс включает статическую
переменную Kl, в которой отслеживается количество создаваемых и удаляемых объектов этого класса. Переменную инициализировать значением 0. В классе Elephant содержатся переменные Money, Name, Comment, соответственно – затраты на питание (double), кличка животного (char[80]) и комментарий (char[50]). Конструкторы и деструкторы объектов класса Elephant должны управлять значением переменной Kl (инкремент, декремент). Перегрузить оператор присваивания этого класса. Дополнительно дать реализацию конструктора копирования. 17. Дать определение и реализацию класса Airport, в котором размещается список объектов класса Ship. Объекты класса Airport содержат 2 свойства – название (char*, константа) и список объектов класса Ship. Объекты класса Ship характеризуются 2 свойствами – бортовым номером (строка до 20 символов) и временем оставшимся до посадки, заданным в минутах. 0-е время означает, что самолет приземлился. Дать реализацию конструкторов объектов обоих классов. Дать реализацию метода add, который позволяет – добавлять объекты класса Ship в список объектов класса Airport. Дать реализацию метода Arival(Х) в классе Dispatch, который позволяет вычислить общее количество объектов класса Ship (самолетов), которые приземлятся в аэропорту не позднее, чем через Х минут. Перегрузить оператор = (присваивания) в классе Ship. 18. Дать спецификацию и реализацию класса RailwayStation, в котором размещаются объекты класса Train. Объекты класса RailwayStation содержат 4 свойства – название (char*, константа), список объектов класса Train и объемы (в тоннах) максимально возможного для хранения груза и действительно хранимого груза на станции в настоящий момент времени. Объекты класса Train характеризуются 2 свойствами – номером товарного поезда (char[20]) и объемом перевозимого груза. Дать реализацию конструкторов для обоих классов. Дать реализацию метода, который позволяет добавлять объект класса Train в список объектов, которые контролирует объект класса RailwayStation. Дать реализацию метода Freight (Х) в классе RailwayStation, который позволяет дать ответ на вопрос – можно ли разгрузить весь груз поезда Х (объект класса Train) на данной станции или нет (разница максимально хранимого груза и действительно хранимого сравнивается с объемом перевозимого груза (объекта X). Перегрузить оператор == (сравнения) в классе Train. 19. Дать определение и реализацию класса AssocList3. Объекты этого класса содержат список объектов класса Association. Объекты класса Association содержат 2 свойства – ключ ассоциации (символьная строка до 20 символов) и значение (символьная строка до 80 символов). Дать реализацию конструкторов для обоих классов. Дать реализацию методов в классе AssocList3, которые позволяют – расширять список элементов (добавлять в начало списка) или сокращать список объектов (указав ключ, удаляемого объекта). Дать реализацию метода Value(X) в классе AssocList, который позволяет найти в списке объект по значению ключа Х и вернуть в качестве результата, связанное с ключом значение. Если объект не найден, то в качестве значения необходимо вернуть строку “Empty”. 20. Дать определение и реализацию класса Storage (Склад). Объекты этого класса содержат список объектов класса Room (Комнаты склада). Объекты класса Room содержат 3 свойства – код товара для хранения (char[10]), максимальное количество товара для хранения (int) и количество действительно хранимого товара. Дать реализацию конструкторов для обоих классов. Дать реализацию метода add( Room &X), который позволяет добавлять объект X, в список объектов класса Storage. Дать реализацию метода IsCanBeStored(X,Y) в классе Storage, который позволяет дать ответ на вопрос – можно ли на данном складе разместить товар с кодом Х (char[10]) в количестве У (int). Учесть, что Склад может включать несколько комнат, отведенных под товар с кодом Х. Дополнительно дать реализацию конструктора копирования в классе Room. |
20.12.2012, 23:46 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
что, все?!
|
21.12.2012, 10:49 | #5 |
Регистрация: 20.12.2012
Сообщений: 9
|
Ну может быть кто-то какие-то задачи знает?
|
21.12.2012, 10:57 | #6 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
waleri
что, все?! Ну а чё мелочиться? Чувачок сразу видно, опытный - берет на весь класс, оптом. Потом будет понемногу барыжить... Вот и парочку банок пива заработано... (((:
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
21.12.2012, 14:18 | #7 |
Форумчанин
Регистрация: 14.03.2012
Сообщений: 139
|
Что-то маловато, здесь такие мелочи никто не делает.
|