实验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 ...
随机推荐
- CC3200 飞行计划
CC3200 飞行计划 2016-01-25 CC3200 资源 CC3200_JTAG调试 CC3200-Uniflash 烧写程序 Mosquitto搭建MQTT 服务器 [示例] CC3200_ ...
- Linux-kernel-timeline
Linux kernel Protocol Location HTTP https://www.kernel.org/pub/ GIT https://git.kernel.org/ RSYNC rs ...
- java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA transaction with specified [javax.transaction.TransactionManager] required
错误信息: java.lang.IllegalStateException: Active Spring transaction synchronization or active JTA trans ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):带有字体图标的导航栏
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 32位CPU和64位CPU 区别
操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的CPU设计. 64位操作系统针对的64位的CPU设计.操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的C ...
- Metasploitable学习(一)
划红线的是执行语句,对已知的服务器的IP地址进行扫描.嗅探
- cf 398B. Painting The Wall
23333,还是不会..%%%http://hzwer.com/6276.html #include <bits/stdc++.h> #define LL long long #defin ...
- 034-PHP简单定义一个匿名函数
<?php /* 简单定义一个匿名函数 */ # 把匿名函数赋值给一个变量,也叫临时函数 $demo = function ($txt) { echo $txt; }; # 调用测试下 $dem ...
- PostAsync与GetAsync
using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; u ...
- Oozie笔记
简介 Oozie 是用于 Hadoop 平台的开源的工作流调度引擎. 用于管理 Hadoop 属于web应用程序, 由 Oozie client 和 Oozie Server 两个组件构成. Oozi ...