石家莊鐵道大學資訊科學與技術學院
實驗報告
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
{
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);
//視窗實作
}
}
截圖:

實驗總結
生成驗證碼可以使用随機字元。
可以生成驗證碼,不能重新整理驗證碼;确定鍵沒有功能。