Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобратся, Объектно-ориентированное программировани 
V
    Опции темы
qweasd
Дата 31.7.2007, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Помогите разобраться:
Есть задание и я его вроде как решил но мне сказали что это не верно.
Задача :
Есть страны в которых находятся 1 или более городов эти города соединяются дорогами. 
Задание:
Написать класс(-ы) с помощью которого(-ых) можно описать данную систему(задачу)

Я сделал это так:


Код

public class World
        {
            public List<Country> _countries;
            public List<Way> _ways;
        }

        public class Country
        {
            public string _name;
            public List<Town> _towns;
        }

        public class Way
        {
            public Town _outTown;
            public Town _inTown;
            public int km;
        }

        public class Town
        {
            public string _name;
            public Country _nameCountry;
        }



Мне сказали что это не правильно! (( 
Подскажите как это сделать правильно(по всем правилам объектно-ориентированного программирования).
Можно без указания методов, лишь структуру!!
PM MAIL   Вверх
stab
Дата 1.8.2007, 07:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



qweasd, первое что нужно сделать - добавить в Town список дорог по которым из него можно уехать. остальное по вкусу.

так же довожу до вашего сведения, что название топика должно отражать его суть. рекомендую ознакомиться с правилами форума: http://forum.vingrad.ru/act-boardrules.html и более не искушать модераторов на предмет удаления ваших топиков.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
qweasd
Дата 1.8.2007, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо!!

Судя по вашему ответу я написал все правельно кроме того что не добавил  в Town список дорог по которым из него можно уехать?!
PM MAIL   Вверх
duk
Дата 1.8.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Some Object
*


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

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



По идее, переменные члены класса должны быть private, публичные же противоречат хорошему тону. Возможно еще и из-за этого Вам завернули вашу работу. Попробуйте сделать  обращения к членам через специльно написанные методы, или через свойства.

Это сообщение отредактировал(а) duk - 1.8.2007, 14:18
PM MAIL   Вверх
qweasd
Дата 1.8.2007, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Меня интересует структура необходимая для описания даной задачи.
 2 duk 
Это все детали

Это сообщение отредактировал(а) qweasd - 1.8.2007, 15:13
PM MAIL   Вверх
qweasd
Дата 2.8.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Неужели на форуме нет ни одного человека который хорошо разбирался бы в обектно-ориентированой модели программирования
PM MAIL   Вверх
qweasd
Дата 12.9.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



,?????????????
PM MAIL   Вверх
voodoo_alik
Дата 17.9.2007, 16:38 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну ошибка, которая сразу бросается в глаза - это открытые поля класса,
сделай свойства которые будут инкапсулировать их.

Во вторых мне не очень нравится наследование которое применяется у тебя (his-a), используй лчше is-a (придумай иерархию классов, а не помещай один в другой), но хоть ошибкой это назвать нельзя, этот тип наследования устарел smile

PM MAIL   Вверх
mihryak
Дата 18.9.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(voodoo_alik @  17.9.2007,  17:38 Найти цитируемый пост)
придумай иерархию классов, а не помещай один в другой

а какая тут иерархия? страна - это навороченный город? отношение "содержит" куда уместнее
Цитата(voodoo_alik @  17.9.2007,  17:38 Найти цитируемый пост)
этот тип наследования устарел

ну надо же, а мужики-то не знают  smile 
абсолютно ничего устаревшего в нём нёт, каждой возможности - своя область применения
вот, например, автомобиль. не наследовать же его от двигателя, тут именно "содержит", и с точки зрения программирования, и по здравому смыслу. а ООП - попытка переноса реальной модели мироустройства на язык компьютера.
так что не пугайте почём зря студентов  smile 
PM MAIL ICQ   Вверх
D_F_V
Дата 19.9.2007, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Это способ включения а не наследования, нечего устаревшего в нем нет...
PM MAIL ICQ MSN   Вверх
superxen
Дата 19.9.2007, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ИМХО дорога может соединять не только 2 города. Можно сделать иерархию дорог(как в реальной жизни)

И еще у тебя город содержит страну smile  

Это сообщение отредактировал(а) superxen - 19.9.2007, 11:09
PM MAIL   Вверх
ivashkanet
Дата 19.9.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

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



Цитата(qweasd @  31.7.2007,  17:17 Найти цитируемый пост)
Написать класс(-ы) с помощью которого(-ых) можно описать данную систему(задачу)

В том что ты "изобразил" НЕТ ошибок! Потому, что с помощью твоей модель МОЖНО описать данную систему!

Но у меня все же есть несколько комментариев:
1) Вот тебе нужно добраться из Москвы в Питер. Что ты будешь делать в твоей модели?
а) просмотришь все дороги мира, у которых начальным городом является Москва
б) среди них выберешь ту, которая указывает на Питер
Как-то нелогично.
В жизни же ты будешь просматривать все дороги, которые идут из Москвы.
Поэтому: 
Цитата(stab @  1.8.2007,  07:16 Найти цитируемый пост)
нужно добавить в Town список дорог по которым из него можно уехать

2) Какие-то странные дороги получаются: если по дороге можно попасть из Москвы в Питер, то из Питера в Москву нельзя?

ИТОГО, как бы я такое "изобразил":
Код

    public class World
    {
        public List<Country> Countries;
    }
    public class Country
    {
        public string Name;
        public List<Town> Towns;
    }
    public class Town
    {
        public string Name;
        public Country Country;

        public List<Road> Roads;
    }
    public class Road
    {
        public string Name;

        public Town OneSideTown;
        public Town OtherSideTown;
        public int Length;
    }

Но это просто вариант имеющий право на жизнь (как и твой).

В общем твой препод либо что-то напутал (скорее всего он хотел здесь увидеть наследование, которого здесь нет и быть не может), либо он децел и ждёт ответа, совпадающего с тем, что у него в "методичке" написано.


PM MAIL WWW ICQ   Вверх
qweasd
Дата 29.9.2007, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата

 public class Road
    {
        public string Name;

        public Town OneSideTown;
        public Town OtherSideTown;
        public int Length;
    }


зачем дороге имя??
PM MAIL   Вверх
qweasd
Дата 26.1.2008, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



UP????
PM MAIL   Вверх
mr.DUDA
Дата 27.1.2008, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



qweasd, что за UP ? Какой вопрос неясен ?


--------------------
user posted image
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

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


 




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


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

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