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

Класс работник. Сортировка. Советы по коду - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Электронно цифровая подпись RSA http://www.cyberforum.ru/cpp-beginners/thread923658.html
Добрый вечер, у меня вопрос, объясните алгоритм Электронно цифровая подпись RSA. Везде посморел так и не понял: Пример. Исходные данные: сообщение M’ = 947829 p = 7 q = 11 d = 17 (закрытый ключ отправителя) e = 53 (открытый ключ отправителя)
C++ Написал программу которая показывает числа из ряда Фибоначчи Вот написал программу которая...Ай, мне сложновато объяснить, напишу сразу алгоритм её действия: 1.Пользователь вводит номер числа из ряда Фибоначчи. 2.Программа делает некоторые вычисления 3.Выводит запрашиваемое число пользователю Вот так вот :) Но я столкнулся с ошибкой при компилировании, смысл которой от меня немного ускальзывает. ПОтом я её исправил, появилась другая ошибка... Не... http://www.cyberforum.ru/cpp-beginners/thread923636.html
Активация Embarcadero EX3 C++
Ув.Форумчане, скачал Embarcadero EX3, но как активировать ее ума не приложу. Пробовал по разному, но не могу пропатчить bds.exe. В общем кто знает, либо у вас есть проверенный кряк. Выручайте.
private наследование и виртуальный метод C++
Привет! Тут хотел бы спросить такой вопрос. Есть базовый класс с виртуальным методом в protected секции. Я наследую этот класс как private. Мне теперь нужно переопределить виртуальный метод базового класса в производном. Теперь мне нужно писать объявление виртуального метода в private секции? Спасибо. class Book : public Commodity { private: int mNumberOfPages_;
C++ Назначение заголовочных файлов http://www.cyberforum.ru/cpp-beginners/thread923606.html
Я читала учебник и википедию - никак не доходит. В общем, может я неправильно поняла: есть у меня "Моя программа.cpp", и есть "Заголовочный файл.hpp". В заголовочном файле прописаны прототипы функций, и классы без определения их методов, этот заголовочный файл включается в мою программу. Все определения содержатся, собственно, в моей программе. Если это так, то я не понимаю, какой смысл...
C++ Что почитать? Посоветуйте Всем привет. Весь второй семестр учили в университете с++, и учась в универе я понял насколько огромные возможности предоставляет данный ЯП. Мы прошли структурное программирование и изучили базовые принципы ООП (инкапсуляцию, наследование, полиморфизм). Посоветуйте пожалуйста книгу по которой я могу продолжить изучения языка. Шаблоны...стандартная библиотека....и что бы основ по минимуму. подробнее

Показать сообщение отдельно
ovner
7 / 7 / 0
Регистрация: 06.10.2012
Сообщений: 140
15.07.2013, 20:26     Класс работник. Сортировка. Советы по коду
Здраствуйте!
Вот задание:
Построить три класса (базовый и 2 производный), описывающие некоторых работников с почасовой оплатой (один из потомков) и фиксированной оплатой (второй потомок). Описать в базовом классе абстрактный метод для расчета среднемесячной заработной платы.
Для работников с почасовой оплатой формула для расчета такова: «среднемесячная заработная плата = 20.8 * 8 * почасовую ставку», для работников с фиксированной оплатой «среднемесячная заработная плата = фиксированной месячной оплате».

Помогите пожалуйста как реализовать:
Отсортировать всю последовательность работников по убыванию среднемесячного заработка. При совпадении зарплаты - упорядочивать данные по алфавиту по имени. (Желательно с использованием метода std::sort)


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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
 
using namespace std;
 
class Worker
{
protected:
    string name[10];
    vector <int> ident;
    vector <double> salary;
    vector <double> middleSalary;
public:
    Worker(){};
    ~Worker(){};
    virtual void SalaryCalculation(int numberOfWorkers)
    {}
 
    void sort()
    {
        // код
    }
 
    void show(int a)
    {
        cout << "Name |" << "Identification number |" << "MiddleSalary " << endl;
        for (int i = 0; i < a; i++)
        cout << name[i] << " " << ident.at(i) << " " << middleSalary.at(i) << endl; 
    }
};
 
class SalaryPerHour : public Worker
{
public:
    SalaryPerHour(){};
    ~SalaryPerHour(){};
    void inputDataPerHour (int a)
    {
        int p;
        double q;
        for (int i = 0; i < a; i++)
        {
        cin.ignore();
        cout << "Enter the name of " << i+1 << " worker with salary per hour : " << endl;
        getline (cin, name[i]);
        cout << "Enter the identification number of " << i+1 << " worker with salary per hour : " << endl;
        cin >> p;
        ident.push_back(p);
        cout << "Enter the " << i+1 << "  worker's salary per hour : " << endl;
        cin >> q;
        salary.push_back(q);
        }
    }
 
    void SalaryCalculation(int numberOfWorkers)
    {
        inputDataPerHour(numberOfWorkers);
        for (int i = 0; i < numberOfWorkers; i++)
            middleSalary.push_back(20.8*8*salary.at(i));
    //  show(numberOfWorkers);  
    }
};
 
class FixedSalary : public Worker
{   
public:
    FixedSalary(){};
    ~FixedSalary(){};
     void inputDataFixedSalary (int a)
    {
        int p;
        double q;
        for (int i = 0; i < a; i++)
        {
        cin.ignore();
        cout << "Enter the name of worker with fixed salary : " << endl;
        getline (cin, name[i]);
        cout << "Enter the identification number of worker with fixed salary : " << endl;
        cin >> p;
        ident.push_back(p);
        cin.ignore();
        cout << "Enter the worker's fixed salary : " << endl;
        cin >> q;
        salary.push_back(q);
        }
     }
 
    void SalaryCalculation(int numberOfWorkers)
    {
        inputDataFixedSalary(numberOfWorkers);
        for ( int i = 0; i < numberOfWorkers; i++ )
            middleSalary.push_back(salary[i]);
        //show(numberOfWorkers);    
    }
};
 
void main()
{
    int number;
    cout << "Enter the number of workers " << endl;
    cin >> number;
    Worker *mas[2];
    mas[0] = new SalaryPerHour();
    mas[1] = new FixedSalary();
    for (int i = 0; i < 2; i++)
    {
         mas[i]->SalaryCalculation(number);
    }
    for (int i = 0; i < 2; i++)
    {
        mas[i]->show(number);
    }
    for (int i = 0; i < 2; i++)
        delete mas[i];
    
    cin.get();
}
И еще, дайте пожалуйста советы по коду, может как улучшить его или переделать что-то, может что-то не правильно, буду благодарен.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru