Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 01.07.2016
Сообщений: 4

Создание объектно-ориентированного приложения средствами С++ с использованием библиотеки STL

13.11.2017, 23:05. Показов 1336. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Реализовать базу данных «Зарплата» (не менее 20 сотрудников).
Сотрудник представлен классом Person с полями: табельный номер, фамилия-имя-отчество, оклад, процент надбавки, подоходный налог, количество отработанных дней в месяце, количество рабочих дней в месяце, начисления, удержания.
Реализовать методы класса Person: вычисление начисленной суммы, вычисление удержанной суммы, вычисление суммы, выдаваемой на руки. Начисления представляют собой сумму, оклада и надбавки (начисленных за отработанные дни). Удержания представляют собой отчисления в пенсионный фонд (1 процент от начисленной суммы) и подоходный налог (13% от начисленной суммы). Реализовать методы добавления сотрудника в список и удаления из него; методы поиска сотрудника по табельному номеру, по фамилии, по числу отработанных дней. Реализовать методы вычисления полных сумм по всему списку: начислено, удержано, на руки, подоходный налог, пенсионный фонд.

ИНФОРМАЦИЯ ПО ОБЪЕКТАМ МОДЕЛИ ДОЛЖНА СОДЕРЖАТЬСЯ В ФАЙЛАХ!!!

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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#include <list>
#include "stdafx.h"
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
 
namespace cf {
 
    class Salary {
    protected:
        float m_perAllow;   // процент надбавки
        float m_incomeTax;  // подоходный налог
        float m_salary;         // оклад
        float m_accrual;        // начислено
    public:
        Salary(float perAllow = 0, float incomeTax = 0, float salary = 0, float accrual = 0) :
            m_perAllow(perAllow), m_incomeTax(incomeTax), m_salary(salary), m_accrual(accrual) {}
 
        void setPerAllow(float perAllow) {
            m_perAllow = perAllow;
        }
        void setIncomeTax(float incomeTax) {
            m_incomeTax = incomeTax;
        }
        void setSalary(float salary) {
            m_salary = salary;
        }
        void setAccrual(float accrual) {
            m_accrual = accrual;
        }
        float getPerAllow() const {
            return m_perAllow;
        }
        float getIncomeTax() const {
            return m_incomeTax;
        }
        float getSalary() const {
            return m_salary;
        }
        float getAccrual() const {
            return m_accrual;
        }
        void print() const {
            std::cout << "m_perAllow = " << m_perAllow << std::endl;
            std::cout << "m_incomeTax = " << m_incomeTax << std::endl;
            std::cout << "m_salary = " << m_salary << std::endl;
            std::cout << "m_accrual = " << m_accrual << std::endl;
        }
    };
 
    class Person {
    protected:
        Salary m_salary;                // зарплата
        size_t m_tabNumber;         // табельный
        size_t m_year;                  // год поступления на работу
        size_t m_dayMonth;          // дней в месяце
        size_t m_dayWorkMonth;  // отработанных дней в месяце
        std::string m_fio;          // фио
    public:
        Person(const Salary & salary, size_t tabNumber, size_t year, size_t dayMonth,
            size_t dayWorkMonth, const std::string & fio) : m_salary(salary), m_tabNumber(tabNumber),
            m_year(year), m_dayMonth(dayMonth), m_dayWorkMonth(dayWorkMonth), m_fio(fio) {}
 
        void setSalary(const Salary & salary) {
            m_salary = salary;
        }
        void setTabNumber(size_t tabNumber) {
            m_tabNumber = tabNumber;
        }
        void setYear(size_t year) {
            m_year = year;
        }
        void setDayMonth(size_t dayMonth) {
            m_dayMonth = dayMonth;
        }
        void setDayWorkMonth(size_t dayWorkMonth) {
            m_dayWorkMonth = dayWorkMonth;
        }
        void setFIO(const std::string & fio) {
            m_fio = m_fio;
        }
        const Salary & getSalary() const {
            return m_salary;
        }
        size_t getTabNumber() const {
            return m_tabNumber;
        }
        size_t getYear() const {
            return m_year;
        }
        size_t getDayMonth() const {
            return m_dayMonth;
        }
        size_t getDayWorkMonth() const {
            return m_dayWorkMonth;
        }
        const std::string & getFIO() const {
            return m_fio;
        }
        void print() const {
            std::cout << "m_tabNumber = " << m_tabNumber << std::endl;
            std::cout << "m_year = " << m_year << std::endl;
            std::cout << "m_dayMonth = " << m_dayMonth << std::endl;
            std::cout << "m_dayWorkMonth = " << m_dayWorkMonth << std::endl;
            std::cout << "m_fio = " << m_fio << std::endl;
            m_salary.print();
        }
    };
 
    class Payment {
    protected:
        Person * m_person;
    public:
        Payment(Person * p = 0) : m_person(p) {}
        void set(Person * p) {
            m_person = p;
        }
        const Person * getPerson() {
            return m_person;
        }
        void payroll() {
            // TO DO
        }
        Payment() {
            delete m_person;
        }
        void print() const {
            if (m_person) {
                m_person->print();
                std::cout << std::endl;
                std::cout << "----------------------------" << std::endl;
                std::cout << std::endl;
            }
        }
    };
 
    class ListPayment {
    protected:
        std::vector<Payment *> staff;
    public:
        void add(Payment * p) {
            staff.push_back(p);
        }
        void payrollAll() {
            for (size_t i = 0; i < staff.size(); ++i)
                staff[i]->payroll();
        }
        void printListPayment() const {
            for (size_t i = 0; i < staff.size(); ++i)
                staff[i]->print();
        }
        ~ListPayment() {
            for (size_t i = 0; i < staff.size(); ++i)
                delete staff[i];
        }
    };
}
 
}
Как вывести данные из файла в программу?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.11.2017, 23:05
Ответы с готовыми решениями:

Изучение принципов объектно-ориентированного программирования. Инкапсуляция. Конструкторы и деструкторы классов. Создание экземпляров класса
Помогите пожалуйста, вот копия методички, вроде бы делаю все как в ней описано но ничего не получается. Появляются ошибки значение которых...

Структура, с использованием контейнера библиотеки STL
Помогите, пожалуйста,с задачкой. Следующие задания реализовать в виде класса, используя для хранения информации контейнер стандартной...

Сортировка списка строк с использованием стандартных алгоритмов библиотеки STL
Сортировка слов по количеству в них букв 'А'. Сортировка списка строк с использованием стандартных алгоритмов библиотеки STL. Мне не...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2017, 23:05
Помогаю со студенческими работами здесь

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

Существует ли ПО для объектно-ориентированного проектирования?
Доброое время суток форумчанам. Я почитал Буча, прям подсел на предложенные им методы, и сейчас у мя очень интеерсный проет. Нужно...

Ознакомление с принципами объектно-ориентированного программирования
Создать класс «Логические операции». Предусмотреть выполнение операций AND, OR, XOR над целыми числами.

Помощь в начинание Объектно ориентированного програмирования
Суть такая что не знаю ничего про: Конструкторы Классы Объекты класса Дружественные ф-ции Подскажите литературу по данному...

Банкомат: реализация объектно-ориентированного представления
Необходимо сделать самый обычный Банкомат. - Задание) Самые обычные функции в нем: Перевод денег, Снятие денег, Служба защиты от...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru