四则运算
程序设计思想
使用随机数生成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); } }
实现结果截图
实验总结
生成验证码可以使用随机字符,并用循环获得想要的长度。
可以生成验证码,但是无法刷新验证码,登陆键没有功能