Loading

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);
}
}
验证码

实现结果截图

实验总结

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

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

 

 

 

 

 

 

posted @ 2018-10-08 08:54  李旭2018  阅读(920)  评论(0编辑  收藏  举报