Можете оценить мой код? - Java
Формулировка задачи:
package com.zar;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URI;
import java.net.URISyntaxException;
public class Main {
public static void main(String[] args) {
JFrame window = new JFrame("Калькулятор индекса массы тела");
window.setSize(312, 252);
window.setResizable(false);
window.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
BoxLayout boxLayout = new BoxLayout(window.getContentPane(), BoxLayout.PAGE_AXIS);
window.setLayout(boxLayout);
JLabel labelOfGrowth = new JLabel("Введите ваш рост (в сантиметрах)");
window.add(labelOfGrowth);
SpinnerNumberModel ModelOfSpinnerOfGrowth = new SpinnerNumberModel(1, 1, 285, 1);
final JSpinner spinnerOfGrowth = new JSpinner(ModelOfSpinnerOfGrowth);
window.add(spinnerOfGrowth);
JLabel labelOfWeight = new JLabel("Введите ваш вес (в килограммах)");
window.add(labelOfWeight);
SpinnerNumberModel modelOfSpinnerOfWeight = new SpinnerNumberModel(1, 1, 727, 1);
final JSpinner spinnerOfWeight = new JSpinner(modelOfSpinnerOfWeight);
window.add(spinnerOfWeight);
JButton buttonOfResult = new JButton("Рассчитать");
window.add(buttonOfResult);
JLabel labelOfResult = new JLabel("Результат");
window.add(labelOfResult);
final JTextField textFieldOfResult = new JTextField();
textFieldOfResult.setEditable(false);
window.add(textFieldOfResult);
JLabel labelOfStatus = new JLabel("Состояние");
window.add(labelOfStatus);
final JTextField textFieldOfStatus = new JTextField();
textFieldOfStatus.setEditable(false);
window.add(textFieldOfStatus);
JButton buttonOfComment = new JButton("Оставить отзыв");
window.add(buttonOfComment);
JButton buttonOfDonate = new JButton("Поддержать разработчика");
buttonOfDonate.setEnabled(false);
window.add(buttonOfDonate);
buttonOfResult.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double growth = (Integer) spinnerOfGrowth.getValue();
double weight = (Integer) spinnerOfWeight.getValue();
double result = weight / (growth / 100 * growth / 100);
double roundedResult = new BigDecimal(result).setScale(2, RoundingMode.UP).doubleValue();
if (roundedResult <= 16) {
textFieldOfStatus.setText("Выраженный дефицит массы тела");
} else if (roundedResult >= 16 && roundedResult <= 18.5) {
textFieldOfStatus.setText("Недостаточная масса тела");
} else if (roundedResult >= 18.5 && roundedResult <= 24.99) {
textFieldOfStatus.setText("Норма");
} else if (roundedResult >= 25 && roundedResult <= 30) {
textFieldOfStatus.setText("Избыточная масса тела");
} else if (roundedResult >= 30 && roundedResult <= 35) {
textFieldOfStatus.setText("Ожирение первой степени");
} else if (roundedResult >= 35 && roundedResult <= 40) {
textFieldOfStatus.setText("Ожирение второй степени");
} else if (roundedResult >= 40) {
textFieldOfStatus.setText("Ожирение третьей степени");
}
String stringResult = Double.toString(roundedResult);
textFieldOfResult.setText(stringResult);
}
});
buttonOfComment.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Desktop.getDesktop().browse(new URI("http://zar-site.tk/%D0%B3%D0%BE%D1%81%D1%82%D0%B5%D0%B2%D0%B0%D1%8F-%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0/"));
} catch (IOException e1) {
e1.printStackTrace();
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
}
});
window.setVisible(true);
}
}Решение задачи: «Можете оценить мой код?»
textual
Листинг программы
double result = weight * 10000 / growth / growth;