动手动脑一:枚举

  输出结果:

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. TensorFlow用法

    TensorFlow用法 什么是TensorFlow TensorFlow是一个开源软件库,用于使用数据流图进行数值计算.图中的节点表示数学运算,而图的边缘表示流动的多维数据数组(张量).这种灵活的体 ...

  2. 如何使用Nsight System?

    如何使用Nsight System?

  3. 如何为应用选择最佳的FPGA(上)

    如何为应用选择最佳的FPGA(上) How To Select The Best FPGA For Your Application 在项目规划阶段,为任何一个项目选择一个FPGA部件是最关键的决策之 ...

  4. 端午总结Vue3中computed和watch的使用

    1使用计算属性 computed 实现按钮是否禁用 我们在有些业务场景的时候,需要将按钮禁用. 这个时候,我们需要使用(disabled)属性来实现. disabled的值是true表示禁用.fals ...

  5. 【C++】map容器的用法

    检测map容器是否为空: 1 #include <iostream> 2 #include<map> 3 #include<string> 4 using name ...

  6. TOP-5错误率

    TOP-5错误率是指每幅图像同时用5个类别标签进行预测:如果其中任何一次预测正确,就认为预测正确,如果5次预测的结果都错了,才认为预测错误,这时的分类错误率就是TOP-5错误率.

  7. 「模拟8.23」one递推,约瑟夫

    前置芝士约瑟夫问题 这样大概就是板子问题了 考场的树状数组+二分的60分暴力??? 1 #include<bits/stdc++.h> 2 #define int long long 3 ...

  8. NOIP模拟测试2「排列 (搜索)·APIO划艇」

    排序 内存限制:128 MiB 时间限制:1000 ms 标准输入输出     题目描述 输入格式 数据范围与提示 对于30%的数据,1<=N<=4: 对于全部的数据,1<=N< ...

  9. Spring Boot 2.x基础教程:如何扩展XML格式的请求和响应

    在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理.那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式 ...

  10. Message、Handler、Message Queue、Looper 之间的关系

    单线程模型中Message.Handler.Message Queue.Looper之间的关系 1.Message Message即为消息,可以理解为线程间交流的信息.处理数据后台线程需要更新UI,你 ...