zoukankan      html  css  js  c++  java
  • 作业一

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

    输入需要三个步骤:
    import java.util.Scanner;//输入
    Scanner num=new Scanner(System.in);//输入
    int k=num.nextInt();//输入
    2.Random类和Math类的random()方法都能产生随机数,这两种方式有什么区别,各有什么特点呢?查阅JDK帮助文档,并举例加以说明。
    Math.random()返回的只是从0到1之间的小数,如果要50到100,就先放大50倍,即0到50之间,这里还是小数,如果要整数,就强制转换int,然后再加上50即为50~100.
    最终代码:(int)(Math.random()*50) + 50
    Random类产生的随机数,在其最大值范围内,按照概率均匀分布的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。
    举例:

    3.3.运行下列程序,结果是什么?查阅资料,分析为什么。

    public class Test {
    public static void main(String args[]) {
    double a = 0.1;
    double b = 0.1;
    double c = 0.1;
    if((a + b + c) == 0.3){
    System.out.println("等于0.3");
    }else {
    System.out.println("不等于0.3");
    }
    }
    }
    结果是:不等于
    修改后:

    需要精确计算结果,要用BigDecimal类
    (二)实验总结

    实验内容:
    1.看商品猜价格
    2.万年历
    3.评分系统
    1:
    package lianxi;

    import java.util.*;
    import java.util.Random;

    public class Caijiage {
    public static void main(String args[]) {

    	Random jiage = new Random();
    	Scanner cai = new Scanner(System.in);
    	int caijiage, shijijiage, i, defen,zongfen=0,i1=0;
    	String Str, Str1;
    	Str1 = "Y";
    	shijijiage = jiage.nextInt(101);
    	do {
    		i = 0;
    		System.out.println("欢迎来到你猜 你猜 你猜猜猜 环节,请输入商品价格,你有五次机会,猜中了,奖品就是你的,价格区间0-100。");
    		do {
    			caijiage = cai.nextInt();
    			if (caijiage < 0 || caijiage > 100) {
    				System.out.println("超出范围了");
    				i++;
    			}
    			if (caijiage == shijijiage) {
    				System.out.println("不错,猜对了");
    				System.out.println("得分为" + (5 - i) * 20 + "商品价格为" + shijijiage);
    				zongfen=zongfen+((5 - i) * 20);
    				i++;
    				break;
    			} else if (caijiage < shijijiage) {
    				System.out.println("这次不行,猜低了");
    				i++;
    				System.out.println("你还有" + (5 - i) + "次机会");
    			} else if (caijiage > shijijiage) {
    				System.out.println("这次不行,猜高了");
    				i++;
    				System.out.println("你还有" + (5 - i) + "次机会");
    			}
    		} while (i < 5);
    		if (i == 5 && caijiage != shijijiage) {
    			defen = 0;
    			System.out.println("
    你都没猜对,商品价格为" + shijijiage);
    			System.out.println("得分为" + defen);
    		}
    		System.out.println("是否继续?Y/N?");
    		Str = cai.next();
    		i1=i1+i;
    	} while (Str.equals(Str1));
    	System.out.println("
    你总共猜了"+i1+"次,你总共得了"+zongfen+"分");
    }
    

    }

    设计思路:需要产生随机数的同时需要用户键盘输入,两者进行比较大小,同时,要分清楚次数与分数之间的函数关系,所猜次数利用循环进行限制。
    2:
    package lianxi;

    import java.util.*;

    public class Rili {
    public static void main(String args[]) {
    int i, i1, month, sum;
    Scanner year = new Scanner(System.in);
    System.out.println("输入年月");
    i = year.nextInt();
    i1 = year.nextInt();
    if (isleap(i)) {
    System.out.println(i + "年不是闰年");
    } else {
    System.out.println(i + "年是闰年");
    }
    month = days(i, i1);
    System.out.println(i + "年" + i1 + "月有" + month + "天");
    sum = totaldays(i, i1);
    System.out.println("总天数为" + sum);
    System.out.println(i + "年" + i1 + "月日历为:");
    print(i, i1);
    }

    public static boolean isleap(int year) {//判断闰年
    	boolean flag = true;
    	if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    		flag = false;
    	}
    	return flag;
    }
    
    public static int days(int year, int month) {//月份天数
    	int a, b, i;
    	isleap(year);
    	if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
    		b = 31;
    	} else if (month == 4 || month == 6 || month == 9 || month == 11) {
    		b = 30;
    	} else {
    		if (isleap(year)) {
    			b = 28;
    		} else {
    			b = 29;
    		}
    	}
    	return b;
    }
    
    public static int totaldays(int year, int month) {//总天数
    	int i, j, day = 0;
    	for (i = 1900; i < year; i++) {
    		for (j = 1; j <= 12; j++) {
    			day = day + days(i, j);
    		}
    	}
    	for (i = year; i < year + 1; i++) {
    		for (j = 1; j < month; j++) {
    			day = day + days(i, j);
    		}
    	}
    	return day;
    }
    
    public static void print(int year, int month) {//遍历
    	int i, b, x1 = 0, c;
    	b = 1 + totaldays(year, month) % 7;
    	c = days(year, month);
    	System.out.printf("星期日	星期一	星期二	星期三	星期四	星期五	星期六
    ");
    	if (b != 7) {
    		for (i = 0; i < b; i++) {
    			System.out.printf("	");
    			x1++;
    		}
    	}
    	for (i = 1; i <= c; i++) {
    		System.out.printf("  %-2d	", i);
    		x1++;
    		if (x1 != 0 && x1 % 7 == 0) {
    			System.out.println("");
    		}
    	}
    }
    

    }

    设计思路:分清闰年的判定条件,算出所求年份到1900年之间有几个闰年有几个平年,进行天数相加,再加上截止到本年某月份的天数,为总天数,之后进行日历输出。
    3:
    老师,手动输入50个数太累了。。我这个是25个分数。
    package lianxi;

    import java.util.Arrays;
    import java.util.Scanner;

    public class Dafen {
    public static void main(String args[]) {
    int i, j, data[][] = new int[5][5],max[]=new int[5],min[]=new int[5];
    double ave[]=new double[5];
    System.out.println("输入5位选手的成绩");
    Scanner fenshu = new Scanner(System.in);
    for (i = 0; i < 5; i++) {
    for (j = 0; j < 5; j++) {
    data[i][j] = fenshu.nextInt();
    }
    }
    for(i=0;i<5;i++) {
    Arrays.sort(data[i]); // 排序
    }
    /for (i = 0; i < 2; i++) {
    for (j = 0; j < 3; j++) {
    System.out.println(data[i][j]);
    }
    }
    /
    System.out.print("最高分分别为");
    for(i=0;i<5;i++) {
    max[i]=max(data[i]);
    System.out.print(max[i]+" ");
    }
    System.out.print(" ");
    System.out.print("最低分分别为");
    for(i=0;i<5;i++) {
    min[i]=min(data[i]);
    System.out.print(min[i]+" ");
    }
    System.out.print(" ");
    System.out.print("平均分分别为");
    for(i=0;i<5;i++) {
    ave[i]=ave(data[i]);
    System.out.print(ave[i]+" ");
    }
    System.out.print(" ");
    Arrays.sort(ave); // 排序
    System.out.print("排序后平均分为:");
    for(i=4;i>=0;i--) {
    System.out.print(ave[i]+" ");
    }
    }
    public static int max(int arr[]){
    return arr[4];
    }
    public static int min(int arr[]){
    return arr[0];
    }
    public static double ave(int arr[]) {
    int i;
    double sum=0;
    double ave=0;
    for(i=1;i<4;i++) {
    sum=arr[i]+sum;
    ave=(double)sum/3;
    }
    return ave;
    }
    }

    设计思路:
    将分数存到数组,用函数进行排序,去除最大值和最小值,将数组剩下的分数进行求和,求平均数,然后存放到新数组,将新数组排序输出。
    (三)代码托管

  • 相关阅读:
    日期获取以及时间转化
    ddt 接口框架数据处理调用excel 处理
    ddt 测试用例UI运用
    动态验证码处理UI自动化获取处理
    Bug Report For .Net (zz.IS2120@BG57IV3)
    中关村翠湖科技园:高端产业聚集区 (zz.IS2120@BG57IV3.T752270541 .K)
    vc6,windows 7 x64 调试 (IS2120@BG57IV3)
    Excel c#Excel文件的操作[转载]
    NUnit学习 标签、方法 记录与说明
    Excel c#Excel工作进程的创建写 与Excel文件的保存[原创] (20100205 11:09)
  • 原文地址:https://www.cnblogs.com/mty1997/p/8570308.html
Copyright © 2011-2022 走看看