[实验任务四]:

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

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. 安装hue时,make apps 编译报错

    安装hue时,make apps 编译报错 :"Error: must have python development packages for 2.6 or 2.7. Could not ...

  2. VUE - vuex state的使用

    1,安装 进入项目目录,执行 vue add vuex 命令 2,会在src的目录下新增store文件夹 3,打开store文件夹下的index.js  ,  给 state 设定一些数据 impor ...

  3. Git闪退问题

    打开Git 会一闪而过.并出现一个错误的日志文件.自己尝试安装了几个不同的版本Git还是解决不了问题.后来自己在网上找了一些办法,并进行总结 1. 进入git目录下的bin目录执行rebase -b ...

  4. 多个Activity跳转的小结

    第一个例子:demo1 Main—>SecondActivity—>Main 从流程上看就是从Main跳转到SecondActivity,再从SecondActivity返回到Main.也 ...

  5. 困惑我的x++和++x;

    刚学习C语言时X++和++X非常不解 目前有了新的领悟 1.X++ int x=0; int z=x++; 此时z?x? 这个问题可以分两步思考 第一步:先把x的值赋予z,此时z=x=0; 第二步:x ...

  6. 012.CI4框架CodeIgniter, 加载并调用自己的Libraries库

    01. 在Libraries目录创建一个Mylib文件,内容是一个简单的类 <?php namespace App\Controllers; class Home extends BaseCon ...

  7. docker-compose(grafana influxdb) + telegraf 快速搭建简单监控

     灵活实现方案:   1:     telegraf 为go 语言写得占用内存小 收集主机各项监控数据 定时写入 时序DB   influxdb ------------------------&qu ...

  8. DNS原理和智能DNS及CDN

    CDN是什么 CDN(Content Delivery Network)是内容分发网络. 作用: 使用户可以就近取的所需要的内容,加速用户访问网站资源的速度.物理距离更近,响应速度更快.拦截部分网络请 ...

  9. 统计返回的Decimal/long型数据转换问题

    mysql数据库在进行统计时候,返回的count()是个long型,sum()返回的是bigDecimal类型,前段需要的是int型故而需要进行转换. <select id="getD ...

  10. usb摄像头驱动的移植

    相关软件下载地址:http://pan.baidu.com/s/16yo8Y 1.使用摄像头型号ov9650 ①修改.配置内核 1.修改vi drivers/i2c/busses/Kconfig (参 ...