Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2012, 18:24   #1
nastin
 
Регистрация: 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 *). Название является константой.
Если корабль никуда не направляется, то его скорость указывается нулем и название
порта, куда он направляется пустой строкой. Дать реализацию методов, позволяющих
читать и изменять свойства. Константные свойства, естественно, не изменяются. Обратить
внимание на то, что название корабля – константа и его надо инициализировать в момент
создания объекта, а не формировать присваиванием. Дополнительно дать реализацию
конструктора копирования.
nastin вне форума Ответить с цитированием
Старый 20.12.2012, 18:24   #2
nastin
 
Регистрация: 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, которые прибудут в аэропорт не позднее чем
через Х минут, если исходить из средней скорости У км/час.
nastin вне форума Ответить с цитированием
Старый 20.12.2012, 18:24   #3
nastin
 
Регистрация: 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.
nastin вне форума Ответить с цитированием
Старый 20.12.2012, 23:46   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

что, все?!
waleri вне форума Ответить с цитированием
Старый 21.12.2012, 10:49   #5
nastin
 
Регистрация: 20.12.2012
Сообщений: 9
Восклицание

Ну может быть кто-то какие-то задачи знает?
nastin вне форума Ответить с цитированием
Старый 21.12.2012, 10:57   #6
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

waleri

что, все?!

Ну а чё мелочиться? Чувачок сразу видно, опытный - берет на весь класс, оптом. Потом будет понемногу барыжить... Вот и парочку банок пива заработано... (((:
Rififi вне форума Ответить с цитированием
Старый 21.12.2012, 14:18   #7
Blind Guard
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 139
По умолчанию

Что-то маловато, здесь такие мелочи никто не делает.
Blind Guard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц