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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] Задача по классам 
:(
    Опции темы
dream25
Дата 17.7.2014, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите пожалуйста с классом
примерно выглядить должно все так:

Код

enum CityName
{
    Prague, 
    Kiev, 
    Moscow, 
    SaintPetersburg, 
    Tallinn 
};

class City
{
    CityName cityname;
    Station * station;

public:
    City(CityName cityname)
    ~City()
    
    Station * getStation();
    CityName getCityName();
    char * getCityNameString();
};

class Passenger
{
    CityName target;

public:
    Passenger();
    CityName getTarget();
};

class Place
{
    Passenger * passenger;

public:
    Place();
    ~Place();

    void free();
    void engage(Passenger * passenger);
    bool isFree();
    Passenger * getPassenger();
};

class Wagon
{
    Place * places;
    static const short countOfPlaces = 36;
    int busy;

public:
    Wagon();
    ~Wagon();

    void engage(Passenger * passenger);
    void free(CityName cityname);
    bool isEmpty();
    bool isFull();
};


class Train
{
    static const short countOfWagons = 10;
    Route * route;
    Wagon * wagons;
    short stationsCount;
    short currentStation;

public:
    Train(Route * route);
    ~Train();

    void engageTrain(City * city);
    void freeTrain(City * city);
    void moveToNextCity();
    void goToNextCity();
};

class ElementOfRoute
{
    City * current;
    ElementOfRoute * next;

public:
    ElementOfRoute(CityName cityname);
    ~ElementOfRoute();

    void setNext(ElementOfRoute * element);
    City * getCurrent();
    ElementOfRoute * getNext();
};

class Route
{
    ElementOfRoute * departure;        // Город отправки
    ElementOfRoute * destination;    // Город назначения
    int count;

public:
    Route(CityName departCity);
    ~Route();
    
    bool remove();
    void clear();
    void show();
    short getCount();
    CityName getElementAt(short position);
    void addStationInCity(CityName cityname);
    bool containsTargetCityOf(Passenger * passenger);
    CityName getDeparture();
};

class Station
{
    Passenger * passengers;
    short count;

public:
    Station();
    ~Station();

    Passenger * getPassengers();
    short getCount();
};

Только начинаю изучать C++, помогите доделать задачку
PM MAIL   Вверх
Guinness
Дата 18.7.2014, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Давайте начнем с постановки задачи, а потом уже перейдем к коду.
PM MAIL   Вверх
dream25
Дата 18.7.2014, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



контрольная работа по Классам. написать программу движения поезда . Должны быть класс: Город(станции и названия городов), Станция(очередь пассажиров (с приорететами ), Пассажиры(цель(город назначение)), Поезд(список вагонов и маршрут), Вагон(список мест), Место(пассажиры занали или нет), маршрут(очередь городов)
PM MAIL   Вверх
Guinness
Дата 18.7.2014, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да уж, если делать по нормальному, очень объемная задачка получится. Эванс целую книгу распинает как это лучше сделать(DDD), причем пример аналогичный. Что могу сказать точно, у вас здесь явно не хватает сущности "Билет". Да и вообще, архитектура, лично мне, кажется несколько недоработанной.
Ну, да ладно, я так понимаю стоит задача не с архитектурой воевать, а изучить плюсы. Задавайте вопросы, что конкретно не получается.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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