java作业
(一)学习总结
1.Scanner类实现基本数据输入的方法
import java.util.Scanner;
public class Test1 extends Test {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
System.out.println("常用输入----int整形输入");
int a=s.nextInt();
System.out.println("常用输入----boolean布尔型输入");
boolean b=s.nextBoolean();
System.out.println(b);
System.out.println("常用输入----short(两个字节,int 占用4个字节)输入");
int c=s.nextShort();
System.out.println("常用输入----字符串输入");
String d=s.nextLine();
System.out.println(""+s.nextLine());
}
}
1.1输入的方法有nextint
,也有hasint
、hasnextint
其区别在与包括has中扫描器扫描到有效的相应的数据类型后返回TRUE
。
1.2主要的基本数据输入的方法有:int
,float
,double
,short
,long
类型,其基本输入格式和int
整形输入一样,至于要把int
改成相应的数据类型。
1.3在使用输入函数之前需要把scanner包导入到源程序中才能使用,并且在使用的过程中必须进行声明才可调用。其基本格式为:
import java.util.Scanner;
Scanner 名称=new Scanner(System.in);
int 变量=名称.nextInt();
需要注意的是变量前的数据类型必须和输入中的格式相同。
1.4特殊的输入
boolean
类型的输入需要先进行定义布尔类型的变量;字符串的输入需要用string
定义一个变量然后再再输出中进行调用即可使用。
2.Random类和Math类的random()方法区别和特点
2.1Random类的方法
import java.util.Random;
public class Test1 extends Test {
public static void main(String[] args) {
Random rand=new Random();
int a=rand.nextInt(100);
System.out.println(a);
float b=rand.nextFloat();
System.out.println(b);
int c=rand.nextInt(10);
System.out.println(c);
}
}
nextFloat()
返回一个在 0.0 和 1.0 之间均匀分布的 float 值。
nextInt()
返回一个随机int值。
nextInt(int n)
返回一个0(包括)和n(不包括)之间的均匀分布的int值。
2.2math类的方法
public static final double PI :圆周率
public static final double E :自然对数的底数
public static int abs(int x):绝对值
public static int max(int a,int b):最大值
public static double random():随机数,大于等于 0.0 且小于 1.0 的随机 double 值(0.0,1.0)
特点:math方法中注重数学中的公式类计算例如最大值最小值的产生,而random中比较在于生成的随机数字都是均匀分布的,区间内部的数生成的概率是均等的。math类则比较概率比较平均。
3.总结内容
3.1 java书写格式的变化
java中的书写格式和c语言发生变化,括号的括法;
语法的变化,在比较字符串中if后不能直接比较,需要通过进行字符串比较是否相等返回布尔类型来判断。
java中没有了头文件,取而代之的是公共类的定义。
输入格式也发生了变化必须调用scanner的包才可以使用。
数据类型也增加了布尔boolean类型。while()中的循环条件也不能用1来判断永真,而是先定义一个布尔类型的变量,然后再使用。
输出的变化:需要格式化输出而且输出的方式不一样,可以printfln进行换行,但也可以延用c的换行。
字符串定义的改变,用+来连接变量等。
(二)实验总结
1.猜数游戏
程序设计思路:先写出最基本要求:
提示用户输入一个数,同时用random类产生一个随机数,然后用while循环来判断对错,跳出循环的条件为猜对break跳出循环或者猜的次数为10次后break停止。
扩展版的思路是在基本要求上进行更改,整个程序中flag这个标志布尔类型变量很重要,它在乎这用户是否能在输入yes or no 后可以接着继续进行游戏,分数的输出可以用方法的方式写出,也可以在程序中直接用,采用switch case的语句进行判断。
字符串的比较 String Str2= in.next();
String Str1 = new String("Yes");
String Str3 = new String("No");
flag=Str1.equals(Str2);
采用equals的比较来判断是否继续。
循环结束的标志是直至输入no跳出循环并给出分数。
注意的细节为time变量(次数)归0的位置,否则分数将判断错误。
<1>问题
产生的随机数一直为一个数,无论进行几次游戏第一轮为几在新的一轮仍为几。
2.万年历
程序设计思路:先判断是否为闰年,判断某月有多少天(需要调用闰年的函数),然后计算出1900年1月1日到某月之前的总天数(调用闰年函数和某月的函数),输出函数。
问题1,计算总天数出错
逻辑语法都没错误但是计算总是错误,调试出来的结果为闰年判断都为366,结果在if判断语句中用闰年函数进行计算。结果正确。
问题2,输出万年历
不知道怎么把数字1到月末和日一二等星期来联系。先设置flag=0,然后计算出这天是周几的时候在和变量相加,然后在for循环这个月的天数同时flag++,当flag%7==0的时候判断换行。
(三)代码托管
截图如下
链接:http://git.oschina.net/hebau_cs15/Java-CS01cym
(四)学习进度条
| | 代码行数(新增/累积)|学习时间(新增/累积)|本周学习内容|
| -------- |:----------------:|:----------------:|:-----------:|
| 目标 | 5000行 | 300小时 | |
| 第2-4周 | 250/300 | 24/30 | |
| 第5周 | | | |
| 第6周 | | | |