Java程序设计(五)作业

简介: 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,计算这三科成绩的平均成绩和智育成绩,并将结果输出。

//Lisa正在编写一个能够计算三科——数学、英语、程序设计基础——平均成绩(平均成绩=三科总成绩/3)和
//智育成绩(智育成绩=三科总成绩*0.7)的程序。由于两个成绩的获得都要先计算总成绩,
//因此她考虑使用23种设计模式中的模板方法模式完成。模板方法模式——定义一个操作方法中的算法的“骨架”,
//而将一些步骤延迟到子类中。它通过把不变行为搬移到父类,去除子类中的重复代码来体现程序的优势。
//为此,Lisa设计了一个抽象类和三个非抽象类:
//抽象类——AbstractComputer.java
//计算平均成绩的类——ComputerAverage.java
//计算智育成绩的类——ComputerIntel.java
//测试类——Test.java
//(1)AbstractComputer.java
//表示两种计算的“骨架”,组成内容如下:
//total:成员变量,double型,表示总成绩
//public abstract double computer( ):表示计算平均成绩或智育成绩
//public double templateComputer(double math,double english,double program):
//计算数学、英语、程序设计基础三科总成绩,为total赋值,并调用computer( )方法获得平均成绩或智育成绩
abstract class AbstractComputer {
    double total;
    public abstract double computer();
    public double templateComputer(double math, double english, double program) {
        total = math + english + program;
        return computer();
    }
}
//(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));
    }
}
相关文章
|
2月前
|
Java
JAVA结构化程序设计
JAVA结构化程序设计
17 0
|
2月前
|
安全 Java 数据库连接
【Java每日一题】— —第三十一题:银行账号管理程序设计
【Java每日一题】— —第三十一题:银行账号管理程序设计
215 1
|
2月前
|
安全 Java 数据库连接
【Java每日一题】——第三十题:班级管理程序设计
【Java每日一题】——第三十题:班级管理程序设计
66 0
|
2月前
|
安全 Java 数据库连接
【Java每日一题】——第二十九题:超市购物程序设计
【Java每日一题】——第二十九题:超市购物程序设计
123 0
【Java每日一题】——第二十九题:超市购物程序设计
|
6月前
|
测试技术 数据库 Android开发
0008Java安卓程序设计-ssm基于Android平台的健康管理系统
0008Java安卓程序设计-ssm基于Android平台的健康管理系统
28 0
|
2月前
|
Java 物联网 测试技术
Java面向对象程序设计3面向对象基础
Java面向对象程序设计3面向对象基础
169 0
|
19天前
|
JavaScript Java 测试技术
基于Java的程序设计实践项目管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的程序设计实践项目管理系统的设计与实现(源码+lw+部署文档+讲解等)
28 0
|
2月前
|
设计模式 Java 数据安全/隐私保护
Java面向对象程序设计
Java面向对象程序设计
9 0
|
2月前
|
存储 Java
Java程序设计练习题8异常处理
Java程序设计练习题8异常处理
66 0
|
2月前
|
Java
Java面向对象程序设计5接口与抽象类
Java面向对象程序设计5接口与抽象类
25 0