四则运算和随机验证码

四则运算源码

    package sizeyunsuan;

 

import java.util.Random;

 

public class sizeyunsuan {

    static String f()//分数的数字,出现问题,定义这个函数,需要返回值,

    {

     int i=(int)(Math.random()*10);

     int j=(int)(Math.random()*10);

     if(i>=j)

     {

     int temp=i;

     i=j;

     j=temp;

     }

return ("("+i+"/"+j+")");

    }

public static void main(String[] args) {

// TODO Auto-generated method stub

    Random random=new Random();

    int k;

    String a,b;

    sizeyunsuan sizeyusuan=new sizeyunsuan();//不知道啥意思???

    for(int i=0;i<30;i++)//30个四则运算

    {

        /*int number1=0;//两个随机数变量

        for(int j=0;j<4;j++)

         {

         number1+=random.nextInt(10);

         }

        int number2=0;

        for(int j=0;j<4;j++)

        {

        number2+=random.nextInt(10);

        }*/

     int number1=(int)(Math.random()*1000);//要把这两个数的定义,放到for循环里,否则会出现数字不变的情况

        int number2=(int)(Math.random()*1000);

     a=sizeyunsuan.f();

     b=sizeyunsuan.f();

     switch((int)(Math.random()*4))//switch的选择是四个中的随机

     {

     case 0:

     k=(int)(Math.random()*3);//k需要先定义

        if(k==0)

        System.out.println(number1+"+"+number2+"=");

        else if(k==1)

        System.out.println(a+"+"+number1+"=");

        else if(k==2)

        System.out.println(a+"+"+b+"=");

        break;

     case 1:

     k=(int)(Math.random()*3);

     if(number1<number2)

         {

         int temp=number1;

         number1=number2;

         number2=temp;

         }

     if(k==0)

     System.out.println(number1+"-"+number2+"=");

     else if(k==1)

     System.out.println(number1+"-"+a+"=");

     else if(k==2)

     System.out.println(a+"-"+b+"=");

     break;

     case 2:

     k=(int)(Math.random()*3);

     if(k==0)

      System.out.println(number1+"*"+number2+"=");

      else if(k==1)

      System.out.println(number1+"*"+a+"=");

      else if(k==2)

      System.out.println(a+"*"+b+"=");

      break;

     case 3:

     while(number2==0)

            number2= (int)(Math.random()*1000);

     System.out.println(number1+"/"+number2+"=");

     break;

     }

    }

}

}

程序运行结果截图

 

程序设计思想:

   设计过程首先是调查小学四则运算具体是什么样的,了解需求后根据需求进行制作,其次我想到需要解决的问题是如何实现每次输出的题目都是任意的,然后需要用选择语句进行加减乘除的运算,另外需要加上一个方法用来实现分数的运算。

实验总结:

   1.switch((int)(Math.random()*4))//switch的选择是四个中的随机

   2.出现这样的错误,就是虽然加减乘除实现了,但是数字不改变,原因就是

int number1=(int)(Math.random()*1000);

int number2=(int)(Math.random()*1000); //要把这两个数的定义,放到for循环里,否则会出现数字不变的情况 

 

 

 

 

 

 

 

 

 

 

随意验证码源码

package yanzheng;

 

import java.awt.Button;

import java.awt.Frame;

import java.awt.Panel;

import java.awt.TextField;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.util.Random;

 

import javax.swing.JFrame;

import javax.swing.JLabel;

 

public class Yanzheng extends Frame {

public static void main(String[] args) {

Frame f=new Frame("请登录");//赋予f新空间窗口

    f.addWindowListener(new WindowAdapter(){  

        public void windowClosing(WindowEvent e){  

            System.exit(0);  

        }  

        });

Panel p=new Panel();//赋予p新空间输入框

p.add(new JLabel("登录名"));//输入框名字为登录名

p.add(new TextField(40));

p.add(new JLabel("密码"));

p.add(new TextField(40));//文本长度为20

p.add(new JLabel("验证码"));

p.add(new TextField(30));

f.add(p);//把文本框加入到窗口中

f.setBounds(0,0,400,400);//最后俩分别是宽和高

f.setVisible(true);

        String str= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";//含有字符和数字的字符串

        Random random=new Random();//随即类初始化

        StringBuffer sb=new StringBuffer();//StringBuffer类生成,为了拼接字符串。

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

        {

        int number=random.nextInt(62);//[0,62]

        sb.append(str.charAt(number));//连接这四个字符

        }

        String a= sb.toString();

        p.add(new JLabel(a));

}

 

}

程勋运行截图

 

程序设计思想:

首先需要解决出现一个界面的问题,然后在界面上出现文字和空白输入框,最后要解决出现随机验证码的问题

实验总结:

出现的错误有:解决出先一个窗口后无法关闭,需要有专门的语句来关闭窗口,否则打开一个就多一个窗口。

基本上问题都是百度去找答案的,有很多关于界面的名词都不知道,而且引入的东西很多,需要去记忆。

posted @ 2018-10-08 09:13  小神龙1258  阅读(295)  评论(0编辑  收藏  举报