[实验任务四]:

在上网时,我们经常会看到以下这种对话框,要用户输入一个验证码。

1.程序设计思想

先利用Math.random()得到一个整数,然后将其类型转换为字符类型,连接起来生成六位验证字符串,输入验证码(对话框)利用toLowerCase()函数将输入的字符皆转为小写字母,然后利用Equal函数判断输入的预生成验证码是否吻合,然后以消息框输出信息即可。

2.程序流程图

3.源程序

 import java.util.Random;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Test6 {
     public static void main(String[] args) {
        String s2;
        boolean b=true;
        while(b){
         //定义一个空字符串
     String result = "";
     //进行6次循环
     for(int i = 0 ; i < 6 ; i ++)
     {
     //生成一个97~122的int型的整数
     int intVal = (int)(Math.random() * 26 + 97);
     //将intValue强制转换为char后连接到result后面
     result = result + (char)intVal;
     }
            s2=JOptionPane.showInputDialog( "请输入验证码(不区分大小写)"+result);
            s2=s2.toLowerCase();//把用户输入的大写字母改为小写
        if(s2.equals(result)){
          JOptionPane.showMessageDialog(
               null, " 登录成功 ", "Results",
               JOptionPane.PLAIN_MESSAGE );
            b=false;
        }else{
          JOptionPane.showMessageDialog(
               null, "登录失败,请重新输入", "Results",
               JOptionPane.PLAIN_MESSAGE );
        }
        }
    }
}

4.实现结果截图

5.实验总结

获得字符串的方法值得学习,学会了如何将输入的字母直接转为小写字母,然后利用equal函数作比较,其实java中包类函数多种多样,适合由浅入深的理解。

[实验任务五]:(选做)

猜数字游戏。

1.程序设计思想

对猜数字进行了一定改良,在规定的时间里猜出正确的数字。利用Random类包,先将一个1-100的任意数字赋给a,起初以对话框形式读取设置时间,然后输出开始游戏(消息框)用System.currentTimeMillis()读取当前系统时间,接收输入的数字(对话框),以System.currentTimeMillis()与最初系统时间的差值(即消耗时间)与设置时间比较结果,决定是否结束游戏,其中设有p变量,用以判断最终结果。高低提示(输入数字与系统随机数a的比较,有一判断用以循环输入所猜数字)。

2.程序流程图

3.源程序

import java.util.Random;
import javax.swing.JOptionPane;
public class Guess_Number {
public static void main(String[] args) {
Random random = new Random();
int a=1+(int)(Math.random()*100);//系统给的随机数在1-100
    String s2=JOptionPane.showInputDialog( "输入设置时间" );
    long tt=Long.parseLong(s2);//因为系统时间是long型,所以为了方便比较,所以设为long型
    String firstNumber,s1;
    int p=0;//结果判断
    JOptionPane.showMessageDialog(null, "开始游戏" );  
    final long t=System.currentTimeMillis();//起初时间
    firstNumber =JOptionPane.showInputDialog( "请输出你猜的数字:" );
       int number1= Integer.parseInt( firstNumber );
    while((System.currentTimeMillis()-t)/1000<tt)//游戏结束判断
     {  
    
      if(number1<a)
      {
      JOptionPane.showMessageDialog(null, "低了" );
           
      }
      if(number1>a)
      {
      JOptionPane.showMessageDialog(null, "高了" );
      }
      if(number1==a)
      { JOptionPane.showMessageDialog(null, "恭喜!猜对了" );p=1;break;}
         if(p!=1)//循环输入 猜的数字
          {
           s1=JOptionPane.showInputDialog( "Enter number" );
           number1= Integer.parseInt( s1 );
          }
     }  
    if(p==0)//结果输出
   JOptionPane.showMessageDialog(null, "很遗憾,未能在规定时间猜出数字" );  
}
 
}

4.实现结果截图

5.实验总结

对话框的循环刚开始并没有真正理解,没有形成循环的思维,所以在这一点上花费时间比较多,对字符化界面的理解还不够深刻,希望自己以后能够多做有关方面的例子,加深理解。但是了解了关于java中一种计时器的方法(获取系统时间)。

实验4&5的更多相关文章

  1. [原] 利用 OVS 建立 VxLAN 虚拟网络实验

    OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...

  2. Android中Activity的四大启动模式实验简述

    作为Android四大组件之一,Activity可以说是最基本也是最常见的组件,它提供了一个显示界面,从而实现与用户的交互,作为初学者,必须熟练掌握.今天我们就来通过实验演示,来帮助大家理解Activ ...

  3. SEED实验系列文章目录

    美国雪城大学SEEDLabs实验列表 SEEDLabs是一套完整的信息安全实验,涵盖本科信息安全教学中的大部分基本原理.项目组2002年由杜文亮教授创建,目前开发了30个实验,几百所大学已采用.实验楼 ...

  4. 物联网实验4 alljoyn物联网实验之手机局域网控制设备

    AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...

  5. (转)linux下和云端通讯的例程, ubuntu和openwrt实验成功(一)

    一.  HTTP请求的数据流总结#上传数据, yeelink的数据流如下POST /v1.0/device/4420/sensor/9089/datapoints HTTP/1.1Host: api. ...

  6. (原创) alljoyn物联网实验之手机局域网控制设备

    AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...

  7. 实验:Oracle直接拷贝物理存储文件迁移

    实验目的:Oracle直接拷贝物理文件迁移,生产库有类似施工需求,故在实验环境简单验证一下. 实验环境: A主机:192.168.1.200 Solaris10 + Oracle 11.2.0.1 B ...

  8. Oracle RAC 更换存储实验

    实验环境准备: RHEL 6.5 + Oracle 11.2.0.4 RAC (2nodes) OCR和Voting Disk使用的是OCR1磁盘组,底层对应3个1G大小的共享LUN,一般冗余: DA ...

  9. Vertica集群扩容实验过程记录

    需求: 将3个节点的Vertica集群扩容,额外增加3个节点,即扩展到6个节点的Vertica集群. 实验环境: RHEL 6.5 + Vertica 7.2.2-2 步骤: 1.三节点Vertica ...

  10. 数据库---实验四 oracle的安全性和完整性控制

    实验内容: (一) 授权 . 以dba用户的身份登陆oracle,创建用户u1+学号后四位,u2+学号后四位. SQL> create user u1_3985 identified by &q ...

随机推荐

  1. Windows驱动开发-r3和r0通信

    用户部分代码: int main() { HANDLE hDevice = CreateFile(L, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ...

  2. ORACLE添加新用户并配置权限 添加其他用户的表权限

    添加用户配置权限 1.查出表空间所在位置 ,file_name from dba_data_files order by file_id; 2.根据步骤1查出的路径.将路径替换掉并指定用户名 路径:D ...

  3. 解析基于keras深度学习框架下yolov3的算法

    一.前言 由于前一段时间以及实现了基于keras深度学习框架下yolov3的算法,本来想趁着余热将自己的心得体会进行总结,但由于前几天有点事就没有完成计划,现在趁午休时间整理一下. 二.Keras框架 ...

  4. 吴裕雄--天生自然java开发常用类库学习笔记:同步与死锁

    class MyThread implements Runnable{ private int ticket = 5 ; // 假设一共有5张票 public void run(){ for(int ...

  5. 吴裕雄--天生自然java开发常用类库学习笔记:多线程基础编程

    class MyThread implements Runnable{ // 实现Runnable接口,作为线程的实现类 private String name ; // 表示线程的名称 public ...

  6. sql 报错问题

    SQLServer数据库密码已过期问题 处理

  7. web.xml中的classpath是啥

    在web.xml中一个很面熟的字:classpath,它到底是个啥? <servlet> <servlet-name>dispatcherServlet</servlet ...

  8. IPv6-isis配置

    ①:ipv6 unicast-routing——开启IPv6路由功能 ②:router isis word——开启ISIS进程 ③:is-type——可以修改路由器ISIS等级 ④:进入接口 ⑤:启用 ...

  9. 七十、SAP中内表批量指定位置插入

    一.代码如下 二.调试一下 三.被插入的数据 四.效果如下

  10. RPC——看这一篇就…显然不够

    引言 RPC blablabla…… RPC 知识点 扩展 有给老婆解释的如:https://www.jianshu.com/p/2accc2840a1b