实验4&5
[实验任务四]:
在上网时,我们经常会看到以下这种对话框,要用户输入一个验证码。
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的更多相关文章
- [原] 利用 OVS 建立 VxLAN 虚拟网络实验
OVS 配置 VxLAN HOST A ------------------------------------------ | zh-veth0(10.1.1.1) VM A | | ---|--- ...
- Android中Activity的四大启动模式实验简述
作为Android四大组件之一,Activity可以说是最基本也是最常见的组件,它提供了一个显示界面,从而实现与用户的交互,作为初学者,必须熟练掌握.今天我们就来通过实验演示,来帮助大家理解Activ ...
- SEED实验系列文章目录
美国雪城大学SEEDLabs实验列表 SEEDLabs是一套完整的信息安全实验,涵盖本科信息安全教学中的大部分基本原理.项目组2002年由杜文亮教授创建,目前开发了30个实验,几百所大学已采用.实验楼 ...
- 物联网实验4 alljoyn物联网实验之手机局域网控制设备
AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...
- (转)linux下和云端通讯的例程, ubuntu和openwrt实验成功(一)
一. HTTP请求的数据流总结#上传数据, yeelink的数据流如下POST /v1.0/device/4420/sensor/9089/datapoints HTTP/1.1Host: api. ...
- (原创) alljoyn物联网实验之手机局域网控制设备
AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...
- 实验:Oracle直接拷贝物理存储文件迁移
实验目的:Oracle直接拷贝物理文件迁移,生产库有类似施工需求,故在实验环境简单验证一下. 实验环境: A主机:192.168.1.200 Solaris10 + Oracle 11.2.0.1 B ...
- Oracle RAC 更换存储实验
实验环境准备: RHEL 6.5 + Oracle 11.2.0.4 RAC (2nodes) OCR和Voting Disk使用的是OCR1磁盘组,底层对应3个1G大小的共享LUN,一般冗余: DA ...
- Vertica集群扩容实验过程记录
需求: 将3个节点的Vertica集群扩容,额外增加3个节点,即扩展到6个节点的Vertica集群. 实验环境: RHEL 6.5 + Vertica 7.2.2-2 步骤: 1.三节点Vertica ...
- 数据库---实验四 oracle的安全性和完整性控制
实验内容: (一) 授权 . 以dba用户的身份登陆oracle,创建用户u1+学号后四位,u2+学号后四位. SQL> create user u1_3985 identified by &q ...
随机推荐
- stm32串口收发导致的死机
stm32串口收发导致的死机 很久以前有偶尔遇到过串口死机的情况,那是当时的我写出来的代码自己都觉得有问题,也就没注意.用了stm32做项目以后也就没遇到过了,今天做了个高压测试,每5ms定时发送一次 ...
- 【HITB GSEC CTF 2017】1000levels
https://files.cnblogs.com/files/p4nda/498a3f10-8976-4733-8bdb-30d6f9d9fdad.gz #通过阅读天枢战队大佬们的wp调试的结果 首 ...
- Pdo 绑定参数方法 通用更新语句
public static function upShelf($table,$arr,$where) { //将传入的数组进行key vlaue 分离 并将key值以问号方式绑定参数 ...
- System.Data.SqlClient.SqlException: 'Incorrect syntax near 'OFFSET'.
https://www.nopcommerce.com/boards/t/54586/410-not-running-on-local-system.aspx#209684 Hello, I was ...
- 五、Vue:使用axios库进行get和post、用拦截器对请求和响应进行预处理、Mock(数据模拟)
一.axios [应用]进行请求和传表单 [axios中文档]:https://www.kancloud.cn/yunye/axios/234845 [vue-axios]:https://cn.vu ...
- CentOS 6.5(x86_32)下安装Oracle 10g R2
一.硬件要求 1.内存 & swap Minimum: 1 GB of RAMRecommended: 2 GB of RAM or more 检查内存情况 # grep MemTotal / ...
- Linux系统sda变sdb的解决
起因 我的电脑有一个128G的固态以及一个500G的机械,我将系统安装在128G固态中,于是将500G的机械(/dev/sdb)挂在在/home目录下,安装完系统后执行lsblk命令 NAME MAJ ...
- mybatis插入数据后将其ID返回
背景 mybatis没有关联保存的功能,所以主从表需要分开保存,这就涉及到主表保存后要再次获取主表ID的环节,以下介绍mybatis插入数据后返回其自增ID的两种方式 方案 1.sql获取 <i ...
- uni-app实现弹窗遮罩
<template> <view> <view class="systemboxItem" @click="showSystemDialog ...
- uni-app开发小程序-使用uni.switchTab跳转后页面不刷新的问题
uni.switchTab({ url: '/pages/discover/discover', success: function(e) { var page = getCurrentPages() ...