Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2009, 20:40   #1
-ushёl-
Форумчанин
 
Аватар для -ushёl-
 
Регистрация: 04.02.2009
Сообщений: 141
Вопрос С++,циклы и операторы ветвления

Подскажите как можно упростить код или исправить его? Весь день не могу решить.=)
Программа должна использовать цикл для запроса доходов и выдачи подлежащего к выплате налога.Цикл должен прерываться при вводе отрицательного или не числового значения.Налог считается по формуле:если человек заработал 38000р. то он должен заплатить налог 5000*0.0+10000*0.1+20000*0.15+3000* 0.2 или 4600 руб.
Заданная шкала налогооблажения:
первые 5000 р -налог 0%
следующ. 10000р - налог 10%
следующ. 20000р - налог 15%
свыше 35000 р - налог 20%

#include <cstdlib>
#include <iostream>
#include <cctype>

using namespace std;

const int size = 7;

int main(int argc, char *argv[])
{
double donation[size];
int vvod;
cout<<"Vvedite summu dlya nalogooblajenia\n";
int i = 0;
cin >> vvod;
while (i < size && !isalpha(vvod)>0)
{
if(vvod>=5000 && vvod<10000)
{ donation[i] = vvod*0.0;
cout<<"summa s nalogom: "<<donation[i]<<"\n";
}
else if (vvod>=10000 && vvod<20000)
{ donation[i] = vvod*0.1;
cout<<"summa s nalogom: "<<donation[i]<<"\n";
}
else if (vvod>=20000 && vvod<35000)
{ donation[i]=vvod*0.15;
cout<<"summa s nalogom: "<<donation[i]<<"\n";
}
else if (vvod>=35000)
{ int razn=vvod-35000;
donation[i]=(5000*0.00)+(10000*0.1)+(20000*0.1 5)+(razn*0.20) ;
cout<<"summa s nalogom: "<<donation[i]<<"\n";
}
else
cout<<"vi vveli ne pravilniy simvol\n";
cout<<"vvedite summu dlay nalogooblajenia:\n";
cin >> vvod;
i++;
};
cout<<"spasibo za uplatu nalogov.";
system("PAUSE");
return EXIT_SUCCESS;
}

Последний раз редактировалось -ushёl-; 12.12.2009 в 21:08.
-ushёl- вне форума Ответить с цитированием
Старый 12.12.2009, 22:25   #2
atenon
Форумчанин
 
Регистрация: 05.12.2009
Сообщений: 253
По умолчанию

Код тяжелый.
Проще наверное:
1. Запросить сумму.
2. Если меньше нуля то (не тупите пожалуйста, сколько денег вы заработали?)
3. Определить интервал
если < 5000 то (Функция вычисления налога с выводом суммы налога на консоль)
если >5000 и <10 000 то (Функция вычисления налога с выводом суммы налога на консоль)
если > 10 000 и < 20 000 то (Функция вычисления налога с выводом суммы налога на консоль)
если > 20 000 и < 35 000 то ( Функция вычисления налога с выводом суммы налога на консоль)
если > 35 000 (Сталина на вас нет, а то бы быстро уравнял, и Функция вычисления налога с выводом суммы налога на консоль)
4. Функция вычисления налога с выводом суммы налога на консоль
Приходится бежать со всех ног, чтобы только остаться на том же месте! Если хочешь попасть в другое место, тогда нужно бежать по меньшей мере вдвое быстрее! Льюис Кэрол

Последний раз редактировалось atenon; 13.12.2009 в 12:28.
atenon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ветвления. glupayastudentka Помощь студентам 1 23.06.2009 22:38
Вопрос относительно ветвления if/else ROD Помощь студентам 2 03.12.2008 18:12
Программы с использованием операторов ветвления и циклов Vitas1234 Помощь студентам 1 11.06.2008 17:41
Задачи с использованием ветвления n01R Помощь студентам 12 16.01.2008 11:54