zoukankan      html  css  js  c++  java
  • 《Java技术》第一次作业——Java语言基础

    (一)学习总结
    1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。
    首先创建一个Scanner对象s,构造函数的初始值为System.in,再利用s.nextInt()来接收一个int型数据的值

    public class Input {  
        public static void main(String[] args) {  
            Scanner s = new Scanner(System.in);  
            int x = s.nextlnt();
        }  
    }
    

    2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
    Math.random()返回的只是从0到1之间的小数,如果要50到100,就先放大50倍,即0到50之间,这里还是小数,如果要整数,就强制转换int,然后再加上50即为50~100.
    如 (int)(Math.random()*50) + 50
    Random类产生的随机数,在其最大值范围内,按照概率均匀分布的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。
    如 Random rand = new Random();
    a = rand.nextInt(100)+1;生成1-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,double 进行运算时,经常出现精度丢失的问题,总是在一个正确的结果左右偏0.0000**1。
    修改后

    package ex01;
    import java.math.*;
    	public class Test {
    	    public static void main(String args[]) { 
    	        double a = 0.1;
    	        double b = 0.1;
    	        double c = 0.1;
    	        if(Math.abs(a+b+c-0.3)<1e-6){
    	            System.out.println("等于0.3");
    	        }else {
    	            System.out.println("不等于0.3");
    	        }
    	    }
    	}
    

    (二)实验总结
    实验内容:
    1.看商品猜价格
    程序设计思路:玩家有5次机会猜商品价格,总分100,每猜错一次减20分,机会用完,输出本轮成绩,询问玩家是否进行下一轮,不进行下一轮则输出共玩了几次游戏和总得分,定义sum记录玩家每轮的得分和,while(flag=1),flag=1,进行下一轮游戏,flag=0,退出游戏
    问题1:刚开始用的for循环,但跳出程序较麻烦
    解决方案:改用死循环
    2.万年历
    程序设计思路:创建①判断闰年的方法、②判断某年某月有多少天的方法、③计算某年某月之前距离1900年1月1日的总天数的方法,在②中调用①判断2月多少天,在③中调用①②求出总天数,调用③根据1+totalDays(year,month)算出某年某月1号是星期几,最后按照一定的格式输出。
    问题1:求某年前几个月的天数
    for(n=0;n<month;n++){
    sum+=days(year,n);
    }
    解决方案:n的初值应为1。
    3.评分系统
    程序设计思路:i表示选手号,j表示评委号,将选手的得分存在二维数组里a[i][j]中,将a[i][*]中的最值改为-1,求平均数时遇到-1自动跳过。
    问题1:最后排序输出选手得分情况时未知选手号
    解决方案:新建一维数组跟踪选手号码
    (三)代码托管

  • 相关阅读:
    习题3.2三角形的知识1
    习题3.1三角形的知识2
    复习3.1三角形的知识1
    斜边和直角边公理、角的平分线11
    三角形全等的判定10
    全等三角形9
    你不知道的javascript(中卷)----读书笔记
    jquery----抽奖系统
    jQuery-----五子棋
    个人练手仿站
  • 原文地址:https://www.cnblogs.com/chenqiu/p/8577130.html
Copyright © 2011-2022 走看看