菁英科技(卓目鸟学苑)- 专注软件测试菁英教育

标题: javaHomework3_刘国平_2021.03.11 [打印本页]

作者: 果丹卷    时间: 2021-3-11 22:30
标题: javaHomework3_刘国平_2021.03.11
package day05;

import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
import org.w3c.dom.ls.LSOutput;
import java.util.*;

public class homework3 {
    public static void main(String[] args) throws Exception {
        //求平均成绩
        average();
        System.out.println("=================按索引返回新列表========================");
        //按索引返回新列表
        List<Integer> nums= Arrays.asList(1,2,3,4,5,6);
        List<Integer> nums2= Arrays.asList();
        //正常用例
        System.out.println("原始列表:"+nums+" 开始索引:"+0+" 结束索引:"+5+" 索引列表:"+index(nums,0,5));//正常 边界值
        System.out.println("原始列表:"+nums+" 开始索引:"+3+" 结束索引:"+3+" 索引列表:"+index(nums,3,3));//正常begin==end
        System.out.println("原始列表:"+nums+" 开始索引:"+1+" 结束索引:"+4+" 索引列表:"+index(nums,1,4));//正常begin<end
        try {
            System.out.print("原始列表:"+nums2+" 开始索引:"+3+" 结束索引:"+2 );
            System.out.println("原始列表:"+nums+"索引列表:"+index(nums2,3,2));//异常:空列表
        } catch (Exception e) {
            System.out.println(" 异常信息为:"+e.getMessage());
            e.printStackTrace();//打印调用栈
        }
        try {
            System.out.print("原始列表:"+nums+" 开始索引:"+3+" 结束索引:"+2 );
            System.out.println("原始列表:"+nums+"索引列表:"+index(nums,3,2));//异常:begin>end
        } catch (Exception e) {
            System.out.println(" 异常信息为:"+e.getMessage());
            e.printStackTrace();//打印调用栈
        }
        try {
            System.out.print("原始列表:"+nums+" 开始索引:"+-1+" 结束索引:"+5 );
            System.out.println("原始列表:"+nums+"索引列表:"+index(nums,-1,5));//异常:begin<0边界值
        } catch (Exception e) {
            System.out.println(" 异常信息为:"+e.getMessage());
            e.printStackTrace();//打印调用栈
        }
        try {
            System.out.print("原始列表:"+nums+" 开始索引:"+0+" 结束索引:"+6 );
            System.out.println("原始列表:"+nums+"索引列表:"+index(nums,0,6));//异常:end>5边界值
        } catch (Exception e) {
            System.out.println(" 异常信息为:"+e.getMessage());
            e.printStackTrace();//打印调用栈
        }
    }

    //1. 列表中存放着学生10次的成绩,去掉一个最高分,去掉一个最低分后,计算平均分。
    public static void average(){
        Scanner chengji=new Scanner(System.in);
        System.out.println("请输入10个成绩");
        LinkedList<Float> scores=new LinkedList<>();
        for(int i=0;i<10;i++){
            float score=chengji.nextFloat();
            scores.add(score);
        }
        //打印学生成绩
        System.out.println("学生成绩为:"+scores);
        Collections.sort(scores);
        float max=Collections.max(scores);
        float min=Collections.min(scores);
        scores.removeLast();
        scores.removeFirst();
        //打印去掉最高分和最低分后学生成绩
        //System.out.println("去掉最高分和最低分后升序成绩:"+scores);
        float sum=0;
        for(int i=0;i<8;i++){
            sum+=scores.get(i);
        }
        float avgscore=sum/8;
        System.out.println("=====================平均成绩===========================");
        System.out.println("去掉最高分"+max+" 去掉最低分"+min+" 后,平均成绩为"+avgscore);
    }

    //        2. 定义一个静态方法,类似python中切片的功能,参数1是一个整数列表,参数2是开始索引,参数3是结束索引。
//        返回包含开始、包含结束的子列表
//        比如传入 [1,2,3,4,5] , 1, 3 返回[2,3,4]
//        (1)、对参数做检查。
//        (2)、设计用例测试这个方法。
    public static List<Integer> index(List<Integer> aa,int begin,int end) throws Exception {
        LinkedList<Integer> bb=new LinkedList<>();
        if(aa.size()==0){
            throw new Exception ("输入为空列表,不合法");
        }else if(0<=end&&end<begin&&end<aa.size()){
            throw new Exception("初始索引大于结束索引,不合法");
        }else if(begin>=aa.size()||end>=aa.size()||begin<0||end<0){
            throw new Exception("索引值不在列表范围内,不合法");
        }
        for(int i=begin;i<=end;i++){
            bb.add(aa.get(i));
        }
        return bb;
    }
}






欢迎光临 菁英科技(卓目鸟学苑)- 专注软件测试菁英教育 (http://www.zmnxy.com/) Powered by Discuz! X3.4