web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
||||||
1 | ||||||
[ООП + while]Определение заработной платы для каждого23.08.2011, 20:20. Показов 4010. Ответов 20
Метки нет Все метки)
(
После Введите количество сотрудников: программа завершается ((
Помогите пожалуйста
0
|
|
23.08.2011, 20:20 | |
Ответы с готовыми решениями:
20
Определить размер заработной платы каждого сотрудника фирмы Вывести размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога Создать список отделов и вычислить общую сумму заработной платы сотрудников каждого отдела Програма для начисления заработной платы работникам |
![]() 342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
|
|
23.08.2011, 20:27 | 2 |
Будьте внимательны. Вы скорее всего count вводите > 0; тогда как цикл while будет выполняется при count <= 0; поэтому программа сразу же завершает работу..
Добавлено через 2 минуты К тому же переменные work_hours, rate_hour; ничем не инициализируются.. Да и вообще реализация функции main странно выглядит..
0
|
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
|
||||||
23.08.2011, 20:28 | 3 | |||||
TBIKC, В цикле while нужно вот такое условие
0
|
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
|
23.08.2011, 20:30 [ТС] | 4 |
изменил на while (count > 0)
Ошибки: Ввожу 3 сотрудника, программа даёт добро на ввод 4х; После ввода каждого сотрудника не выводиться зарплата
0
|
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
|
23.08.2011, 20:31 [ТС] | 6 |
Как правильно сделать ?
И обьясните пожалуйста почему именно так
0
|
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
|
|
23.08.2011, 20:36 | 8 |
TBIKC, хм, по моему условие count >0 правильное и программа выполняеться корректно. А почему так? Потому что цикл будет выполняться пока условие верное, то есть переменная count >0
0
|
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
|
23.08.2011, 20:38 [ТС] | 9 |
Сделал, но почему то не работает метод
one.getSalary(salary); Не выводит зарплату ![]() Добавлено через 54 секунды Я спрашивал почему так, и как правильно на высказывание:
0
|
Заблокирован
|
|
23.08.2011, 20:42 | 10 |
Я только сейчас заметил, что имелось в виду под отсутствием инициализации переменных work_hours и rate_hour.
Вы объявляете свой объект Work one(work_hours,rate_hour), а в качестве аргументов передаете ему неинициализированные переменные. Поэтому там может быть все, что угодно. Кроме того, как я понимаю, вы в своем цикле должны присваивать членам класса вводимые значения и на их основе считать зарплату. А в вашем классе нет методов, которые бы задавали значения вашим сленам класса.
0
|
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
|
|
23.08.2011, 20:42 | 11 |
TBIKC, почему же не выполняется то? выполняется, правда его реализация какая то странная, Вы передаёте туда переменную salary,но Вы её ничем не инициализируете, а работу метода Вы не видите, потому что возвращаемое значение никуда не записываете
1
|
![]() 342 / 306 / 36
Регистрация: 16.06.2009
Сообщений: 486
|
|
23.08.2011, 20:44 | 12 |
1
|
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
|
|
23.08.2011, 20:44 | 13 |
И да Сыроежка правильно заметил насчёт отсуствия методов
1
|
Заблокирован
|
||||||
23.08.2011, 20:47 | 14 | |||||
Например, вы могли бы свой цикл изменить следующим образом
Да, спасибо. Я сразу же не обратил внимание, так как все внимание было сосредоточено на выражении цикла.
1
|
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
|||||||||||
23.08.2011, 20:48 [ТС] | 15 | ||||||||||
Так я же вроде их инициализировал
![]()
0
|
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
|
||||||
23.08.2011, 20:52 | 16 | |||||
TBIKC, вот ещё пример
можно вот так вот вашу задачу решить
1
|
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
|
|||||||||||||||||||||
23.08.2011, 21:02 [ТС] | 18 | ||||||||||||||||||||
Спасибо заработало, а теперь объясните мне пожалуйста пару моментов
1. Что это мы делаем ? Инциализируем ? В классе ведь уже описаны эти переменные, оны должны быть таких же имён ?
2. Метод
3. В конструкторе
Спасибо
0
|
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
|
|
23.08.2011, 21:10 | 19 |
TBIKC,
это просто переменные,которые вы используете чтобы инициализировать члены объекта one Добавлено через 4 минуты Можно написать без this так как имена передаваемые в параметрах не совпадают с именами полей объекта здесь можно и без this а вот здесь без this не обойтись потому что имена здесь одинаковые и this указывает на объект который вызывает данный метод,поэтому мы можем через this обратиться к полям объекта Добавлено через 47 секунд Как то так,надеюсь что объяснила более менее понятно ![]()
0
|
Заблокирован
|
|
23.08.2011, 21:11 | 20 |
Без this вы изменяете значения лишь параметров вашей функции, а не члены вашего класса. То есть в подобных случаях, когда имена параметров функции совпадают с именами членов вашего класса, параметры функции "закрывают" собой члены вашего класса
0
|
23.08.2011, 21:11 | |
Помогаю со студенческими работами здесь
20
Вывести размер заработной платы каждого сотрудника фирмы с учетом налога Вывести размер заработной платы каждого работника фирмы по разнице налога Программа для расчёта заработной платы Приложение для вычисления заработной платы преподавателя Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |