Форум программистов, компьютерный форум CyberForum.ru

Абстрактные классы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Gremkiev
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 12
Записей в блоге: 1
04.09.2012, 23:15     Абстрактные классы #1
Помогите плиз, экзаменационное задание, а разобраться не могу с ним:

Создать консольное приложение, в котором реализовать работу склада. На складе есть отделы:
* Бытовая техника.
* Офисные товары.
* Стройматериалы.
Реализовать абстрактный класс товар. Затем для каждого отдела реализовать класс, который будить унаследован от базового класса товар.
В классе товар должны быть методы и данные объединяющие представление товара из любого отдела. Также класс должен обязательно содержать дату годности товара.
Реализовать меню работы со складом:

1. Прием товара.
2. Отгрузка товара.
3. Вывод на экран.
* Вывод производиться по отделам
4. Просмотр товара с критическим сроком годности (меньше недели).
5. Просмотр просроченного товара.
6. Сохранение.
7. Загрузка.
Реализовать в программе обработку исключительных ситуаций для проверки правильности ввода пользователя.

Добавлено через 22 часа 57 минут
Может найдется кто, чтоб не весь код за меня а в общем направить в правильное русло: какие методы и какие лучче виртуальные сделать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2012, 23:15     Абстрактные классы
Посмотрите здесь:

C++ абстрактные классы
C++ Абстрактные классы
C++ Абстрактные классы
C++ Абстрактные классы
Абстрактные классы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
04.09.2012, 23:32     Абстрактные классы #2
Цитата Сообщение от Gremkiev Посмотреть сообщение
В классе товар должны быть методы и данные объединяющие представление товара из любого отдела.
Ну так порассуждайте, что это за данные, объединяющие представление товара из любого отдела. Цена? Вес? Цвет? Размер? Они и лягут в основу базового класса.
Gremkiev
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 12
Записей в блоге: 1
05.09.2012, 01:16  [ТС]     Абстрактные классы #3
кто и за сколько сможет сделать это задание?
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
05.09.2012, 10:00     Абстрактные классы #4
К какому сроку?
id3dx9
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 6
05.09.2012, 10:33     Абстрактные классы #5
Цитата Сообщение от Gremkiev Посмотреть сообщение
кто и за сколько сможет сделать это задание?
зачем сразу так)
даже я, который учит с++ меньше месяца, представляю в общих чертах, как это можно реализовать)
PSIAlt
 Аватар для PSIAlt
86 / 86 / 8
Регистрация: 19.06.2012
Сообщений: 245
05.09.2012, 10:58     Абстрактные классы #6
Человек просто даже знать не хочет вот и причина такого подхода. В прочем, насильно мил не будешь - если человеку не интересно то что поделать
Gremkiev
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 12
Записей в блоге: 1
05.09.2012, 11:34  [ТС]     Абстрактные классы #7
Я в общих чертах тоже представляю и даже понимаю как это делается. А вот когда начинаешь делать, то с реализацией не получается. А то время которое отводится на обучение и то в каком темпе нам дают, с учетом что есть другие заботы в этой жизни и приходится учиться с 21-22.00 до 2-3 ночи, то соответсвенно не все хватается на лету. И я не собираюсь подавать код в чистом виде, если он не мой, а разобраться в нем, а потом сдавать задание.
Нужно до субботы и сколько будет стоить.

Добавлено через 10 минут
Тем более, что с готового я собираюсь слепить свой вариант, просто не понятны некоторые моенты. Например, почему нельзя реализовать в абстрактном классе функциб ввода информации с клавиатуры через создание переменной этого класса
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 12:05     Абстрактные классы #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sklad sklad;
 
... main(...){
   int menuItem = 0;
 // организуй меню типа "нажмите клавишу
//1. Прием товара.
//2. Отгрузка товара.
//3. Вывод на экран.(* Вывод производиться по отделам)
//4. Просмотр товара с критическим сроком годности (меньше недели).
//5. Просмотр просроченного товара.
//6. Сохранение.
//7. Загрузка.
//8. Выход. (не забудь спросить, сохранить ли, если что-то менялось)
  while (menuItem != 8){
    switch (menuItem){
    case 1:
     priem();
     break;
    case 2:
     otgruzka();
     break;
    ...
      
    }
    // опять "выберите пункт меню"
  };
  if (sklad.isChanged()){
    // спроси, сохоранить ли, и если да - то сохрани (sklad.save();)
  }
}
дальше, тебе понадобится класс Sklad. что-нибудь вроде
C++
1
2
3
4
5
6
7
8
9
10
11
12
class Sklad {
private:
  vector<Tovar*> _tovary;
public:
  void load ();
  void save ();
  void add (Tovar *pTovar);
  void getProsroch (vector<Tovar*> *pTovarVect);
  void getSkoroProsroch (vector<Tovar*> *pTovarVect);
  void get ...не знаю что пока. по мере продвижения будешь добавлять, что удобно будет
// не забудь в деструкторе проитерировать вектор и уничтожить все товары.
}
сам товар понадобится.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Tovar {
 // не забудь в конструкторе значения присвоить.
  bool _valid;
  int denProsro4ki;
public:
  virtual void fromString (const std::string *pStr) = 0;
  virtual void toString (std::string *pStr) const = 0; 
  virtual ... еще что-нибудь?
 
  bool isValid() { return _valid; }
  int getGodnyhDnejCount (int tekush4ij_den);
 
  Tovar ();
  virtual  ~Tovar ();
};
ну и от него дерайвнутые:
C++
1
2
3
4
5
class BytTech : public Tovar {
...
};
 
...
ну и ф-ии, в main() используемые, имплементировать нужно. собственно, не очень много. дерзай.
Gremkiev
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 12
Записей в блоге: 1
05.09.2012, 16:29  [ТС]     Абстрактные классы #9
А может кто подскажет, как сделать "Просмотр товара с критическим сроком годности (меньше недели)." Т.е. как сделать чтоб ввести дату годности товара, а программа сама вычислял истек срок годности или нет и сколько осталось до конца этого срока?
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 17:17     Абстрактные классы #10
я думал, тебя для упражнения устроит, если мы будем отсчитывать календарь просто в "целых числах от начала истории" (сегодня, скажем, сотый день от сотворения мира), и ввести переменную
C++
1
int denProsro4ki;
если этого недостаточно, придется датой заменить. функции работы со временем в с++ - это геморрой. зависит от среды, в которой разрабатываешь.
Gremkiev
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 12
Записей в блоге: 1
05.09.2012, 18:04  [ТС]     Абстрактные классы #11
это экзаменационная работа, и кстати, по темам которые нам не успели прочитать, я про наследование и абстрактные классы, а разработка этого задания происходит в win7 на visual studio 10

Добавлено через 3 минуты
это экзаменационная работа, и кстати, по темам которые нам не успели прочитать, я про наследование и абстрактные классы, а разработка этого задания происходит в win7 на visual studio 10.
А нужно сделать вот что с датами:
4. Просмотр товара с критическим сроком годности (меньше недели).
5. Просмотр просроченного товара.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 23:23     Абстрактные классы #12
Цитата Сообщение от Gremkiev Посмотреть сообщение
это экзаменационная работа, и кстати, по темам которые нам не успели прочитать, я про наследование и абстрактные классы, а разработка этого задания происходит в win7 на visual studio 10

Добавлено через 3 минуты
это экзаменационная работа, и кстати, по темам которые нам не успели прочитать, я про наследование и абстрактные классы, а разработка этого задания происходит в win7 на visual studio 10.
А нужно сделать вот что с датами:
4. Просмотр товара с критическим сроком годности (меньше недели).
5. Просмотр просроченного товара.
тогда ::GetLocalTime() тебе в помощь. и определение ручками сколько дней осталось. я ж говорю - в с++ время - это гемороой. но что-то нагуглить можно.
Gremkiev
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 12
Записей в блоге: 1
06.09.2012, 01:07  [ТС]     Абстрактные классы #13
а зачем класс Sklad?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 20:14     Абстрактные классы
Еще ссылки по теме:

C++ Абстрактные классы
C++ Абстрактные классы
Абстрактные классы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
tihonya
11 / 7 / 1
Регистрация: 30.05.2012
Сообщений: 107
30.03.2013, 20:14     Абстрактные классы #14
Эта работа была написана мной примерно 12-го сентября, работа не доделана до конца но,вся основа, все отделы основные проверки, файлы эмитирующее базу данных есть, это все было написано мной за 6 дней включая 2-е неудачные попытки которые здесь не представлены.
На тот момент я изучал 6 месяцев С, и 3 месяца С++, с нуля, но прорабатывая все домашние задания, получается я учился с Gremkiev, в параллельных группах в одном и том-же учебном заведении.

Немного по заданию
TXT файлы:
baseprod.txt - это типо база продуктов с которыми может работать прога, если её увеличить то увеличется и количество продуктов с которыми прога может работать. Работа происходит со штрих кодами, их частями.
officeotdel.txt -сохранение состояние отдела офисных товаров.
stroyotdel.txt - --||-- отдела строительных материалов.
techotdel.txt - ---||--- бытовой техники.

Все остальное это в основном Хедеры и CPP файлы(28 штук) в один проэкт.

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

Работа была оценена на 11 балов, но реально она не больше чем на 9(хотя с претензией ).
Вложения
Тип файла: zip Екзамен.zip (25.3 Кб, 29 просмотров)
Yandex
Объявления
30.03.2013, 20:14     Абстрактные классы
Ответ Создать тему
Опции темы

Текущее время: 03:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru