.任务四:

程序设计思想:利用Math.random()产生一个char类型的字符,再利用for循环是他们相加,最后将他们放在一个消息框中输出。

 

程序流程图:

 

源程序:           package test1;

import java.awt.Color;

import java.awt.Container;

import java.awt.Dimension;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

//产生一位的字符

public class Test26 extends JFrame

{

public static char Getrandomchar(char a1,char a2)

{

return (char)(a1+Math.random()*(a2-a1+1));

}

//产生6位的验证码;

public static String test()

{

String s="";

char a;

for(int i=0;i<6;i++)

{

a=Getrandomchar('a','z');

s=s+a;

}

return s;

}

public static void main(String[] args) {

//创建登录界面

final String userName = "abc";

final String passwrod = "123";

JFrame jFrame = new JFrame("登陆界面");

Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();

jFrame.setBounds(((int)dimension.getWidth() - 200) / 2, ((int)dimension.getHeight() - 300) / 2, 400, 200);

jFrame.setResizable(true);

jFrame.setLayout(null);

//jFrame.setForeground(Color.blue);//是背景颜色变为蓝色;

jFrame.getContentPane().setBackground(Color.blue);

//jFrame.getContentPane().setVisible(false);

jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//添加标签,内容为“姓名”

JLabel label1 = new JLabel("姓名");

label1.setBounds(10, 10, 100, 30);

jFrame.add(label1);

//添加标签,内容为“密码”

JLabel label2 = new JLabel("密码");

label2.setBounds(10, 40, 100, 30);

jFrame.add(label2);

//添加标签,内容为“验证码”;

JLabel label3 = new JLabel("验证码:");

label3.setBounds(10, 70, 100, 30);

//label3.setForeground(Color.red);

jFrame.add(label3);

//添加标签,并调用产生验证码的函数,并将其作为标签的内容

JLabel label4 = new JLabel(test());

String s;

s=label4.getText();

label4.setBounds(70, 75, 130, 20);

label4.setForeground(Color.red);

jFrame.add(label4);

//输入用户名;

final JTextField text1 = new JTextField();

text1.setBounds(50, 15, 130, 20);

jFrame.add(text1);

//输入密码;

final JPasswordField text2 = new JPasswordField();

text2.setBounds(50, 45, 130, 20);

jFrame.add(text2);

//输入验证码;

final JTextField text3 = new JTextField();

text3.setBounds(150, 75, 130, 20);

jFrame.add(text3);

JButton button1 = new JButton("取消");

button1.setBounds(160, 105, 150, 30);

button1.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

jFrame.dispose();//关闭程序;

}

});

jFrame.add(button1);

JButton button2 = new JButton("看不清,换一张");

button2.setBounds(300, 75, 150, 20);

button2.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

text3.setText("");

label4.setText(s);

}

});

jFrame.add(button2);

//检验是否登陆成功;

JButton button = new JButton("登录");

button.setBounds(10, 105, 150, 30);

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

if(userName.equals(text1.getText()) && passwrod.equals(text2.getText())&&s.equals(text3.getText())) {

JOptionPane.showMessageDialog(null, "登陆成功", "提示", JOptionPane.INFORMATION_MESSAGE);

} else {

JOptionPane.showMessageDialog(null, "错误", "提示", JOptionPane.ERROR_MESSAGE);

text1.setText("");

text2.setText("");

text3.setText("");

label4.setText(test());

}

}

});

jFrame.add(button);

jFrame.setVisible(true);

}

}

程序结果截图:

总结分析:1.在登录时,无法判断验证码是否正确。

          解决方案:直接将产生验证码的程序定义为一个函数,也方便后边的调用。

          2.鼠标单击“取消”是无法关闭程序

          解决方案:在取消的按钮上加了一个动作监听器,如果单击“取消”,便会关闭程序。

任务五:

程序设计思想:利用Math.Random产生一个随机数(1-100),用户在从键盘输入猜的数,再利用while循环,判断是否猜的正确并给出提示信息,每次的输出结果都放在一个消息框中,直到用户猜出正确答案。

 

程序流程图:

 

程序源代码:

             import java.util.Random;

import javax.swing.JOptionPane;

public class Guess {

public static void main(String[] args)

{

String q="猜大了!";

String w="猜小了";

String e="恭喜你,答对了!";

String b;

int z;

int a=new Random().nextInt(100) +1;//产生1-100的随机数;

b=JOptionPane.showInputDialog(null,"输入自己猜的数:",a);//用户输入自己猜的数字;

z = Integer.parseInt(b);//将b转化为int类型;

while(z!=a)//判断输入的数是否与产生的数相同;

{

if(z>a)

{

JOptionPane.showMessageDialog(null,q);

b=JOptionPane.showInputDialog(null,"输入自己猜的数:");//用户输入自己猜的数字;

z = Integer.parseInt(b);//将b转化为int类型;

}

else

{

JOptionPane.showMessageDialog(null,w);

b=JOptionPane.showInputDialog(null,"输入自己猜的数:");//用户输入自己猜的数字;

z = Integer.parseInt(b);//将b转化为int类型;

}

}

JOptionPane.showMessageDialog(null,e);

}

}

程序截图验证:

 

Tutorial 01 4,5题的更多相关文章

  1. [Usaco2008 Dec]Hay For Sale 购买干草[01背包水题]

    Description     约翰遭受了重大的损失:蟑螂吃掉了他所有的干草,留下一群饥饿的牛.他乘着容量为C(1≤C≤50000)个单位的马车,去顿因家买一些干草.  顿因有H(1≤H≤5000)包 ...

  2. hihoCoder #1038 : 01背包(板子题)

    #1038 : 01背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说上一周的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励 ...

  3. POJ 3624 Charm Bracelet(01背包裸题)

    Charm Bracelet Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 38909   Accepted: 16862 ...

  4. HDU 2602 Bone Collector(01背包裸题)

    Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) T ...

  5. HDU 2602 - Bone Collector - [01背包模板题]

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2602 Many years ago , in Teddy’s hometown there was a ...

  6. hdu 2955 Robberies (01背包好题)

    Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  7. Jam's balance HDU - 5616 (01背包基础题)

    Jim has a balance and N weights. (1≤N≤20) The balance can only tell whether things on different side ...

  8. HDU 2546 饭卡(01背包裸题)

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  9. P1048 采药(洛谷,动态规划递推,01背包原题)

    题目直接放链接 P1048 采药 这题只是01背包+背景故事而已 原题来的 PS:我写了一篇很详细的01背包说明,如果下面ac代码有看不懂的地方可以去看看 对01背包的分析与理解(图文) 下面上ac代 ...

随机推荐

  1. 117. Populating Next Right Pointers in Each Node II 计算右边的附属节点

    [抄题]: Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNod ...

  2. shiro 实现 网站登录记住我功能 学习记录(四)

    在很多网站都有在登录的时候,比如说记住我 几天之内  只要再此打开这个网站,都不需要再登录的情况: 1.前台JSP增加 单选框:记住我 如 2.在处理登录的 Controller 代码中增加接收这个参 ...

  3. 返回JSON到前台的对象属性设置

    1.项目中使用JSON的第三方架包:jackson-annotations-2.8.0.jar 2.可以将对象的属性返回进行相应的处理 比如格式化时间.密码敏感等属性 如:User.java pack ...

  4. Qt自定义插件编程小结

    qt自定义组件开发步骤演示.以下所有步骤的前提是自己先编译Qtcreator源码,最好生成release版的QtCreator,否则自定义的插件嵌入QtCreator会失败!!!(这个网上教程很多) ...

  5. class Qstring has no member named to Ascii

    人家修改了.真的没有toAscii了.不过可以用toLatin1或者qPrintable()

  6. Mockplus设计大赛获奖选手专访 | Intimate:你的专属密友音乐播放器

    “Intimate中文意思是密友,就是想让这个音乐APP成为最懂用户的一款软件.” 如果,你随身听的音乐APP,可以成为知你懂你的密友,你幸福,她清唱一首<小幸运>:你悲伤,她低声浅吟&l ...

  7. 删除emacs临时文件

    emacs编辑文件后产生的带小尾巴(~)的文件,你有没有强迫症,要删之而后快rm -rf *~ 你有没有不小心敲成了rm -rf ~,然后爽快的按下了回车,然后欲哭无泪,哈哈- 其实,可以设置在ema ...

  8. 19、Semantic-UI之图片的动画效果

      在Semantic-UI中定义了很多图片动画效果,可以直接使用. 示例:定义图片动画 <!DOCTYPE html> <html lang="en"> ...

  9. CentOS 7.2安装zabbix 3.0 LTS

    1.zabbix简介 zabbix(音同 zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供 ...

  10. GetFileVersionInfoSize函数确定操作系统是否可以检索指定文件的版本信息

    GetFileVersionInfoSize函数 -------------------------------------------------- ------------------------ ...