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));
} }
Java程序设计(五)作业的更多相关文章
- Week11《java程序设计》作业总结
Week11<java程序设计>作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 答: 2. 书面作业 本次PTA作业题集多线程 1. 源代码 ...
- week10《java程序设计》作业总结
week10<java程序设计>作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 答:: 2. 书面作业 本次PTA作业题集异常 1. 常用异常 ...
- Java程序设计第一次作业
虽说这学期Java比上学期的C语言要简单些许,但是初次面对java程序,还是有点难度的.
- java 程序设计第一次作业
public class Join{ public static void main(String args[]){ String s1=new String("hello"); ...
- 2016-2017-2 《Java程序设计》预备作业2总结
2016-2017-2 <Java程序设计>预备作业2总结 古希腊学者普罗塔戈说过:「头脑不是一个要被填满的容器,而是一束需要被点燃的火把.」 在对计算机系的学生情况的调查中,我说: 最近 ...
- 201521123072《java程序设计》第五周学习总结
201521123072<java程序设计>第五周学习总结 标签(空格分隔): java学习 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 代码 ...
- 201521123038 《Java程序设计》 第五周学习总结
201521123038 <Java程序设计> 第五周学习总结 1. 本周学习总结 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.ja ...
- 201521123061 《Java程序设计》第五周学习总结
201521123061 <Java程序设计>第五周学习总结 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 1.代 ...
- 20175202 《Java程序设计》第五周学习总结
20175209 2018-2019-2 <Java程序设计>第五周学习总结 教材知识点总结 1.接口声明: 使用关键字interface来定义接口. 定义接口时使用关键字interfac ...
- 20175317 《Java程序设计》第五周学习总结
20175317 <Java程序设计>第五周学习总结 教材学习内容总结 第五周我学习了教材第六章的内容,了解了接口的知识,学到了以下内容: 明白了什么是接口 学会了如何实现接口 了解了接口 ...
随机推荐
- 【一本通提高博弈论】[ZJOI2009]取石子游戏
[ZJOI2009]取石子游戏 题目描述 在研究过 Nim 游戏及各种变种之后,Orez 又发现了一种全新的取石子游戏,这个游戏是这样的: 有 n n n 堆石子,将这 n n n 堆石子摆成一排.游 ...
- 图的存储结构大赏------数据结构C语言(图)
图的存储结构大赏------数据结构C语言(图) 本次所讲的是常有的四种结构: 邻接矩阵 邻接表 十字链表 邻接多重表 邻接矩阵 概念 两个数组,一个表示顶点的信息,一个用来表示关联的关系. 如果是无 ...
- USB转串口参数配置功能
当使用USB转串口芯片时,在部分场合下需要修改芯片内部的USB参数以满足其应用需要.常见如: 系统下使用多个USB转串口芯片,区分使用各芯片. 修改厂商ID.产品ID.厂商字符串,使用客户自有ID和信 ...
- python3学习笔记之字符串
字符串 1.一个个字符组成的有序的序列,是字符的集合: 2.使用单引号.双引号.三引号引住的字符序列 3.字符串是不可变对象 4.python3起,字符串就是Unicode类型: 字符串特殊举例: 不 ...
- DQL条件查询模糊查询和约束概述
模糊查询 -- 查询姓马的有哪些? like SELECT * FROM student where name LIKE '马%'; -- 查询姓名第二个字是化的人 SELECT * FROM stu ...
- YII自定义小部件
案例如下 common/widgets/TopMenu.php(地址可以自定义位置,命名空间一定要对应) <?php /** * Created by PhpStorm. * Date: 201 ...
- Nginx 限制上传文件的大小。responded with a status of 413 (Request Entity Too Large)
# 限制请求体的大小,若超过所设定的大小,返回413错误. client_max_body_size 50m; # 读取请求头的超时时间,若超过所设定的大小,返回408错误. client_heade ...
- 学习nginx的一点记录
一.nginx定义 Nginx是一款轻量级的.高性能的,具备HTTP.反向代理.负载均衡的web服务器,同时还提供IMAP/POP3/SMTP服务,其特点是占用内存少,并发能力强. 二.nginx基本 ...
- 编译器工程师眼中的好代码:Loop Interchange
摘要:本文将以Loop Interchange的场景为例,讲述在编写代码时可以拿到更优性能的书写方式. 本文分享自华为云社区<编译器工程师眼中的好代码(1):Loop Interchange&g ...
- 【JAVA UI】HarmonyOS 如何使用TinyPinyin类库
参考资料 前言:TinyPinYin是一个适用于Java和Android.HarmonyOS的快速,低内存的汉字转拼音库.码云地址TinyPinYin,其使用方法已在API讲解中有详细介绍,本文 ...