动手动脑一:枚举

  输出结果:

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. LR: GLU-Net: Global-Local Universal Network for Dense Flow and Correspondences

    Abstract 在图像中简历稠密匹配是很重要的任务, 包括 几何匹配,光流,语义匹配. 但是这些应用有很大的挑战: 大的平移, 像素精度, 外观变化: 当前是用特定的网络架构来解决一个单一问题. 我 ...

  2. NVIDIA TensorRT:可编程推理加速器

    NVIDIA TensorRT:可编程推理加速器 一.概述 NVIDIA TensorRT是一个用于高性能深度学习推理的SDK.它包括一个深度学习推理优化器和运行时间,为深度学习推理应用程序提供低延迟 ...

  3. 如何使用Nsight System?

    如何使用Nsight System?

  4. MLPerf结果证实至强® 可有效助力深度学习训练

    MLPerf结果证实至强 可有效助力深度学习训练 核心与视觉计算事业部副总裁Wei Li通过博客回顾了英特尔这几年为提升深度学习性能所做的努力. 目前根据英特尔 至强 可扩展处理器的MLPerf结果显 ...

  5. Centos7拓展磁盘(逻辑增加)

    目录 第一步 第二步 第三步 以107.4G的Centos操作系统拓展20G磁盘空间,并将此20G磁盘空间分别分配给/home为例. 第一步 首先查看操作系统分区状况和磁盘占用情况.发现磁盘sda空间 ...

  6. spring赌上未来的一击:WebFlux性能实测

    最近花了一点时间系统的测试验证了在SpringBoot框架下使用SpringMVC和Spring WebFlux两种框架开发接口,对比了响应时间以及压测吞吐量的区别. WebFlux&Spri ...

  7. Java程序安装失败

      检查文件路径,应该不含中文汉字,空格以及特殊字符.应将jdk的安装目录设置为纯英文路径. 是否有多个安装程序同时运行,若多点安装程序则会安装失败,打开任务管理器,查看是否有多个安装程序运行 注册表 ...

  8. Spring Boot下的一种导入Excel文件的代码框架

    1.前言 ​ Spring Boot下如果只是导入一个简单的Excel文件,是容易的.网上类似的文章不少,有的针对具体的实体类,代码可重用性不高:有的利用反射机制或自定义注解,开发了Excel导入工具 ...

  9. Lin语法(Linq对数据库操作)

    一.Linq语句的应用: var queryAllCustomers = from cust in customers   group cust by cust.City into custGroup ...

  10. 基于 electron 实现简单易用的抓包、mock 工具

    背景 经常我们要去看一些页面所发出的请求时,经常会用到 Charles 做为抓包工具来进行接口抓取,但一方面市面是很多抓包工具都是收费或者无法二次开发的.当前我们团队大多数用的也都是 Charles, ...