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

Примерчики ООП простые - C++

Восстановить пароль Регистрация
 
dimadjs
1 / 1 / 0
Регистрация: 12.06.2010
Сообщений: 49
26.12.2012, 22:25     Примерчики ООП простые #1
Всем добрый вечер

Вот задачка

Необходимо создать 3 класса

Авто, Запчасти и Калькулятор

в Классе Авто должны быть массивом запчасти и имя авто
в Классе Запчасти Название запчасти и стоимость
в Классе Калькулятор должно считаться вся стоимость всех запчастей которые входят в авто

Добавлено через 39 минут
Ктонить знает как реализовать данную программу на с++ ?

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

C++ ООП
C++ ООП
C++ ООП
ООП C++
C++ ООП
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dimadjs
1 / 1 / 0
Регистрация: 12.06.2010
Сообщений: 49
27.12.2012, 00:29  [ТС]     Примерчики ООП простые #2
Что некто не знает ?

Добавлено через 26 минут
ну кто знает может поможет, все жэ когда о начинали

Добавлено через 1 час 23 минуты
Подскажет ктонить?
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
27.12.2012, 01:01     Примерчики ООП простые #3
не указанна размерность массива запчастей в классе авто. И не пойму зачем нужно создавать класс Калькулятор, когда можно сделать метод, возвращающий стоимость авто в самом классе авто
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
#include <string>
 
class Auto
{
public:
    std::string autoName;
    Spare mas[10];
    double getCost()            // вот он наш метод
    {
        double autoCost;
        for (int i = 0; i < 10; ++i)
        {
            autoCost += mas[i].spareCost;
        }
        return autoCost;
    }
};
 
class Spare
{
public:
    std::string spareName;
    double spareCost;
};
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
27.12.2012, 01:05     Примерчики ООП простые #4
Вот авто, дальше по примеру:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <string>
#include <iostream>
 
class Avto{
 
private:
  enum {CON = 10};
  std::string name;
  std::string spares[CON];
 
public:
 
  void setNameAvto(const char * str) { name = str; }
 
  void setSpares(const char *str) {
 
    bool BL = false;
    for(int i = 0; i<CON; i++){
      if(spares[i].size() == 0){
        spares[i] = str;
        BL = true;
        break;
      }
    }
 
    if(!BL)
      std::cout << "Массив запчастей переполнен";
  }
 
  void show()
  {
    std::cout << "Имя: " << name;
    std::cout << std::endl;
 
    for(int i = 0; i<CON; i++){
        if(spares[i].size() == 0) break;
      std::cout << "Запчасть номер: " << i+1 << ": " << spares[i];
      std::cout << std::endl;
  }
  }
};
 
int main()
{
  Avto avto;
 
  avto.setNameAvto("BMW");
 
  avto.setSpares("Колесо");
  avto.setSpares("Руль");
  avto.setSpares("Дверь");
 
  avto.show();
 
  return 0;
}
Миниатюры
Примерчики ООП простые  
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
27.12.2012, 01:08     Примерчики ООП простые #5
double autoCost = 0; забыл инициализировать
KeyGen
 Аватар для KeyGen
333 / 289 / 6
Регистрация: 07.08.2011
Сообщений: 789
Записей в блоге: 1
27.12.2012, 01:37     Примерчики ООП простые #6
Цитата Сообщение от SummerRain Посмотреть сообщение
Spare mas[10];
Вроде так делать нельзя. Вот из книги:

Иногда хорошо бы иметь символические константы с областью видимости класса.Например, объявление класса может использовать литерал 12 для указания размерамассива. Поскольку одна и та же константа применяется для всех объектов, было бынеплохо создать единственную константу, разделяемую всеми объектами. На первыйвзгляд, может показаться, что решается это следующим образом:

C++
1
2
3
4
5
6
class Bakery{
private:
    const int Months =12;
    double costs[Months];
...
// объявление константы? НЕ УДАСТСЯ
Но это не работает, потому что объявление класса описывает, как выглядит объект,но не создает объекта. Следовательно, до тех пор, пока вы не создадите объект,хранить это значение негде.
Очень похоже на ошибку. Но я не уверен, у меня компилируется...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2012, 08:24     Примерчики ООП простые
Еще ссылки по теме:

C++ ООП
C++ ООП задачи (нужны простые коды)
ООП в С++ C++

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

Или воспользуйтесь поиском по форуму:
Schizorb
 Аватар для Schizorb
508 / 460 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
27.12.2012, 08:24     Примерчики ООП простые #7
KeyGen,
C++
1
Spare mas[10];
Так можно, только лучше с именованной константой.


C++
1
2
const int Months = 12;
double costs[Months];
А тут будет ошибка, можно исправить, сделав переменную статической
C++
1
static const int Months = 12;
Yandex
Объявления
27.12.2012, 08:24     Примерчики ООП простые
Ответ Создать тему
Опции темы

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