SaveText.Ru

Без имени
  1. В программе пользователь вводит:
  2. — Тип
  3. — Мощность
  4. — Время владения
  5. — Стоимость
  6.  
  7. Из этих данных нужно вычислить переменные, имеющиеся в формуле для расчёта налога. Конечная формула состоит из четырёх переменных:
  8. 1. Коэффициент, зависящий от типа и мощности
  9. 2. Коэффициент, зависящий от стоимости
  10. 3. Коэффициент, зависящий от времени владения
  11. 4. Мощность
  12.  
  13. С мощностью (4) всё понятно, её нужно просто записать из поля ввода в отдельную переменную, предварительно преобразовав текст в число:
  14. // переменная v_power — мощность
  15. v_power = Integer.valueOf(TextField.getText());
  16. // "TextField" — название поля ввода, в котором пользователь указывает мощность
  17.  
  18. Теперь про коэффициент (3). В выпадающем списке "Время владения" двенадцать элементов: "Год и более", "11 месяцев", "10 месяцев", ... "1 месяц". Они соответственно имеют номера: 0, 1, 2, ... 11. Таким образом, в элементе номер N написано: "12 - N месяцев".
  19. По условию формула для коэффициента (3) такова: Кол-во месяцев владения / 12, то есть:
  20. (12 - N) / 12, где N — номер выбранного пользователем элемента выпадающего списка времени владения. Значит, для вычисления коэффициента (3) и записи его в переменную надо сделать так:
  21. v_time = (12 - ComboBox.getSelectedIndex()) / 12
  22. // ComboBox заменить на название выпадающего списка с временем владения
  23.  
  24. Теперь про коэффициент (2). В зависимости от стоимости он различен, то есть имеет разные значения в зависимости от того, какой элемент списка выбран. Для его вычисления используется оператор выбора "switch-case":
  25.         // переменная koef — коэффициент (2)
  26.         double koef = 1;
  27.         switch (ComboBox.getSelectedIndex()) {
  28.             case 1:
  29.                 koef = 1.5;
  30.             case 2:
  31.                 koef = 1.3;
  32.             case 3:
  33.                 koef = 1.1;
  34.             case 4:
  35.                 koef = 2;
  36.             case 5:
  37.                 koef = 3;
  38.             case 6:
  39.                 koef = 3;
  40.         }
  41. // по таблице из условия: если выбран элемент номер 0, то коэффициент равен 1 (это значение по умолчанию, поэтому "case 0" здесь отсутствует; если выбран элемент номер 1, то коэффициент равен 1.5; если номер 2, то равен 1.3, и так далее
  42.  
  43. Теперь про коэффициент (1). Он зависит от двух параметров: номера выбранного элемента списка и мощности, то есть при вычислении значения сначала надо смотреть, какой элемент выбран, и затем в зависимости от этого номера смотреть, какая указана мощность. В коде это выглядит как много "case" и для каждого из них несколько "if-else". Смотрим по таблице из условия, код получается такой:
  44. // переменная rate — коэффициент (1)
  45. // переменная v_power — мощность (4)
  46. double rate = 1;
  47.         switch (ComboBox.getSelectedIndex()) {
  48.             case 0:
  49.                 if (v_power <= 100)
  50.                     rate = 2.5;
  51.                 else if (v_power <= 150)
  52.                     rate = 3.5;
  53.                 else if (v_power <= 200)
  54.                     rate = 5;
  55.                 else if (v_power <= 250)
  56.                     rate = 7.5;
  57.                 else
  58.                     rate = 15;  
  59.             case 1:
  60.                 if (v_power <= 20)
  61.                     rate = 1;
  62.                 else if (v_power <= 35)
  63.                     rate = 2;
  64.                 else
  65.                     rate = 5;
  66.             case 2:
  67.                 if (v_power <= 200)
  68.                     rate = 5;
  69.                 else
  70.                     rate = 10;    
  71.             case 3:
  72.                 if (v_power <= 100)
  73.                     rate = 2.5;
  74.                 else if (v_power <= 150)
  75.                     rate = 4;
  76.                 else if (v_power <= 200)
  77.                     rate = 5;
  78.                 else if (v_power <= 250)
  79.                     rate = 6.5;
  80.                 else
  81.                     rate = 8.5;
  82.             case 4:
  83.                 rate = 2.5;
  84.             case 5:
  85.                 if (v_power <= 50)
  86.                     rate = 2.5;
  87.                 else
  88.                     rate = 5;
  89.             case 6:
  90.                 if (v_power <= 100)
  91.                     rate = 10;
  92.                 else
  93.                     rate = 20;
  94.             case 7:
  95.                 if (v_power <= 100)
  96.                     rate = 20;
  97.                 else
  98.                     rate = 40;
  99.             case 8:
  100.                 if (v_power <= 100)
  101.                     rate = 25;
  102.                 else
  103.                     rate = 50;
  104.             case 9:
  105.                 rate = 20;
  106.             case 10:
  107.                 rate = 25;
  108.             case 11:
  109.                 rate = 20;
  110.             case 12:  
  111.                 rate = 200;
  112.         }
  113. // например, если выбран элемент номер 0, то есть если указан легковой автомобиль, то выполняется "case 0": проверяется, какая указана мощность: если меньше 100, то коэффициент равен 2.5, если от 100 до 150, то равен 3.5, если от 150 до 200, то равен 5, если от 200 до 250, то равен 7.5, во всех других случаях (если больше 250) равен 15. Другие типы ТС также зависят от указанной мощности и записаны в соответствующих "case". Все значения коэффициента взяты из таблиц.
  114.  
  115. Теперь про результат. Когда все 4 переменные известны, надо подставить их в формулу и получить результат. Результат равен произведению мощности и всех трёх коэффициентов, все они уже записаны в свои переменные:
  116. result = v_power * rate * v_time * koef
  117.  
  118. Вывести результат можно любым удобным способом, например, записав его в надпись на форме.
  119.  
  120. В целом весь код программы записан в обработчике клика по кнопке, выдающей результат. То есть при клике на кнопку сначала записываются в переменные введённые пользователем данные: мощность, тип, время, стоимость. Затем на основе этих данных вычисляются 4 переменные для формулы: сама мощность и три коэффициента. После этого подсчитывается и выводится на экран сам результат.

Share with your friends:

Print