长春大学20级十一周第一次上机(5月10号)

(一)题目描述

输入一批数,找出其中位数

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);
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小成同学_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值