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

Java程序设计(五)作业的更多相关文章

  1. Week11《java程序设计》作业总结

    Week11<java程序设计>作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 答: 2. 书面作业 本次PTA作业题集多线程 1. 源代码 ...

  2. week10《java程序设计》作业总结

    week10<java程序设计>作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 答:: 2. 书面作业 本次PTA作业题集异常 1. 常用异常 ...

  3. Java程序设计第一次作业

    虽说这学期Java比上学期的C语言要简单些许,但是初次面对java程序,还是有点难度的.

  4. java 程序设计第一次作业

    public class Join{ public static void main(String args[]){ String s1=new String("hello"); ...

  5. 2016-2017-2 《Java程序设计》预备作业2总结

    2016-2017-2 <Java程序设计>预备作业2总结 古希腊学者普罗塔戈说过:「头脑不是一个要被填满的容器,而是一束需要被点燃的火把.」 在对计算机系的学生情况的调查中,我说: 最近 ...

  6. 201521123072《java程序设计》第五周学习总结

    201521123072<java程序设计>第五周学习总结 标签(空格分隔): java学习 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码 ...

  7. 201521123038 《Java程序设计》 第五周学习总结

    201521123038 <Java程序设计> 第五周学习总结 1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.ja ...

  8. 201521123061 《Java程序设计》第五周学习总结

    201521123061 <Java程序设计>第五周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 1.代 ...

  9. 20175202 《Java程序设计》第五周学习总结

    20175209 2018-2019-2 <Java程序设计>第五周学习总结 教材知识点总结 1.接口声明: 使用关键字interface来定义接口. 定义接口时使用关键字interfac ...

  10. 20175317 《Java程序设计》第五周学习总结

    20175317 <Java程序设计>第五周学习总结 教材学习内容总结 第五周我学习了教材第六章的内容,了解了接口的知识,学到了以下内容: 明白了什么是接口 学会了如何实现接口 了解了接口 ...

随机推荐

  1. 字符输出流_Writer类&FileWrite类介绍和字符输出流的基本使用_写出单个字符到文件

    字符输出流_Writer类&FileWrite类介绍 java.io.Writer:字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类 共性抽象方法: void write(int c) ...

  2. Vxe-table 高亮当前行

    需求 1 :设置初始高亮 子组件: 父组件 需求 2 :高亮行的变化,需要把数据传递到兄弟组件中 解决办法:EventBus 参考链接: http://t.csdn.cn/iwOJc main.js ...

  3. Docker默认桥接网络是如何工作的

    1. 启动一个Docker容器 一般来说,我们起一个容器比如一个简单的nginx服务会向这样 docker run -d --rm nginx:XXX OK容器起来了,但是并不能通过宿主机被外面的机器 ...

  4. Vue路由器的hash和history两种工作模式 && Vue项目编译部署

    1 # 一.Vue路由器的两种工作模式 2 # 1.对于一个uri来说,什么是hash值? 井号及其后面的内容就是hash值. 3 # 2.hash值不会包括含在HTTP请求中,即:hash值不会带给 ...

  5. 前端须知的 Cookie 知识

    文章已收录到我的 GitHub 中,欢迎 star cookie 是什么和使用场景 cookie 是服务器端保存在浏览器的一小段文本信息,浏览器每次向服务器端发出请求,都会附带上这段信息(不是所有都带 ...

  6. 在centos服务器里安装opencv的坑:mportError: libXrender.so.1: cannot open shared object file: No such file or directory and wrong ELF class: ELFCLASS32

    centos7服务器安装opencv (其他版本服务器一样) 安装opencv: pip install opencv-python 导入cv2 import cv2 报错:importError: ...

  7. HTTP 的 Content-Type 及其媒体类型(MIME)

    Content-Type Content-Type 代表 HTTP 携带的文件类型,决定文件接收方或发送方将以什么形式.什么编码读取这个文件.下图,load.gif 的媒体类型就是 image/gif ...

  8. 痞子衡嵌入式:MCUXpresso IDE下设置代码编译优化等级的几种方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下设置代码编译优化等级的几种方法. 最近公司芯片设计团队正在开发一款全新的基于 Cortex-M33 内核的 ...

  9. P4767 [IOI2000]邮局 - 平行四边形不等式优化DP

    There is a straight highway with villages alongside the highway. The highway is represented as an in ...

  10. 大家都能看得懂的源码之ahooks useInfiniteScroll

    本文是深入浅出 ahooks 源码系列文章的第十七篇,该系列已整理成文档-地址.觉得还不错,给个 star 支持一下哈,Thanks. 简介 useInfiniteScroll 封装了常见的无限滚动逻 ...