《Java技术》第一次作业
(一)学习总结
1.Scanner类
•Scanner类放在java.util包中,表示此类是根据接收InputStream类型的构造方法,扫描输入文本的新的实用程序,可以针对任何要处理的文本内容编写自定义的语法分析器。在程序开头输入“import java.util.Scanner;”表示导入键盘输入功能。
•例如读取一个整型数据:
Scanner input = new Scanner(System.in);
int num = input.nextInt();
•可以读取其他类型的数据:
double nextDouble() double类型
float nextFloat() float类型
int nextInt() int类型
long nextLong() long类型
String nextLine() 输入的信息为读取行
String next() 输入的信息为字符串
例如:
import java.util.Scanner;
public class ww {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入整数: ");
int num=input.nextInt();
System.out.println(num);
}
}
2.Random类与Math类中的Random()方法
•java.lang包中的Math类的Random()方法就是调用Random类的nextDouble()方法。
•java.util包中的Random类是一个随机数产生类,是产生伪随机数的,可以指定随机数范围。然后任意产生在此范围中的数字。
•Random类可以产生以下类型数据:
public boolean nextBoolean(); 布尔类型的值
public double nextdouble(); double值
public float nextFloat(); float值
public int nextInt(); int值
public long nextLong(); long值
•实例:
import java.util.Random;
public class ww{
public static void main(String[] args){
Random Rand = new Random();
int num = Rand.nextInt(10);
System.out.println("Random的值为:" + num);
System.out.println("Math中的值:" + (Math.random()));
}
}
3. 总结
准备作业的这几天,一直都在图书馆泡着,看了许多关于java的书,发现之前学的c和数据结构与java有一定的区别,就说子函数吧,可以在main里面写,也可以在main外面写(必须要在类体内)。新认识了一种数据类型,boolean类型,有两种值,一个是true,一个是false。我发现很多新多东西,也产生了浓厚的兴趣,完成作业的我很兴奋,这几天努力的成果很显著。我会继续加油,靠自己的力量去完成每一个作业。
(二)实验总结
1.猜数游戏
-
程序设计思路:通过三个for循环来实现猜价格的对错和猜测次数还有是否进行下一轮,通过if语句来判断是否答对。
-
实验问题分析:
问题1:无法用循环来进行下一轮游戏
原因:没有添加循环条件使其继续循环
解决方案:添加了一个for(;;)利用equals来比较字符串,如果是no就return。
问题2:只有前三次的分数是对的,最后两次的分数都为20了。
原因:计算分数的表达式不对
解决方案:用for循环里面的i来进行计算。if(answer>price){ System.out.println("很遗憾,猜错了!亲,猜大了!"+"还有"+(4-i)+"次机会"); answer=shuru(x); } else if(answer<price){ System.out.println("很遗憾,猜错了!亲,猜小了!"+"还有"+(4-i)+"次机会"); answer=shuru(x); } else if(answer==price){ gread=100-(i*20); System.out.println("0.0 好厉害,猜对啦!"+"得分为"+gread+"分哦!"); break; } }
-
万年历
•程序设计思路:按照以下函数的顺序先构造函数:private static boolean isLeap(int year) private static int days(int year, int month) private static int totalDays(int year, int month) 我将输出万年历表的程序直接写在main里面了。
•问题1:
排版输出几号的时候总是差两天。
•原因:
判断闰年的时候直接用的year,只判断了输入年是否为闰年
•解决方案
将year改为i
for(i=1900;i<year;i++){
if(isLeap(i)){
w=366+w;
}
else{
w=365+w;
}
}
•问题2:
输出格式不对
•原因:
println中ln没删除
•解决方案
System.out.println("日\t一\t二\t三\t四\t五\t六\t");
for(int i=1;i<=g;i++){
System.out.print(" \t");
}
for(int e=1;e<=h;e++){
g++;
System.out.print(e+"\t");
if(g%7==0){
System.out.print("\n");
}
}
(三)[代码托管] https://git.oschina.net/hebau_cs15/cs01wmx.git
-
码云commit历史截图
![]()
(四)学习进度条
| 代码行数(新增/累积) | 学习时间(新增/累积) | 本周学习内容 | |
|---|---|---|---|
| 目标 | 8000行 | 4000小时 | |
| 第2-4周 | 400/400 | 40/40 | 学习了自己写的代码中的知识点,看了一些课外的程序 |
| 第5周 | |||
| 第6周 |

浙公网安备 33010602011771号