2023-2024-2Java面向对象程序设计-阶段性测试2

填空题(总分:10.00)

1、Java程序中使用【 import 】关键字导入外部的包。

2、使用【 final 】关键字声明的类不能有子类。

4、JVM是【 Java Virtual Machine 】的英文简写。

5、面向对象编程思想的三个特性是【封装】、【继承】、【多态】。
编程题 (总分:70.00)

1、编程题一一话费及其异常处理 (分值:30.00)

【问题描述】

(1) 定义了一个接口Pay Able,包含计算电话话费的方法pay(),该方法抛出Pay Exception类型异常。

(2) 定义抽象电话类Phone,包括属性号码code。

(3) 定义手机类Mobile Phone继承Phone类,包含属性有通话时间time,话费单价price;定义三个参数的构造方法,完成号码、通话时间、话费的初始化;Mobile Phone类实现Pay Able接口计算话费。话费计算方法:手机类话费=通话时间*话费单价+上网费用+短信费用。

(3 )自定义异常类Pay Exception,表示话费小于0的异常,计算话费时如果小于0则抛出异常。

(4) 定义测试类,声明一个手机号码为13988888888的手机,并在测试类中处理异常。

【输入形式】输入通话时长,话费单价

【输出形式】话费结果或者异常

【样例输入】10 0.5

【样例输出】Fee=5.0

【样例输入】0 0.7

【样例输出】

Exception isPayException:Fee is 0!
Fee=0.0

【样例说明】
【评分标准】

package com.考试测试.Demo01;import java.util.Scanner;/*** 1、编程题一一话费及其异常处理	(分值:30.00)** @author 为一道彩虹*/
public class Solution01
{public static void main(String[] args){Scanner scanner = new Scanner(System.in);int time = scanner.nextInt();float price = scanner.nextFloat();scanner.close();MobilePhone mobilePhone = new MobilePhone("13988888888", time, price);float Fee = 0;try {Fee = mobilePhone.pay();System.out.println("Fee=" + Fee);} catch (PayException e) {System.out.println("Exception isPayException:"+ e.getMessage());System.out.println("Fee=" + Fee);}}
}interface PayAble
{// 计算话费float pay() throws PayException;
}abstract class Phone
{// 号码String code;public Phone(String code){this.code = code;}
}class MobilePhone extends Phone implements PayAble
{int time;float price;public MobilePhone(String code, int time, float price){super(code);this.time = time;this.price = price;}@Overridepublic float pay() throws PayException{float Fee = time * price + 0 + 0;if (Fee <= 0){throw new PayException("Fee is 0!");}return Fee;}
}class PayException extends Exception
{public PayException(String message){super(message);}
}

2、交换两个数(分值:20.00)

【问题描述】输入两个数,实现两个数的交换,并输出交换后的结果。

【输入形式】输入两个整数,放在一行,空格隔开
【输出形式】输出交换后的整数,放在两行,先输出后输入的整数
【样例输入】

2 14

【样例输出】
14

2

【样例说明】无

package com.考试测试.Demo01;import java.util.Scanner;/*** 2、交换两个数(分值:20.00)** @author 为一道彩虹*/
public class Solution02
{public static void main(String[] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();// 方式1 使用临时变量
//        int temp = n;
//        n = m;
//        m = temp;
//        System.out.println(n);
//        System.out.println();
//        System.out.println(m);// 方式2 使用加减法n = n + m;m = n - m;n = n - m;System.out.println(n);System.out.println();System.out.println(m);}
}

3、编程实现类图(分值:20.00)

【问题描述】编程实现如下所示类图:

在这里插入图片描述

(1) 对于Shape:类的getArea方法,可以是空函数,而对于Rectangle和Circle类的getArea方法,需要真正实现其功能,即计算相应图形的面积,题中PI=3.1415926。

(2) Rectangle和Circle类的构造函数需要实现

(3) 定义测试类,需要测试以下情形,单个对象(Rectangle、Circle)、数组化(即定义一个对
象数组,包含若干个Rectangle、Circle的对象),依次接收数据,不同对象之间的数据用逗号分隔,输出对应的面积。

【输入形式】
图形个数和图形属性,属性用空格隔开,不同对象用逗号分隔

【输出形式】面积
【样例输入1】1 3 4
【样例输出1】12.0

【样例输入2】1 2
【样例输出2】12.56

【样例输入2】2 3 4,2
【样例输出2】24.56

【样例说明】
【评分标准】

package com.考试测试.Demo01;import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Scanner;/*** 3、编程实现类图(分值:20.00)** @author 为一道彩虹*/
public class Solution03
{public static void main(String[] args){Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();String[] array = null;double area = 0;DecimalFormat decimalFormat = new DecimalFormat("#.##");decimalFormat.setRoundingMode(RoundingMode.DOWN);// 如果 n范围(n-1>n && n <= 1]if (n == 1){array = scanner.nextLine().trim().split(" ");if (array.length != 1){Rectangle rectangle = new Rectangle(Double.parseDouble(array[0]), Double.parseDouble(array[1]));area = rectangle.getArea();System.out.println(area);}else{Circle circle = new Circle(Double.parseDouble(array[0]));area = Double.parseDouble(decimalFormat.format(circle.getArea()));System.out.println(area);}}else{array = scanner.nextLine().trim().split(",");Shape[] shapes = new Shape[n];for (int i = 0; i < array.length; i++){String[] arr = array[i].split(" ");if (arr.length != 1){Rectangle rectangle = new Rectangle(Double.parseDouble(arr[0]), Double.parseDouble(arr[1]));shapes[i] = rectangle;}else{Circle circle = new Circle(Double.parseDouble(arr[0]));shapes[i] = circle;}}for (Shape shape : shapes){area += shape.getArea();}System.out.println(decimalFormat.format(area));}}
}class Shape
{private double area;public double getArea(){return area;}
}class Rectangle extends Shape
{double length;double width;public Rectangle(double length, double width){this.length = length;this.width = width;}@Overridepublic double getArea(){return length * width;}
}class Circle extends Shape
{double radius;public Circle(double radius){this.radius = radius;}@Overridepublic double getArea(){return Math.PI * radius * radius;}
}

接口编程题
显示Person子类学生类信息2

【问题描述】

设计学生类Student,继承类Person,显示学生姓名和成绩。测试类Test在驱动代码中,无需再重新编写。

增加Student类,运行Test类。

public class Test
{public static void main(String[] args){Person s = new Student("lisi", 23, 86.0);s.display();}
}

[注意要点本类接口文件可以直接下载,只需编写Student类目类文件需存放在默认包中。

[输入形式】无
【输出形式】
Name=lisi
Grade=86.0
【样例输入】
【样例输出】
【样例说明】
【评分标准】

package com.考试测试.Demo01;/*** 接口编程题** 显示Person子类学生类信息2** @author 为一道彩虹*/
public class Solution04
{public static void main(String[] args){Person s = new Student("lisi", 23, 86.0);s.display();}
}class Person
{String name;int age;public Person(String name, int age){this.name = name;this.age = age;}public void display(){}
}class Student extends Person
{double grade;public Student(String name, int age, double grade){super(name, age);this.grade = grade;}@Overridepublic void display(){System.out.println("Name=" + name);System.out.println("Grade=" + grade);}
}

先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据分析师的职业规划与参考资料

数据分析师如何规划 参考&#xff1a;超详细的数据分析职业规划 一个产品的出现可以从业务和技术两个方向分析&#xff0c;业务需求技术支持产品的出现。 如果把职业也当成一个产品&#xff0c;也有类似的分析&#xff0c; 其中业务也就是领域&#xff0c;即这个业务领域的特点…

Power BI案例-医院数据集的仪表盘制作

数据集描述 医生数据集doctor 医生编号是唯一的&#xff0c;名称会存在重复 医疗项目数据projects 病例编号是唯一的&#xff0c;注意这个日期编号不是真正的日期。 日期数据date 这里的日期编号对应医疗项目数据中的日期编号 科室数据集Department 维度表 采购成本事实表…

知乎上高频提问:Redis到底是单线程还是多线程程序?

1.概述 这里我们先给出问题的全面回答&#xff1a;Redis到底是多线程还是单线程程序要看是针对哪个功能而言&#xff0c;对于核心业务功能部分(命令操作处理数据)&#xff0c;Redis是单线程的&#xff0c;主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的&#xff…

海康rtsp拉流,rtmp推流,nginx部署转flv集成

海康rtsp拉流&#xff0c;rtmp推流&#xff0c;nginx部署转flv集成 项目实际使用并测试经正式使用无问题&#xff0c;有问题欢迎评论留言 核心后台java代码&#xff1a; try {// FFmpeg命令String command "ffmpeg -re -i my_video.mp4 -c copy -f flv rtmp://localho…

[学习笔记]批量迁移数据库文件

拷贝数据库文件 首先在本地运行如下SQL语句&#xff0c;查看数据库文件的磁盘位置 SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files默认是保存在C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA目录下 首先复制数据…

Ansible常用模块详解(附各模块应用实例和Ansible环境安装部署)

目录 一、ansible概述 1、简介 2、Ansible主要功能&#xff1a; 3、Ansible的另一个特点&#xff1a;所有模块都是幂等性 4、Ansible的优点&#xff1a; 5、Ansible的四大组件&#xff1a; 二、ansible环境部署&#xff1a; 1、环境&#xff1a; 2、安装ansible&#…

浅析RoPE旋转位置编码的远程衰减特性

为什么 θ i \theta_i θi​的取值会造成远程衰减性 旋转位置编码的出发点为&#xff1a;通过绝对位置编码的方式实现相对位置编码。 对词向量 q \boldsymbol{q} q添加绝对位置信息 m m m&#xff0c;希望找到一种函数 f f f&#xff0c;使得&#xff1a; < f ( q , m ) …

MySQL数据库——SQL语法

Structured Query Language&#xff08;结构化查询语言&#xff09;&#xff0c;简称SQL&#xff0c;是用于操作关系型数据库的标准编程语言。SQL提供了一种与数据库交互的方式&#xff0c;可以用于查询、插入、更新和删除数据库中的数据。 1. SQL通用语法 SQL语句可以写在一…

持续集成交付CICD:K8S 手动完成前端项目应用发布与回滚

目录 一、实验 1.环境 2.Harbor查看镜像与连接K8S节点 3.K8S集群部署 nginx-ingress-controller 4. Jenkins 通过GitLab共享库 实现前端项目镜像构建 5.K8S node节点拉取镜像 6.K8S master节点更新部署文件 7.前端项目应用回滚 一、实验 1.环境 &#xff08;1&#x…

Android 架构 - 组件化

一、概念 组件化是对单个功能进行开发&#xff0c;使得功能可以复用。将多个功能组合起来就是一个业务模块&#xff0c;因此去除了模块间的耦合&#xff0c;使得按业务划分的模块成了可单独运行的业务组件。&#xff08;一定程度上的独立&#xff0c;还是依附于整个项目中&…

EXCEL VLOOKUP函数

参考资料 Excel&#xff1a;史上最全的VLOOKUP应用教程VLOOKUP函数最全面最详细的讲解大全&#xff0c;涵盖17个重要和常见用法&#xff01; 目录 零. 前提条件一. 单条件查找1.1 顺向查找1.2 逆向查找 二. 多条件查找2.1 顺向查找2.2 逆向查找 三. 根据条件查询等级四. 交差查…

RHCE8 资料整理(十一)

RHCE8 资料整理 第 32 章 控制语句32.1 判断语句 when32.1.1 when 判断中>、<、!和的使用32.1.2 when 判断中 in的用法32.1.3 when 判断中 is的用法 32.2 判断语句 block-rescue32.3 循环语句 第 32 章 控制语句 一个play中可以包含多个task&#xff0c;如果不想所有的t…

DriveWorks Solo捕获参数(三)

捕获参数 - 木门和矩形窗 木质门 下一个组件是木门本身。除了尺寸之外&#xff0c;门还具有需要控制的功能。 让我们首先捕获尺寸。 通过单击“捕获资源管理器”中的标题来激活“捕获的模型”部分。 双击任务窗格树中的模型木门以在 SOLIDWORKS 中将其打开。捕获以下尺寸。…

多维时序 | MATLAB实现WOA-CNN-LSTM-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现WOA-CNN-LSTM-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现WOA-CNN-LSTM-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现WOA-CNN-LST…

零基础也能制作家装预约咨询小程序

近年来&#xff0c;随着互联网的快速发展&#xff0c;越来越多的消费者倾向于使用手机进行购物和咨询。然而&#xff0c;许多家装实体店却发现自己的客流量越来越少&#xff0c;急需一种新的方式来吸引顾客。而开发家装预约咨询小程序则成为了一种利用互联网技术来解决这一问题…

【设计模式--结构型--适配器模式】

设计模式--结构型--适配器模式 适配器模式概述结构案例类适配器模式对象适配器模式 应用场景 适配器模式 概述 将一个类的接口转换成客户希望的另一个接口&#xff0c;使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式分为类适配器模式和对象适配器模式…

Java解决不同路径问题2

Java解决不同路径问题2 01题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑网格中…

RUST与RUSTful简介

RUST与RUSTful 1、背景2、RUST的起源3、RUST与RUSTful4、总结 1、背景 随着互联网&#xff08;Internet&#xff09;的发展&#xff0c;越来越多的人开始意识到&#xff0c;网站即软件&#xff0c;而且是一种新型的软件。这种"互联网软件"采用客户端/服务器&#xff…

服务器数据恢复-raid5故障导致上层分区无法访问的数据恢复案例

服务器数据恢复环境&故障&#xff1a; 一台服务器上3块硬盘组建了一组raid5磁盘阵列。服务器运行过程中有一块硬盘的指示灯变为红色&#xff0c;raid5磁盘阵列出现故障&#xff0c;服务器上层操作系统的分区无法识别。 服务器数据恢复过程&#xff1a; 1、将故障服务器上磁…

机器学习算法--朴素贝叶斯(Naive Bayes)

实验环境 1. python3.7 2. numpy > 1.16.4 3. sklearn > 0.23.1 朴素贝叶斯的介绍 朴素贝叶斯算法&#xff08;Naive Bayes, NB) 是应用最为广泛的分类算法之一。它是基于贝叶斯定义和特征条件独立假设的分类器方法。NB模型所需估计的参数很少&#xff0c;对缺失数据不…