Java语言程序设计与数据结构(基础篇)课后练习题 第十三章(一)

2023-05-16

13.1

package dishisanzhang;

import java.util.Date;

public class GeometricObject {

private String color = "white";
private boolean filled;
private Date dateCreated;

public GeometricObject() {
	dateCreated = new Date();
}

public GeometricObject(String color, boolean filled) {
	dateCreated = new Date();
	this.color = color;
	this.filled = filled;
}

public String getColor() {
	return color;
}

public void setColor(String color) {
	this.color = color;
}

public boolean isFilled() {
	return filled;
}

public void setFilled(boolean filled) {
	this.filled = filled;
}

public Date getDatecreated() {
	return dateCreated;
}

public String toString() {
	return "Created on: " + dateCreated + "\nColor: " + color + "\nFilled: " + filled;
}

}

package dishisanzhang;

import java.util.Scanner;

public 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 void setSide1(double side1) {
	this.side1 = side1;
}

public double getSide1() {
	return side1;
}

public void setSide2(double side2) {
	this.side2 = side2;
}

public double getSide2() {
	return side2;
}

public void setSide3(double side3) {
	this.side3 = side3;
}

public double getSide3() {
	return side3;
}

public double getArea() {
	double result;
	double s = (side1 + side2 + side3) / 2;
	result = Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
	return result;
}

public double getPerimeter() {
	return side1 + side2 + side3;
}

public String toString() {
	return "Triangle:side1=" + side1 + "side2=" + side2 + "side3=" + side3;
}

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Scanner input = new Scanner(System.in);
	Triangle triangle = new Triangle();
	System.out.print("Enter three sides: ");
	double side1 = input.nextDouble();
	double side2 = input.nextDouble();
	double side3 = input.nextDouble();
	triangle = new Triangle(side1, side2, side3);
	System.out.print("Enter the color of the triangle: ");
	input.nextLine();
	String color = input.nextLine();
	System.out.print("Enter whether to fill: ");
	boolean filled = input.nextBoolean();
	triangle.setColor(color);
	triangle.setFilled(filled);

	System.out.println("Area: " + triangle.getArea());
	System.out.println("Perimeter: " + triangle.getPerimeter());
	System.out.println("Color: " + triangle.getColor());
	System.out.println("Filled: " + filled);

}

}

13.2

package dishisanzhang;

import java.util.ArrayList;
import java.util.Arrays;

public class dishisanzhang {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Integer[] n = {1,2,3,4,5,6};
	ArrayList<Number> list = new ArrayList<>(Arrays.asList(n));
	shuffle(list);
	System.out.println(list);
}

public static void shuffle(ArrayList<Number> list){
	Number tmp;
	for(int i=0;i<list.size();i++){
		int tmp1 = (int)(Math.random()*(list.size()));
		tmp = list.get(i);
		list.set(i, list.get(tmp1));
		list.set(tmp1, tmp);
	}
}

}

13.3

package dishisanzhang;

import java.util.ArrayList;
import java.util.Arrays;

public class dishisanzhang {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Integer[] n = {1, 5, 6, 4, 3, 2};
	ArrayList<Number> list = new ArrayList<>(Arrays.asList(n));
	sort(list);
	System.out.println(list);
}

public static void sort(ArrayList<Number> list){
	Number tmp; //下面是一个冒泡排序
	for(int i=0;i<list.size()-1;i++)
		for(int j=0;j<list.size()-i-1;j++)
			if((int)(list.get(j+1))<(int)(list.get(j))){
				tmp = list.get(j);
				list.set(j, j+1);
				list.set(j+1, tmp);
			}
}

}

13.4

看清单!

13.5

package dishisanzhang;

import java.util.Date;

public abstract class GeometricObject implements Comparable< GeometricObject >{

private String color;
private boolean filled;
private Date dateCreated;

protected GeometricObject(){
	dateCreated = new Date();
}

protected GeometricObject(String color,boolean filled){
	this.color = color;
	this.filled = filled;
	dateCreated = new Date();
}

public String getColor(){
	return color;
}

public void setColor(String color){
	this.color = color;
}

public boolean isFilled(){
	return filled;
}

public void setFilled(boolean filled){
	this.filled = filled;
}

public Date getDateCreated(){
	return dateCreated;
}

@Override
public String toString(){
	return "Create on "+dateCreated+"\nColor: "+color+"\n and Filled"+filled;
}

@Override
public int compareTo(GeometricObject o){
	if (getArea() < o.getArea())
    {
        return -1;
    }
    else if (getArea() > o.getArea())
    {
        return 1;
    }
    else
        return 0;
}

public static GeometricObject max(GeometricObject o1,GeometricObject o2){
	if (o1.compareTo(o2) > 0)
    {
        return o1;
    }
    else
        return o2;
}

public abstract double getArea();
public abstract double getPerimeter();

}

package dishisanzhang;

public class Rectangle extends GeometricObject {

private double width;
private double height;

public Rectangle() {
}

public Rectangle(double width, double height) {
	this(width, height, "white", false);
}

public Rectangle(double width, double height, String color, boolean filled) {
	super(color, filled);
	this.width = width;
	this.height = height;
}

public double getWidth() {
	return width;
}

public void setWidth(double width) {
	this.width = width;
}

public double getHeight() {
	return height;
}

public void setHeight(double height) {
	this.height = height;
}

@Override
public double getArea() {
	return width * height;
}

@Override
public double getPerimeter() {
	return 2 * (width + height);
}

@Override
public String toString() {
	return "\nRectangle Width: " + getWidth() + " and Height: " + getHeight();
}

}

package dishisanzhang;

public class Circle extends GeometricObject {

private double radius;

public Circle() {
}

public Circle(double radius) {
	this(radius, "white", false);
}

public Circle(double radius, String color, boolean filled) {
	super(color, filled);
	this.radius = radius;
}

public double getRadius() {
	return radius;
}

@Override
public double getArea() {
	return radius * radius * Math.PI;
}

@Override
public double getPerimeter() {
	return 2 * radius * Math.PI;
}

@Override
public String toString() {
	return "\nCircle Radius : " + getRadius();
}

}

package dishisanzhang;

public class dishisanzhang {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Rectangle r1 = new Rectangle(1,2);
	Rectangle r2 = new Rectangle(2,3);
	System.out.println("The Max: "+GeometricObject.max(r1, r2));
	
	Circle c1 = new Circle(2);
	Circle c2 = new Circle(3);
	System.out.println("The Max: "+GeometricObject.max(c1, c2));
	
}

}

13.6

package dishisanzhang;

public class Circle {

private double radius = 1.0;

public Circle() {
	radius = 1.0;
}

public Circle(double radius) {
	this.radius = radius;
}

public double getArea() {
	return radius * radius * Math.PI;
}

}

package dishisanzhang;

public class ComparableCircle extends Circle implements Comparable< ComparableCircle > {

public ComparableCircle() {
	super();
}

public ComparableCircle(double radius) {
	super(radius);
}

@Override
public int compareTo(ComparableCircle o) {
	if (this.getArea() > o.getArea()) {
		return 1;
	} else if (this.getArea() < o.getArea()) {
		return -1;
	} else
		return 0;
}

}

package dishisanzhang;

public class dishisanzhang {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	ComparableCircle c1 = new ComparableCircle(2.0);
	ComparableCircle c2 = new ComparableCircle(3.0);
	if (c1.compareTo(c2) > 0)
		System.out.println("c1 > c2");
	else if (c1.compareTo(c2) == 0)
		System.out.println("c1 = c2");
	else
		System.out.println("c1 < c2");

}

}

13.7

package dishisanzhang;

import java.util.Date;

public abstract class GeometricObject {
private String color;
private boolean filled;
private Date dateCreated;

protected GeometricObject(){
	dateCreated = new Date();
}

protected GeometricObject(String color,boolean filled){
	this.color = color;
	this.filled = filled;
	dateCreated = new Date();
}

public String getColor(){
	return color;
}

public void setColor(String color){
	this.color = color;
}

public boolean isFilled(){
	return filled;
}

public void setFilled(boolean filled){
	this.filled = filled;
}

@Override
public String toString(){
	return "Created on "+dateCreated+"\nColor: "+color+"\nFilled: "+filled;
}

public abstract double getArea();

public abstract double getPerimeter();

}

package dishisanzhang;

interface Colorable {

public abstract void howToColor();

}

package dishisanzhang;

public class Square extends GeometricObject implements Colorable{

private double width;
private double height;

public Square(){
}
public Square(double width,double height){
	this(width,height,"white",false);
}

public Square(double width, double height, String color, boolean filled) {
    super(color, filled);
    this.width = width;
    this.height = height;
}

@Override
public double getArea() {
    return width * height;
}

@Override
public double getPerimeter() {
    return 2 * (width + height);
}

@Override
public void howToColor(){
	System.out.println("Color all four sides");
}

@Override
public String toString(){
	if(super.isFilled())
		howToColor();
	return super.toString();
}

}

package dishisanzhang;

import java.util.Scanner;

public class dishisanzhang {

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Scanner input = new Scanner(System.in);
    GeometricObject[] squares = new Square[5];

    for (int i = 0; i < 5; i++) {
        System.out.println(i + ":Square ");
        System.out.print("\tEnter width: ");
        double width = input.nextDouble();
        System.out.print("\tEnter height: ");
        double height = input.nextDouble();
        System.out.print("\tEnter Color: ");
        String color = input.next();
        System.out.print("\tIs Filled: ");
        boolean filled = input.nextBoolean();
        squares[i] = new Square(width, height, color, filled);
    }

    for (int i = 0; i < 5; i ++) {
        System.out.println(squares[i].toString());
        System.out.println();
    }
}

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java语言程序设计与数据结构(基础篇)课后练习题 第十三章(一) 的相关文章

  • IdeaVim插件使用技巧

    在 url 61 http kidneyball iteye com blog 1814028 IDEA Intellij小技巧和插件 url 一文中简单介绍了一下IdeaVim插件 在这里详细总结一下这个插件在日常编程中的一些常用小技巧
  • 机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾

    作者 xff1a 寒小阳 amp amp 龙心尘 时间 xff1a 2015年11月 出处 xff1a http blog csdn net han xiaoyang article details 49797143 声明 xff1a 版权
  • Android 获取系统设置参数。

    转载自 xff1a http blog 163 com fang wang2005 blog static 176928073201136105613638 如何获取Android系统设置参数 下面以获取时间格式为例 xff0c 来判断时间
  • linux下默认删除文件到回收站(bash实现)

    fedora下总是会把文件不小心删除了 xff0c 所以下面的脚本把实现 xff1a 文件删除默认移动到自己的回收站里面 功能 xff1a 脚本实现删除文件或者目录到 waste xff08 自己定义 xff09 脚本附带文件名或者目录名
  • android 开机启动程序

    做一个android开机就会自动启动的程序 xff0c 该程序只要启动一次 xff0c 以后开机就会自动启动 xff0c 直到删除该程序 android开机事件会发送一个叫做Android intent action BOOT COMPLE
  • 在 Linux 平台中调试 C/C++ 内存泄漏方法

    由于 C 和 C 43 43 程序中完全由程序员自主申请和释放内存 xff0c 稍不注意 xff0c 就会在系统中导入内存错误 同时 xff0c 内存错误往往非常严重 xff0c 一般会带来诸如系统崩溃 xff0c 内存耗尽这样严重的后果
  • Java 位运算

    Java 位运算 转 一 xff0c Java 位运算 1 表示方法 xff1a 在Java语言中 xff0c 二进制数使用补码表示 xff0c 最高位为符号位 xff0c 正数的符号位为0 xff0c 负数为1 补码的表示需要满足如下要求
  • iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

    1 UINavigationController导航控制器如何使用 UINavigationController可以翻译为导航控制器 xff0c 在iOS里经常用到 我们看看它的如何使用 xff1a 下面的图显示了导航控制器的流程 最左侧是
  • OpenStack多节点部署(一)——服务器选型

    OpenStack多节点部署 xff08 一 xff09 服务器选型 OpenStack多节点部署 xff08 二 xff09 操作系统安装 OpenStack多节点部署 xff08 三 xff09 网络配置 OpenStack多节点部署
  • 【代码】使用C++实现改进的有效边表算法。

    算法的解释和一些细节晚一些再上传 xff0c 先直接上代码 xff1a 如果有错误可以在评论区指出 由于opengl使用实数的坐标 xff0c 所以 xff0c 本程序将使用画线代替画点 include lt GL glut h gt in
  • FireFox导入导出Cookies和收藏夹的方法

    FireFox是一个常用的浏览器 xff0c 扩展插件众多 xff0c 和IE相比有很多优点 xff0c 不过有些细小的地方似乎考虑的不太好 xff0c 比如用户经常会碰到系统重新安装等问题 xff0c 这就需要导入导出FireFox浏览器
  • linux交换分区回收

    author xff1a skate time xff1a 2012 04 11 交换分区回收 如果系统过多的使用交换分区 xff0c 那性能将会变慢 xff0c 所以要找到大量使用交换分区的原因 回收交换分区可以用如下 xff1a swa
  • Linux下查看文件和文件夹大小的df和du命令

    当磁盘大小超过标准时会有报警提示 xff0c 这时如果掌握df和du命令是非常明智的选择 df可以查看一级文件夹大小 使用比例 档案系统及其挂入点 xff0c 但对文件却无能为力 du可以查看文件及文件夹的大小 两者配合使用 xff0c 非
  • 算法系列之九:计算几何与图形学有关的几种常用算法(一)

    我的专业是计算机辅助设计 xff08 CAD xff09 xff0c 算是一半机械一半软件 xff0c 计算机图形学 是必修课 xff0c 也是我最喜欢的课程 热衷于用代码摆平一切的我几乎将这本教科书上的每种算法都实现了一遍 xff0c 这
  • uiviewController管理UITableView

    iOS开发 xff1a 如何作为子类来创建和管理UITableView 已有 184 次阅读 2011 10 24 21 38 标签 UIViewController UIView UITableView iOS 在iPhone应用开发中个
  • 【Iphone 游戏开发之一】创建视图并绘制简单图形

    Himi 原创 xff0c 转载请注明 xff01 原文地址 xff1a http blog csdn net xiaominghimi article details 6633172 这段时间N忙 xff0c 没办法 xff0c 创业公司
  • archlinux中virtualbox无法运行问题解决

    在archlinux中安装完成virtualbox后 xff0c 新建虚拟机无法启动 xff0c 而是出现下图的提示 xff1a 在fedora中直接用root权限运行 etc init d vboxdrv setup重新加载一下驱动就可以
  • 【Linux】Ubuntu 代理配置

    apt get 设置代理 proxy 方法 方法一 xff1a 这是一种临时的手段 xff0c 如果你仅仅是暂时需要通过http代理使用apt get xff0c 你可以使用这种方法 在使用 apt get 之前 xff0c 在终端中输入以
  • 百度之星之E:C++ 与Java

    E C 43 43 与Java 时间限制 2000ms 内存限制 65536kB 描述 在百度之星的贴吧里面 xff0c Java的爱好者和C 43 43 的爱好者总是能为这两种语言哪个更好争论上几个小时 Java的爱好者会说他们的程序更加
  • 并查集详解

    并查集是我暑假从高手那里学到的一招 xff0c 觉得真是太精妙的设计了 以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定 不分享出来真是对不起party了 xff08 party xff1a 我靠 xff0c 关我嘛事啊 xff1f

随机推荐