实验4&5
2024-08-30 05:49:22
[实验任务四]:
在上网时,我们经常会看到以下这种对话框,要用户输入一个验证码。
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中一种计时器的方法(获取系统时间)。
最新文章
- p/invoke碎片--对数组的封送处理
- Swift中的部分更新与旧版的区别
- win激活查询及修改
- LINQ To SQL 语法及实例大全
- C++ json库jsoncpp 吐槽
- UVa 12206 (字符串哈希) Stammering Aliens
- 再次阅读《精通CSS-高级Web标准解决方案(第二版)》
- 【转】android资源目录---assets与res/raw区别
- 在win7在结构cocos2d-x v3.2rc0开发环境(For Android)
- Cygwin 各种情况下中文乱码--终极解决方案
- java基础:内存分配(上)
- centos 支持复制与粘贴
- MapReduce原理1
- logback 实例
- Introduction to Big Data with PySpark
- Beta阶段——2
- 一款基于jquery的手风琴图片展示效果
- Asp.net的生命周期之页生命周期
- 将csv导出json格式
- 洛谷10月月赛R2&#183;浴谷八连测R3题解
热门文章
- HTML学习第七天(二)
- 51nod 1444:破坏道路 广度优先搜索
- 2-10 就业课(2.0)-oozie:8、定时任务的执行
- C#中使用设置(Settings.settings) Properties.Settings.Default .(配置文件相当重要)
- android:imeOptions
- 移动 web 开发问题和优化小结
- Golang的基础数据类型-布尔型
- uniapp 小程序实现自定义底部导航栏(tarbar)
- linux添加一个已经存在用户到一个用户组
- 关于spring-mvc.xml的静态资源的配置