问题实现
实现一个闰年测试的JAVA代码如下:
package leapyear; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class leapyear extends JFrame implements ActionListener{ private JTextField textField=null; private JButton btn; public leapyear(){ JFrame f = new JFrame("闰年"); JPanel p = new JPanel(); textField = new JTextField("",10); JButton btn = new JButton("确定"); JLabel label1 = new JLabel("输入"); btn.addActionListener(this); p.add(label1); p.add(textField); p.add(btn); f.add(p); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(300, 200); f.setBounds(150,150,150,150); f.pack(); } public void actionPerformed (ActionEvent e){ String f; f =textField.getText(); String q=""; try{ int p1 = Integer.parseInt(f); if(checkleap(p1)){ q="该年份是闰年!"; } else{ q="该年份不是闰年!"; } } catch (NumberFormatException s) { q="非法输入!"; } textField.setText(q); } public Boolean checkleap(int year) { Boolean temp = false; if (year % 4 == 0) { temp = true; } if (year % 100 == 0) { temp = false; } if (year % 400 == 0) { temp = true; } return temp; } public static void main(String[] args) { new leapyear(); } }
代码的算法简单易懂,在限制非法操作中,我利用了try,catch的方法判断输入的是否为数字,如果不是数字则得到一条错误信息。
测试用例
测试用例 | 预期输出 | 实际输出 |
1234 | 该年份不是闰年! | 该年份不是闰年! |
2000 | 该年份是闰年! | 该年份是闰年! |
1000 | 该年份不是闰年! | 该年份不是闰年! |
abcd | 非法输入! | 非法输入! |
#¥& |
非法输入! | 非法输入! |
测试截图