1. 程式人生 > >驗證碼和猜數字

驗證碼和猜數字

etl clas and 定義 visible 登錄 功能 number image

實驗任務四

1,出現設計思想

(1)先定義文本框、密碼框和驗證碼框的組件

(2)定義面板和按鈕的個數

(3)定義公有的虛構方法,通過對象實例化來調用

(4)利用Random類來實現生成0-9的隨機數

(5)設置面板的布局,設置面板的顯示

2,程序流程圖

技術分享

3,源程序

package 登錄界面2;

import javax.swing.*;

import java.util.Random;

import java.awt.*; //導入必要的包

public class register extends JFrame{

JTextField jTextField ;//定義文本框組件

JPasswordField jPasswordField;//定義密碼框組件

JTextField JTextField1;

JLabel jLabel1,jLabel2,jLabel3,jLabel22,jLabel33;

JPanel jp1,jp2,jp3,jp4,jp5;//設置面板的個數

JButton jb1,jb2; //創建按鈕

public register(){

String result = "";

Random ran=new Random();

for(int i = 0 ; i < 6 ; i ++)

{

int intVal =ran.nextInt (0+9);//隨機生成0-9的隨機數

result = result + intVal;

}

jTextField = new JTextField(20);

jPasswordField = new JPasswordField(10);

JTextField1=new JTextField(15);

jLabel1 = new JLabel("用戶名");

jLabel2 = new JLabel("密碼");

jLabel3=new JLabel("驗證碼");

jLabel33=new JLabel(""+result);

jLabel22=new JLabel("忘記用戶名/密碼?");

jb1 = new JButton("登錄");

jb2 = new JButton("快速註冊");

jp1 = new JPanel();

jp2 = new JPanel();

jp3 = new JPanel();

jp4 = new JPanel();

jp5 = new JPanel();

//設置布局

this.setLayout(new GridLayout(5,1));

jp1.add(jLabel1);

jp1.add(jTextField);//第一塊面板添加用戶名和文本框

jp2.add(jLabel2);

jp2.add(jPasswordField);//第二塊面板添加密碼和密碼輸入框

jp2.add(jLabel22);

jp3.add(jLabel3);

jp3.add(JTextField1);

jp3.add(jLabel33);

jp4.add(jb1);

jp4.add(jb2); //第四塊面板添加確認和取消

this.add(jp1);

this.add(jp2);

this.add(jp3);

this.add(jp4);//將四塊面板添加到登陸框上面

//設置顯示

this.setSize(300, 200);

//this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

this.setTitle("登陸");

/*if(JTextField1.equals(jLabel33)){

JOptionPane.showMessageDialog(null,"歡迎註冊","登錄成功",JOptionPane.PLAIN_MESSAGE);

}

else

JOptionPane.showMessageDialog(null,"驗證碼輸入錯誤","登錄失敗",JOptionPane.PLAIN_MESSAGE);*/

}

public static void main(String[] args){

new register();

}

}

4,實現結果截圖

技術分享

5,實驗總結

(1)“”+數字生成的是字符串數字,“”+(char)數字生成的是數字對應的字母

(2)java.util包中的Random類能隨機生成數字

(3)JLabek能添加面板輸入框前後的一些功能,例如輸出文字

(4)JPanel能設置面板的個數及名字

(5)JButton能創建按鈕

(6)setsize用來設置面板的大小

(7)JTexttField定義文本框 JPasswordField定義密碼框

實驗任務五

1,出現設計思想

先隨機生成一個數字,然後輸入一個數字和生成的數字進行大小比較,如果猜大了或猜小了就給出提示,重新輸入數字,直到猜對,輸出該數字,循環是否繼續。

2,程序流程圖

技術分享

3,源代碼

package 猜數字遊戲;

import javax.swing.JOptionPane;

import java.util.Random;

public class GussNumber {

public static void main(String[] args){

Random ran=new Random();

int n=1;

while(n==1){

int x=ran.nextInt(1+100);

String s1=JOptionPane.showInputDialog("寫下你猜的數字");

int a=Integer.parseInt(s1);

do{

if(a>x)

JOptionPane.showMessageDialog(null,"猜大了","結果",JOptionPane.PLAIN_MESSAGE);

else

JOptionPane.showMessageDialog(null,"猜小了","結果",JOptionPane.PLAIN_MESSAGE);

s1=JOptionPane.showInputDialog("重新猜的數字");

a=Integer.parseInt(s1);

}while(a!=x);

if(a==x)

JOptionPane.showMessageDialog(null,"恭喜你!猜對了\n該數字是"+x,"結果",JOptionPane.PLAIN_MESSAGE);

String s2=JOptionPane.showInputDialog("是否繼續?\n1,繼續 2,結束");

n=Integer.parseInt(s2);

}

}

}

4,運行結果截圖

技術分享

技術分享

技術分享

技術分享

技術分享

5,編譯錯誤分析(總結)

在比較輸入的數字和隨機的數字時要寫入一個循環

驗證碼和猜數字