C#习题.

C#习题3.4

3.3首先定义一个四边形的类,(判断)因为三点成直线则非三角形,那么类推四个点任意三个点不成直线,则为四边形。

(计算)把四边形切割为两个三角形,计算三角形面积,然后将三角形的面积相加来计算四边形的面积。

3.4继续实验3.3

继承四边形类,定义平行四边形类,增加判断是否为平行四边形的函数
解法:在3.3的基础上,用平行四边形的吧判断法制(两组对边分别相等的四边形是平行四边形)来判定,这里只取一种方法。

求两点之间的距离公式为a=((x1-x2)^2 + (y1-y2)2)0.5

在C#语言里,开方用到的Math.Pow 方法,返回指定数字的指定次幂。
命名空间:System,程序集:mscorlib(在 mscorlib.dll 中)
语法
public static double Pow (
double x,//x 要乘幂的双精度浮点数。
double y //y 指定幂的双精度浮点数。
)
返回值:数字 x 的 y 次幂。
在.net类库的System.Math名空间有Math类,处理许多数学运算:
开平方: Math.Sqrt()
开任何方:Math.Pow()
例如
double A;
A=Pow(x,0.5);//开平方
A=Pow(x,1/3);//开立方
定义平行四边形类

 class PXSBX : SBX   //平行四边形类,继承四边形类

判断是否为平行四边形

 public bool IsPXSBX()   //判断是否是平行四边形,两组对边对应相等
        {
            double a, b, c, d;
            a = Math.Pow((Px2 - Px1) * (Px2 - Px1) + (Py2 - Py1) * (Py2 - Py1),0.5);
            b= Math.Pow((Px4 - Px3) * (Px4 - Px3) + (Py4 - Py3) * (Py4 - Py3), 0.5);
            c= Math.Pow((Px3 - Px2) * (Px3 - Px2) + (Py3- Py2) * (Py3 - Py2), 0.5);
            d = Math.Pow((Px4 - Px1) * (Px4 - Px1) + (Py4 - Py1) * (Py4 - Py1), 0.5);//开方用到的Math.Pow 方法
            if ((a==b)||(c==d))//两组对边分别相等
                    return true;
            else
                return false;
        }

其他与实验3.3类似,最后得出结果是否为平行四边形

if (pxsbx.IsSBX())
            {
                Console.WriteLine("该四边形的面积是={0}", pxsbx.MJ());
                if (pxsbx.IsPXSBX())
                    Console.WriteLine("是平行四边形!");
                else
                    Console.WriteLine("不是平行四边形!");
                    Console.ReadLine();
                }
            else
            {
                Console.WriteLine("该点不能构成平行四边形!");
                Console.ReadLine();
            }

猜你喜欢

转载自blog.csdn.net/qq_43201219/article/details/89737967