• 【判断闰年】程序抛出异常的解决方案


    ●●● 这个星期,在章院的软件测试课堂上,老师让写出判断用户输入的年份是否为闰年的程序。我给出了下面的代码来做判断条件:    

     if (year % 400 == 0)
      {
      text2.setText("闰年");
      return;
      }
      if (year % 100 != 0 && year % 4 == 0)
      {
      text2.setText("闰年");
      return;
      }
      text2.setText("不是闰年");
    }

    ●●● 该程序设计在用户非法输入后,会抛出异常。

          ^(* ̄(oo) ̄*)^ 注意:

                                 非法输入:英文字母,不满足实际的数字串,控制字符,标点符等。

          

    ●●● 解决方案:

    1.代码实现:

    import java.util.Random;

    import javafx.application.Application;
    import javafx.event.EventHandler;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.TextField;
    import javafx.scene.input.MouseEvent;
    import javafx.scene.layout.AnchorPane;
    import javafx.scene.text.Text;
    import javafx.stage.Stage;


    public class SoftwareTest extends Application{
    /**
     * @param args
     */
    public static void main(String[] args) {

    SoftwareTest.launch(args);
    }
    @Override
    public void start(Stage stage) throws Exception {
    AnchorPane root = new AnchorPane();

    /*final String str1 = "合法";
    final String str2 = "不合法";
    //用户名
    final TextField textfiled1 = new TextField();
    root.getChildren().addAll(textfiled1);
    AnchorPane.setTopAnchor(textfiled1,100.0);
    AnchorPane.setLeftAnchor(textfiled1,100.0);

    Text text1 = new Text();
    text1.setText("用户名");
    root.getChildren().addAll(text1);
    AnchorPane.setTopAnchor(text1,100.0);
    AnchorPane.setLeftAnchor(text1,50.0);

    //密码
    final TextField textfiled2 = new TextField();
    root.getChildren().addAll(textfiled2);
    AnchorPane.setTopAnchor(textfiled2,150.0);
    AnchorPane.setLeftAnchor(textfiled2,100.0);

    Text text2 = new Text();
    text2.setText("密码");
    root.getChildren().addAll(text2);
    AnchorPane.setTopAnchor(text2,150.0);
    AnchorPane.setLeftAnchor(text2,50.0);

    //验证码
    final TextField textfiled3 = new TextField();
    root.getChildren().addAll(textfiled3);
    AnchorPane.setTopAnchor(textfiled3,200.0);
    AnchorPane.setLeftAnchor(textfiled3,100.0);

    Text text3 = new Text();
    text3.setText("验证码");
    root.getChildren().addAll(text3);
    AnchorPane.setTopAnchor(text3,200.0);
    AnchorPane.setLeftAnchor(text3,50.0);

    final Text text4 = new Text();
    root.getChildren().addAll(text4);
    AnchorPane.setTopAnchor(text4,200.0);
    AnchorPane.setLeftAnchor(text4,300.0);

    Random ran = new Random();
    final int a  = ran.nextInt(9000)+1000;
    text4.setText(a+"");


    final Text text = new Text();
    root.getChildren().addAll(text);
    AnchorPane.setTopAnchor(text,100.0);
    AnchorPane.setLeftAnchor(text,300.0);

    Button btn = new Button("确定");
    root.getChildren().addAll(btn);
    AnchorPane.setTopAnchor(btn,250.0);
    AnchorPane.setLeftAnchor(btn,100.0);

    btn.setOnMouseClicked(new EventHandler<MouseEvent>() {
    public void handle(MouseEvent arg0) {
      boolean judge1 = true;
      boolean judge2 = true;
      String s = textfiled1.getText();
      if ((s.length() > 6) || (s.length() < 1))
      {
        text.setText(str2);
      return;
      }
      
      
      for (int i = 0; i < s.length();i++)
      {
     char c = s.charAt(i);
     if (!((c >= 'A' && c <= 'Z')||(c >= 'a' && c <='z')||(c >= '0' && c <= '9')))
     {
     judge1 = false;
     break;
     }
      }
      
      if (!judge1)
      {
      text.setText(str2);
      return;
      }
      
      
      s = textfiled2.getText();
      if ((s.length() > 6) || (s.length() < 1))
      {
        text.setText(str2);
      return;
      }
      
      
      for (int i = 0; i < s.length();i++)
      {
     char c = s.charAt(i);
     if (!((c >= 'A' && c <= 'Z')||(c >= 'a' && c <='z')||(c >= '0' && c <= '9')))
     {
     judge2 = false;
     break;
     }
      }
      
      if (!judge2)
      {
      text.setText(str2);
      return;
      }
      
      
      s = textfiled3.getText();
      int i=Integer.parseInt(s);
      if (i != a)
      {
      text.setText(str2);
      }
      else
      {
      text.setText(str1);
      }
      
    }


    });*/

    Text text1 = new Text();
    text1.setText("请输入年份");
    AnchorPane.setTopAnchor(text1,70.0);
    AnchorPane.setLeftAnchor(text1,100.0);
    root.getChildren().addAll(text1);


    final Text text2 = new Text();
    AnchorPane.setTopAnchor(text2,100.0);
    AnchorPane.setLeftAnchor(text2,300.0);
    root.getChildren().addAll(text2);

    final TextField textfiled1 = new TextField();
    root.getChildren().addAll(textfiled1);
    AnchorPane.setTopAnchor(textfiled1,100.0);
    AnchorPane.setLeftAnchor(textfiled1,100.0);

    Button btn = new Button("确定");
    root.getChildren().addAll(btn);
    AnchorPane.setTopAnchor(btn,130.0);
    AnchorPane.setLeftAnchor(btn,100.0);


    btn.setOnMouseClicked(new EventHandler<MouseEvent>() {
    public void handle(MouseEvent arg0) {
      String s = textfiled1.getText();   
      for (int i = 0; i < s.length();i++)
      {
     char c = s.charAt(i);
     if (!(c >= '0'&& c <= '9' ))
     {
     text2.setText("非法输入");
     return;
     }
      }
      int year =Integer.parseInt(s);
      if (year % 400 == 0)
      {
      text2.setText("闰年");
      return;
      }
      if (year % 100 != 0 && year % 4 == 0)
      {
      text2.setText("闰年");
      return;
      }
      text2.setText("不是闰年");
    }
    });

    stage.setScene(new Scene(root, 500, 500));
    stage.show( );
         
    }

    }

    2.测试用例:

    编号 测试用例 输出结果
    1 2000 闰年
    2 1900 非闰年
    3 1996 闰年
    4 1995 非闰年
    5 abcd 非法输入

    3.结果图:

  • 相关阅读:
    交换机的配置文件和系统映像文件备份与恢复(如果不小心损坏了,可以用这种方法恢复)
    交换机端口安全配置
    路由器密码重置(不是适用于所有有些启动顺序数字不一样)
    交换机的默认网关(跨网段telnet)
    思科交换机的初始配置(使用telnet登录)
    Linux命令集(第一部分共40个)
    Linux6.9安装
    javamail邮件发送报错解决方案
    isEmpty()与equals()、==“”区别
    eclipse svn 修改了类名之后提交
  • 原文地址:https://www.cnblogs.com/summer23/p/4394696.html
Copyright © 2020-2023  润新知