面对对象第二章课后作业

1.根据输入1~12月的数字,判断是春夏秋冬哪个季节:

package com.homework.demo.test2_1;

public class Season {
	/**
	 * 季节类
	 * 气象划分法 在气象部门,通常以阳历3~5月为春季,6~8月为夏季,9~11月为秋季,12月~来年2月为冬季.
	 */
	public String spring() { 
		/**
		 * 显示春天的方法
		 */
		return "春天";
	}
	
	public String summer() { 
		/**
		 * 显示夏天的方法
		 */
		return "夏季";
	}
	
	public String autumn() { 
		/**
		 * 显示秋天的方法
		 */
		return "秋天";
	}
	
	public String winter() { 
		/**
		 * 显示冬天的方法
		 */
		return "冬天";
	}
	
	public void season(int month) {
		/**
		 * 判断季节的方法
		 */
		switch (month) {
		case 3:
		case 4:
		case 5:
			System.out.println("该季节为"+spring());
			break;
		case 6:
		case 7:
		case 8:
			System.out.println("该季节为"+summer());
			break;
		case 9:
		case 10:
		case 11:
			System.out.println("该季节为"+autumn());
			break;
		default:
			System.out.println("该季节为"+winter());
			break;
		}
	}
}

package com.homework.demo.test2_1;

import java.util.Scanner;

public class Output {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Season season = new Season();
		Scanner input = new Scanner(System.in);
		System.out.print("请输入月份:");
		int month = input.nextInt();
		season.season(month);
	}

}

2.编写计算器:

package com.homework.demo.test2_3;

public class Calculator1 {
	public int add(int num1,int num2) { //加法
		return num1+num2;
	}
	public int minus(int num1,int num2) { //减法
		return num1-num2;
	}
	public int multiple(int num1,int num2) { //乘法
		return num1*num2;
	}
	public double divide(int num1,int num2) {  //除法
		return num1/(num2*1.0);
	}
}

import java.util.Scanner;

public class Output {
	public static void main(String[] args) {
		Calculator1 cal = new Calculator1();
		Scanner input = new Scanner(System.in);
		System.out.print("请输入第一个要运算的整数:");
		int num1 = input.nextInt();
		System.out.print("请输入第二个要运算的整数:");
		int num2 = input.nextInt();
		System.out.print("请输入您要进行的运算符:");
		String count = input.next();
		switch (count) {
		case "+":
			System.out.print("和为:"+cal.add(num1, num2));
			break;
		case "-":
			System.out.print("差为:"+cal.minus(num1, num2));
			break;
		case "*":
			System.out.print("积为:"+cal.minus(num1, num2));
			break;
		case "/":
			System.out.print("商为:"+cal.divide(num1, num2));
			break;
		}
	}
	
}

3.现有电视商品价格竞猜活动,活动的规则:随机出现一个商品名,用户猜测它的价值,如果在规定次数内猜对,便可获得此商品。模拟竞猜活动。

package com.homework.demo.test2_4;

public class QuessMachine {
	int num = 1+(int)(Math.random()*3); //随机产生1~3的数字;
	public String initial() {
		/**
		 * 预定义商品信息
		 */
		String shopping = "公主电动车";
		String shopping1 = "火影笔记本";
		String shopping2 = "iphoneX";
		switch (num) {
		case 1:
			return shopping;
		case 2:
			return shopping1;
		default:
			return shopping2;
		}
	}
	
	public void guess(int sum,int num) {  //第一个参数为价格,第二个为随机产生的商品编号。
		/**
		 * 判断用户猜测方法
		 */
		switch (num) {
		case 1:
			if (sum >2000) {
				System.out.println("再小点!");
			}else if (sum == 2000) {
				System.out.println("猜对了!");
			}else {
				System.out.println("再大点!");
			}
			break;
		case 2:
			if (sum >6400) {
				System.out.println("再小点!");
			}else if (sum == 6400) {
				System.out.println("猜对了!");
			}else {
				System.out.println("再大点!");
			}
			break;
		default:
			if (sum >7000) {
				System.out.println("再小点!");
			}else if (sum == 7000) {
				System.out.println("猜对了!");
			}else {
				System.out.println("再大点!");
			}
			break;
		}
	}
}

package com.homework.demo.test2_4;

import java.util.Scanner;

public class Output {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		int [] price = new int [3];  //创建一个数组接收商品的价格信息
		price[0] = 2000; // 公主电动车的价格
		price[1] = 6400; // 火影笔记本的价格
		price[2] = 7000; // iphoneX的价格
		QuessMachine quess = new QuessMachine(); // 创建一个对象
		
		System.out.println("商品编号:"+quess.num +"\t商品名称:"+ quess.initial() + "\t商品价格:"+price[quess.num - 1]);  //打印随机出来的数值,无实际意义
		
		System.out.print("请猜测" + "“" + quess.initial() + "”" + "的价格:");
		int prices = input.nextInt();
		quess.guess(prices, quess.num);
		int a=0;
		while (prices != price[quess.num-1] && a<3) {  //循环判断用户是否输入的价格正确,并且只给用户四次输入机会。
			System.out.print("再猜一次吧:");
			prices = input.nextInt();
			quess.guess(prices, quess.num);
			a++;
			if (a>=3) {
				System.out.println("4次内没有猜对,下次努力吧!");
			}
		}
		
	}

}

4.改写第一章作业中的简答题第2题中的计算器类(Calculator)。要求将加减乘除的方法改成带参方法,在定义一个运算方法ope(),接收用户选择的运算和俩个数字,根据用户选择计算方式。

package com.homework.demo.test2_5;

public class Cal {
	/*
	 * 计算机类
	 */
	public int add(int num1,int num2) { //加法
		return num1+num2;
	}
	public int minus(int num1,int num2) { //减法
		return num1-num2;
	}
	public int multiple(int num1,int num2) {	//乘法
		return num1*num2;
	}
	public int divide(int num1,int num2) {	//除法
		return num1/num2;
	}
	
	public int ope( int op,int num1, int num2) { 
		//第一个参数为要选择的运算符,第二个为第一个操作数,第三个为第二个操作数
		int number;
		switch (op) {
		case 1:
			number = add(num1,num2);
			return number;
		case 2:
			number = minus(num1, num2);
			return number;
		case 3:
			number = multiple(num1, num2);
			return number;
		default:
			number = divide(num1, num2);
			return number;
		}
	}
}

package com.homework.demo.test2_5;

import java.util.Scanner;

public class Output {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		Cal cal = new Cal();  //创建计算机类对象
		System.out.println("请选择运算:1.加法 2.减法 3.乘法 4.除法:");
		int num = input.nextInt(); 
		System.out.print("请输入第一个整数:");
		int num1 = input.nextInt();
		System.out.print("请输入第二个整数:");
		int num2 = input.nextInt();
		System.out.println("***运算结果为:"+cal.ope(num, num1, num2));  //带参实例化属性并输出
	}

}

5.编写程序,向整型数组的指定位置插入元素。并输出插入前后数组的值。

package com.homework.demo.test2_6;


public class Interposition {
	//循环输出数组方法
	public void print(int arr[]) {
		
		 for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
	}
	public void insertArray(int[] arr,int index , int value) {
		//第一个参数为要插入的数组,第二个为要插入数组的元素的下标,第三个为插入数组的值。
		for (int i =arr.length-1; i >index; i--) {
			arr[i] = arr[i-1];
		}
		arr[index] = value;
	}
}

package com.homework.demo.test2_6;

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

public class Output {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		Interposition inter = new Interposition();//创建对象
		System.out.print("请输入数组的长度(长度别超过10,不然难输啊兄得!):");
		int lengths = input.nextInt();	//键盘输入插入前数组长度
		int [] arr = new int [lengths];   //创建插入前数组
		System.out.println("请给数组赋值:");
		for (int i = 0; i < arr.length; i++) { //给插入前数组赋值
			int val = input.nextInt();
			arr[i] = val;
		}
		int [] arr2 = Arrays.copyOf(arr, lengths+1);  //赋值插入前数组,并使数组长度为插入前数组的长度+1
		System.out.print("请输入您要插入的值:");
		int value = input.nextInt();
		System.out.print("请输入您要插入的下标:");
		int index = input.nextInt();
		inter.insertArray(arr2, index, value);  //调用方法
		System.out.println("插入前的数组为:");
		inter.print(arr); //调用打印方法
		System.out.println("\n插入后的数组为:");
		inter.print(arr2);
	}

}

6.本学期期末学员共参加了三门课程的考试,即 java,C#,SQL,编写方法计算每位学员三门课程的平均分。

package com.homework.demo.test2_7;

public class Student {
	int javaScore; // java成绩
	int cScore; // c#成绩
	int sqlScore; // SQL成绩
}

package com.homework.demo.test2_7;

public class StudentBiz {
	Student[] student = new Student[30];

	/**
	 * 增加学生成绩信息
	 * 
	 * @param stu
	 */
	public void add(Student stu) {
		for (int i = 0; i < student.length; i++) {
			if (student[i] == null) {
				student[i] = stu;
				break;
			}
		}
	}

	/**
	 * 计算平均分,并输出。
	 */
	public void getavg(int arr[], int num) {
		// 参数分别为:java成绩,c#成绩,SQL成绩,学生人数
		double[] arr2 = new double[num + 1];
		for (int i = 0; i < num + 1; i++) {
			arr2[i] = arr[i] / 3.0;
		}
		for (int i = 0; i < arr2.length; i++) {
			System.out.println("第" + (i + 1) + "位同学的平均分为:" + arr2[i]);
		}
	}
}

package com.homework.demo.test2_7;

import java.util.Scanner;

public class Output {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		Student stu[] = new Student[30]; // 创建学生类对象数组
		StudentBiz stus = new StudentBiz(); // 创建StudentBiz类对象
		Student student = new Student(); // 创建学生类对象
		int arr[] = new int[stu.length]; // 创建一个数组来接收每一个学生的总成绩
		int index = 0; // 获取学生的人数
		for (int i = 0; i < stu.length; i++) {
			int tatleScore = 0; // 初始化总成绩并每次清零;
			System.out.println("第" + (i + 1) + "位同学的成绩为:");
			System.out.print("java成绩为:");
			student.javaScore = input.nextInt();
			System.out.print("c#的成绩为:");
			student.cScore = input.nextInt();
			System.out.print("SQL的成绩为:");
			student.sqlScore = input.nextInt();
			tatleScore = student.javaScore + student.cScore + student.sqlScore;
			for (int j = 0; j < arr.length; j++) { // 循环用数组接收总成绩
				if (arr[i] == 0) {
					arr[i] = tatleScore;
					break;
				}
			}
			System.out.print("是否继续输入(y/n):");
			String flag = input.next();
			System.out.println("");
			stus.add(student); // 调用方法增加学生信息
			if (flag.equals("n")) {
				index = i;
				System.out.println("已输入完毕!");
				break;
			}

		}
		System.out.println("学生的平均分为:");
		stus.getavg(arr, index); // 调用方法

	}

}

猜你喜欢

转载自blog.csdn.net/suixincaesar/article/details/80034610