读书人

矩形输出有关问题

发布时间: 2012-02-29 16:44:11 作者: rapoo

矩形输出问题
书上的一道练习题不会做了。请教大侠。

我用上一道题生成一个类,用四个点的坐标(8个double值)表示一个矩形,judgement functions判定初始的数值是不是一个矩形和是不是一个正方形。

// lx6.13: rectangle.h
// create a class Rectangle
#ifndef RECTANGLE_H
#define RECTANGLE_H

class Rectangle
{
public:
// constructor
Rectangle( double = 0.0, double = 0.0, double = 0.0, double = 1.0, double = 1.0, double = 1.0, double = 1.0, double = 0.0 );

// set functions
void setRectangle( double, double, double, double,
double, double, double, double );
void setPoint1( double, double );
void setPoint2( double, double );
void setPoint3( double, double );
void setPoint4( double, double );

// get functions
double getPoint1x();
double getPoint1y();
double getPoint2x();
double getPoint2y();
double getPoint3x();
double getPoint3y();
double getPoint4x();
double getPoint4y();

// print functions
void printRectangle();

// compute functions
double computeLength();
double computeWidth();
double computePerimeter();
double computeArea();

// judgement function
bool isRectangle();
bool isSquare();
private:
double x1;// 第一点x
double y1;// 第一点y

double x2;
double y2;

double x3;
double y3;

double x4;
double y4;
};

#endif

后来下一道题是:
修改上一练习的Rectangle类,用draw函数在矩形所在象限的25*25闭合框中显示这个长方形。用setFillCharacter函数指定绘制长方形内部的字符。用setPerimeterCharacter函数指定绘制长方形四边的字符。还可以加上函数对长方形进行比例缩放、旋转和在第一象限范围中移动。

所以我加上了以下函数:
// draw frnctions
void draw();
char setFillCharacter();
char setPerimeterCharacter();

我在draw函数中定义了一个char frame[ 21 ][ 21 ] = { ' ' }的字符二维数组,初始化为空格,然后判定在长方形内的赋值成setFillCharacter(); 在边上的点赋值成setPerimeterCharacter(); 然后输出数组。

我知道我的方法很笨,但是也没能成功,修改了几次,有时什么也不显示就过去了,有时在执行中报错。

请问这种题应该如何做?还有我这个只能实现与横纵坐标平行的矩形,可是我之前那个类是可以判断斜矩形的,斜矩形如何输出呢?

[解决办法]
判断坐标即可 ~

读书人网 >C++

热点推荐