• Java程序设计(五)作业


     

    题目1:Lisa正在编写一个能够计算三科——数学、英语、程序设计基础——平均成绩(平均成绩=三科总成绩/3)和智育成绩(智育成绩=三科总成绩*0.7)的程序。由于两个成绩的获得都要先计算总成绩,因此她考虑使用23种设计模式中的模板方法模式完成。模板方法模式——定义一个操作方法中的算法的“骨架”,而将一些步骤延迟到子类中。它通过把不变行为搬移到父类,去除子类中的重复代码来体现程序的优势。为此,Lisa设计了一个抽象类和三个非抽象类:

    l  抽象类——AbstractComputer.java

    l  计算平均成绩的类——ComputerAverage.java

    l  计算智育成绩的类——ComputerIntel.java

    l  测试类——Test.java

    (1)AbstractComputer.java

    表示两种计算的“骨架”,组成内容如下:

    l  total:成员变量,double型,表示总成绩

    l  public abstract double computer( ):表示计算平均成绩或智育成绩

    l  public double templateComputer(double math,double english,double program):计算数学、英语、程序设计基础三科总成绩,为total赋值,并调用computer( )方法获得平均成绩或智育成绩

    (2)ComputerAverage.java

    AbstractComputer类的非抽象子类,用于计算平均成绩,组成内容如下:

    l  public double computer( ):重写的computer( )方法,计算total的平均值

    (3)ComputerIntel.java

    AbstractComputer类的非抽象子类,用于计算智育成绩,组成内容如下:

    l  public double computer( ):重写的computer( )方法,计算total折合的智育成绩

    (4)Test.java

    在Test类中通过键盘输入三科成绩,如89,97.5,95,分别创建AbstractComputer类的上转型对象aver和intel,计算这三科成绩的平均成绩和智育成绩,并将结果输出。

    复制代码
     1 //Lisa正在编写一个能够计算三科——数学、英语、程序设计基础——平均成绩(平均成绩=三科总成绩/3)和
     2 //智育成绩(智育成绩=三科总成绩*0.7)的程序。由于两个成绩的获得都要先计算总成绩,
     3 //因此她考虑使用23种设计模式中的模板方法模式完成。模板方法模式——定义一个操作方法中的算法的“骨架”,
     4 //而将一些步骤延迟到子类中。它通过把不变行为搬移到父类,去除子类中的重复代码来体现程序的优势。
     5 //为此,Lisa设计了一个抽象类和三个非抽象类:
     6 //抽象类——AbstractComputer.java
     7 //计算平均成绩的类——ComputerAverage.java
     8 //计算智育成绩的类——ComputerIntel.java
     9 //测试类——Test.java
    10 //(1)AbstractComputer.java
    11 //表示两种计算的“骨架”,组成内容如下:
    12 //total:成员变量,double型,表示总成绩
    13 //public abstract double computer( ):表示计算平均成绩或智育成绩
    14 //public double templateComputer(double math,double english,double program):
    15 //计算数学、英语、程序设计基础三科总成绩,为total赋值,并调用computer( )方法获得平均成绩或智育成绩
    16 
    17 
    18 abstract class AbstractComputer {
    19     double total;
    20 
    21     public abstract double computer();
    22 
    23     public double templateComputer(double math, double english, double program) {
    24         total = math + english + program;
    25         return computer();
    26     }
    27 }
    复制代码
    复制代码
    //(2)ComputerAverage.java
    //AbstractComputer类的非抽象子类,用于计算平均成绩,组成内容如下:
    //public double computer( ):重写的computer( )方法,计算total的平均值
    
    
    class ComputerAverage extends AbstractComputer {
    
        public double computer() {
    
            return total / 3;
        }
    
    }
    复制代码
    复制代码
    //(3)ComputerIntel.java
    //AbstractComputer类的非抽象子类,用于计算智育成绩,组成内容如下:
    //public double computer( ):重写的computer( )方法,计算total折合的智育成绩
    
    
    class ComputerIntel extends AbstractComputer {
        public double computer() {
            return total * 0.7;
        }
    
    }
    复制代码
    复制代码
    //(4)Test.java
    //在Test类中通过键盘输入三科成绩,如89,97.5,95,分别创建AbstractComputer类的上转型对象average和intel,
    //计算这三科成绩的平均成绩和智育成绩,并将结果输出。
    
    import java.util.*;
    
    public class test2 {
        public static void main(String[] args) {
            System.out.println("请分别输入三科成绩:");
            @SuppressWarnings("resource")
            Scanner input = new Scanner(System.in);
            double math = input.nextDouble();
            double english = input.nextDouble();
            double program = input.nextDouble();
            AbstractComputer computerAverage = new ComputerAverage();
            System.out.println("三科平均成绩为:");
            System.out.println(computerAverage.templateComputer(math, english, program));
    
            AbstractComputer computerIntel = new ComputerIntel();
            System.out.println("三科的智育成绩为:");
            System.out.println(computerIntel.templateComputer(math, english, program));
        }
    
    }
    复制代码

     

  • 相关阅读:
    正则表达式re模块的使用教程『更新中』
    群狼调研(长沙学校满意度调查)开展长沙游客满意度调查
    使用Mybatis-plus清空表数据
    一篇带你搞定⭐《生产环境JVM日志配置》⭐
    OkHttp3错误异常: java.net.ProtocolException: unexpected end of stream竟是nginx惹的祸
    【EMC专题】案例:电源适配器传导超标,但接产品整机测试却正常?
    MSP的五大优势,了解一下
    大数据运维一些常见批量操作命令
    Minio集群搭建
    简易通讯录Promax
  • 原文地址:https://www.cnblogs.com/Enovo/p/16755610.html