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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ООП и наследование -не могу понять задание на лабу, помогите понять,чего хотел автор задания 
:(
    Опции темы
altai
  Дата 15.9.2010, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В рамках изучения ООП, получил следующие задание на тему "Наследование. Использование защищенного доступа":
"1) Создать абстрактный класс Товар с методами, позволяющим вывести на экран информацию о товаре, а также определить, соответствует ли она сроку годности на текущую дату.
2) Создать производные классы: Продукт (название, цена, дата производства, срок годности), Партия (название, цена, количество шт, дата производства, срок годности), Комплект (названия, цена, перечень продуктов) со своими методами вывода информации на экран, и определения соответствия сроку годности.
3) Создать базу (массив) из n товаров, вывести полную информацию из базы на экран, а также организовать поиск просроченного товара (на момент текущей даты). "

Из этого задания я не могу понять, какого вида записи должна содержать "база (массив) из n товаров". Если я создам файл из записей типа 
[название продукта], [цена], [дата производства], [срок годности], вроде такого:
хлеб, 50шт, 14.50, 14.09.2010, 16.09.2010
печенье, 20 шт, 19.90, 10.09.2010, 10.12.2010
мармелад, 70 шт, 20.20, 02.02.2010, 05.09.2010
то откуда брать данные в массив "Комплект"? По заданию Комплект - это какой-то перечень продуктов. Что за продукты, по какому признаку они связаны, вообще не могу понять.
И еще вопросы:
2) Непонятно, зачем создавать три разных класса, если, в конечном счете, на экран будет выведено содержимое класса Продукт, т.к. оно полностью описывает содержимое файла. С какой целью предполагается создать классы Комплект и Партия? Не могу проследить логику автора задания.
3) по заданию нужно для каждого класса создать свои методы определения срока годности. Непонятно, что может быть разного в формуле определения срока годности для всех трех классов. Известна дата производства, известна дата истечения срока годности. Сравниваем с текущей датой и показываем объекты, с действующим сроком годности. Где тут могут быть отличия, зачем создавать этот метод для каждого класса в отдельности?
Буду дико благодарен за любые комментарии по этому заданию. 
PM MAIL   Вверх
ksnk
Дата 15.9.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



База должна состоять из нескольких таблиц.
Товары, партии, комплекты.

для иллюстрации - магазин заказывает товар на складах. В понедельник утром магазинный грузовичек объезжает склады и привозит товар в магазин.
-- содержимое кузова грузовика - это комплект. Может понадобится дата привоза, имя водителя, имя приемщика товара
-- водитель получил по накладной на хлебозаводе 400 буханок хлеба "Дарницкий". - это партия. Она имеет срок хранения, который представляет собой время, оставшееся до исчерпания срока хранения товара (учитываем время хранения на складе производителя) Нужна дата привоза, но можно взять из даты комплекта. Может понадобится номер накладной.
-- ну а конкретная буханка - товар. Это справочная таблица, так что дата производства в ней не нужна. 

при оформлении грузовика в базе заводится одна запись в таблице "комплекты", и столько записей в таблице "партии", сколько разных наименований товаров привезли. если привезенный товар отсутствует в таблице товаров - может понадобится заполнить строчку и в ней.

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


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
altai
Дата 15.9.2010, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо, вы мне очень помогли! Задание понял, буду теперь делать. База данных и деревья тут вряд ли предполагаются, потому что у нас еще даже курса баз данных не было, это самые азы программирования, буквально вот ООП разбираем. Сделаю просто два текстовых файла, в одном из которых будет храниться список товаров на складе, а в другом - накладные на получение товара. Массив Продукты буду формировать, читая первый файл. Массив Партия тоже сформирую, читая первый файл (буду выделять разные товары с одной датой производства и объединять их в партии (типа, они покинули конвеер завода в один день). Массив Комплекты заполню, читая файл с накладными. Потом выведу на экран содержимое массива Продукты, выводя для каждого продукта номер накладной, по которой он получен у поставщика и номер партии, в которой он прибыл на склад. Таким образом, у меня будут связаны в единую таблицу все три массива.

Это сообщение отредактировал(а) altai - 15.9.2010, 20:54
PM MAIL   Вверх
Rodman
Дата 16.9.2010, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

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




M
Rodman
Модератор: Название темы должно содержать язык написания!

PM MAIL WWW Skype GTalk YIM MSN   Вверх
altai
Дата 16.9.2010, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Язык программирования в данном случае не играет роли, обсуждается только алгоритм. Пытался исправить заголовок темы, но не нашел где это делается. :(
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

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


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

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

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

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


 




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


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

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