精华内容
下载资源
问答
  • 使用c++设计矩形类

    2021-04-15 14:38:20
    矩形类一、前言二、带分数的运算1.头文件(Rectangle.h)2.源文件(实现函数)3.源文件(测试函数)4.运行截图总结 一、前言 为了更深入的学习c++,小编将带领大家一起使用c++实现矩形,本文就介绍了一些相关的代码...

    一、前言

    为了更深入的学习c++,小编将带领大家一起使用c++实现矩形,本文就介绍了一些相关的代码。

    二、带分数的运算

    Rectangle类,该类只保存长方形的4个顶点的坐标。构造函数调用set函数,接受4组坐标并验证它们均在第一象限中,并且构成长方形,成员函数计算长度,宽度,周长和面积,判断是否为正方形。

    1.头文件(Rectangle.h)

    /*
    本程序考虑了不按照顺序输入,任意输入四个点判断的情况
    本程序的方法:先判断ab是否平行于cd,再判断ab是否等于cd,最后判断ab是否垂直于cd
    一个简单的算法是:使用中点到四个点距离相等来判断矩形;或者用勾股定理判断三个角是否为直角;
    下面只给出使用第一种方法的情形
    */
    #include<iostream>
    using namespace std;
    //长方形类
    class Rectangle
    {
    private:
    	class Point 
    	{
    	public:
    		double x;//x坐标
    		double y;//y坐标
    	};
    	Point a, b, c, d;//记录坐标
    	double length;//记录长度
    	double width;//记录宽度
    public:
    	void Set();//构造函数
    	void Area();//计算面积
    	void Perimeter();//计算周长
    	void Get();//计算长度宽度
    	bool JudgeR();//判断是否为矩形
    	bool JudgeS();//判断是否为正方形
    };
    

    2.源文件(实现函数)

    #include"Rectangle.h"
    #include<iostream>
    using namespace std;
    
    //构造函数
    void Rectangle::Set() 
    {
    	//输入坐标
    	cout << "第1个坐标的x值:"; cin >> a.x;
    	cout << "第1个坐标的y值:"; cin >> a.y;
    	cout << "第2个坐标的x值:"; cin >> b.x;
    	cout << "第2个坐标的y值:"; cin >> b.y;
    	cout << "第3个坐标的x值:"; cin >> c.x;
    	cout << "第3个坐标的y值:"; cin >> c.y;
    	cout << "第4个坐标的x值:"; cin >> d.x;
    	cout << "第4个坐标的y值:"; cin >> d.y;
    	//开始判断是否在第一象限内
    	if (a.x >= 0 && a.y>= 0 && b.x >= 0 && b.y >= 0 && c.x >= 0 && c.y >= 0 && d.x >= 0 && d.y >= 0)
    	{
    		cout << "已成功输入!" << endl;
    	}
    	else//产生异常,人为抛出异常信息
    	{
    		cout << "坐标的值并非在第一象限,无法设置!" << endl;
    		throw new out_of_range("坐标的值并非在第一象限,无法设置!");
    	}
    	//开始判断能否组成矩形
    	if (JudgeR())
    	{
    		cout << "输入坐标能组成矩形!" << endl;
    		if (JudgeS())
    		{
    			cout << "该矩形是正方形!" << endl;
    			Get();
    		}
    		else
    		{
    			cout << "该矩形是长方形!" << endl;
    			Get();
    		}
    	}
    	else 
    	{
    		cout << "输入坐标不能组成矩形!" << endl;
    		throw new out_of_range("输入坐标不能组成矩形!");
    	}
    }
    //判断矩形函数
    bool Rectangle::JudgeR()
    {
    	//四个顶点先输入对点坐标时
    	if (a.x != b.x && a.y != b.y) 
    	{
    		double ab_y = a.y - b.y;
    		double ab_x = a.x - b.x;
    		double cd_y = c.y - d.y;
    		double cd_x = c.x - d.x;
    		if (abs(ab_x) != abs(cd_x) || abs(ab_y) != abs(cd_y))
    			return false;
    		else
    			return true;
    	}
    	//四个顶点先左后右,先左后右输入
    	else if ((a.x == b.x || a.y == b.y) && (a.x == c.x || a.y == c.y))
    	{
    		double ab_y = a.y - b.y;
    		double ab_x = a.x - b.x;
    		double cd_y = c.y - d.y;
    		double cd_x = c.x - d.x;
    		//首先判断ab是否平行于cd
    		if (ab_x == 0 || cd_x == 0)
    		{
    			if (ab_x != cd_x)
    				return false;
    			else
    			{
    				if (ab_y / ab_x != cd_y / cd_x)
    				{
    					return false;
    				}
    			}
    		}
    		//再判断ab是否等于cd
    		if (ab_y * ab_y + ab_x * ab_x != cd_x * cd_x + cd_y * cd_y)
    			return false;
    		//然后判断ab是否垂直于ac
    		double ac_y = a.y - c.y;
    		double ac_x = a.x - c.x;
    		if (ab_x == 0)
    		{
    			if (ac_y != 0)
    				return false;
    		}
    		else if (ac_x == 0)
    		{
    			if (ab_y != 0)
    				return false;
    		}
    		else if ((ac_y / ac_x) * (ab_y / ab_x) != -1)
    		{
    			return false;
    		}
    	}
    	//四个顶点先左后右,先右后左输入
    	else if ((a.x == b.x || a.y == b.y) && (a.x != c.x || a.y != c.y)) 
    	{
    		double ab_y = a.y - b.y;
    		double ab_x = a.x - b.x;
    		double cd_y = d.y - c.y;
    		double cd_x = d.x - c.x;
    		//首先判断ab是否平行于cd
    		if (ab_x == 0 || cd_x == 0)
    		{
    			if (ab_x != cd_x)
    				return false;
    			else
    			{
    				if (ab_y / ab_x != cd_y / cd_x)
    				{
    					return false;
    				}
    			}
    		}
    		//再判断ab是否等于cd
    		if (ab_y * ab_y + ab_x * ab_x != cd_x * cd_x + cd_y * cd_y)
    			return false;
    		//然后判断ab是否垂直于ac
    		double ac_y = a.y - d.y;
    		double ac_x = a.x - d.x;
    		if (ab_x == 0)
    		{
    			if (ac_y != 0)
    				return false;
    		}
    		else if (ac_x == 0)
    		{
    			if (ab_y != 0)
    				return false;
    		}
    		else if ((ac_y / ac_x) * (ab_y / ab_x) != -1)
    		{
    			return false;
    		}
    	}
    	return true;
    }
    //判断正方形函数
    bool Rectangle::JudgeS() 
    {
    	double ab_y = a.y - b.y;
    	double ab_x = a.x - b.x;
    	double cd_y = c.y - d.y;
    	double cd_x = c.x - d.x;
    	double ac_y = a.y - c.y;
    	double ac_x = a.x - c.x;
    	if (ab_y == 0) 
    	{
    		if (ab_x != ac_y) 
    		{
    			return false;
    		}
    	}
    	else if (ab_x == 0) 
    	{
    		if (ab_y != ac_x)
    		{
    			return false;
    		}
    	}
    	else 
    	{
    		if (ab_y != ab_x)
    		{
    			return false;
    		}
    	}
    	return true;
    }
    //计算长度,宽度
    void Rectangle::Get() 
    {
    	double d1 = 0, d2 = 0;
    	if (a.x != b.x) {
    		d1 = abs(a.x - b.x);
    		if (a.y != b.y) {
    			d2 = abs(a.y - b.y);
    		}
    		else {
    			d2 = abs(a.y - c.y);
    		}
    	}
    	else {
    		if (a.y != b.y) {
    			d1 = abs(a.y - b.y);
    			d2 = abs(a.x - c.x);
    		}
    	}
    	if (d1 > d2)
    	{
    		length = d1;
    		width = d2;
    		cout << "长度为:" << length << endl << "宽度为:" << width << endl;
    	}
    	else if (d1 == d2)
    	{
    		length = d2;
    		width = length; 
    		cout << "正方形的宽为:" << width << endl;
    	}
    	else if (d1 < d2) 
    	{
    		length = d2;
    		width = d1;
    		cout << "长度为:" << length << endl << "宽度为:" << width << endl;
    	}
    }
    //计算面积
    void Rectangle::Area() 
    {
    	if (JudgeS())
    		cout << "该正方形的面积是:   " << (width * length) << endl;
    	else
    		cout << "该长方形的面积是:   " << (width * length) << endl;
    }
    //计算周长
    void Rectangle::Perimeter() 
    {
    	if (JudgeS())
    		cout << "该正方形的周长是:   " << 2 * (width + length) << endl;
    	else
    		cout << "该长方形的周长是:   " << 2 * (width + length) << endl;
    }
    

    3.源文件(测试函数)

    #include"Rectangle.h"
    #include<iostream>
    using namespace std;
    
    int main() 
    {
    	Rectangle rec;
    	rec.Set();//输入坐标
    	rec.Area();//计算面积
    	rec.Perimeter();//计算周长
    	return 0;
    }
    

    4.运行截图

    在这里插入图片描述

    三、总结

    以上就是今天要讲的内容,本文仅仅简单介绍了矩形类的设计,代码仅供大家参考,希望大家有所收获,感谢!

    展开全文
  • Java定义矩形类

    千次阅读 2021-02-12 10:53:27
    矩形类packagecn.edu.uibe.oop;publicclassRectangle{floatwidth,height;/***计算面积*@return矩形的面积*/publicfloatgetArea(){returnwidth*height;}/***计算周长*@return矩形的周长*/publicfloatgetCircumference...

    矩形类package cn.edu.uibe.oop;

    public class Rectangle {

    float width,height;

    /**

    * 计算面积

    * @return 矩形的面积

    */

    public float getArea(){

    return width*height;

    }

    /**

    * 计算周长

    * @return 矩形的周长

    */

    public float getCircumference(){

    return 2*(width+height);

    }

    /**

    * 改变矩形的大小

    * @param w 宽度

    * @param h 高度

    */

    public void resize(float w,float h){

    width = w;

    height = h;

    }

    /**

    * 输出矩形的宽和高

    */

    public void printSize(){

    System.out.println("宽:"+width+" 高:"+height);

    }

    public static void main(String[] args) {

    Rectangle r1 = new Rectangle();

    Rectangle r2 = new Rectangle();

    r1.resize(4.0F, 3.0F);

    r2.resize(2, 5);

    r1.printSize();

    r2.printSize();

    System.out.println("矩形1的面积:"+r1.getArea());

    System.out.println("矩形2的面积:"+r2.getArea());

    System.out.println("矩形1的周长:"+r1.getCircumference());

    System.out.println("矩形2的周长:"+r2.getCircumference());

    }

    }

    展开全文
  • JAVA矩形类

    2021-04-24 11:38:13
    定义矩形类如下: public class Rectangle { //类头 private int x,y,width,height,area; //类体开始,矩形左上角位置、宽度、高度、面积 //…注意:在这里添加题目要求的每个public方法! } //类体结束 要求: (1)...

    定义矩形类如下:
    public class Rectangle { //类头
    private int x,y,width,height,area; //类体开始,矩形左上角位置、宽度、高度、面积
    //…注意:在这里添加题目要求的每个public方法!
    } //类体结束
    要求:
    (1)试为类Rectangle的5个实例变量:x,y,width,height,area,添加各自的get()和set()方法。
    (2) 至少定义2个构造方法。
    (3) 定义toString()方法。
    (4) 为Rectangle编写测试类。
    (5) 为程序代码添加必要的注释。
    (6) 上传这个程序在命令行CMD的编译和运行结果截图!

    public class Rectangle{//矩形类
    
        private int x,y,width,height,area;//矩形左上角位置,宽度,高度,面积
    
        public Rectangle(){//方法声明为公有的 无参构造方法
    
            x = 0;
    
            y = 0;
    
            width = 0;
    
            height = 0;
    
            area = 0;
    
        }
    
        public Rectangle(int px,int py,int wd,int hg){//有参构造方法
    
            x = px;
    
            y = py;
    
            width = wd;
    
            height= hg;
    
            setArea();
    
        }
    
        public int getX(){//获取x的方法
    
            return x;
    
        }
    
        public void setX(int x){//修改x的方法
    
            this. x = x;
    
        }
    
        public int getY(){//获取y的方法
    
            return y;
    
        }
    
        public void setY(int y){//修改y的方法
    
            this. y = y;
    
        }
    
        public int getWidth(){//获取width的方法
    
            return width;
    
        }
    
        public void setWidth(int width){//修改width
    
            this. width = width;
    
            setArea();//每修改一次计算一次面积
    
        }
    
        public int getHeight(){//获取height的方法
    
            return height;
    
        }
    
        public void setHeight(int height){//修改height的方法
    
            this. height = height;
    
            setArea();//每修改一次计算一次面积
    
        }
    
        public int getArea(){ //获取面积方法
    
            setArea();
    
            return area;
    
        }
    
        public void setArea(){ //求面积
    
            area = width*height;
    
        }
    
        public String toString(){//toString方法
    
            return "Rectangle=[x = "+x+",y = "+y+",宽度 = "+width+",高度 = "+height+",面积 = "+area+"]";
    
        }
    
    }
    
    public class RectangleShow{  //矩形类的测试类
    
        public static void opertRectangle(){  //矩形类的测试方法
    
            Rectangle R1 = new Rectangle();//声明和定义的矩形对象R1,不带参数
    
            Rectangle R2 = new Rectangle(1,2,3,4);//声明和定义的矩形对象R1,带参数
    
            System.out.println("修改前的R1是:");
    
            System.out.println(R1);//System.out.println(R1.toString())
    
            R1. setX(3);  //修改对象R1的x
    
            R1. setY(1);  //修改对象R1的y
    
            R1. setWidth(5);  //修改对象R1的宽度
    
            R1. setHeight(2); // 修改对象R1的高度
    
            System.out.println("修改后的R1是:");//输出对象R1修改后的信息
    
            System.out.println(R1);//System.out.println(R1.toString())
    
            System.out.println("修改后的R1高height是:");//检测修改后的R1的高height的值
    
            System.out.println(R1. getHeight());
    
            System.out.println("----------------------------------");
    
            System.out.println("修改前的R2是:");//输出对象R2修改之后的信息
    
            System.out.println(R2);//System.out.println(R2.toString())
    
            R2. setWidth(5);//将R2的宽度由3改为5
    
            System.out.println("修改前的R2是:");//输出修改后R2的信息
    
            System.out.println(R2);//System.out.println(R2.toString())
    
            System.out.println("修改后的R2高height是:");
    
            System.out.println(R2. getWidth());//检测修改后R2的宽度是否一致
    
        }
    
        public static void main(String[] asgs){  //main方法
    
            opertRectangle();
    
        }
    
    }
    
    展开全文
  • java中关于矩形类

    2021-03-09 05:29:59
    创建矩形类Rectangle存储两个顶点坐标(m_x1,m_y1,m_x2,m_y2),构造方法接受2个顶点坐标的值,并调用设置方法setCoordinates将得到的坐标写入对应的属性中,设置方法setCoordinates检...创建矩形类Rectangle存储两个...

    创建矩形类Rectangle存储两个顶点坐标(m_x1,m_y1,m_x2,m_y2),构造方法接受2个顶点坐标的值,并调用设置方法setCoordinates将得到的坐标写入对应的属性中,设置方法setCoordinates检...

    创建矩形类Rectangle

    存储两个顶点坐标(m_x1,m_y1,m_x2,m_y2),构造方法接受2个顶点坐标的值,并调用设置方法setCoordinates将得到的坐标写入对应的属性中,设置方法setCoordinates检查坐标x和y值是否大于零,方法isRectangle()检验提供的坐标是否能构成矩形,根据检验结果设置m_isRectangle的值,并将检验结果输出到屏幕上。(有三种情况:1.两点坐标相同,构成一个点;2.两点坐标的x相同或y相同,只能构成矩形的一边;3.两点坐标分别喂矩形两个对角顶点坐标)提供计算height、width、perimeter、area的方法。加入判断方法isSquare,以确定此矩形是否为正方形。该类是公共的,保存文件名为Rectangle2.java,再编译主类Rectangle2Test测试它

    属性:

    private double m_height;

    private double m_width;

    private double m_x1;

    private double m_y1;

    private double m_x2;

    private double m_y2;

    private boolean m_isRectangle;

    操作:

    public Rectangle2();

    public Rectangle2(double aX1,double aY1,double aX2,double aY2);

    public void setCoordinates(double aX1,double aY1,double aX2,double aY2);

    public boolean isRectangle();

    public boolean isSquare();

    private void setHeight();

    private void setWidth();

    public double getHeight();

    public double getWidth();

    public double perimeter();

    public double area();

    展开

    展开全文
  • c++ 矩形类

    2021-11-29 17:04:19
    声明并实现一个矩形类,属性有长、宽,成员函数area计算矩形的面积。 //你的代码将被嵌在这里 int main() { double l, w; cin >> l >> w; Rectangle r(l, w); cout << r.area(); return 0; } ...
  • Python练习定义一个class Point:'''二维坐标系中代表一个点'''passprint('打印Point:{}'.format(Point))p1 = Point()print('Point实例化为一个p1:{}'.format(p1))打印Point:Point实例化为一个p1:我们直接...
  • 6-1 设计一个矩形类Rectangle (10分)

    千次阅读 2021-03-17 13:36:15
    设计一个名为Rectangle的表示矩形。这个包括: 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。width和height的默认值都为1. 一个无参构造方法。 一个为width和height指定值的矩形构造方法...
  • #include<iostream> using namespace std; class Rectangle { private: double x1,x2,y1,y2; public: Rectangle(){ x1=0; x2=0; y1=0; y2=0; } Rectangle (double a,double b, ... void outp.
  • Java方法基础编写矩形类 请编写一个矩形类 方法一:完成计算矩形面积 方法二:完成计算矩形周长 方法三:完成判断是长方形还是正方形 package cn.peixv.fangfa; import java.util.Scanner; public class...
  • 满意答案jack2562013.11.28采纳率:51%等级:12已帮助:9801人/*** 矩形类*/public class Rectangle {private double length; //长private double width; //宽public double getLength() {return length;}public ...
  • 设计一个名为 MyRectangle 的矩形类来表示矩形。这个类包含 (1) 左上角顶点的坐标:x,y (2) 宽度和高度:width、height (3) 构造方法:传入 x,y,width,height。如果(x,y)不传则默认是 0,如果 width和 height...
  • // 矩形类Rectangle的定义和实现 // 补足代码 // ××× class Rectangle { public: Rectangle(); Rectangle(int l, int w); Rectangle(const Rectangle &x); double len(); double wide(); do...
  • 定义一个矩形类 可以获取周长和面积 import sys class Rectangle: def __init__(self,x,y): self.width=y self.height=x def getLength(self): return (self.width+self.height)*2 def getArea(self): ...
  • 设计一个名为Rectangle的表示矩形。这个包括: 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。width和height的默认值都为1. 一个无参构造方法。 一个为width和height指定值的矩形构造方法...
  • 问题描述:c#定义一个类圆Circle或者定义一个矩形类Rectangle,分别计算它们的周长和面积.定义一个类圆Circle或者定义一个矩形类Rectangle,定义其数据成员和方法,圆有半径,矩形有长和宽,定义两个方法分别计算它们的...
  • 设计一个名为Rectangle的表示矩形。这个包括: 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。width和height的默认值都为1. 一个无参构造方法。 一个为width和height指定值的矩形构造方法...
  • Step1:为实验3中定义的矩形类派生一个子类:正方形类。正方形类的操作同样是求周长和面积。则这个子类除了从父类继承来的方法之外,还需要定义哪些方法?列出正方形类的所有域与方法。编程验证所编写的正方形类。...
  • 代码如下: import java.io.*; import java.math.*;//导入math interface Graph{ abstract void catercorner(); } class Rectangle implements Graph{ double length, width; Rectangle(){ ... publ.
  • ‘设计一个名为MyRectangle的矩形类来表示矩形,这个类包含: (1)左上角坐标:x,y (2)宽度和高度 (3)构造方法:传入x,y,width,height.如果(x,y)不传默认是0, 如果width和height不传,则默认是100. (4)定义...
  • //定义一个矩形的长 private float width; //定义一个矩形的宽 public javase7_2(float height,float width){ this.height=height; this.width=width; } public float square(){ return h.
  • 设计一个名为Rectangle的矩形类,这个类包括:两个名为width和height的double数据域,它们分别表示矩形的宽和高。width和height的默认值都为1.该类包括矩形类的无参构造函数(默认构造函数);一个width和height为...
  • 设计一个矩形类Rectangle(Java)

    千次阅读 2021-03-23 13:41:16
    设计一个名为Rectangle的表示矩形。这个包括: 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。width和height的默认值都为1. 一个无参构造方法。 一个为width和height指定值的矩形构造方法...
  • 共回答了12个问题采纳率:83.3%class Rectangle{double x1, y1, x2, y2;Rectangle(){this(0,0,0,0);}Rectangle(double x1, double y1, double x2, double y2){this.x1 = x1;this.y1 = y1;this.x2 = x2;...
  • 1.定义矩形类,矩形包含私有属性宽和高,定义set方法为其赋值,定义面积和周长的方法,实例化两个矩形并调用方法计算周长和面积package b;import java.util.Scanner;public class juxing {public int kuan;private ...
  • 1.建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。具体要求如下:(1)形状类Shape(a)保护数据成员double x,y:对于不同的形状,x和y表示不同的含义,如对于圆,x和y均...
  • 【简答题】定义一个三角形,三条边的边长分别为a b c,其中a边上的高为h,实现的功能有计算面积,计算周长。【简答题】2.课后作业:P23页1、2(2,4)、3(3)。请将你的作业回答,做成一个word文档,上传到此处。【简答题】(1...
  • 问题标题设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状&rdquo2019-5-10来自ip:17.175.174.80的网友咨询浏览量:417手机版问题补充:设计三个类:几何形状类(Shape)、圆...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 177,199
精华内容 70,879
关键字:

矩形类