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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
#1

[ООП + while]Определение заработной платы для каждого - C++

23.08.2011, 20:20. Просмотров 1550. Ответов 20
Метки нет (Все метки)

После Введите количество сотрудников: программа завершается ((
Помогите пожалуйста
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
#include "stdafx.h"
#include <iostream>
#include "lang.h"
using namespace std;
 
class Work
{
private:
    int work_hours;
    int rate_hour;
    int salary;
public:
    Work(int work_hours,int rate_hour)
    {
        this->work_hours = work_hours;
        this->rate_hour = rate_hour;
        salary = 0;
    }
    int getSalary(int salary)
    {
        return this->work_hours * this ->rate_hour;
    }
};
int  main()
{
        lang();
        int work_hours;
        int rate_hour;
        int salary;
        Work one(work_hours,rate_hour);
 
        int count = 0;
        cout << "Введите количество сотрудников: " << endl;
        cin >> count;
        while (count <=0)
        {
            cout << "Введите число рабочих часов: " << endl;
            cin >> work_hours;
            cout << "Введите почасовую ставку работника: " << endl;
            cin >> rate_hour;
            one.getSalary(salary);
            count--;
        }
 
        system("PAUSE");
        return 0;
}
0
Миниатюры
[ООП + while]Определение заработной платы для каждого  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2011, 20:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос [ООП + while]Определение заработной платы для каждого (C++):

Определить размер заработной платы каждого сотрудника фирмы - C++
Информация о сотрудниках фирмы содержит: • Ф. И. О. сотрудника; • табельный номер; • количество отработанных часов за месяц; ...

Вывести размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога - C++
У меня есть задача(Информация о сотрудниках фирмы включает фио, табельный номер, количество отработанных часов за месяц, почасовой тариф....

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

Програма для начисления заработной платы работникам - C++
Помогите написать программу для начисления заработной платы работникам за один месяц.

Напечатать ведомость выплаты заработной платы за выполненную работу - C++
Помогите пожалуйста разобраться с массивами, буду благодарен за любую помощь M водителей с табельными номерами N1,N2,...,Nm перевозили...

Определить сумму введенной заработной платы (использовать перечисления) - C++
Написать программу, которая определяет сумму введенной заработной платы: «очень низкая», «низкая», «средняя», «высокая», «очень высокая»,. ...

20
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
23.08.2011, 20:27 #2
Цитата Сообщение от TBIKC Посмотреть сообщение
После Введите количество сотрудников: программа завершается ((
Будьте внимательны. Вы скорее всего count вводите > 0; тогда как цикл while будет выполняется при count <= 0; поэтому программа сразу же завершает работу..

Добавлено через 2 минуты
К тому же переменные work_hours, rate_hour;
Цитата Сообщение от TBIKC Посмотреть сообщение
lang();
* * * * * * * * int work_hours;
* * * * * * * * int rate_hour;
* * * * * * * * int salary;
* * * * * * * * Work one(work_hours,rate_hour);
ничем не инициализируются.. Да и вообще реализация функции main странно выглядит..
0
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
23.08.2011, 20:28 #3
TBIKC, В цикле while нужно вот такое условие
C++
1
 while (count > 0)
0
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 20:30  [ТС] #4
изменил на while (count > 0)
Ошибки:
Ввожу 3 сотрудника, программа даёт добро на ввод 4х;
После ввода каждого сотрудника не выводиться зарплата
0
Сыроежка
Заблокирован
23.08.2011, 20:30 #5
Цитата Сообщение от nameless Посмотреть сообщение
Будьте внимательны. Вы скорее всего count вводите > 0; тогда как цикл while будет выполняется при count <= 0; поэтому программа сразу же завершает работу..

Добавлено через 2 минуты
К тому же переменные work_hours, rate_hour;
ничем не инициализируются.. Да и вообще реализация функции main странно выглядит..
А зачем инициализировать эти переменные?!
0
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 20:31  [ТС] #6
Как правильно сделать ?
И обьясните пожалуйста почему именно так
0
Сыроежка
Заблокирован
23.08.2011, 20:35 #7
Цитата Сообщение от TBIKC Посмотреть сообщение
Как правильно сделать ?
И обьясните пожалуйста почему именно так
Вам уже ответили, что нужно изменить условие цикла. То есть написать

C++
1
while ( count > 0 )
0
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
23.08.2011, 20:36 #8
TBIKC, хм, по моему условие count >0 правильное и программа выполняеться корректно. А почему так? Потому что цикл будет выполняться пока условие верное, то есть переменная count >0
0
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 20:38  [ТС] #9
Сделал, но почему то не работает метод
one.getSalary(salary);
Не выводит зарплату

Добавлено через 54 секунды
Я спрашивал почему так, и как правильно на высказывание:

Цитата Сообщение от nameless Посмотреть сообщение
К тому же переменные work_hours, rate_hour;
ничем не инициализируются.. Да и вообще реализация функции main странно выглядит..
0
Сыроежка
Заблокирован
23.08.2011, 20:42 #10
Цитата Сообщение от TBIKC Посмотреть сообщение
Сделал, но почему то не работает метод
one.getSalary(salary);
Не выводит зарплату

Добавлено через 54 секунды
Я спрашивал почему так, и как правильно на высказывание:
Я только сейчас заметил, что имелось в виду под отсутствием инициализации переменных work_hours и rate_hour.

Вы объявляете свой объект Work one(work_hours,rate_hour), а в качестве аргументов передаете ему неинициализированные переменные. Поэтому там может быть все, что угодно.

Кроме того, как я понимаю, вы в своем цикле должны присваивать членам класса вводимые значения и на их основе считать зарплату. А в вашем классе нет методов, которые бы задавали значения вашим сленам класса.
0
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
23.08.2011, 20:42 #11
TBIKC, почему же не выполняется то? выполняется, правда его реализация какая то странная, Вы передаёте туда переменную salary,но Вы её ничем не инициализируете, а работу метода Вы не видите, потому что возвращаемое значение никуда не записываете
1
nameless
Эксперт С++
334 / 298 / 14
Регистрация: 16.06.2009
Сообщений: 486
23.08.2011, 20:44 #12
Цитата Сообщение от Сыроежка Посмотреть сообщение
Вы объявляете свой объект Work one(work_hours,rate_hour), а в качестве аргументов передаете ему неинициализированные переменные. Поэтому там может быть все, что угодно.
Именно это я и имел в виду..
1
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
23.08.2011, 20:44 #13
И да Сыроежка правильно заметил насчёт отсуствия методов
1
Сыроежка
Заблокирован
23.08.2011, 20:47 #14
Например, вы могли бы свой цикл изменить следующим образом

C++
1
2
3
4
5
6
7
8
9
10
               while (count > 0 )
                {
                        cout << "Введите число рабочих часов: " << endl;
                        cin >> work_hours;
                        cout << "Введите почасовую ставку работника: " << endl;
                        cin >> rate_hour;
                        Work one( work_hours, rate_hour );
                        one.getSalary(salary);
                        count--;
                }
Добавлено через 1 минуту
Цитата Сообщение от nameless Посмотреть сообщение
Именно это я и имел в виду..
Да, спасибо. Я сразу же не обратил внимание, так как все внимание было сосредоточено на выражении цикла.
1
TBIKC
web dev
104 / 91 / 1
Регистрация: 23.09.2010
Сообщений: 738
23.08.2011, 20:48  [ТС] #15
Так я же вроде их инициализировал
C++
1
2
3
4
        int work_hours;
        int rate_hour;
        int salary;
        Work one(work_hours,rate_hour);
Сделал так
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
#include "stdafx.h"
#include <iostream>
#include "lang.h"
using namespace std;
 
class Work
{
private:
    int work_hours;
    int rate_hour;
    int salary;
public:
    Work(int work_hours,int rate_hour)
    {
        this->work_hours = work_hours;
        this->rate_hour = rate_hour;
        salary = 0;
    }
    int getSalary(int salary)
    {
        return this->work_hours * this ->rate_hour;
    }
    void add(int work_hours, int rate_hour)
    {
    work_hours+=work_hours;
    rate_hour+=rate_hour;
    }
};
int  main()
{
        lang();
        int work_hours;
        int rate_hour;
        int salary;
        Work one(work_hours,rate_hour);
 
        int count = 0;
        cout << "Введите количество сотрудников: " << endl;
        cin >> count;
        while (count > 0)
        {
            cout << "Введите число рабочих часов: " << endl;
            cin >> work_hours;
            cout << "Введите почасовую ставку работника: " << endl;
            cin >> rate_hour;
            one.add(work_hours,rate_hour);
            one.getSalary(salary);
            count--;
        }
 
        system("PAUSE");
        return 0;
}
Без результатно
0
23.08.2011, 20:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2011, 20:48
Привет! Вот еще темы с ответами:

Программа расчета суммы налоговых отчислений от заработной платы - C++
Составить программу расчета суммы налоговых отчислений от заработной платы(1% - Проф. внос, 15% - подоходный налог, 2% - пенсионный фонд).

Вывести название предприятия, в порядке убывания средней заработной платы - C++
Здравствуйте! Нужна помощь, есть массив который имеет данные про предприятие: Название, Количество Сотрудников, и Суммарная заработная...

Как вычислить сумму заработной платы нескольких сотрудников, после введения данных - C++
Вобщем задание такое: A small advertising company would like to consider a pay raise to its 15 staff members. The suggested pay raise ...

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


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

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

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