Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

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

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

04.09.2012, 23:15. Просмотров 1547. Ответов 13
Метки нет (Все метки)

Помогите плиз, экзаменационное задание, а разобраться не могу с ним:

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

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

Добавлено через 22 часа 57 минут
Может найдется кто, чтоб не весь код за меня а в общем направить в правильное русло: какие методы и какие лучче виртуальные сделать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2012, 23:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Абстрактные классы (C++):

Абстрактные классы - C++
Никак не могу понять смысл абстрактных данных.Ведь мы можем использовать и обычный класс,только абстракция запрещает создавать объекты.

Абстрактные классы - C++
Помогите пожалуйста, сообразить не могу. Есть абстрактный класс. У него есть метод, чтение из файла. Есть производный от него класс....

Абстрактные классы - C++
void _tmain() { const int lim = 100; MyFunction *pFunc ; int count = 0; pFunc = new My_Exp; pFunc = new Line; pFunc...

абстрактные классы - C++
Здрасте я при написании программы столкнулся с проблемой что немогу создать указатель на объект т.к. класс абстрактный прошу помогите...

Абстрактные классы - C++
Объясните пожалуйста почему это не работает и как исправить? cannot declare variable 'b1' to be of abstract type 'classB' because the...

Абстрактные классы - C++
Народ, вопрос есть такой. Есть абстрактный класс class A { protected: int a; public: A(int b=0):a(b) {

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

Добавлено через 10 минут
Тем более, что с готового я собираюсь слепить свой вариант, просто не понятны некоторые моенты. Например, почему нельзя реализовать в абстрактном классе функциб ввода информации с клавиатуры через создание переменной этого класса
0
novi4ok
551 / 504 / 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() используемые, имплементировать нужно. собственно, не очень много. дерзай.
1
Gremkiev
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 12
Записей в блоге: 1
05.09.2012, 16:29  [ТС] #9
А может кто подскажет, как сделать "Просмотр товара с критическим сроком годности (меньше недели)." Т.е. как сделать чтоб ввести дату годности товара, а программа сама вычислял истек срок годности или нет и сколько осталось до конца этого срока?
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.09.2012, 17:17 #10
я думал, тебя для упражнения устроит, если мы будем отсчитывать календарь просто в "целых числах от начала истории" (сегодня, скажем, сотый день от сотворения мира), и ввести переменную
C++
1
int denProsro4ki;
если этого недостаточно, придется датой заменить. функции работы со временем в с++ - это геморрой. зависит от среды, в которой разрабатываешь.
0
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. Просмотр просроченного товара.
0
novi4ok
551 / 504 / 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() тебе в помощь. и определение ручками сколько дней осталось. я ж говорю - в с++ время - это гемороой. но что-то нагуглить можно.
0
Gremkiev
0 / 0 / 0
Регистрация: 13.02.2012
Сообщений: 12
Записей в блоге: 1
06.09.2012, 01:07  [ТС] #13
а зачем класс Sklad?
0
tihonya
11 / 7 / 1
Регистрация: 30.05.2012
Сообщений: 111
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(хотя с претензией ).
0
Вложения
Тип файла: zip Екзамен.zip (25.3 Кб, 29 просмотров)
30.03.2013, 20:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 20:14
Привет! Вот еще темы с ответами:

Абстрактные классы - C++
В общем есть у нас 2 абстрактных класса CA и CB и 2 дочерних от них класса CC и CD. Как сделать так чтобы CD наследовал CB поверх которого...

абстрактные классы - C++
компилятор ругается когда я пытаюсь записать объект класса!!!! подскажите что я не правильно делаю!! #include &lt;cstdlib&gt; #include...

Абстрактные классы - C++
Ребята! Помогите с таким делом. Мне дали задание создать абстрактный класс Автомобиль, классы наследники: гоночный автомобиль, асфальтный...

Абстрактные классы. Интерфейсы - C++
Помогите пожалуйста!!! Лабораторная работа по ООП. Тема: Абстрактные классы. Интерфейсы. Цель: получить навыки создания иерархии...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru