2024秋面向对象程序设计pta-实验二

6-1

设计一个矩形类Rectangle

 

class Rectangle{

double width=1;

double height= 1;

public Rectangle(){}

public Rectangle(double width, double height){

this.width=width;

this.height=height;}

public double getArea(){

return width*height;}

public double getPerimeter(){

return 2*(width+height);}

}

6-2 Book类的设计 

class Book {

private String title; // 书籍名称

private int price; // 价格

private String author; // 作者

private int year; // 出版年份

// 构造方法

public Book(String title, int price, String author, int year) {

this.title = title;

this.price = price;

this.author = author;

this.year = year;

}

// Getter 和 Setter 方法

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public int getPrice() {

return price;

}

public void setPrice(int price) {

this.price = price;

}

public String getAuthor() {

return author;

}

public void setAuthor(String author) {

this.author = author;

}

public int getYear() {

return year;

}

public void setYear(int year) {

this.year = year;

}

}

 

6-3:根据派生类写出基类(Java)

 

public People() {

// 默认值

}

// 带参数的构造方法

public People(String id, String name) {

this.id = id;

this.name = name;

}

// 设置id

public void setId(String id) {

this.id = id;

}

// 设置name

public void setName(String name) {

this.name = name;

}

// 获取id

public String getId() {

return id;

}

// 获取name

public String getName() {

return name;

}

// say方法

public void say() {

System.out.println("I'm a person! My name is " + this.name + ".");

}

  

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

 

class Circle extends shape{

private double radius;

public Circle(double r){

radius=r;

}

public double getArea(){

return Math.PI*radius*radius;

}

public double getPerimeter(){

return 2*Math.PI*radius;

}

}

6-5 图书和音像租赁

 

abstract class Media{

public static int day;

public abstract double getDailyRent();

}

class Book extends Media{

private String name;

private double price;

public Book(String name,double price){

this.name=name;

this.price=price;

}

public double getDailyRent(){

return price*day*0.01;

}

}

class DVD extends Media{

private String name;

public DVD(String name){

this.name=name;

}

public double getDailyRent(){

return day;

}

}

class MediaShop{

public static double total;

public static double calculateRent(Media[] ms,int a){

Media.day=a;

for(Media c:ms){

total+=c.getDailyRent();

}

return total;

}

}

 

6-6 设计一个Triangle类继承自GeometricObject类

 

class Triangle extends GeometricObject {

private double side1 = 1.0;

private double side2 = 1.0;

private double side3 = 1.0;

// 无参构造方法

public Triangle() {

}

// 带参数的构造方法

public Triangle(double side1, double side2, double side3) {

this.side1 = side1;

this.side2 = side2;

this.side3 = side3;

}

// 访问器方法

public double getSide1() {

return side1;

}

public double getSide2() {

return side2;

}

public double getSide3() {

return side3;

}

// 计算三角形的面积

public double getArea() {

double s = getPerimeter() / 2; // 半周长

return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)); // 海伦公式

}

// 计算三角形的周长

public double getPerimeter() {

return side1 + side2 + side3;

}

// 返回三角形的字符串描述

@Override

public String toString() {

return "Triangle: side1=" + side1 + " side2=" + side2 + " side3=" + side3;

}

}

 

6-7 职工工资-继承-bk 

class HourlyWorker extends Worker {

public HourlyWorker(String name, double rate) {

super(name, rate);

}

@Override

public double pay(int hour) {

if (hour <= 40) {

return hour * getRate(); // 正常工时

} else {

double regularPay = 40 * getRate(); // 前40小时

double overtimePay = (hour - 40) * getRate() * 2; // 加班费(双倍)

return regularPay + overtimePay; // 总工资

}

}

}

class SalariedWorker extends Worker{

public SalariedWorker(String name,double rate){

super(name,rate);

}

public double pay() {

return 40 * getRate();

}

public double pay(int hour) {

return pay(); // 始终返回40小时的工资

}

}

 

6-8 快递计价器 

abstract class Express{

public int weight;

public int getWeight(){return weight;}

public Express(int a){

weight=a;}

public abstract int getTotal();

}

class SLExpress extends Express{

public SLExpress(int a){

super(a);

}

public int getTotal(){

return 12+(weight-1)*2;

}

}

class DDExpress extends Express{

public DDExpress(int a){

super(a);

}

public int getTotal(){

return 5+(weight-1);

}

}

class CaicaiStation{

static int count;

public static int calculate(Express[] ex){

for(Express c:ex){

count+=c.getTotal();

}

return count;

}

}

 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

en造数据结构与算法C# 用Unity实现简单的群组行为算法 之 对齐

en造数据结构与算法C# 用Unity实现简单的群组行为算法 之 聚集-CSDN博客 en造数据结构与算法C# 用Unity实现简单的群组行为算法 之 聚集-CSDN博客 演示 思路 1.检测 自然是沿用前两节的检测范围 2.对齐朝向 对齐朝向就是邻居鸟的forward加起来再除总数得到平均数 3.对齐…

3657A/B/AM/BM矢量网络分析仪

苏州新利通 3657A/B/AM/BM 矢量网络分析仪 3657系列矢量网络分析仪适用于无线通信、有线电视、教育及汽车电子等领域&#xff0c;可用于对滤波器、放大器、天线、电缆、有线电视分接头等射频元件的性能测量。该产品采用Windows操作系统&#xff1b;具有误差校准功能、时域功能…

MySQL中的LIMIT与ORDER BY关键字详解

前言 众所周知&#xff0c;LIMIT和ORDER BY在数据库中&#xff0c;是两个非常关键并且经常一起使用的SQL语句部分&#xff0c;它们在数据处理和分页展示方面发挥着重要作用。 今天就结合工作中遇到的实际问题&#xff0c;回顾一下这块的知识点。同时希望这篇文章可以帮助到正…

How can I stream a response from LangChain‘s OpenAI using Flask API?

题意&#xff1a;怎样在 Flask API 中使用 LangChain 的 OpenAI 模型流式传输响应 问题背景&#xff1a; I am using Python Flask app for chat over data. In the console I am getting streamable response directly from the OpenAI since I can enable streming with a f…

JZ2440开发板——S3C2440的UART

以下内容源于韦东山课程的学习与整理&#xff0c;如有侵权请告知删除。 一、UART硬件简介 UART&#xff0c;全称是“Universal Asynchronous Receiver Transmitter”&#xff0c;即“通用异步收发器”&#xff0c;也就是我们日常说的“串口”。 它在嵌入式中用途非常广泛&…

一文彻底让你搞懂轨迹规划(总结)

机器人在运行中不可避免的会进行运动&#xff0c;那么就会产生出轨迹规划的概念。 轨迹规划的特点&#xff1a;用一定的函数形式表示控制量&#xff08;位置&#xff0c;速度&#xff0c;加速度&#xff09;的控制律&#xff0c;根据约束或最优目标&#xff0c;求取控制控制参…

STM32固件库介绍

CMSIS标准介绍 早期的标准库叫STD 不管是hal库还是标准库都是封好库然后给我们使用的 标准库可能兼容不了F1 F4 F7 但是用HAL库就能够兼容那么多 我们可以用cubex来配置一个工程 固件库文件夹介绍 CMSIS的启动文件&#xff0c;RTOS实时操作系统文件 外设驱动文件 Inc外设的头…

Java面试篇基础部分-ReentrantLock详解

ReentrantLock 是继承了Lock接口,并且实现了再接口中定义的方法,属于一个可重入的独占锁。ReentrantLock 通过自定义队列同步器(Abstract Queued Synchroinzed,AQS)来实现锁的获取与释放。   那么什么是独占锁呢?独占锁就是指这个锁在同一时刻只能被一个线程所获取到,…

《关键跃升》读书笔记9

最后一章 《协作》部分 如果你只交代员⼯⼀件事还好&#xff0c;做到靠谱并不难&#xff0c;但如果你交代他3件 事、5件事、8件事甚⾄20件事&#xff0c;这就会带来两个问题。 第⼀&#xff0c;从数量上说&#xff0c;根据⽶勒法则&#xff0c;⼀个⼈的⼤脑最多能同时记住⼤ 约…

网络资源模板--Android Studio 通讯录App

目录 一、项目演示 二、项目测试环境 三、项目详情 四、完整的项目源码 一、项目演示 网络资源模板--基于Android studio 通讯录 二、项目测试环境 三、项目详情 首页 MainActivity 类是一个 Android 地址簿应用的核心部分&#xff0c;负责管理联系人列表的显示、搜索和添…

Java | Leetcode Java题解之第421题数组中的两个数的最大异或值

题目&#xff1a; 题解&#xff1a; class Solution {// 字典树的根节点Trie root new Trie();// 最高位的二进制位编号为 30static final int HIGH_BIT 30;public int findMaximumXOR(int[] nums) {int n nums.length;int x 0;for (int i 1; i < n; i) {// 将 nums[i…

Element Plus 中Input输入框

通过鼠标或键盘输入字符 input为受控组件&#xff0c;他总会显示Vue绑定值&#xff0c;正常情况下&#xff0c;input的输入事件会正常被响应&#xff0c;他的处理程序应该更新组件的绑定值&#xff08;或使用v-model&#xff09;。否则&#xff0c;输入框的值将不会改变 不支…

Nginx配置虚拟主机

基于域名的虚拟主机 修改配置 进入nginx里的conf目录 修改nginx配置文件nginx.conf vi nginx.conf worker_processes auto;(自动识别CPU数) worker_rlimit_nofile 20480;&#xff08;指定 worker 子进程可以打开的最大文件句柄数&#xff0c;默认为1024&#xff09; use …

【有啥问啥】摄像头成像质量量化标准解读与测试方法

摄像头成像质量量化标准解读与测试方法 在自动驾驶和智能驾驶舱领域&#xff0c;摄像头是关键的感知设备&#xff0c;直接关系到系统的环境感知能力。为确保摄像头在实际应用中表现出色&#xff0c;需明确了解其成像质量标准和测试方法。本文将围绕成像质量的核心指标、测试方…

103.运行tomcat的Tomcatstartup.bat时,终端打印的中文显示为乱码

目录 原因 解决方法 原因 当运行Tomcat的Tomcatstartup.bat时&#xff0c;如果终端中文显示为乱码&#xff0c;这通常是因为Tomcat使用的日志输出编码与Windows命令行默认的编码不匹配。 解决方法 针对这一问题&#xff0c;你可以尝试以下步骤来解决&#…

2024年9月第3周AI资讯

阅读时间&#xff1a;3-4min 更新时间&#xff1a;2024.9.16-2024.9.20 目录 OpenAI 推出 o1&#xff1a;一种新的“推理”人工智能模型 微软为 Excel 和 Word 添加了更快的 Copilot World Labs 利用 AI 创建 3D 世界 AI 利用文本创建开放世界视频游戏 OpenAI 推出 o1&#x…

【源码+文档+调试讲解】微信小程序的投票系统

摘 要 伴随着我国社会的发展&#xff0c;人民生活质量日益提高。于是对各种需求进行规范而严格是十分有必要的&#xff0c;所以许许多多的微信小程序应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套微信小程序的投票系统&#xff0c;进行作品信…

Vue3DevTools7是如何在vscode定位指定文件位置的?

Vue3DevTools7是如何在vscode定位指定文件位置的&#xff1f; 背景 今天在使用vue脚手架创建项目的时候&#xff0c;并发现一个新的&#xff08;实验中的新功能&#xff09;&#xff0c;可以直接在我们的项目中集成Vue DevTools插件&#xff0c;浏览器插件devtools即将成为历史…

JAVA毕业设计178—基于Java+Springboot+vue的智能家具管理系统(源代码+数据库+万字论文)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue的智能家具管理系统(源代码数据库万字论文)178 一、系统介绍 本项目前后端分离(可以改为ssm版本)&#xff0c;分为用户、管理员两种角色 1、用户&#xff1…

带你0到1之QT编程:十四、QV/HBoxLayout和QStatckedWidget双剑合璧

此为QT编程的第十四谈&#xff01;关注我&#xff0c;带你快速学习QT编程的学习路线&#xff01; 每一篇的技术点都是很很重要&#xff01;很重要&#xff01;很重要&#xff01;但不冗余&#xff01; 我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点&#xff01; …