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,也有hasinthasnextint其区别在与包括has中扫描器扫描到有效的相应的数据类型后返回TRUE
1.2主要的基本数据输入的方法有:intfloatdoubleshortlong类型,其基本输入格式和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周      |                   |                  |             |
 posted on 2017-03-17 22:24  ben跑的换行符  阅读(303)  评论(3编辑  收藏  举报