01Java语言基础
[实验任务四]:
1.程序设计思想
根据RandomStr.java,随机生成6位字母,在对话框中输出,用户根据随机生成的验证码对应输入,程序根据用户输入的内容与系统随机生成的验证码字符比较,若相等,程序结束;若不相等,程序循环,重新生成6位验证码,用户重新输入,直到输入正确为止。
2.程序流程图
3.源程序
import javax.swing.*;
public class yanzhengma6wei {
public static void main(String[] args)
{
// TODO Auto-generated method stub
//定义一个空字符串
String result;
String shuru;
do
{
result = "";
//进行6次循环
for(int i = 0 ; i < 6 ; i ++)
{
//生成一个97~122的int型的整数
int intVal = (int)(Math.random() * 26 + 97);
//将intValue强制转换为char后连接到result后面
result = (String)(result + (char)intVal);
}
//输出随机字符串
shuru=JOptionPane.showInputDialog(null,result,"请输入验证码",JOptionPane.PLAIN_MESSAGE);
if(!shuru.equalsIgnoreCase(result))
JOptionPane.showMessageDialog(null,"输入验证码错误!请重新输入!","error",JOptionPane.PLAIN_MESSAGE);
}while(!shuru.equalsIgnoreCase(result));
System.exit( 0 );
}
}
4.实现结果截图
5.实验总结(包括调试过程中出现的错误等)
系统生成的随机字符串赋值给String型变量result,用户输入的字符赋值给String型变量shuru,在比较两值是否相等时出现问题。不能直接用简单的if(shuru==result),因为字符串变量只是字符串的管理者,并非字符串本身,若想比较,需使用equals()函数,此处应改为if(shuru.equals(result))。
[实验任务五]:(选做)猜数字游戏
1.程序设计思想
用random()函数random()*100+1随机生成1~100的整数,用户输入数字猜想,若猜想数字小于或大于随机数,分别对应输出“猜小了”或“猜大了”,用户重新猜想输入,如此循环,直至猜想与随机数相等,输出“猜对了”,程序结束。
2.程序流程图
3.源代码
import javax.swing.*;
import java.util.Random;
public class guess {
public static void main(String[] args) {
// TODO Auto-generated method stub
int number=(int)(Math.random()*100+1);
String shuru=JOptionPane.showInputDialog(null,"请输入1~100的整数:","Guess",JOptionPane.PLAIN_MESSAGE);
int num=Integer.parseInt(shuru);
do
{
if(num>number)
{
shuru=JOptionPane.showInputDialog(null,"猜大了"+"\n"+"请输入1~100的整数:","reguess",JOptionPane.PLAIN_MESSAGE);
num=Integer.parseInt(shuru);
}
else if(num<number)
{
shuru=JOptionPane.showInputDialog(null,"猜小了"+"\n"+"请输入1~100的整数:","reguess",JOptionPane.PLAIN_MESSAGE);
num=Integer.parseInt(shuru);
}
}while(num!=number);
if(num==number)
{
JOptionPane.showMessageDialog(null,"猜对了!","success",JOptionPane.PLAIN_MESSAGE);
System.exit( 0 );
}
}
}
4.运行结果截图
5.编译错误分析
用户输入的内容为String型,要强制转换为int型,才能和int类型的随机数number相比较,用Integer.parseInt(shuru)。
最新文章
- 记录一些PHP7RCC1编译问题
- python 中变量的命名方法
- 意外作出了一个javascript的服务器,可以通过js调用并执行任何java(包括 所有java 内核基本库)及C#类库,并最终由 C# 执行你提交的javascript代码! 不敢藏私,特与大家分
- android国际化(多语言)
- linux 下 取进程占用内存(MEM)最高的前10个进程
- sc7731 Android 5.1 LCD驱动简明笔记之三
- ImageView 会盖掉ScrollView的OnTouchListener,监听Activity的手势
- PHP中的面向对象OOP中的魔术方法
- Kotlin实现LeetCode算法题之Two Sum
- RobotFramework-RIDE环境搭建二:Robot Framework-RIDE安装过程以及踩雷点
- Python自然语言处理笔记【二】文本分类之监督式分类的细节问题
- 剑指offer题库
- Java程序员进击书籍推荐
- Codeforces Round #371 (Div. 2) A. Meeting of Old Friends 水题
- C#学习笔记(五):while循环和for循环
- 算法笔记--字符串hash
- 理解Nodejs的Event Loop
- [并查集] 1118. Birds in Forest (25)
- 混沌数学之Duffing(杜芬)振子
- Java Graphics 2D绘制图片 在Liunx上乱码
热门文章
- H3C擦除配置
- dotnet 启动 JIT 多核心编译提升启动性能
- SPOJ - DISUBSTR Distinct Substrings (后缀数组)
- UVA live 6667 三维严格LIS
- C# 发送电子邮件(smtp)
- .bash_profile 文件
- 【学习笔鸡】快速沃尔什变换FWT
- $Luogu4403$ 秦腾与教学评估 二分
- $Poj2956/AcWing116\ The\ Pilots\ Brothers&#39;Refrigerator$ 二进制
- HDFS的HA集群原理分析