石家庄铁道大学信息科学与技术学院
实验报告
2018年----2019年 第一学期
题目: 四则运算、生成验证码
课程名称: JAVA语言程序设计
班 级: 信1705-2班
姓 名: 赵墨涵 学号: 20173623
指导教师: 王建民
正文部分格式要求:
1、 正文汉子部分要求宋体小四,行间距固定值20磅;首行缩进两个字符。
2、 程序英文部分要求采用Times New Roman字体,行间距固定值20磅,程序缩进采用四个字符,程序部分要求采用必要的注释。
3、 实验报告要求完成以下三项内容:
1) 按照题目内容要求编写程序实现功能。
2) 实验报告中要求包括程序设计思想、程序流程图、源程序、实现结果截图、实验总结(包括调试过程中出现的错误等)。
四则运算
程序设计思想
使用随机数生成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("请选择10以内或100以内");
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+"=");
}
}
}
截图:
实验总结
实验运用到了随机数函数
验证码
程序设计思想
使用random产生随机字符,并利用for循环产生字符串。具体框架使用jFrame,文本框组件:JTextField;密码框组件:JPasswordField;标签组件:JLabel;复选框组件:JCheckBox;单选框组件:JRadioButton;按钮组件JButton。使用setbounds设置位置和大小。
程序流程图
源程序
package yzm;
import java.util.Random;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;//*容器即空白窗口
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Test {
public static void main(String[] args) {
Test t=new Test();
t.set();
}
private void set() {
JFrame f=new JFrame();
f.setTitle("验证码");//窗口标题
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭
f.setExtendedState(JFrame.MAXIMIZED_VERT);//最大化
f.setSize(300,300);//窗口大小
Container con=f.getContentPane();
JPanel pan=new JPanel();
JLabel yan=new JLabel("验证码:");
pan.add(yan);
JTextField yanzhengma=new JTextField(10);
pan.add(yanzhengma);
String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
StringBuffer yzm = new StringBuffer();
for (int i = 0; i < 4; ++i) {
int number = random.nextInt(62);// [0,62)
yzm.append(str.charAt(number));
}
String s=yzm.toString();
JLabel ma=new JLabel(s);
pan.add(ma);
JButton buttenOne=new JButton("确定");
pan.add(buttenOne);
con.add(pan);
f.setVisible(true);
//窗口实现
}
}
截图:
实验总结
生成验证码可以使用随机字符。
可以生成验证码,不能刷新验证码;确定键没有功能。