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

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

Войти
Регистрация
Восстановить пароль
 
ani-ni4ka
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 103
#1

Создать класс - C++

20.03.2012, 23:29. Просмотров 520. Ответов 2
Метки нет (Все метки)

Доброго времени суток.
Нужна помощь. Завтра контрольная, а я вот как-то не могу написать программу..
Помогите пожалустааа..
\\Создать класс содержащий данные, реализовать методы ввода вывода и выборки по условию. Класс ФИРМА содержит следующие данные: идентификационный номер сотрудника,фамилия, имя, отчество, наименование отдела, должность, категория. Вывести список сотрудников определенной категории, просчитав их заработную плату. Если категория высшая – то умножаем на 1.7 з/п, если первая категория – 1.4, если вторая - 1.2, если нет категории – 0.7.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2012, 23:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс (C++):

Создать класс Man (человек), с полями: имя, возраст, пол и вес. Создать производный класс Student ... - C++
Создать класс Man (человек), с полями: имя, возраст, пол и вес. Определить методы задания имени, возраста и веса. Создать производный класс...

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

Создать класс - данные - абстрактный базовый класс. Создать производные классы - C++
Всем привет! У меня вот такая проблема.... Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа...

Создать класс Элемент списка (Node), а затем класс Список (List) - C++
Задание: Создать класс Элемент списка (Node), а затем класс Список (List). В зависимости от варианта список должен быть одно или...

Создать класс Pair(пара чисел) и класс-наследник Fraction - C++
Создать класс Pair (пара чисел); определить методы изменения полей и сравнения пар: пара p1 больше пары p2, если (first.p1>first.p2) или...

Класс: создать класс Fraction для работы с дробными числами - C++
Необходимо создать класс Fraction для работы с дробными числами. Число должно быть представлено двумя полями: целая часть – длинное целое...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
21.03.2012, 02:15 #2
когда то решал такую же задачу! но она не правильно выводит. точнее выводит всех сотрудников!

сейчас пересматривать не охота!

а связи с этим
Цитата Сообщение от ani-ni4ka Посмотреть сообщение
Завтра контрольная, а я вот как-то не могу написать программу.
скину то что есть!

если у кого то будет желание может кто то и подправит!

Ну и конечно это далеко не оптимальное решение! делалось когда не все было ясно!

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
#include <iostream>
 
using namespace std;
 
class firm
{
    int id_number;      //идентификационный номер
    char surname[30];   //фамилия
    char name[20];      //имя
    char patronymic[20];//отчество
    char department[20];//наименование отдела
    char post[20];      //должность
    int category;       //котегория
    double salary;      //зарплата
public:
    firm(){}
    ~firm(){}
    void input(firm *fr, int n);
    void output(firm *fr, int n);
};
 
 
void firm::input(firm *fr, int n)
{
    int i = 0;
    while(i < n)
    {
        cout << "\nВведите инормацию о " << i + 1 << " сотруднике\n";
        cout << "\nВведите идентификационный номер сотрудника - ";
        cin >> fr[i].id_number;
        cout << "Введите фамилию сотрудника - ";
        cin >> fr[i].surname;
        cout << "Введите имя сотрудника - ";
        cin >> fr[i].name;
        cout << "Введите отчество сотрудника - ";
        cin >> fr[i].patronymic;
        cout << "Введите наименование отдела - ";
        cin >> fr[i].department;
        cout << "Введите должность сотрудника - ";
        cin >> fr[i].post;
        cout << "Введите категорию сотрудника- ";
        cin >> fr[i].category;
        cout << "Введите первоначальную зарплату сотрудника - ";
        cin >> fr[i].salary;
        i++;
    }
}
void firm::output(firm *fr, int n)
{
    int c;
    cout << "\n\nВведите категорию сотрудника (0 - 3) - ";
    cin >> c;
    for(int i = 0; i < n; i++)
    {
        if(c == 3)
        {
            fr[i].salary *= 1.7;
            cout << "\nИдентификационный номер сотрудника - " << fr[i].id_number << "\n";
            cout << "Фамилия сотрудника - " << fr[i].surname << "\n";
            cout << "Имя сотрудника - " << fr[i].name << "\n";
            cout << "Отчество сотрудника - " << fr[i].patronymic << "\n";
            cout << "наименование отдела - " << fr[i].department << "\n";
            cout << "Должность сотрудника - " << fr[i].post << "\n";
            cout << "Категория сотрудника - " << fr[i].category << "\n";
            cout << "Зарплатa сотрудника - " << fr[i].salary << "\n";
        }
        else if(c == 2)
        {
            fr[i].salary *= 1.2;
            cout << "\nИдентификационный номер сотрудника - " << fr[i].id_number << "\n";
            cout << "Фамилия сотрудника - " << fr[i].surname << "\n";
            cout << "Имя сотрудника - " << fr[i].name << "\n";
            cout << "Отчество сотрудника - " << fr[i].patronymic << "\n";
            cout << "наименование отдела - " << fr[i].department << "\n";
            cout << "Должность сотрудника - " << fr[i].post << "\n";
            cout << "Категория сотрудника - " << fr[i].category << "\n";
            cout << "Зарплатa сотрудника - " << fr[i].salary << "\n";
        }
        else if(c == 1)
        {
            fr[i].salary *= 1.4;
            cout << "\nИдентификационный номер сотрудника - " << fr[i].id_number << "\n";
            cout << "Фамилия сотрудника - " << fr[i].surname << "\n";
            cout << "Имя сотрудника - " << fr[i].name << "\n";
            cout << "Отчество сотрудника - " << fr[i].patronymic << "\n";
            cout << "наименование отдела - " << fr[i].department << "\n";
            cout << "Должность сотрудника - " << fr[i].post << "\n";
            cout << "Категория сотрудника - " << fr[i].category << "\n";
            cout << "Зарплатa сотрудника - " << fr[i].salary << "\n";
        }
        else if(c == 0)
        {
            fr[i].salary *= 0.7;
            cout << "\nИдентификационный номер сотрудника - " << fr[i].id_number << "\n";
            cout << "Фамилия сотрудника - " << fr[i].surname << "\n";
            cout << "Имя сотрудника - " << fr[i].name << "\n";
            cout << "Отчество сотрудника - " << fr[i].patronymic << "\n";
            cout << "наименование отдела - " << fr[i].department << "\n";
            cout << "Должность сотрудника - " << fr[i].post << "\n";
            cout << "Категория сотрудника - " << fr[i].category << "\n";
            cout << "Зарплатa сотрудника - " << fr[i].salary << "\n";
        }
    }
}
 
int main()
{
    setlocale(0,"");
    int n;
    cout << "Введите количество сотрудников - ";
    cin >> n;
 
    firm *fr = new firm[n];
    
    fr->input(fr, n);
    fr->output(fr, n);
 
    delete [] fr; //очищаем память
    
    system("pause >> null");
    return 0;
}
0
ani-ni4ka
0 / 0 / 0
Регистрация: 15.03.2011
Сообщений: 103
21.03.2012, 11:06  [ТС] #3
спасибо огромное)

Добавлено через 40 минут
Разобралась и переделала.
Поменяла ветвление на switch и все работает как надо)
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
#include <iostream>
#include <conio.h>
 
using namespace std;
 
 
class firm
{
        int id_number;          //идентификационный номер
        char surname[30];       //фамилия
        char name[20];          //имя
        char patronymic[20];//отчество
        char department[20];//наименование отдела
        char post[20];          //должность
        int category;           //котегория
        double salary;          //зарплата
public:
        firm(){}
        ~firm(){}
        void input(firm *fr, int n);
        void output(firm *fr, int n);
};
 
 
void firm::input(firm *fr, int n)
{
        int i = 0;
        while(i < n)
        {
                cout << "\nВведите инормацию о " << i + 1 << " сотруднике\n";
                cout << "\nВведите идентификационный номер сотрудника - ";
                cin >> fr[i].id_number;
                cout << "Введите фамилию сотрудника - ";
                cin >> fr[i].surname;
                cout << "Введите имя сотрудника - ";
                cin >> fr[i].name;
                cout << "Введите отчество сотрудника - ";
                cin >> fr[i].patronymic;
                cout << "Введите наименование отдела - ";
                cin >> fr[i].department;
                cout << "Введите должность сотрудника - ";
                cin >> fr[i].post;
                cout << "Введите категорию сотрудника- ";
                cin >> fr[i].category;
                cout << "Введите первоначальную зарплату сотрудника - ";
                cin >> fr[i].salary;
                i++;
        }
}
void firm::output(firm *fr, int n)
{
        int c;
        cout << "\n\nВведите категорию сотрудника (0 - 3) - ";
        cin >> c;
        for(int i = 0; i < n; i++)
        {
            switch(c)
            {
                case 3:
                    if (fr[i].category==3)
                    {
                        cout<<"Категория сотрудников высшая"<<endl;
                        fr[i].salary *= 1.7;
                        cout << "\nИдентификационный номер сотрудника - " << fr[i].id_number << "\n";
                        cout << "Фамилия сотрудника - " << fr[i].surname << "\n";
                        cout << "Имя сотрудника - " << fr[i].name << "\n";
                        cout << "Отчество сотрудника - " << fr[i].patronymic << "\n";
                        cout << "наименование отдела - " << fr[i].department << "\n";
                        cout << "Должность сотрудника - " << fr[i].post << "\n";
                        cout << "Зарплатa сотрудника - " << fr[i].salary << "\n";
                    };
                    break;
                case 2:
                    if (fr[i].category==2)
                    {
                        cout<<"Категория сотрудников первая"<<endl;
                        fr[i].salary *= 1.4;
                        cout << "\nИдентификационный номер сотрудника - " << fr[i].id_number << "\n";
                        cout << "Фамилия сотрудника - " << fr[i].surname << "\n";
                        cout << "Имя сотрудника - " << fr[i].name << "\n";
                        cout << "Отчество сотрудника - " << fr[i].patronymic << "\n";
                        cout << "наименование отдела - " << fr[i].department << "\n";
                        cout << "Должность сотрудника - " << fr[i].post << "\n";
                        cout << "Зарплатa сотрудника - " << fr[i].salary << "\n";
                    };
                    break;
                case 1:
                    if (fr[i].category==1)
                    {
                        cout<<"Категория сотрудников вторая"<<endl;
                        fr[i].salary *= 1;
                        cout << "\nИдентификационный номер сотрудника - " << fr[i].id_number << "\n";
                        cout << "Фамилия сотрудника - " << fr[i].surname << "\n";
                        cout << "Имя сотрудника - " << fr[i].name << "\n";
                        cout << "Отчество сотрудника - " << fr[i].patronymic << "\n";
                        cout << "наименование отдела - " << fr[i].department << "\n";
                        cout << "Должность сотрудника - " << fr[i].post << "\n";
                        cout << "Зарплатa сотрудника - " << fr[i].salary << "\n";
                    };
                    break;
                case 0:
                    if (fr[i].category==0)
                    {
                        cout<<"Сотрудники не имеют категории"<<endl;
                        fr[i].salary *= 0.7;
                        cout << "\nИдентификационный номер сотрудника - " << fr[i].id_number << "\n";
                        cout << "Фамилия сотрудника - " << fr[i].surname << "\n";
                        cout << "Имя сотрудника - " << fr[i].name << "\n";
                        cout << "Отчество сотрудника - " << fr[i].patronymic << "\n";
                        cout << "наименование отдела - " << fr[i].department << "\n";
                        cout << "Должность сотрудника - " << fr[i].post << "\n";
                        cout << "Категория сотрудника - " << fr[i].category << "\n";
                        cout << "Зарплатa сотрудника - " << fr[i].salary << "\n";
                    };
                    break;}
        
}}
 
int main()
{
        setlocale(0,"");
        int n;
        cout << "Введите количество сотрудников - ";
        cin >> n;
 
        firm *fr = new firm[n];
        
        fr->input(fr, n);
        fr->output(fr, n);
 
        delete [] fr; //очищаем память
        
     
        getch();
        return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2012, 11:06
Привет! Вот еще темы с ответами:

Создать класс Point и производный класс ColoredPoint (цветная точка) - C++
Создайте класс Point (точка на плоскости), характеризующийся двумя координатами. Создайте производный класс ColoredPoint (цветная точка), в...

Создать Класс Coins (монеты). Класс сохраняет массив из 3 монет ... - C++
Помогите написать програмку, где: Нужно создать Класс Coins (монеты). Класс сохраняет массив из 3 монет и общее количество лицевых сторон...

Создать базовый класс - Array и производный класс - Money для работы денежной суммы - C++
ПОМОГИТЕ, ПОЖАЛУЙСТА, С ЗАДАЧЕЙ Создать базовый класс - Array и производный класс - Money для работы денежной суммы

Создать базовый класс Car (машина) и производный класс Lorry (грузовик): ООП ошибки - C++
Создать базовый класс Car (машина), характеризуемый торговой маркой (строка), числом цилиндров, мощностью. Определить методы переназначения...


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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