xyan

导航

java第一次作业

(一)学习总结

1.java中从键盘输入可通过Scanner类完成,举例如下:

Scanner in=new Scanner(System.in);
int year =in.nextInt();

Scanner是一个类,作用是获取控制台的输入信息,反馈到in 里,In是一个对象,通过new创建对象。System.in中in 不能改。同时要记得写import java.util.Scanner;添加Scanner类。
2.random类 随机数的产生

import java.util.Random;
public class caiyouxi {
	public static void main(String args[]){   //主函数
    	    Random random=new Random();
            int realNumber=random.nextInt(100)+1;
    }
}

math类 随机数的产生
Math.random()
区别在于math类的范围小一些,是在0到1之间随机一个double类型的数,而random类的可以更改类型也可更改数字范围。
3.判断某年到某年之间有多少天,会涉及到之间有多少个闰年。要注意百年不闰的说法。例如是400倍数的闰年2000年,相隔4年会有一个闰年(2004),而相隔100年又不是闰年例如(2100),相隔400年又是一个闰年例如(2400)。所以要记得减去百年不闰的天数,加上隔400年为闰年的天数。

public static int totaldays(int year,int month){         //1900到year month有多少天
		int a,b,h,f,c=0;
		int d;
		int i;
		a=year-1900;
		b=(a-1)/4;
		h=(year-1600)/400;
		f=(year-1900)/100;
		if(month==1){
			c=0;
		}
		else{
			for(i=1;i<month;i++){
				c=c+days( year,i);
			}
		}
		d=a*365+b-f+h+c;
		return d;
}

(二)实验总结

1.猜数游戏

  • 程序设计思路:
    把猜数字写在子函数中,在主函数中通过循环调用子函数来实现选择性多次玩游戏,子函数写的是一轮游戏。

  • 实验问题分析:
    问题1:用Scanner类进行输入,如果要进行多次不同的输入时,new建立的对象一样时会报错。
    原因:不同的输入,不同的变量就会对应不同的存储空间和地址,所以对应的new建立的对象也不同。
    解决方案:

     Scanner in=new Scanner(System.in);
     int m =in.nextInt();
     Scanner input=new Scanner(System.in);
     int a =input.nextInt();
    

把这两个输入中的变量和对象都设置为不同的。
1.万年历

  • 程序设计思路:
    建立4个子函数有:是否为闰年、某年某月有多少天、1900年到某年某月有多少天、日历。写成子函数是方便调用,例如某年某月有多少天会调用到是否为闰年的子函数,还有日历子函数较为复杂,它用到前面的三个子函数。

    问题1:输出日历时星期几与几号错位
    原因:星期几是用字符串输出而且输出的是汉字,而几号是数字。
    解决方案:

         System.out.println("日\t一\t二\t三 \t四 \t五\t六 ");    
     	for(i=1;i<=d+1;i++){
     		System.out.print("\t");
     	}
     	m=days( year,month);     //当月有多少天
     	for(i=d+2;i<m+(d+2);i++){
     		
     		 System.out.print(e+"\t");
     			e++; //e为几号
     	    if(i%7==0){
     			System.out.println();
     		}
     	}
    

    用\t来实现空格,实现汉字和数字对齐。

(三)[代码托管]https://git.oschina.net/hebau_cs15/java-cs01lxy.git

  • 码云commit历史截图

(四)学习进度条

代码行数(新增/累积) 学习时间(新增/累积) 本周学习内容
目标 5000行 300小时
第2-4周 141 30/30 学习了Scanner类还有随机数
第5周
第6周

posted on 2017-03-19 14:03  xyan  阅读(177)  评论(4编辑  收藏  举报