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));
    }
}
相关文章
|
3月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
84 5
|
3月前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
187 3
|
3月前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
97 1
|
3月前
|
算法 Java
Java基础学习day03-作业
本内容包含多个Java编程案例,涵盖条件判断、循环、数组、随机数生成、素数判断等基础算法练习,适用于巩固Java语法与逻辑思维训练。
144 6
|
3月前
|
Java
Java基础学习day05-作业
本文为Java基础学习第五天作业,通过五个案例练习类与对象的定义、构造方法、set/get方法及成员方法的应用。涵盖女友、学生、教师、手机和电影等类的设计与测试,强化面向对象编程基础。
92 2
|
3月前
|
Java
Java基础学习day02-作业
本内容包含13个Java编程练习需求,涵盖变量定义、数据类型转换、运算符使用、键盘输入及条件判断等基础语法实践,适合初学者巩固Java核心基础知识。
109 5
|
3月前
|
Java
Java基础学习day04-作业
本作业包含8个Java编程案例,涵盖数组的定义与遍历、求和、最值计算、去极值求平均、元素倍增、二维数组行和计算及查找指定元素等内容,旨在巩固Java基础语法与数组操作技能。
251 1
|
Java
Java基础学习day01-作业
通过多个Java编程案例,学习变量定义、数据类型使用及控制台输出。涵盖字符串、数值、布尔值等字面量输出,变量赋值与修改,以及实际应用场景如学生信息和商品价格变化的模拟,夯实基础语法掌握。
136 0
|
Java Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
170 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
6月前
|
机器学习/深度学习 存储 算法
Java 大视界 -- Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用(165)
本文围绕 Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用展开,剖析作业现状与挑战,阐述技术原理及应用方法,结合案例与代码,给出具有实操性的解决方案。
Java 大视界 -- Java 大数据在智能农业无人机植保作业路径规划与药效评估中的应用(165)