Важная информация
Показано с 1 по 3 из 3

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

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

    ИНФОРМАЦИЯ ПО ОБЪЕКТАМ МОДЕЛИ ДОЛЖНА СОДЕРЖАТЬСЯ В ФАЙЛАХ!!!
    C++ Code:
    1. #include <list>
    2. #include "stdafx.h"
    3. #include <iostream>
    4. #include <string>
    5. #include <vector>
    6. #include <iterator>
    7.  
    8. namespace cf {
    9.  
    10.     class Salary {
    11.     protected:
    12.         float m_perAllow;   // процент надбавки
    13.         float m_incomeTax;  // подоходный налог
    14.         float m_salary;         // оклад
    15.         float m_accrual;        // начислено
    16.     public:
    17.         Salary(float perAllow = 0, float incomeTax = 0, float salary = 0, float accrual = 0) :
    18.             m_perAllow(perAllow), m_incomeTax(incomeTax), m_salary(salary), m_accrual(accrual) {}
    19.  
    20.         void setPerAllow(float perAllow) {
    21.             m_perAllow = perAllow;
    22.         }
    23.         void setIncomeTax(float incomeTax) {
    24.             m_incomeTax = incomeTax;
    25.         }
    26.         void setSalary(float salary) {
    27.             m_salary = salary;
    28.         }
    29.         void setAccrual(float accrual) {
    30.             m_accrual = accrual;
    31.         }
    32.         float getPerAllow() const {
    33.             return m_perAllow;
    34.         }
    35.         float getIncomeTax() const {
    36.             return m_incomeTax;
    37.         }
    38.         float getSalary() const {
    39.             return m_salary;
    40.         }
    41.         float getAccrual() const {
    42.             return m_accrual;
    43.         }
    44.         void print() const {
    45.             std::cout << "m_perAllow = " << m_perAllow << std::endl;
    46.             std::cout << "m_incomeTax = " << m_incomeTax << std::endl;
    47.             std::cout << "m_salary = " << m_salary << std::endl;
    48.             std::cout << "m_accrual = " << m_accrual << std::endl;
    49.         }
    50.     };
    51.  
    52.     class Person {
    53.     protected:
    54.         Salary m_salary;                // зарплата
    55.         size_t m_tabNumber;         // табельный
    56.         size_t m_year;                  // год поступления на работу
    57.         size_t m_dayMonth;          // дней в месяце
    58.         size_t m_dayWorkMonth;  // отработанных дней в месяце
    59.         std::string m_fio;          // фио
    60.     public:
    61.         Person(const Salary & salary, size_t tabNumber, size_t year, size_t dayMonth,
    62.             size_t dayWorkMonth, const std::string & fio) : m_salary(salary), m_tabNumber(tabNumber),
    63.             m_year(year), m_dayMonth(dayMonth), m_dayWorkMonth(dayWorkMonth), m_fio(fio) {}
    64.  
    65.         void setSalary(const Salary & salary) {
    66.             m_salary = salary;
    67.         }
    68.         void setTabNumber(size_t tabNumber) {
    69.             m_tabNumber = tabNumber;
    70.         }
    71.         void setYear(size_t year) {
    72.             m_year = year;
    73.         }
    74.         void setDayMonth(size_t dayMonth) {
    75.             m_dayMonth = dayMonth;
    76.         }
    77.         void setDayWorkMonth(size_t dayWorkMonth) {
    78.             m_dayWorkMonth = dayWorkMonth;
    79.         }
    80.         void setFIO(const std::string & fio) {
    81.             m_fio = m_fio;
    82.         }
    83.         const Salary & getSalary() const {
    84.             return m_salary;
    85.         }
    86.         size_t getTabNumber() const {
    87.             return m_tabNumber;
    88.         }
    89.         size_t getYear() const {
    90.             return m_year;
    91.         }
    92.         size_t getDayMonth() const {
    93.             return m_dayMonth;
    94.         }
    95.         size_t getDayWorkMonth() const {
    96.             return m_dayWorkMonth;
    97.         }
    98.         const std::string & getFIO() const {
    99.             return m_fio;
    100.         }
    101.         void print() const {
    102.             std::cout << "m_tabNumber = " << m_tabNumber << std::endl;
    103.             std::cout << "m_year = " << m_year << std::endl;
    104.             std::cout << "m_dayMonth = " << m_dayMonth << std::endl;
    105.             std::cout << "m_dayWorkMonth = " << m_dayWorkMonth << std::endl;
    106.             std::cout << "m_fio = " << m_fio << std::endl;
    107.             m_salary.print();
    108.         }
    109.     };
    110.  
    111.     class Payment {
    112.     protected:
    113.         Person * m_person;
    114.     public:
    115.         Payment(Person * p = 0) : m_person(p) {}
    116.         void set(Person * p) {
    117.             m_person = p;
    118.         }
    119.         const Person * getPerson() {
    120.             return m_person;
    121.         }
    122.         void payroll() {
    123.             // TO DO
    124.         }
    125.         Payment() {
    126.             delete m_person;
    127.         }
    128.         void print() const {
    129.             if (m_person) {
    130.                 m_person->print();
    131.                 std::cout << std::endl;
    132.                 std::cout << "----------------------------" << std::endl;
    133.                 std::cout << std::endl;
    134.             }
    135.         }
    136.     };
    137.  
    138.     class ListPayment {
    139.     protected:
    140.         std::vector<Payment *> staff;
    141.     public:
    142.         void add(Payment * p) {
    143.             staff.push_back(p);
    144.         }
    145.         void payrollAll() {
    146.             for (size_t i = 0; i < staff.size(); ++i)
    147.                 staff[i]->payroll();
    148.         }
    149.         void printListPayment() const {
    150.             for (size_t i = 0; i < staff.size(); ++i)
    151.                 staff[i]->print();
    152.         }
    153.         ~ListPayment() {
    154.             for (size_t i = 0; i < staff.size(); ++i)
    155.                 delete staff[i];
    156.         }
    157.     };
    158. }
    159.  
    160. }

    Как вывести данные из файла в программу? при этом использовать шаблон ввода и ввывода данных
    Последний раз редактировалось rrrFer; 22.11.2017 в 17:48.
    Ответить с цитированием  
     

  2. #2  
    Admin
    Регистрация
    09.04.2014
    Сообщений
    1,220
    Сказал(а) спасибо
    781
    Поблагодарили 493 раз(а) в 405 сообщениях
    Уважайте тех у кого просите помощи!
    отредактируйте код в меню сообщения есть специальные кнопки!
    Ответить с цитированием  
     

  3. #3  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    561
    Сказал(а) спасибо
    34
    Поблагодарили 249 раз(а) в 164 сообщениях
    C++ Code:
    1. ifstream ifst("input.txt");
    2.  
    3. Person person;
    4.  
    5. int year;
    6. ifst >> year;
    7.  
    8. person.setYear(year);


    И т.д.... в вашем коде по-другому видимо никак. А вообще ваш код ужасен. Вот эти бессмысленные портянки из геттеров/сеттеров - это что вообще за хрень?
    Быть может вместо них в класс добавить метод сериализации/десериализации? Ну или хотя бы в консторукторе эти поля задавать? я так понимаю, что ФИО и год поступления на работу меняться врядли будут. Ну или уже используйте структуры вместо классов... Не понятно просто что вам дали в этом случае классы (вы типа сокрыли от клиента что там внутри), когда вы все содержимое один хрен вываливаете в виде геттеров/сеттеров. Вы просто пишите руками кучу ненужного кода, потому что в голове чего-то не хватает... Но и так можно, только сейчас придется писать вот как я выше показал ввод с файла и вывод и т.п...
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    Ответить с цитированием  
     

  4. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (22.11.2017), Free Admin (23.11.2017)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 30.03.2017, 19:36
  2. Ответов: 1
    Последнее сообщение: 18.06.2015, 15:53
  3. Приложения для firefox на основе приложения sqlite-manager
    от Виталий Тяшкевич в разделе Фриланс
    Ответов: 0
    Последнее сообщение: 08.03.2015, 02:24
  4. Библиотеки
    от Good.Morning в разделе FreeBasic
    Ответов: 4
    Последнее сообщение: 03.01.2014, 22:29
  5. Библиотеки .NET
    от nas92 в разделе .NET
    Ответов: 0
    Последнее сообщение: 06.09.2013, 16:15
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •