Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Выбор классов

Ответить
Настройки темы
C/C++ - Выбор классов

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Glorh
Дата: 03-03-2011
Здравствуйте!

Моя проблема не связана с написанием кода. Мне нужен совет - какие классы нужно создать (предметная область - автомобилизм и грузоперевозки), дабы в будущем реализовать на них наследование (в т.ч. множественное), полиморфизм и т.п.(все возможные отношения) Ещё некие контейнерные классы.

Почему спрашиваю, а не придумаю их сам. Дел в том, что ООП я почти вообще не знаю. Сейчас вот изучаю, а классы нужно придумать заранее, для диаграмм (требования курсовой). Но у меня есть опасения, что придумав какой-то класс, я не смогу на нём реализовать какое-то отношение (иерархия классов).
Извините за путаность и неточность в высказываниях.

Два класса даны: авто и грузовик.
класс Vehicle, что содержит в себе такие элементы (точнее будет содержать):
- поле «скорость» int Speed;
- поле «вес» int Mass;
- метод получение веса int GetMass();
- метод остановки void Stop(); (швидкість=0);
- конструктор с параметрами Vehicle(int Speed, int Mass).
от класса Vehicle наследуется класс Truck, что содержит в себе такие элементы:
-поле «вместимость» int Capacity;
-поле «вес груза» int Cargo;
-конструктор с параметрами Truck(int Speed, int Mass, int Capacity);
-метод «загрузить груз» int Load(int Mass); (если успешно, то возвращает 0, иначе -1);
-метод «выгрузить груз» int UnLoad(); (возвращает вес груза и устанавливает его в 0).


Для каждого из классов должна быть предусмотрена возможность подсчета количества объектов, существующих в текущий момент в программе.

Заранее спасибо. надеюсь на помощь, т.к. диаграмму нужно сдать уже завтра

С уважением.

Отправлено: 08:23, 03-03-2011

 

Старожил


Сообщения: 154
Благодарности: 39

Профиль | Отправить PM | Цитировать


вы забыли написать зачем все это нужно, какая перед вами задача. Ибо классы пишутся под задачи. А так вдруг вам нужно будет посчитать количество шайб 12 размера у всех автомобилей только в двигателе а у вас в классе такой переменной нет. А вообще лучше как сделать - написать/нарисовать блок-схему программы и определиться, какие значения вам нужны,- вот их то и помещайте в классы, объявляйте еще гдето и т.п.
определиться с наследованием можно точно также - есть скажем класс-родитель машина у которой есть показатели скажем скорость движения, расход топлива, топлива в баке, количество дверей и т.д. далее думаете - а что вас интересует более детально. Ага - двигатель, пусть тогда это будет отдельный класс, который будет объявлен переменной в классе "машина", ну и в двигателе соответственно предусмотрено там обороты, объем движка и т.д. что интересует. Создадим класс-наследник "Лада-калина", родитель "машина" и добавим к нему функции ломаться, неработать габариты, переменные какиенить... так что тут мона извращаться пока фантазия не кончится. Определитесь что вам нужно и пишите под это классы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:01, 03-03-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Beyound:
определиться с наследованием можно точно также - есть скажем класс-родитель машина у которой есть показатели скажем скорость движения, расход топлива, топлива в баке, количество дверей и т.д. далее думаете - а что вас интересует более детально. Ага - двигатель, пусть тогда это будет отдельный класс, который будет объявлен переменной в классе "машина", ну и в двигателе соответственно предусмотрено там обороты, объем движка и т.д. что интересует. Создадим класс-наследник "Лада-калина", родитель "машина" и добавим к нему функции ломаться, неработать габариты, переменные какиенить... так что тут мона извращаться пока фантазия не кончится. Определитесь что вам нужно и пишите под это классы. »
Спасибо за объяснения.

Это задача по курсовому проекту(1 курс) и на примере классов нужно показать работоспособность классов и работу всех этих отношений. Формулировка более чем расплывчатая, понимаю.) Но в задании, увы, точно не сказано как это делать. А с учётом того что С++ я почти не знаю - я в растеряности.

Всё это нужно пока всего лишь для UML-диаграмм, но потом то, что я там "нарисую" надо будет закодить. У меня есть опасения, что я не смогу это сделать - поэтому и прошу помощи.

Так что блок-схема отпадает.

А за быстрый совет спасибо ещё раз

Отправлено: 19:38, 03-03-2011 | #3


Новый участник


Сообщения: 15
Благодарности: 6

Профиль | Отправить PM | Цитировать


В качестве контейнеров можно было бы использовать шаблоны из std, но если вам надо их реализовать самому, можно поступить так:

class ConteinerVehicle
{
private:
Vehicle vehicles[MAX_COUNT];
int Count;
public:
int GetCount();
Vehicle GetVehicle(int i);
void PutVehicle(Vehicle& data);
}
конечно можно объявить поля как public и работать с ними как с обычными переменными, но считается что лучше их скрыть и объявить методы для доступа к полям. Тем более что у вас курсовая работа)
Теоретически вы можете помещать в этот контейнер и производные классы, правда как вы будете с ними работать?)))
аналогично можно объявить контейнер для любого класса
но лучше использовать шаблоны, вот пример:

template<class T>
class Conteiner
{
private:
T items[MAX_COUNT];
int Count;
public:
int GetCount();
T GetItem(int i);
void PutItem(T& data);
}

-------
Ничто так не разрушает мечты, как компромисс..

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:11, 05-03-2011 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Выбор классов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - Наследование и иерархия классов Wwe2012 Программирование и базы данных 4 08-02-2011 14:30
C/C++ - Возникла непонятка с виртуальными методами классов Oleg_SK Программирование и базы данных 5 12-06-2010 09:35
C/C++ - Порядок построения классов pva Программирование и базы данных 13 23-03-2009 14:36
[решено] Разукрашивание сайтов по-своему, подменой CSS и Классов hasherfrog Вебмастеру 16 20-10-2006 01:21
Reverse ingineering классов (обратно UML-диаграмме) djogik Программирование и базы данных 1 12-01-2005 21:29




 
Переход