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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.78
SeoBee
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 5
#1

Классы C++, коллекции и сортировка - C++

19.08.2013, 20:41. Просмотров 3421. Ответов 5
Метки нет (Все метки)

Есть небольшое задание. Не могу понять как это все организировать, особенно с коллекциями и сортировкой.

"ЗАДАЧА. Построить три класса (базовый и 2 потомки), описывающих некоторых работников с почасовой
оплатой (один из потомков) и фиксированной оплатой (второй потомок). Описать в базовом классе
абстрактный метод для расчета среднемесячной заработной платы. Для «повременщиков» формула
для расчета такова: «среднемесячная заработная плата = 20.8 * 8 * почасовую ставку», для работников с
фиксированной оплатой «среднемесячная заработная плата = фиксированной месячной оплате».
a) Сортировать всю последовательность работников по убыванию среднемесячного заработка. при
совпадении зарплаты - упорядочивать данные по алфавиту по имени. вывести идентификатор
работника, имя и среднемесячный заработок для всех элементов списка.
b) Вывести первые 5 имен работников из полученного выше списка (задача А).
c) Вывести последние 3 идентификаторы работников из полученного выше списка (задача А).
d) организовать запись и чтение коллекции в / из файл (а)
e) организовать обработку некорректного формата входного файла"

В случаи решения готов оплатить по WebMoney
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.08.2013, 20:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы C++, коллекции и сортировка (C++):

Сортировка коллекции - C++
Добрый вечер, какой должен быть предикат, чтобы отсортировать массив по условию : - значимые сжимаются к друг другу в начало -...

Сортировка коллекции CMap - C++
Помогите, кто может !!! Сортировка в коллекции CMap for (int a=2; a<=mm.GetCount();a++) { mm.GetNextAssoc(pos,string,th);...

Классы и Сортировка - C++
Решите Пожалуйста задачки: Классы: Создать класс Треугольник. Разработать не менее четырех методов (например, конструктор, площадь,...

Классы. Сортировка обьектов класса - C++
нужно отсортировать страны в континенте..программа вроде работает..но где-то ошибка..помогите найти...мелкие ошибки плохо ищутся..а мне...

Непонятна тема (Классы содержащие другие классы, как данные члены ) - C++
Изучаю книгу Джесс Либерти(в частности эту главу в данный момент) #include <iostream> class Point { public: void SetX(int...

Программа по классам, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы - C++
Нужно написать программу, которая использует классы точек и прямых на плоскости, а, возможно, и другие классы. Реализовать её нужно в трех...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
19.08.2013, 20:49 #2
SeoBee, STL разрешено использовать?
0
SeoBee
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 5
19.08.2013, 20:55  [ТС] #3
proger_55, Да
0
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
19.08.2013, 20:58 #4
приложение консольное?
0
SeoBee
0 / 0 / 0
Регистрация: 25.02.2013
Сообщений: 5
19.08.2013, 21:42  [ТС] #5
proger_55, да

Добавлено через 37 минут
Есть уже почти готовый клас только без функции сортировки.

C++ (Qt)
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
#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
//BASED CLASS
class Employee
{
    private:
              string name;
              int id;
    protected:
              double total_salary;
    public:
              Employee(const string & n = "Unknown", int i = 0);
              virtual void calc_salary() = 0;
              void show();
              friend bool operator<(const Employee & r1, const Employee & r2);
              //friend bool worseThan(const Employee & r1, const Employee & r2);
              virtual ~Employee(){}
};
 
Employee::Employee(const string & n, int i) : name(n), id(i){}
void Employee::calc_salary(){}
void Employee::show()
{
     cout << "Name:\t" << name << endl;
     cout << "ID:\t" << id << endl;
     cout << "Salary:\t" << total_salary << endl << endl;
}
//Monthly salary
class Employee_monthly : public Employee
{
      private:
              double m_salary;
      public:
              Employee_monthly(const string & n = "Unknown", int i = 0, double m_sal = 0.0);
              virtual void calc_salary();
              
};
 
Employee_monthly::Employee_monthly(const string & n, int i, double m_sal) : Employee(n,i)
{
    m_salary = m_sal;
}
 
void Employee_monthly::calc_salary()
{
     total_salary = m_salary;
}
 
 
//Hourly salary
class Employee_hourly : public Employee
{
      private:
              double h_salary;
      public:
              Employee_hourly(const string & n = "Unknown", int i = 0, double h_sal = 0.0);
              virtual void calc_salary();
};
 
Employee_hourly::Employee_hourly(const string & n, int i, double h_sal) : Employee(n,i)
{
    h_salary = h_sal;
}
void Employee_hourly::calc_salary()
{
     total_salary = 20.8 * 8 * h_salary;
}
 
bool operator<(const Employee & r1, const Employee & r2)
{
    if (r1.total_salary > r2.total_salary)
        return true;
    else if (r1.total_salary == r2.total_salary && r1.name < r2.name)
        return true;
    else
        return false;
}
 
int main()
{
    Employee_monthly Joe("Joe", 5675, 2000);
    Joe.calc_salary();
    
    Employee_hourly Bob("Bob", 8854, 12);
    Bob.calc_salary();
    
    Employee_hourly Mike("Mike", 6765, 13);
    Mike.calc_salary();
    
    Employee_monthly August("August", 6556, 3000);
    August.calc_salary();
    
    vector<Employee*>employees(4);
    employees[0] = &Bob;
    employees[1] = &Joe;
    employees[2] = &Mike;
    employees[3] = &August;
    
    employees[0]->show();
    employees[1]->show();
    employees[2]->show();
    employees[3]->show();
    
  
    
    cout << "Sorted:\n";
    employees[0]->show();
    employees[1]->show();
    employees[2]->show();
    employees[3]->show();
    system("PAUSE");
    return 0;   
}
0
zer0mail
2334 / 1960 / 192
Регистрация: 03.07.2012
Сообщений: 7,029
Записей в блоге: 1
24.08.2013, 18:04 #6
C++ (Qt)
1
2
3
4
5
6
7
8
9
// берешь функцию
bool worseThan(const Employee *r1,const Employee *r2)  {
    if (r1->total_salary != r2->total_salary)
    return r1->total_salary > r2->total_salary;
    return r1->name < r2->name;
}
....
// и используешь ее в сортировке:
    sort(employees.begin(),employees.end(),worseThan);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.08.2013, 18:04
Привет! Вот еще темы с ответами:

Наследование, базовые классы и производные классы - C++
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и собственные компоненты производных...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.) - C++
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию...

Классы, включающие другие классы - C++
Столкнулся вот с таким кодом: #include &lt;iostream&gt; class Point { public: void SetX(int x) {itsX = x;} void SetY(int y) ...

Классы возможностей(Mixin классы) - C++
Не могу понять смысла использования mixin классов( это класс в котором есть только методы и нет членов-данных) Т.е. к примеру у нас...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.08.2013, 18:04
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru