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 Apache Maven
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
文章提供了使用Apache POI库在Java中创建和读取Excel文件的详细代码示例,包括写入数据到Excel和从Excel读取数据的方法。
61 6
Java百项管理之新闻管理系统 熟悉java语法——大学生作业 有源码!!!可运行!!!
|
2月前
|
Java 测试技术 开发者
💡Java 零基础:彻底掌握 for 循环,打造高效程序设计
【10月更文挑战第15天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
119 63
|
2月前
|
Java 编译器 Android开发
java作业的提交规范与要求
java作业的提交规范与要求
27 0
|
6月前
|
存储 小程序 前端开发
java毕设项目|宿舍管理系统小程序设计与实现
java毕设项目|宿舍管理系统小程序设计与实现
|
6月前
|
监控 Java API
Java 程序设计 第八章 线程
Java 程序设计 第八章 线程
|
6月前
|
Java 编译器 C语言
Java 程序设计 第2章 Java基本语法 笔记
Java 程序设计 第2章 Java基本语法 笔记
|
6月前
|
小程序 Java 数据库
基于Java作业管理系统设计和实现(源码+LW+调试文档+讲解等)
基于Java作业管理系统设计和实现(源码+LW+调试文档+讲解等)
|
7月前
|
Java 数据安全/隐私保护
Java程序设计实验2 | Java语言基础(一)
掌握变量的命名是否符合Java关于标识符的命名规则。
52 1
|
7月前
|
存储 算法 Java
Java程序设计实验2 | Java语言基础(二)
分别用do-while和for循环计算1+1/2!-1/3!+1/4!-1/5!…的前20项之和。
83 1
|
7月前
|
JavaScript Java 测试技术
基于Java的作业管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的作业管理系统的设计与实现(源码+lw+部署文档+讲解等)