zoukankan      html  css  js  c++  java
  • Java四则运算和验证码生成

    四则运算

    程序设计思想

      使用随机数生成100或1000以内数字,用字符串数组实现+-*/的输出。For循环打印出所需要的题数。

    程序流程图

    package yunsuan;
    import java.util.Scanner;
    public class Yunsuan {
    
        public static void main(String[] args) {
            int a1,a2,a3;
            int b1,b2,b3;
            int m,n;
            int i=0;
            Scanner sc=new Scanner(System.in);
            String f[]=new String[4];
            f[0]="+";
            f[1]="-";
            f[2]="*";
            f[3]="/";
            System.out.println("请选择100以内或1000以内");
            m=sc.nextInt()+1;
            System.out.println("请输入要产生的题数");
            n=sc.nextInt();
            for(i=0;i<n;i++)
            { 
            a1=(int)(Math.random()*m);
            a2=(int)(Math.random()*m);
            a3=(int)(Math.random()*m);
            //a4=(int)(Math.random()*m);
            b1=(int)(Math.random()*4);
            b2=(int)(Math.random()*4);
            //b3=(int)(Math.random()*4);
            System.out.println("第"+(i+1)+"题:"+a1+f[b1]+a2+f[b2]+a3+"=");
            }
            }
        }
    四则运算

    实现结果截图

    实验总结

    开始不知道如何生成随机数,百度后明白Math.random()产生0-1的随机数,并乘上相应的倍数就能获得一定范围的随机数。后续增加了难度选择。

    生成验证码

    程序设计思想

    使用random产生随机字符,并利用for循环产生字符串。具体框架使用jFrame,文本框组件:JTextField;密码框组件:JPasswordField;标签组件:JLabel;复选框组件:JCheckBox;单选框组件:JRadioButton;按钮组件JButton。使用setbounds设置位置和大小。

    程序流程图

    package 登陆界面;
    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 java.util.Random;
    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 Denglu {
        public static String creatZifu()
        {
            String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; 
            Random random = new Random(); 
            StringBuffer sb = new StringBuffer(); 
            for (int i = 0; i < 4; i++)
            { 
            int number = random.nextInt(str.length()); 
            sb.append(str.charAt(number)); 
            } 
            return sb.toString(); 
        }
    
        public static void main(String[] args) 
        {
            JFrame jFrame = new JFrame("登陆界面");
            //具体框架使用jFrame,文本框组件:JTextField;
            //密码框组件:JPasswordField;标签组件:JLabel;
            //复选框组件:JCheckBox;单选框组件:JRadioButton;按钮组件JButton。
            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);
            //添加标签,内容为“姓名”
            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);
            jFrame.add(label3);
            //添加标签,并调用产生验证码的函数,并将其作为标签的内容
            JLabel label4 = new JLabel(creatZifu());
            String s;
            s=label4.getText();
            label4.setBounds(70, 70, 100, 30);
            label4.setForeground(Color.blue);
            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(110, 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(250, 75, 100, 20);
            jFrame.add(button2);
            JButton button = new JButton("登录");
            button.setBounds(10, 105, 150, 30);
            jFrame.add(button);
            jFrame.setVisible(true);
    }
    }
    验证码

    实现结果截图

    实验总结

     生成验证码可以使用随机字符,并用循环获得想要的长度。

     可以生成验证码,但是无法刷新验证码,登陆键没有功能

     

     

     

     

     

  • 相关阅读:
    Java 第十一届 蓝桥杯 省模拟赛 梅花桩
    Java 第十一届 蓝桥杯 省模拟赛 梅花桩
    Java 第十一届 蓝桥杯 省模拟赛 梅花桩
    Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
    Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
    Java 第十一届 蓝桥杯 省模拟赛 元音字母辅音字母的数量
    Java 第十一届 蓝桥杯 省模拟赛 最大的元素距离
    Java 第十一届 蓝桥杯 省模拟赛 递增序列
    Java 第十一届 蓝桥杯 省模拟赛 递增序列
    Java 第十一届 蓝桥杯 省模拟赛 最大的元素距离
  • 原文地址:https://www.cnblogs.com/lixv2018/p/9752484.html
Copyright © 2011-2022 走看看