(一) 学习总结:
1. 在 java 中通过 Scanner 类完成控制台的输入, 查阅 JDK 帮助文档, Scanner 类实现基本数据输入的方法是什么? 不能只用文字描述, 一定要写代码, 通过具体实例加以说明
- package study;
- import java.util.Scanner;
- public class Study {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- int x;
- Scanner input = new Scanner(System.in);
- x = input.nextInt();
- System.out.println(x);
- }
- }
2.Random 类和 Math 类的 random() 方法都能产生随机数, 这两种方式有什么区别, 各有什么特点呢? 查阅 JDK 帮助文档, 并举例加以说明
(1):Math 类的 random() 只能返回 0-1 之间的 double 数值, 如果需要 20-30 需要放大 10 倍变为 0-10 之间的 double 数值, 之后再加上 10 并强制转换成 int 数值
(2):Random 类是工作 Random 类的相关方法, 有多种类型的随机值的获取方法, 如 nextBoolean() nextInt() 等
3.3. 运行下列程序, 结果是什么? 查阅资料, 分析为什么
结果为不等于 0.3
原因是因为计算机计算 double 类型数据时会产生误差
(二) 实验总结:
1. 看商品猜价格
- package study;
- import java.util.Random;
- import java.util.Scanner;
- public class Study {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- int count,score,i;
- String c=null;
- Scanner input=new Scanner(System.in);
- do
- {
- Random arr=new Random();
- int arr1 = arr.nextInt(100)+1;
- count=1;
- System.out.println ("请输入商品价格, 最多可以猜 5 次!");
- int price=input.nextInt();
- for(i=0;i<5;i++)
- {
- if (price>arr1)
- {
- System.out.println ("太大了, 请重新输入!");
- count++;
- }
- else if (price<arr1)
- {
- System.out.println("太小了, 请重新输入!");
- count++;
- }
- else if (price==arr1)
- {
- System.out.println("恭喜你, 答对了!");
- break;
- }
- price=input.nextInt();
- if (count==5)
- {
- System.out.printf("5 次都没猜对, 正确结果是 %d\n",arr1);
- break;
- }
- }
- score=100-count*10;
- System.out.printf ("一共猜错了 %d 次, 您的得分为 %d",count,score);
- System.out.println ("继续下一轮游戏吗? Y(y)orN(n)");
- c=input.next();
- }
- while(c.equals("y"));
- }
- }
2. 万年历
- package calender;
- import java.util.Scanner;
- public class Calender {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- int i,
- h = 0,
- n,
- year,
- year1,
- month,
- zong = 0,
- sum,
- sum1,
- sum2;
- Scanner input = new Scanner(System. in );
- while (true) {
- System.out.println("请输入年份");
- year = input.nextInt();
- System.out.println("请输入月份");
- month = input.nextInt();
- if ((year <1900) || (month < 1) || (month> 12)) {
- System.out.println("输入错误, 请重新输入");
- } else {}
- sum1 = 0;
- sum2 = 0;
- year1 = year;
- for (year1 = year1 - 1; year1>= 1900; year1--) {
- if (year1 % 4 == 0 && year1 % 100 != 0 || year1 % 400 == 0) {
- sum1 = sum1 + 366;
- } else {
- sum1 = sum1 + 365;
- }
- }
- for (i = 1; i < month; i++) {
- if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
- sum2 = sum2 + 31;
- } else if (i == 4 || i == 6 || i == 9 || i == 11) {
- sum2 = sum2 + 30;
- } else if (i == 2) {
- if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
- sum2 = sum2 + 29;
- } else {
- sum2 = sum2 + 28;
- }
- }
- }
- sum = sum1 + sum2;
- System.out.println(year + "年" + month + "月");
- System.out.println("星期日 \ t 星期一 \ t 星期二 \ t 星期三 \ t 星期四 \ t 星期五 \ t 星期六 \ n");
- switch (sum % 7) {
- case 0:
- System.out.printf("\t");
- h = 2;
- break;
- case 1:
- System.out.printf("\t\t");
- h = 3;
- break;
- case 2:
- System.out.printf("\t\t\t");
- h = 4;
- break;
- case 3:
- System.out.printf("\t\t\t\t");
- h = 5;
- break;
- case 4:
- System.out.printf("\t\t\t\t\t");
- h = 6;
- break;
- case 5:
- System.out.printf("\t\t\t\t\t\t");
- h = 7;
- break;
- case 6:
- h = 1;
- break;
- }
- if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
- zong = 31;
- } else if (month == 4 || month == 6 || month == 9 || month == 11) {
- zong = 30;
- } else if (month == 2) {
- if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
- zong = 29;
- } else {
- zong = 28;
- }
- }
- for (n = 1; n <= zong; n++, h++) {
- System.out.printf("-", n);
- if (h % 7 == 0) {
- System.out.printf("\n");
- }
- }
- System.out.printf("\n");
- }
- }
- }
来源: http://www.bubuko.com/infodetail-2531466.html