zoukankan      html  css  js  c++  java
  • Java第一次作业

    1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
    import java.util.Scanner; //声明Scanner类
    Scanner (balabala) = new Scanner(System.in); //分配空间
    int i = (balabala).nextInt(); /*
    btye b = (balabala).nextByte(); 实
    short s = (balabala).nextShort(); 际
    long l = (balabala).nextLong(); 输
    double d = (balabala).nextDouble(); 入
    String str = (balabala).next(); */

        2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
    

    Random类:Random类中实现的随机算法是伪随机。在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字。相同随机种子在相同的随机次数中产生的随机数是一样的。
    Math类:返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
    public class RandomNum{
    public static void main(String[] args){
    Random r1 = new Random(100);//第一个Random对象r1,随机种子100
    Random r2 = new Random(100);//第二个Random对象r2,随机种子100
    System.out.println( " r1产生的值:" + r1.nextInt());
    System.out.println( " r2产生的值:" + r2.nextInt());
    System.out.println("Math.random产生的值:"+(int)(Math.random()*100));
    }
    }
    3.运行下列程序,结果是什么?查阅资料,分析为什么。

    public class Test {
    public static void main(String args[]) {
    double a = 0.1;
    double b = 0.1;
    double c = 0.1;
    if((a + b + c) == 0.3){
    System.out.println("等于0.3");
    }else {
    System.out.println("不等于0.3");
    }
    }
    }

    结果为,不等于0.3。
    原因分析:Java的简单类型不能够精确的对浮点数进行运算。 通常需要创建其他方法,来进行精密计算
    源程序修改版
    import java.math.BigDecimal;
    import org.omg.CORBA.PUBLIC_MEMBER;
    public class Test {
    public static void main(String args[]) {
    double a = 0.1;
    double b = 0.1;
    double c = 0.1;
    if(add( a, b, c ) == 0.3){
    System.out.println("等于0.3");
    }else {
    System.out.println("不等于0.3");
    }
    }
    public static double add( double d1, double d2, double d3 ) {
    BigDecimal b1 = new BigDecimal( Double.toString(d1) );
    BigDecimal b2 = new BigDecimal( Double.toString(d2) );
    BigDecimal b3 = new BigDecimal( Double.toString(d3) );
    return b1.add( b2 ).add( b3 ).doubleValue();
    }
    }

    4:
    第一章
    Java由编译(Javac.exe)和解释(Java,exe)两部分组成
    一个Java程序的形成:Java源文件(.Java)通过编译(Javac.exe)形成字节码文件(.class),再将字节码文件(.class)通过解释(Java.exe)生成机器码指令(10101100)再由机器去执行。
    1.2 JDK JRE JVM
    JDK:开发工具包
    JRE:运行环境
    JVM:Java虚拟机
    1.3 Hello Java
    编译源文件时需带上.java的后缀
    解释成字节码文件时无需加任何后缀
    编译解释时需输入主类的名字
    有Public类class保存文件命名时,必须与Public class类名字一样
    无Public类class保存文件命名时,不要求与class类名字一样

                 cd..  返回上一级目录
                 cd  返回磁盘根目录
                 dir   查看当前目录
                  c:  进入c盘
      1.4 classpath和path
                 Classpath:解释时,字节码文件的路径
                 Path:编译时,编译器命令的路径
                                                  第三章
      3.1 C基本数据类型和Java基本数据类型的区别
                大致相同   
                Java中的float赋值时需在末尾加上F或f,而double的D则可以省略
                Java中多出一个boolean类型,只有两种值,ture或false
                Java中每个基本数据类型都有自己的包装类,从而提供一些可以直接调用的静态方法
      3.2 Integer
                 Integer是int的包装类   每个基本数据类型都有自己的包装类。(除int外,其余包装类形式为大写首字母)
                 提供了一些可以直接调用的静态方法。
                 Integer最大的作用在于字符串与整型上的转换,还具有自动拆箱与装箱的功能。
                书中提到的Integer.MAX_VALUE必须大写
                Int Max=Integer.MAX_VALUE   //求int型数据的最大值
       3.3 Unicode编码 字符常量和字符串常量的定界符
               Unicode编码类似于C中的ASII编码;
               字符常量:用‘A’
               字符串常量:用“A”
       3.4 float与double的比较
               与C中大致类似
               但float赋值时需在末尾加上F或f,而double的D则可以省略
               如果在声明float时没有加上f,在编译时会提示可能丢失精度。
       3.5 任何类型的值都向String转型
                                ???
       3.6 a++与++a
                A++:先将a值用于计算,再将a自增
                ++a:先将a值自增,再将a值用于计算
       3.7  &&与 &   ||与 |
                1:在判断过程中,第一个条件值为false,且为&&则停止判断, 
                2:在判断过程中,第一个条件值为true时,且为||则停止判断, 
       3.8
                  C语言中没有boolean 需要自己定义。0为假 非0为真
                  Java中,boolean值只有两种,true或false
        3.9
                   三目运算符    ?:
                   问号左边的判断语句成立成立,则选择冒号左边的值,反之,则选择右边的
       4.0 位运算
                    &(按位与):相同位上数字都是1,则结果为1,否则结果为0;
                    ||(按位或): 相同位上数字存在1,则结果为1,否则结果为0;
                    ^(按位异或):相同位上数字不同,则结果为1,否则结果为0。
                    异或逆运算为异或。
       4.1
                     If  else if, 下一个else if紧接在上一个else if的 } 后面
                     即:  if() {
                     } else if {
                      	  ………
                     } else {
                     }
                    Switch 语句
                    Switch() {
    
                         Case 语句1: balabala; break;
                         Case 语句2: balabala; break;
                          ……..
                         Defualt : balabalabala;
                     }
    
                    While 与 Do …While 语句没有大变化
    
    
    
         4.2 数组(名为数组,实为指针)
                    声明数组
                             类型 [ ] 数组名;           int [ ] a;  也可以像C那样声明 int a[ ];
                             [ ]中不能加数字;   可以在声明时赋为null。
                    创建数组
                              数组名 = new 类型 [数组长度];
                              数组名 = new 类型 [ ] { 数组要存储的数值,用逗号隔开 }
                              举个栗子:
                               int[ ] i=new int[5];
                               int[ ] i=new int[]{0,1};
                               int[ ] i={0,1};   
    
                     数组的单元(元素)
                            A[0]~~~A[数值-1]
                     数组长度
                            一维数组    数组名.length        System.out.println(数组名.length);
                            二维数组	数组名.length			实际长度为该二维数组中一维数组的个数
                            二维数组的本质就是行数个长为列数的一维数组
                     数组的初始化
                                类型  [ ] 数组名 = { , , , };
                                一维数组: int  [ ] A = { 1,2,3,4,5}
                                二维数组: int  [ ]  [ ] S = { { 1,2,3},{ 2354,55,,36,6,}  }
                     数组的引用
                            数组变量本身存放的值称作数组的引用
                            数组使用下标运算访问自己的单元
                            两个类型相同的数组,一旦二者具有相同的引用,那么二者具有一样的单元。
    

    实验总结:
    1:随机价格
    让对象输入要猜的价格。让输入的价格与真实价格进行比较,对比较结果进行记录,若猜对,则为flag = 1,并输出用户得分. 否则为0;并让用户选择是否进行下一步。若达到上限仍未猜对,则终止用户输入权限,直接输出商品价格。
    问题:用户第五次猜对退出程序和达到上限猜错被迫退出程序,如何进行分辨?
    解决: FLAG =1 的标志符
    2:万年历
    以前用C写过,没什么大问题。在方法的定义上与老师要求有出入。
    先判断平闰年 由此,程序进入平闰年分支
    再判断从1900年打到该月份前有多少天。 此处定义两个方法,平闰年分开判断,下个步骤同理
    接着判断该月份有多少天。
    判断该月份第一天是周几。
    剩下的就是慢慢调整输出格式
    3:选手成绩
    问题:选手成绩的存储,选手平均成绩的存储
    解决:评委对选手成绩用二维数组存储, 平均成绩则另行定义一个一维数组
    Arrays类。 第一个用到的Java类,


  • 相关阅读:
    用PHP写一个代理来解决跨域问题
    curl
    centOS 安装及部署 SVN
    vue.js 安装
    谷歌开发者 代码调试同步本地文件功能
    Liunx 下的 SNMP 及 PHP如何连接
    2017年5月11日 开放大学 理财考试记
    js window.onlload 自遐想
    纯页面跳转问题
    mysql 字列问题
  • 原文地址:https://www.cnblogs.com/yanchao980817/p/8597695.html
Copyright © 2011-2022 走看看