• Java第一次作业


    《Java技术》第一次作业

    (一)学习总结

    1.Math.random()返回的只是从0到1之间的小数,如果要50到100,就先放大50倍,即0到50之间,这里还是小数,如果要整数,就强制转换int,然后再加上50即为50~100.
    最终代码:(int)(Math.random()*50) + 50
    Random类产生的随机数,在其最大值范围内,按照概率均匀分布的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同
    最重要的是math.random()使用方便,不需要导入包和创建对象,但是需要转化类型
    2.Scanner sc = new Scanner(System.in);
    new 一个对象,接受从键盘输入的数据,转存给Scanner 类型的变量sc。
    因为数据有很多类型。所以在此转化。用不同类型的变量接受。可以理解为二次转存
    3.java的程序和c非常的类似。写好一个程序最重要的还是思路.其次Java当中的数据类型 大部分跟C都一样,都是相通的。不过JAVA当中有一个String类型的,这个就相当于字符串了,比起C当中要用字符型数组来实现字符串要方便很多.boolean类型的跟C也差不太多,没有太大的区别。在运算符当中,运算符的优先级和符号就本都是一样的,不过逻辑运算符的表示方法有一点儿的区别。区别感觉也不是很大。Java中的运算符优先级为:算术运算符 > 关系运算符 > 逻辑运算符
    4.猜数游戏中,了解并学习了math.random()函数,在java中可以直接调用函数来j产生随机数

    int a=(int)(Math.random()*100);
    

    5.在万年历中,由于考虑到了剩余天数和七天求余相减小于7的情况。自己掌握了math.abs函数。调用此函数可以直接取得其绝对值。

    public static int week(int AllDays){
    	int TheDay=0;
    	if(AllDays%7==0){
    		TheDay=1;
    	}else{
    		if(AllDays%7+1>7){
    			TheDay=Math.abs((AllDays%7+1-7));
    		}else{
    			TheDay=Math.abs((AllDays%7+1));
    		}
    	}
    	return TheDay;
    }
    

    6.在万年历的试验中。运用到了类似的函数调用。每一个函数实现具体的功能。最后在主类中进行实现。通过定义参数来实现函数功能

        AllYearDays=AllYearDays(year);
    	AllMonthDays=AllMonthDays(year,month);
    	AllDays=AllDays(AllYearDays,AllMonthDays);
    	week=week(AllDays);
    	PrintDate(week,year,month);
    

    7.布尔函数的返回值分为true和false两种
    例:

    public static boolean isLeap(int year){
    	if(year%4==0&&year%100!=0||year%400==0){
    		return true;
    	}else{
    		return false;
    	}
    }
    

    最后通过返回值来判断是否为闰年

    (二)实验总结

    1.猜数游戏

    • 程序设计思路:利用math.random()函数调用,生成100以内的随机数。利用循环来实现10次猜数游戏的完成。在循环开始之前建立flag标志位,每循环一次,flag++,最终通过flag来显示猜对所用的次数。
    • 实验问题分析:
      问题1:循环十次后程序还没有终止
      原因:for循环从0开始到10结束,对循环的范围计算错误
      解决方案:将循环开始条件z变成1

    2.猜数游戏扩展

    • 程序设计思路:游戏主体部分和上一题相同。循环次数变为五次。但是由于增加了游戏的可重复操作性,所以游戏的主体应该在一个do循环中,当游戏进行一次后,增加一条if语句。用此改变循环条件,来决定是否继续下一轮游戏。扩展后,游戏涉及到了分数的问题。因为随着猜测错误分数递减20分。所以分数的变动随着循环改变就可以
    • 实验问题分析:
      问题1:每轮游戏剩余次数显示错误
      原因:控制循环变量i先改变再执行,所以显示的剩余次数与真实次数不同
      解决方案:将i--放入到循环之内
      问题2:最终游戏结束后,总分恒为100分
      原因:计算总分的语句放在了do循环之外,不论怎么执行,totalscor额、s的值都为score的初始值100
      解决方案:将totalscores的计算放到了最内层循环(每轮游戏结束之后运算一次)

    3.万年历

    • 程序设计思路:首先判断到查询年份中间的年份有几个闰年,计算查询年月的上一个月距离1900年1月1日的天数,和7求余来判断查询月份的1号是星期几,从而展现出该月的万年历。实现要求内容之后,进行输入判断。使得年份应在1900年后,月份在1月到12月之间。
    • 实验问题分析:
      问题1:计算到1900年1月1日的天数错误
      原因:应计算每一月之前的总天数,设计成了计算该月的天数
      解决方案:利用switch语句来整合天数,减少运算过程,简单明了。
      问题2:查询时,输出的天数少一天
      原因:输出的时候,循环条件少了+1
      解决方案:改变循环条件

    (三)代码托管

    (四)学习进度条

    -------- 代码行数(新增/累积) 学习时间(新增/累积) 本周学习内容
    目标 5000行 300小时
    第2-4周 201/201 10/10 学习了java的基本语法,random函数,自己了解了math函数的几种功能
    第5周
    第6周
  • 相关阅读:
    How To Make Your Software Successful with Software Review Sites?
    8368U编译
    Readiness probe failed: Client.Timeout exceeded while awaiting headers)
    K8S为 Pod 或容器配置安全上下文securityContext,解决Docker容器限制文件句柄数的问题
    kubernetes使用securityContext和sysctl
    golang正则表达式在线匹配检测
    Atitit 软件开发体系法规大全v2.docx Atitit 软件开发体系大全 目录 1. 基本法(类似宪法) 1 2. 行政法 1 3. 流程法民商法 2 3.1. Ui提升法 2 3.2. 功
    Atitit 软件开发基本法 目录 1. 第一章 总纲(包含各大原则 定律 法则) 1 2. 爱提拉的原则 3 2.1. 简单原则 KISS 3 2.2. 提升可读性 面向人类编程 而不是面向机
    Atitit Cookie安全法 目录 1. cookie分为 会话cookie 和 持久cookie , 1 1.1. 安全措施 1 1.2. 3. cookie的同源策略 2 1.3. 安全类库
    Atitit 外观ui调整法 表单与表格列表
  • 原文地址:https://www.cnblogs.com/hc395071675/p/6504609.html
Copyright © 2020-2023  润新知