java第一次作业

(一)学习总结

1.在java中通过Scanner类完成控制台的输入,查阅JDK帮助文档,Scanner类实现基本数据输入的方法是什么?不能只用文字描述,一定要写代码,通过具体实例加以说明。

***输入数据.
最简单的数据输入直接使用scanner类的next()方法。
import java.util.Scanner;
public class ScannerDemo01{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);//从键盘接收数据
System.out.print("输入数据:");
String str=scan.next();
System.out.println("输入的数据为:"+str);
}
}
运行中发现如果输入空格,但是空格后的东西没有了,造成此结果原因是因为scanner将空格当作了一个分隔符,为了保证程序的正确,可将分隔符号修改为\n(回车)

 import java.util.Scanner;
 public class ScannerDemo01{
 public static void main(String[] args){
 **Scanner scan=new Scanner(System.in);//从键盘接收数据**
 **scan.useDelimiter("\n");//修改输入数据的分隔符**
 System.out.print("输入数据:");
 **String str=scan.next();**
 System.out.println("输入的数据为:"+str);
 }
 }

以上代码完成了字符串内容的输入,输入float或int类型的数据,在scanner中支持,最好使用hasNextInthasNextFloat进行验证。

 import java.util.Scanner;
 public class ScannerDemo01{
 public static void main(String[] args){
 Scanner scan=new Scanner(System.in);
 int i;
 float f=0.0f;
 
 System.out.print("输入整数:  ");
 if(**scan.hasNextInt()**)**//判断输入的是否是整数**{
	**i=scan.nextInt();//接受整数**
	 System.out.print("整数:"+i);
	 
 }else{
	 System.out.print("输入的不是整数!");
 }
 System.out.print("输入小数:  ");
 if(**scan.hasNextFloat()**)**//判断是否是小数**{
	 **f=scan.nextFloat();//接收小数**
	 System.out.print("小数:"+f);
 }
 else{
	 System.out.print("输入的不是小数!");
 }
 
 }
 }

2.Random类Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
Math类包含了所用用于几何和三角浮点运算方法,这些方法都是静态的。
例:四舍五入:public static long round(double a);
round()是将小数点之后的所有小数位四舍五入,最后只剩下整数部分。
double num=88.678;
System.out.println(Math.round(num));//输出结果为89.
Random类是一个随机数产生器,随机数是按照某种算法产生的一旦用一个初值创建Random对象,就可以得到一系列随机数。
例:利用Random类来产生5个0---100之间的随机整数。
import java.util.Random;
public class RandomDemo01{
public static void main(String[] args){
Random r=new Random();//建立一个Random对象用于生成随机数
for(int i=0;i<5;i++)//循环5次,最后结果会生成5个整数

{
System.out.print(r.nextInt(100)+"\t ");//输出随机数,设置字段100个,并在每个随机数间加上空格
}
}
}
利用Random随机产生一组数,但这种方式的结果是事先未知的。可以用来编写验证码。

3.本次学习要点中其他需要总结的内容:因人而异,根据自己的学习情况,记录难掌握或难理解的内容,以及学有心得的内容。还存在哪些问题,也可以提出来,对于同学在博客中提出的问题,大家可以积极讨论,互帮互学。

(二)实验总结

对完成实验内容过程中遇到的问题、解决方案以及程序的设计思路和思考等进行归纳总结。
1.猜商品价格游戏:

程序设计思路:

1.1
    Scanner input=new Scanner(System.in);
	System.out.println("请输入所猜商品的价格(0到100)之间");
	int price=input.nextInt();
	运用Scanner类next()方法进行输入和输出数据

1.2	int i=10;
	if(price==100)
	System.out.println("恭喜你猜正确,获得满分10分");
	出现问题:使用整型变量要提前声明int

1.3 System.out.println("输入0则退出游戏,回车后继续游戏");
		 String c0 = "0";
	        Scanner Look0= new Scanner(System.in);
	        if (Look0.nextLine().equals(c0)) {
	            System.out.println("退出成功,共获得" + i + "分!!");
	            System.exit(0);}
        else
	        {
	  使用equals()函数进行 数据之间的比较,这里运用了scanner next()方式对look0进行输入输出数据,而c0所设置的是字符串形式。退出直接使用System.exit();

我的反思:
这几个方法后来想想还是挺简单的,但是之前却运用了好多次都不正确。还有本来的思路是使用switch case方法,但是考虑到价格之间的波动性屡次使用都不成功,于是就直接一口气用了好多if else语句,但是最后编出来的还是有很明显的局限性:就是你必须按照本程序的一定向的顺序来运行方能成功,否则 随便输入的话结果就不对了,so,我想我还得思考一下这个问题怎么解决。在这之前,若想保持本程序的基本运作,就必须按照其顺序进行操作。

2.万年历的编辑

程序设计思路:

     2.1    
      boolean  runnian=false;
	  if((year%4==0&&year%100!=0)||(year%400==0))
	  {runnian=true;}
	  else
	  {runnian=false;}
	  if(runnian)
	  {System.out.println(year+"为闰年");}
	  else
	  {System.out.println(year+"为平年");}
	  声明一个boolean布尔型的变量runnian,用于判断你所输入的年份是不是闰年,布尔型只有两个取值:true和false.
	 2.2 判断每个月有多少天用switch case方法来解决。

我的反思:
这个程序我学习了布尔类型变量的使用,虽然将每个月的星期的框架列出来了,但是却不会依次列出日期,思考了这个月的第一天是星期几的问题没能解决,还有日期不能依次列出的问题没能解决。总的来说我的这个程序能够清晰的运行出某年某月有多少天,也算有些许的进步。

(三)代码托管
码云commit历史截图
上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图,同时应该给出git项目的链接。

(四)学习进度条

学习时间 本周学习内容 代码行数
目标 5000行 300小时
第2-4周 30/30 equals,scanner,random,布尔型变量等基本的用法
第5周
第6周
————————————————————————————————————
posted @ 2017-03-18 10:55  彪悍一只猫  阅读(202)  评论(1编辑  收藏  举报