Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231

ООП квартплата

17.10.2016, 13:46. Показов 2609. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Нужно сделать ООП стиле с наследованием расчет квартплаты, но я не могу понять что там вообще можно наследовать. Есть тарифы на отопление, воду горячую холодную, водоотвод, содержание и ремонт. Расчет зависит от проживающих жильцов(количество) площадь квартиры и показаний счетчика воды если такой имеется. Формулы все есть не могу только понять как это по классам распихать
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2016, 13:46
Ответы с готовыми решениями:

Квартплата
Добрый день помогите пож нужно создать в 1с ПО начисления квартплаты

1С квартплата
Такой вопрос: Мы работаем в квартплате на SQL.хотим перейти на квартплату 1С,представители 1С говорят нам что бы мы набивали все данные...

Изучаю Python, сейчас учу основы ООП, где можно найти задачи по ООП
Скиньте пожалуйста источники с задачами(желательно на русском)

10
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
17.10.2016, 13:50
Лучший ответ Сообщение было отмечено Helldrg как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class tariff
{
    virtual void pay() = 0;
};
 
class heating : tariff
{
    virtual void pay() override
    {
        // some
    }
};
 
class cold_water : tariff
{
    virtual void pay() override
    {
        // some
    }
};
Что-нибудь такое мб?
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
17.10.2016, 13:56  [ТС]
GbaLog-
Спасибо большое! Отлично подходит!!!

Добавлено через 1 минуту
Вот только финальную сумму куда деть?)

Добавлено через 2 минуты
То есть кварплата составляется из результатов pay(), мне кажется не очень будет если сумма будет не в классе
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
17.10.2016, 13:56
Цитата Сообщение от Helldrg Посмотреть сообщение
Вот только финальную сумму куда деть?)
Можно сделать класс app, который будет всё считать, например.
Хотя, в ООП я не силён, поэтому дождитесь экспертов лучше.
1
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
17.10.2016, 14:03  [ТС]
Все равно спасибо Вам! Я так сделаю, может не придерутся =)
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
17.10.2016, 14:23
Helldrg,
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <memory>
#include <vector>
#include <algorithm>
using namespace std;
 
class Pricer
{
private:
 
public:
    static double getHeatingRate( const size_t month );
    static double getWaterRate( const size_t month );
    static double getRepairRate( const size_t month );
};
 
class Payment
{
private:
    size_t m_month;
public:
    void setMonth( const size_t month );
    size_t getMonth() const;
    virtual double calculate() = 0;
    virtual ~Payment() = 0;
};
 
class HeatingPayment : public Payment
{
private:
    const double m_square;
public:
    HeatingPayment( const double square )
    : m_square(square)
    {
 
    }
    double calculate() override
    {
        return m_square * Pricer::getHeatingRate( getMonth() );
    }
};
 
class WaterPayment : public Payment
{
private:
    const int m_lastvalue;
    const int m_currentvalue;
public:
    WaterPayment( const int lastValue, const int currentValue )
    : m_lastvalue(lastValue)
    , m_currentvalue(currentValue)
    {
    }
    double calculate() override
    {
        return ( m_currentvalue - m_lastvalue) * Pricer::getWaterRate( getMonth() );
    }
};
 
 
 
 
int main()
{
    std::vector< std::shared_ptr<Payment> > arr;
    
    const size_t month = 3;
    {
        HeatingPayment* some = new HeatingPayment( 500 );
        some->setMonth( month );
        arr.push_back( std::shared_ptr<Payment>( some ) );
    }
    {
        WaterPayment* some = new WaterPayment( 1123, 1278 );
        some->setMonth( month );
        arr.push_back( std::shared_ptr<Payment>( some ) );
    }
    
    double allPrice = 0;
    auto getAll = [&]( std::shared_ptr<Payment>& current ){ allPrice += current->calculate();} ;
    std::for_each( std::begin( arr ), std::end( arr ), getAll );
}
1
 Аватар для dailydose
671 / 217 / 88
Регистрация: 21.07.2016
Сообщений: 1,036
Записей в блоге: 2
17.10.2016, 14:24
Цитата Сообщение от GbaLog- Посмотреть сообщение
class tariff
{
* * virtual void pay() = 0;
};
class heating : tariff
{
* * virtual void pay() override
* * {
* * * * // some
* * }
};
class cold_water : tariff
{
* * virtual void pay() override
* * {
* * * * // some
* * }
};
виртуальный деструктор не забыли ??
1
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
17.10.2016, 14:29
Цитата Сообщение от dailydose Посмотреть сообщение
виртуальный деструктор не забыли ??
Он тут не нужен, это псевдокод.
1
 Аватар для Voivoid
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
17.10.2016, 15:13
Цитата Сообщение от Helldrg Посмотреть сообщение
но я не могу понять что там вообще можно наследовать
И никто в здравом уме не сможет. У того, кто ставит такие задачки - ООП головного мозга
0
29 / 58 / 6
Регистрация: 10.01.2011
Сообщений: 1,231
17.10.2016, 15:29  [ТС]
У вас полиморфизм везде, с наследованием проще было бы =)

Добавлено через 55 секунд
И никто в здравом уме не сможет. У того, кто ставит такие задачки - ООП головного мозга

Не по теме:

хахахаха



Добавлено через 14 минут
У меня что то такое получается =)
Кликните здесь для просмотра всего текста
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
class FlatClass   // базовый класс
{
public:
    FlatClass(float square, int countPeople) // конструктор
    {
        m_square = square;
        m_countPeople = countPeople;
    }
    FlatClass(float square) // конструктор
    {
        m_square = square;
        m_countPeople = 0;
    }
    FlatClass(int countPeople) // конструктор
    {
        m_countPeople = countPeople;
        m_square = 0;
    }
protected:        // спецификатор доступа к элементам
    float m_square;
    int m_countPeople;
};
 
class TariffClass    // базовый класс
{
public:
    TariffClass(float tariff)  // конструктор
    {
        m_tariff = tariff;
    }
    float GetTariff()  
    { 
        return m_tariff;
    }
protected:          // спецификатор доступа к элементам
    float m_tariff;
 
};
 
 
class Heating : public TariffClass, public FlatClass
{
public:
    Heating(float tariff, float square) : TariffClass(tariff), FlatClass(square)
    {
        m_result = 0;
    }
    float Calculate(float coef)
    {
        m_result = coef * FlatClass::m_square * TariffClass::m_tariff;
    }
private:
    float m_result;
};
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
17.10.2016, 15:41
Цитата Сообщение от Helldrg Посмотреть сообщение
У вас полиморфизм везде, с наследованием проще было бы =)
Вы же не думаете, что я буду с вами спорить после вашего кода? Вам виднее как я понял) Voivoid, хоть тут ООП и высосано с пальца, но задачу было бы круто решить через Command - читаемо и сердито!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.10.2016, 15:41
Помогаю со студенческими работами здесь

ООП ради ООП
Доброго времени суток! Есть к примеру класс Cat который реализует интерфейс Movable, инкапсулирует цвет, и прочее. Имеет ли смысл...

ООП
наследование - понятно агрегация - понятно использование - не понятно. что такое использование? спасибо.

ООП
1) Для класса символьной строки определить отношение лексикографического порядка, перегрузив с помощью дружественной функции операцию...

ООП
Если составить схожесть и различия между ООП таких языков, как C++, C#, Python и Java, то какая между ними разница?

ООП
Подскажите пожалуйста с решением данной проблемы, если оно существует или предложите альтернативы. public abstract class Parent{ ...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru