达内实训―第一天小练习 Java

练习一:倒计时程序(通过线程完成)

package day01;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Demo2 extends Thread implements ActionListener {
JLabel  jl = new JLabel("开始考试...");
public Demo2(){
JFrame jf = new JFrame("Demo2");
jf.setLayout(new FlowLayout());//设置窗口的布局
jf.setSize(300,200);//设置窗口大小
jf.setVisible(true);//设置窗口为可显示的
jf.setResizable(false);//设置窗口不能调整大小
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗口退出及关闭程序
jf.add(jl);
JButton jb = new JButton("开始");
jf.add(jb);
jb.addActionListener(this);
}
public static void main(String[] args) {
Demo2 test = new Demo2();
}
@Override
public void run() {
super.run();
int h=0,m=0,s=0;
for(int i=5000;i>=0;i--){
h=i/3600;
m=i%3600/60;
s=i%60;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
jl.setText(h+"小时"+m+"分钟"+s+"秒");
}
}
public void actionPerformed(ActionEvent e) {
this.start(); // 启动本类中的线程
}
}

练习二:九九乘法表

package day01;
/**
* 9*9乘法表
* @author lvxia
*
*/
public class Demo3 {
public static void main(String[] args) {
System.out.println("九九乘法表:");
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"*"+j+"="+(i*j)+" ");
}
System.out.println();
}
}
}

练习三:打印古诗“枫桥夜泊”

package day01;
/**
* 月落乌啼霜满天 江枫渔火对愁眠 姑苏城外寒山寺 夜半钟声到客船
*
* 将枫桥夜泊这首诗存放到二维数组中 打印这首诗 1)正常打印 2)古文打印
*
* @author lvxia
*
*/
public class Demo4 {
public static void main(String[] args) {
char[][] test4 ={{'月','落','乌','啼','霜','满','天',','},
{'江','枫','渔','火','对','愁','眠','.'},
{'姑','苏','城','外','寒','山','寺',','},
{'夜','半','钟','声','到','客','船','.'}} ;
//建立一个String类型的亦可只不过需要用双引号,不过Java中的char类型也是占有2个字节
System.out.println("正常打印");
for(int i=0;i<test4.length;i++){
for(int j=0;j<test4[i].length;j++){
System.out.print(test4[i][j]);
}
System.out.println();
}
System.out.println();
System.out.println("古文打印");
for(int i=0;i<=6;i++){
for(int j=3;j>=0;j--){
System.out.print(test4[j][i]);
}
System.out.println();
}
}
}

练习三:猜数字游戏

生成随机数的知识补充:

1>生成随机数
            Random random = new Random();
            Random random = new Random(100);//指定种子数100
            random调用不同的方法,获得随机数。
            如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那它们返回值完全相同。如下面代码中两个Random对象的输出完全相同

import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random1 = new Random(100);
System.out.println(random1.nextInt());
System.out.println(random1.nextFloat());
System.out.println(random1.nextBoolean());
Random random2 = new Random(100);
System.out.println(random2.nextInt());
System.out.println(random2.nextFloat());
System.out.println(random2.nextBoolean());
}
}

         2>指定范围内的随机数
              随机数控制在某个范围内,使用模数运算符%

import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random = new Random();
for(int i = 0; i < 10;i++) {
System.out.println(Math.abs(random.nextInt())%10);
}
}
}

              获得的随机数有正有负的,用Math.abs使获取数据范围为非负数

        3>获取指定范围内的不重复随机数

import java.util.*;
class TestRandom {
public static void main(String[] args) {
int[] intRet = new int[6];
int intRd = 0; //存放随机数
int count = 0; //记录生成的随机数个数
int flag = 0; //是否已经生成过标志
while(count<6){
Random rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%32+1;
for(int i=0;i<count;i++){
if(intRet[i]==intRd){
flag = 1;
break;
}else{
flag = 0;
}
}
if(flag==0){
intRet[count] = intRd;
count++;
}
}
for(int t=0;t<6;t++){
System.out.println(t+"->"+intRet[t]);
}
}
}

猜数字游戏如下:

package day01;
import java.util.Random;
import java.util.Scanner;
/**
* 猜数字游戏 随机生成一个100以内的随机数 在控制台上输入你猜测的数字 提示大、小、正确;跳出循环
* 只能猜测10次,当第10次的时候,提示太笨了,下次再来吧
*
* @author lvxia
*
*/
public class Demo5 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int value = (int)(Math.random()*100);
//仅仅调用random的方法生成的是大于等于0小于1的随机数,乘以100之后生成的是大于等于1小于100的随机数,再强制类型转换为Int
//另一种生成随机数方法
//Random  random = new Random();
//int a = random.nextInt(100); //>=0  <100 java中区间都为前闭后开
//System.out.println("随机生成数为:"+value);
boolean  flag=false;
System.out.println("测试开始");
for(int i=0;i<10;i++){
if (!flag) {
System.out.print("请您输入您所猜测的数值(1-100):");
int cc = in.nextInt();
if(cc==value){
System.out.println("正确哈!");
flag=true;
}
else if(cc>value){
System.out.println("您猜大了");
}else if(cc<value){
System.out.println("您猜小了");
}
}else break;
//if else if 语句 是一个条件判断语句 如果前面if执行了 后面的else if不用执行
//for循环中先做循环体内的代码,再判断控制语句和i++操作
}
if(flag=false){
System.out.println("唉...太笨了,下次再来吧!");
}
}
}

 

你可能感兴趣的:(倒计时,猜数字,打印古诗)