动手动脑一:枚举

  输出结果:

false

false

true

SMALL

MEDIUM

LARGE

分析和总结用法

枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本类。枚举目的就是要让某个变量的取值只能为若干固定值中的一个。

1、Size s=Size.SMALL;

对s变量进行赋值,只能给已经定义好的常量(即SMALL,MEDIUM,LARGE中的其中一个)。

2、System.out.println(s==t);

判断s是否与t相同。

3、System.out.println(s.getClass().isPrimitive());

调用enum中的方法。

4、Size u=Size.valueOf("SMALL");

对u进行赋值,与1相似,使用不同的赋值语句。

5、System.out.println(s==u); 

判断s是否与u相同。

6、for(Size value:Size.values())

{

System.out.println(value);

}

对枚举进行遍历,并且找最大的。

动手动脑二:原码,补码,反码

计算机内,定点数有3种表示法:原码、反码和补码。反码是数值存储的一种,但是由于补码更能有效表现数字在计算机中的形式,所以多数计算机一般都不采用反码表示数。

       原码:二进制的定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

       反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。

       补码:正数的补码与其原码相同,负数的补码是在其反码末位加1;

       Java是采用补码表示的。

动手动脑三:同名屏蔽

public class test1 {
private static int value=1;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    int value=2;
    System.out.println(value);
    }
}

结论:实际数的值以主函数中的变量值为主,屏蔽掉同类中主函数外的值。

实验一:二柱子四则运算

源代码:

package java课堂;

import java.util.*;

public class shiyan1 {

    public static int ran1()
    {
        int n;
        n=1+(int)(Math.random()*10);
        return n;
    }//随机生成1-9
    
    public static int ran2()
    {
        int n;
        n=1+(int)(Math.random()*50);
        return n;
    }//随机生成1-50
    public static int ran3(int m)
    {
        int n;
        n=1+(int)(Math.random()*m);
        return n;
    }//随机生成1-81
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
int i;
int a;
int b;
char s1;
char []s= {'+','-','*','/'};
Random rd = new Random();
for(i=1;i<=30;i++)
{
    s1=s[rd.nextInt(4)];//随机生成加减乘除符号
    if(s1=='+')
     {
       a=ran2();
       b=ran2();
       System.out.println(i+": "+a+""+s1+""+b+"= ?");
     }//三个数的加法
    else if(s1=='-')
    {
        a=ran2();
           b=ran2();
           boolean flag=true;
           while(flag)
           {
               a=ran2();
               b=ran2();
               if(a>b)
                   flag=false;
           }//防止得数出现负数
        System.out.println(i+": "+a+""+s1+""+b+"= ?");
    }
    else if(s1=='*')
    {
        a=ran1();
        b=ran1();
        System.out.println(i+": "+a+""+s1+""+b+"= ?");
    }//九九乘法
    else
    {
        b=ran1();
        a=ran3(9*b);
        boolean flag=true;
          while(flag)
             {
              b=ran1();
            a=ran3(9*b);
               if((a%b)==0&&(a>b))
               flag=false;
              }//如果除法合法,跳出循环
          System.out.println(i+": "+a+""+s1+""+b+"= ?");
    }
}//出三十道题

    }

}

测试截图:

这个程序最主要的地方就是随机生成加减乘除,以及具体到除法运算中的是否可行问题。

实验二:随机生成验证码

package java课堂;

import java.util.*;
import java.awt.*;
import javax.swing.*;

public class shiyan2 {
public static char ran()
{
    char []s= {'0','1','2','3','4','5','6','7','8','9','o','p','r','m','n','s','q'};
    char s1;
    Random rd = new Random();
    s1=s[rd.nextInt(17)];
    return s1;
}
    public static void main(String[] args) {
        // TODO Auto-generated method stub\
        boolean flag=true;
        Scanner scan=new Scanner(System.in);
        int i;
char []a=new char[4];
char []b=new char[4];
System.out.println("验证码如下:");
for(i=0;i<4;i++)
{
    a[i]=ran();
    System.out.println(a[i]);
}
System.out.println("\n");
System.out.println("请输入验证码 : ");
for(i=0;i<4;i++)
{
    String s=scan.next();
    b[i]=s.charAt(0);
    if(b[i]!=a[i])
        flag=false;
}
if(flag)
{
    System.out.println("验证码正确");
}
else
    System.out.println("验证码错误");

    }

}

测试截图

这个实验主要是让我们熟悉随机生成数字和字符的组合,但是我并没有按照要求实现图形化界面很遗憾,以后一定在这方面下功夫去学习,争取尽快做出来界面化的让人看起来很舒服的程序。

 

java课堂动手动脑及课后实验总结的更多相关文章

  1. 2019-9-16 java上课知识整理总结(动手动脑,课后实验)

    java上课知识整理总结(动手动脑,课后实验) 一,课堂测试 1,题目:课堂测试:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求:(1)题目避免重复: (2)可定制( ...

  2. java动手动脑和课后实验型问题String类型

    1.请运行以下示例代码StringPool.java,查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? true true false 总结: 使用new关键字创建字符串对象时, 每次申请 ...

  3. java动手动脑和课后实验型问题第四讲

    1.完全"手写代码实现"随机数生成 动手动脑: 编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数. Modulus=231-1=int.MaxValue Mult ...

  4. java动手动脑和课后实验型问题

    1.以下代码的输出结果是什么?为什么会有这个结果? int[] a = { 5, 7, 20 }; System.out.println("a数组中的元素:"); // 循环输出a ...

  5. JAVA课堂动手动脑实验--方法的重载定义,组合数的递归算法

    1. 请看以下代码,你发现了有什么特殊之处吗? 答:此程序中的两个方法虽然方法名一样,但是参数的数据类型不同: 这是方法的重载,方法的重载需要满足的条件: 1)方法名相同: 2)参数类型不同,参数个数 ...

  6. 动手动脑(&课后实验):类和对象

    1. 以下代码为何无法通过编译?哪儿出错了? 如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法.而此时程序中已提供了一个有一个参数的构造函数,而定义对象时却没有参数,所以程序会报错. ...

  7. java课堂动手动脑总结

    java有8种基本数据类型:byte,int,short,long,boolean,char,float,double. 对应的为:Byte,Int,Short,Long,Boolean,Charec ...

  8. 动手动脑(&课后实验):生成随机数,函数的重载

    一.编写一个方法,使用纯随机数生成算法生成指定数目(比如1000个)的随机整数. 1.程序源代码 import java.util.Scanner; import java.util.Random; ...

  9. Java课堂 动手动脑6

    一.下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d;d=m;d=(Dog)m;d=c;c=(Cat)m; 先进行自我判断, 1.代码: class Mammal{} c ...

随机推荐

  1. js中reduce用法详解

    介绍reduce reduce() 方法接收一个函数作为累加器,reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(上一次回调的返回值),当 ...

  2. ResNet网络的训练和预测

    ResNet网络的训练和预测 简介 Introduction 图像分类与CNN 图像分类 是指将图像信息中所反映的不同特征,把不同类别的目标区分开来的图像处理方法,是计算机视觉中其他任务,比如目标检测 ...

  3. GPU编程和流式多处理器(六)

    GPU编程和流式多处理器(六) 5. 纹理和表面 读取和写入纹理和表面的指令,所引用的隐式状态,比其他指令要多得多.header中包含诸如基地址,尺寸,格式和纹理内容的解释之类的参数,该header是 ...

  4. 用NVIDIA A100 GPUs提高计算机视觉

    用NVIDIA A100 GPUs提高计算机视觉 Improving Computer Vision with NVIDIA A100 GPUs 在2020年英伟达GPU技术会议的主题演讲中,英伟达创 ...

  5. 【NX二次开发】Block UI 从列表选择部件

    属性说明 属性   类型   描述   常规           BlockID    String    控件ID    Enable    Logical    是否可操作    Group    ...

  6. linux安装配置交叉编译器arm-linux-gnueabi-gcc

    要使我们在x86架构下运行的程序迁移至ARM架构的开发板中运行时,需要通过交叉编译器将x86下编写的程序进行编译后,开发版才能运行. 在安装之前我们需要了解,什么是交叉编译器. 一.下载交叉编译器 这 ...

  7. VsCode中添加tasks.json

    选中项目文件夹,按ctrl+shift+p,输入tasks 选择之后,继续选择 然后选择 选中就可以了

  8. Linux基本命令精讲

    一.Shell Linux系统中运行的一种特殊程序 在用户和内核之间充当"翻译官 用户登录 Linux系统时,自动加载一个 Shell程序 Bash是 LinuxShell系统中默认使用的程 ...

  9. js笔记16

    动画 (1)css样式提供了运动  过渡的属性transition 从一种情况到另一种情况叫过渡 transition:attr   time   linear   delay attr 是变化的属性 ...

  10. excel VBA根据单元格内的逗号把内容拆分行

    Sub test1()    Dim h    Dim j As Integer    j = 0  '用于辅助循环的进行,可以在拆分行获取下一个需要拆分单元格的行号    'Application. ...