PTA--《面线对象程序设计》作业3-继承与多态

目录

一:函数题

6-2 长方形长方体类:

6-1 从抽象类shape类扩展出一个圆形类Circle

二:编程题

7-1:周长计算器


 一:函数题

6-2 长方形长方体类:

定义一个长方形类Rectangle,拥有长、宽属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()
定义一个子类长方体类,拥有长、宽、高属性,提供构造函数,getPerimeter函数计算所有边的周长,getArea函数计算表面积,新增getVolume函数,计算体积
在main函数中,分别构造长方形类和长方体类的对象,并输出他们的周长、面积、体积,保留两位小数

裁判测试程序样例:

import java.util.Scanner;
public class Main{public static void main(String[] args) {Scanner scan = new Scanner(System.in);      double length = scan.nextDouble();double wide = scan.nextDouble();Rectangle r = new Rectangle(length,wide);System.out.printf("%.2f ",r.getPerimeter());System.out.printf("%.2f",r.getArea());
System.out.println();length = scan.nextDouble();wide = scan.nextDouble();double height = scan.nextDouble();Cuboid  c = new Cuboid (length, wide, height);System.out.printf("%.2f ",c.getPerimeter());System.out.printf("%.2f ",c.getArea());System.out.printf("%.2f",c.getVolume());scan.close(); }
}/* 你的代码被嵌在这里 */

答案代码:

 class Rectangle{double length;double wide;public Rectangle(double length,double wide){this.length=length;this.wide=wide;}public double getPerimeter(){return (length+wide)*2;}public double getArea(){return (length*wide);}}class Cuboid extends Rectangle{double height;public Cuboid(double length,double wide,double height){super(length,wide);this.height=height;}@Overridepublic double getPerimeter(){return (length+wide+height)*4;}@Overridepublic double getArea(){return (wide*height+height*length+wide*length)*2;}public double getVolume(){return length*wide*height;}
}

6-1 从抽象类shape类扩展出一个圆形类Circle

请从下列的抽象类shape类扩展出一个圆形类Circle,这个类圆形的半径radius作为私有成员,类中应包含初始化半径的构造方法

裁判测试样例:

import java.util.Scanner;
import java.text.DecimalFormat;abstract class shape {// 抽象类/* 抽象方法 求面积 */public abstract double getArea( );/* 抽象方法 求周长 */public abstract double getPerimeter( );
}/* 你提交的代码将被嵌入到这里 */public class Main {public static void main(String[] args) {Scanner input = new Scanner(System.in);DecimalFormat d = new DecimalFormat("#.####");// 保留4位小数double r = input.nextDouble( ); shape c = new  Circle(r);System.out.println(d.format(c.getArea()));System.out.println(d.format(c.getPerimeter()));input.close();} 
}

答案代码:

class Circle extends shape{
private double radius;
public Circle(double radius){
this.radius =radius;
}public double getArea(){
return Math.PI *radius*radius;
}
public double getPerimeter( ) {
return 2*Math.PI*radius;
}
}

二:编程题

7-1:周长计算器

1、定义一个接口 Shape 用于表示图形,其包含一个 double  length() 的方法用于求周长。
2、定义三角形类 Triangle 、长方形类 Rectangle 、圆形类Circle分别实现接口 Shape 
3、定义测试类ShapeTest并使用 Shape接口定义变量shape,用其指向不同类形的对象,输出各种图形的周长。

提示:
1、计算圆周长时PI取3.14即可;
2、需要判断能否构成三角形(任意两个边的和大于第三边),不能构成三角形的话周长为0。

答案代码如下:

import java.util.Scanner;
class Shape{public double length(){return 0.0;}
}
class Triangle extends Shape{private double a;private double b;private double c;Triangle(double a,double b,double c){if(a>0&&b>0&&c>0&&(a+b)>c&&(b+c)>a&&(a+c)>b){this.a=a;this.b=b;this.c=c;}else {this.a=0.0;this.b=0.0;this.c=0.0;  }} public  double  length(){return a+b+c;}}
class Rectangle extends Shape{private double a;private double b;Rectangle(double a,double b){if(a>0&&b>0){this.a=a;this.b=b;}else {this.a=0.0;this.b=0.0;}}public   double  length(){return 2*(a+b);}
}
class Circle extends Shape{private double a;Circle(double a){if(a>0){this.a=a;}else {this.a=0.0;}}public  double  length(){return 2*3.14*a;}
}
public class Main{public  static void main(String[] args){Scanner sc=new Scanner(System.in);
}

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

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

相关文章

定时发圈操作介绍

1、登陆已有的账号,点击到"朋友圈"功能 2、选择要发圈的微信号,编辑发圈的文案内容 3、自定义想要的时间点 4、点击"立即发送" 5、可进行跟圈

【JavaScript】eval

JavaScript 中的 eval() 是一个全局函数,它接受一个字符串参数,并将其作为 JavaScript 代码进行解析和执行;如果接收的不是一个字符串,则会将传入的数据直接返回。 eval 的基本用法: eval() 函数将传入的字符串参数作为…

深度解析 Spring 源码:解密AOP切点和通知的实现机制

文章目录 深度解析 Spring 源码:解密AOP切点和通知的实现机制一、Spring AOP的基础知识1.1 AOP的核心概念:切点、通知、切面等1.2 Spring AOP与传统AOP的区别和优势 二、深入分析切点和通知的实现2.1 研究 Pointcut 接口及其实现类2.1.1 Pointcut 接口2.…

powershell 防止休眠或屏幕关闭并定时截屏保存

powershell 防止休眠或屏幕关闭 01 前言 因工作需要,需要在用户的机器上进行操作,有些工作比较耗时、耗CPU,配置也不高,因而就不能用这台机器同时干太多活,又不能干盯着啥也干不了,但是一段时间不操作&am…

巩固学习9

show-me-the-code题目001 #做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)? import random a…

延迟队列有哪些

延迟队列 与时间相关场景的应用,经常用于延后多少时间执行什么任务。 java 自带延迟队列 class Solution {public static void main(String[] args) throws InterruptedException {DelayQueue<DelayMealTask> queue = new DelayQueue<>();DelayMealTask task =…

MySQL存储过程练习

DDL CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT COMMENT 学号,createDate datetime DEFAULT NULL,userName varchar(20) DEFAULT NULL,pwd varchar(36) DEFAULT NULL,phone varchar(11) DEFAULT NULL,age tinyint(3) unsigned DEFAULT NULL,sex char(2) DEFAU…

数据库审计系统Yearning使用笔记

一、启动 1、初始化MySQL 启动mysql docker run -d --namemysql -p 3306:3306 -e MYSQL_ROOT_PASSWORDroot mysql:5.7创建数据库&#xff0c;链接数据库并执行以下创建库的脚步&#xff0c;注意字符集 create database yearning char set utf8mb42、启动Yeelabs 需要执行…

CDGA|揭秘移动物联网数据治理秘诀,轻松提升数据质量,赋能智慧未来

在数字化浪潮汹涌的今天&#xff0c;移动物联网作为连接物理世界与数字世界的桥梁&#xff0c;其数据治理的重要性日益凸显。高质量的数据不仅是企业决策的基石&#xff0c;更是推动行业智能化、精细化发展的关键。本文将为您揭秘移动物联网数据治理的技巧&#xff0c;助您轻松…

如何设计实用的ITSM自助服务台

在现代IT服务管理&#xff08;ITSM&#xff09;领域中&#xff0c;自助服务台已成为IT运维环境的核心组件。它作为企业内部信息中心与其他部门用户之间的桥梁&#xff0c;一个以用户为中心的平台&#xff0c;更注重用户的自主性和自助能力&#xff0c;使用户能够直接访问所需的…

微软宣布GPT-4o模型,可在 Azure OpenAI上使用

5月14日&#xff0c;微软在官网宣布&#xff0c;OpenAI最新发布的多模态模型GPT-4o&#xff0c;可以在 Azure OpenAI 云服务中使用。 据悉&#xff0c;GPT-4o支持跨文本、视频、音频多模态推理&#xff0c;例如&#xff0c;通过GPT-4o打造一个AI助手&#xff0c;用于辅导孩子解…

halcon学习之形状匹配

算子 create_shape_model&#xff08;&#xff09; 创建一个用于匹配的形状模型 create_shape_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, Contrast, MinContrast : ModelID) 参数 Template&#xff1a; NumLevels&#…

基于NIOS-II软核流水灯和串口通信实现

文章目录 一、创建工程二、系统设计1. 在 “component library” 标签栏中找到 “Nios II Processor” 后点击 Add2. 在 ”Component Library” 标签栏中的查找窗口输入 jtag 找到 ”JTAG UART ”&#xff0c;然后点击 Add3. 添加片上存储器 On-Chip Memory(RAM)核4. 查找窗口输…

做简单易用的GIS资源管理软件

在室外资源管理领域&#xff0c;采用基于GIS的解决方案已成为主流趋势&#xff0c;旨在实现资源的高效利用和管理。GIS技术结合资源对象的规划、定位和监控&#xff0c;为企业提供全面的管理方案&#xff0c;从而优化资源使用、提高运营效率和降低成本。 然而&#xff0c;许多资…

龙迅LT8911EX LVDS桥接到EDP,支持4K30HZ分辨率

龙迅LT8911EX描述&#xff1a; Lontium LT8911EX是LVDS到eDP转换器&#xff0c;具有单端口或双端口可配置的LVDS接收器&#xff0c;有1个时钟通道和最多8个数据通道&#xff0c;每个数据通道最大运行1.2Gbps&#xff0c;最大输入带宽为9.6Gbps。转换器将输入LVDS数据去序列化&…

OpenNJet产品体验:探索无限可能

文章目录 前言一、OpenNJet是什么&#xff1f;二、OpenNJet特性和优点三、OpenNJet功能规划四、OpenNJet快速上手五、OpenNJet的使用总结 前言 现代社会网络高速发展&#xff0c;同时也迎来了互联网发展的高峰&#xff0c;OpenNJet作为一个基于NGINX的面向互联网和云原生应用提…

掏心经验分享,软考中项0基础入门篇!

想备考下半年中项&#xff08;系统集成项目管理工程师&#xff09;的朋友&#xff0c;不知道如何了解软考中项&#xff0c;今天给大家整理一篇关于我自己在备考软考时的一些考量和踩过的一些坑。&#xff08;无广&#xff0c;放心看&#xff09; 很多小伙伴总是听大家说软考中…

NGM-SLAM:首创融合神经辐射场子图的3DGS-SLAM,问鼎SOTA!

论文标题&#xff1a; NGM-SLAM: Gaussian Splatting SLAM with Radiance Field Submap 论文作者&#xff1a; Mingrui Li, Jingwei Huang, Lei Sun Aaron, Xuxiang Tian, Tianchen Deng, Hongyu Wang 导读&#xff1a; 3DGS技术因其性能卓越而备受关注&#xff0c;3DGS-SLA…

uniapp微信小程序通过萤石云接入海康摄像机

需求&#xff1a;在uniapp微信小程序上查看海康威视的摄像机监控视频和和操作摄像机拍摄方向 在萤石云接入海康摄像机设备&#xff0c;由于不同品牌设备在不同时间段接入方式可能不一致&#xff0c;具体接入方式查看官方文档或咨询官方客服。 海康摄像机官方客服热线&#xf…

stack、queue、priority_queue以及仿函数

我们上次对std中的list进行实现&#xff0c;今天我们要实现stack、queue、priority_queue以及仿函数。 目录 stack堆堆的框架构造函数push插入pop删除size()大小empty()判断空top()取栈顶的元素 queue队列队列框架问题&#xff1a; 这里我们为什么用deque? 插入删除取头数据取…