zoukankan      html  css  js  c++  java
  • Tutorial 01 4,5题

    .任务四:

    程序设计思想:利用Math.random()产生一个char类型的字符,再利用for循环是他们相加,最后将他们放在一个消息框中输出。

     

    程序流程图:

     

     

    源程序:           package test1;

     

    import java.awt.Color;

    import java.awt.Container;

    import java.awt.Dimension;

    import java.awt.Toolkit;

    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.JOptionPane;

    import javax.swing.JPasswordField;

    import javax.swing.JTextField;

    //产生一位的字符

    public class Test26 extends JFrame

    {

             public static char Getrandomchar(char a1,char a2)

             {

                      return (char)(a1+Math.random()*(a2-a1+1));

                     

             }

    //产生6位的验证码;

             public static String test()

             {

                       String s="";

                               char a;

                               for(int i=0;i<6;i++)

                               {

                                        a=Getrandomchar('a','z');

                                        s=s+a;

                               }

                      return s;

             }

             public static void main(String[] args) {

    //创建登录界面

                      final String userName = "abc";

                      final String passwrod = "123";

                      JFrame jFrame = new JFrame("登陆界面");

                      Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();

                      jFrame.setBounds(((int)dimension.getWidth() - 200) / 2, ((int)dimension.getHeight() - 300) / 2, 400, 200);

                      jFrame.setResizable(true);

                      jFrame.setLayout(null);

                      //jFrame.setForeground(Color.blue);//是背景颜色变为蓝色;

                      jFrame.getContentPane().setBackground(Color.blue);

                      //jFrame.getContentPane().setVisible(false);

                      jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                      //添加标签,内容为“姓名”

                      JLabel label1 = new JLabel("姓名");

                      label1.setBounds(10, 10, 100, 30);

                      jFrame.add(label1);

                      //添加标签,内容为“密码”

     

                      JLabel label2 = new JLabel("密码");

                      label2.setBounds(10, 40, 100, 30);

                      jFrame.add(label2);

                      //添加标签,内容为“验证码”;

        JLabel label3 = new JLabel("验证码:");

                      label3.setBounds(10, 70, 100, 30);

                      //label3.setForeground(Color.red);

                      jFrame.add(label3);

                      //添加标签,并调用产生验证码的函数,并将其作为标签的内容

                      JLabel label4 = new JLabel(test());

                      String s;

                      s=label4.getText();

                      label4.setBounds(70, 75, 130, 20);

                      label4.setForeground(Color.red);

                      jFrame.add(label4);

                      //输入用户名;

                      final JTextField text1 = new JTextField();

                      text1.setBounds(50, 15, 130, 20);

                      jFrame.add(text1);

                      //输入密码;

                      final JPasswordField text2 = new JPasswordField();

                      text2.setBounds(50, 45, 130, 20);

                      jFrame.add(text2);

                      //输入验证码;

                      final JTextField text3 = new JTextField();

                      text3.setBounds(150, 75, 130, 20);

                      jFrame.add(text3);

                     

                      JButton button1 = new JButton("取消");

                      button1.setBounds(160, 105, 150, 30);

                      button1.addActionListener(new ActionListener()

                      {

                               public void actionPerformed(ActionEvent e)

                               {

                                        jFrame.dispose();//关闭程序;

                               }

                      });

                      jFrame.add(button1);

                     

                      JButton button2 = new JButton("看不清,换一张");

                      button2.setBounds(300, 75, 150, 20);

                      button2.addActionListener(new ActionListener()

                      {

                               public void actionPerformed(ActionEvent e)

                               {

                                       

                                        text3.setText("");

                                       

                                        label4.setText(s);

                               }

                      });

                      jFrame.add(button2);

                      //检验是否登陆成功;

                      JButton button = new JButton("登录");

                      button.setBounds(10, 105, 150, 30);

                      button.addActionListener(new ActionListener() {

                               public void actionPerformed(ActionEvent e) {

                                        if(userName.equals(text1.getText()) && passwrod.equals(text2.getText())&&s.equals(text3.getText())) {

                                                 JOptionPane.showMessageDialog(null, "登陆成功", "提示", JOptionPane.INFORMATION_MESSAGE);

                                        } else {

                                                 JOptionPane.showMessageDialog(null, "错误", "提示", JOptionPane.ERROR_MESSAGE);

                                                 text1.setText("");

                                                 text2.setText("");

                                                 text3.setText("");

                                                 label4.setText(test());

                                        }

                               }

                      });

                      jFrame.add(button);

                     

                      jFrame.setVisible(true);

             }

    }

    程序结果截图:

     

    总结分析:1.在登录时,无法判断验证码是否正确。

              解决方案:直接将产生验证码的程序定义为一个函数,也方便后边的调用。

              2.鼠标单击“取消”是无法关闭程序

              解决方案:在取消的按钮上加了一个动作监听器,如果单击“取消”,便会关闭程序。

     

     

    任务五:

    程序设计思想:利用Math.Random产生一个随机数(1-100),用户在从键盘输入猜的数,再利用while循环,判断是否猜的正确并给出提示信息,每次的输出结果都放在一个消息框中,直到用户猜出正确答案。

     

    程序流程图:

     

     

    程序源代码:

                 import java.util.Random;

     

    import javax.swing.JOptionPane;

     

    public class Guess {

     

             public static void main(String[] args)

             {

                      String q="猜大了!";

                      String w="猜小了";

                      String e="恭喜你,答对了!";

                      String b;

                      int z;

                      int a=new Random().nextInt(100) +1;//产生1-100的随机数;

                      b=JOptionPane.showInputDialog(null,"输入自己猜的数:",a);//用户输入自己猜的数字;

                      z = Integer.parseInt(b);//将b转化为int类型;

                      while(z!=a)//判断输入的数是否与产生的数相同;

                      {

                               if(z>a)

                               {

                                        JOptionPane.showMessageDialog(null,q);

                                        b=JOptionPane.showInputDialog(null,"输入自己猜的数:");//用户输入自己猜的数字;

                                        z = Integer.parseInt(b);//将b转化为int类型;

                               }

                               else

                               {

                                        JOptionPane.showMessageDialog(null,w);

                                        b=JOptionPane.showInputDialog(null,"输入自己猜的数:");//用户输入自己猜的数字;

                                        z = Integer.parseInt(b);//将b转化为int类型;

                               }

                              

                      }

                      JOptionPane.showMessageDialog(null,e);

             }

     

    }

     

    程序截图验证:

     

     

  • 相关阅读:
    vuex详解
    es6 数组方法的扩展
    es6class语法和继承
    变量的解构赋值
    es6变量let
    前端模块化
    webpack基础
    react中的redux(入门)
    react-router-dom中的BrowserRouter和HashRouter和link与Navlink
    react-router-dom
  • 原文地址:https://www.cnblogs.com/ljysy/p/7637071.html
Copyright © 2011-2022 走看看