(一)题目描述
输入一批数,找出其中位数。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
private static double median(List<Integer> list) {
double s = 0;
Collections.sort(list);
int size = list.size();
if (size % 2 != 1) {
s = (list.get(size / 2 - 1) + list.get(size / 2) + 0.0) / 2;
} else {
s = list.get((size - 1) / 2);
}
return s;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("你要输入多少个数字: ");
int n = sc.nextInt();
int[] a = new int[n];
List<Integer> list = new ArrayList<>();
System.out.print("你要输入的数字为: ");
for (int i = 0; i < n; i++) {
a[i] = sc.nextInt();
list.add(a[i]);
}
System.out.print("中位数为:");
System.out.println(median(list));
}
}
(二)题目描述
按如下要求编写Java程序:
(1)定义接口A,里面包含值为3.14的常量PI和抽象方法double area()。
(2)定义接口B,里面包含抽象方法void setColor(String c)。
(3)定义接口C,该接口继承了接口A和B,里面包含抽象方法void volume()。
(4)定义圆柱体类Cylinder实现接口C,该类中包含三个成员变量:底圆半径radius、圆柱体的高height、颜色color。
interface A{
public static double PI = 3.14;
public abstract double area();
}
interface B{
public abstract void setColor(String c);
}
interface C extends A,B{
public abstract void volume();
}
class Cylinder implements C{
private double radius;
private double height;
private String color;
public Cylinder(double radius, double height, String color){
this.radius=radius;
this.height=height;
this.color=color;
}
public double area(){
System.out.println("半径: " + PI);
return PI * radius * radius;
}
public void setColor(String c){
System.out.println("颜色: " + c);
}
public void volume(){
System.out.println("圆柱体的体积:" + PI * radius * radius * height);
}
}
public class Main{
public static void main(String[] args) {
Cylinder a = new Cylinder(1,2,"red");
a.area();
a.setColor("red");
a.volume();
}
}
(三)题目描述
已知数组int[] arr = {8,54,3,47,148,77,56,55,20};(10)
设计一个工具类,完成以下功能:
(1)计算出数组中所有的奇数和、偶数和
(2)利用冒泡排序方式对数组进行排序(从大到小)
class Tool{
int[] arr = {8,54,3,47,148,77,56,55,20};
public void countSum(int[] arr){
int odd_sum = 0;
int even_sum = 0;
for(int i = 0; i < arr.length; i++){
if(arr[i] % 2 == 0){
even_sum += arr[i];
}
else {
odd_sum += arr[i];
}
}System.out.println("奇数和为: " + odd_sum + "\n" + "偶数和为: " + even_sum);
}
public void sort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int input = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = input;
}
}
}
for (int i : arr) {
System.out.print(i + " ");
}
}
}
public class Main {
public static void main(String[]args){
int[] arr = {8,54,3,47,148,77,56,55,20};
Tool t = new Tool();
t.countSum(arr);
System.out.print("排序后的数组为: ");
t.sort(arr);
}
}
(四)题目描述
利用接口做参数,写个计算器,能完成加减乘除运算。
(1)定义一个接口Compute含有一个方法int computer(int n, int m)。
(2)设计四个类分别实现此接口,完成加减乘除运算。
(3)设计一个类UseCompute,类中含有方法:public void useCom(Compute com, int one, int two),此方法能够用传递过来的对象调用computer方法完成运算,并输出运算的结果。
interface Computer{
int computer(int n, int m);
}
class Add implements Computer{
@Override
public int computer(int n, int m) {
int value = n + m;
System.out.println("n + m = " + value);
return value;
}
}
class Sub implements Computer{
@Override
public int computer(int n, int m) {
int value = n - m;
System.out.println("n - m = " + value);
return value;
}
}
class Multiply implements Computer{
@Override
public int computer(int n, int m) {
int value = n * m;
System.out.println("n * m = " + value);
return value;
}
}
class Divide implements Computer{
@Override
public int computer(int n, int m) {
if(m != 0) {
int value = n / m;
System.out.println("n / m = " + value);
return value;
}else {
System.out.println("分母不能为零");
return 0;
}
}
}
class UseCompute{
public UseCompute(int n, int m) {
System.out.println("n的值为:" + n + ",m的值为:" + m);
}
public void useCom(Computer com, int n, int m) {
com.computer(n, m);
}
}
public class Main {
public static void main(String[] args) {
UseCompute uc = new UseCompute(20, 10);
uc.useCom(new Add(), 20, 10);
uc.useCom(new Sub(), 20, 10);
uc.useCom(new Multiply(), 20, 10);
uc.useCom(new Divide(), 20, 10);
}
}