面向对象程序设计练习题

@定义一个"四边形"类,包含4个顶点坐标,以及定义判断4个顶点是否构成四边形的函数并计算其面积TOC

主要思路

首先定义一个四边形的类,(判断)因为三点成直线则非三角形,那么类推四个点任意三个点不成直线,则为四边形。(计算)把四边形切割为两个三角形,计算三角形面积,然后将三角形的面积相加来计算四边形的面积。

首先定义一个四边形的类

   class SBX     //四边形类
    {
       public int Px1,Px2,Px3,Px4,Py1,Py2,Py3,Py4;   //顶点坐标
       //判断
       //计算函数
       }

(判断)因为三点成直线则非三角形,那么类推四个点任意三个点不成直线,则为四边形。

 public bool IsSBX()   //判断是否是四边形
        {
            if ((Py3 - Py2) * (Px3 - Px1) == (Py3 - Py1) * (Px3 - Px2))
                return false;
            else if ((Py3 - Py4) * (Px3 - Px1) == (Py3 - Py1) * (Px3 - Px4))
                return false;
            else if ((Py4 - Py2) * (Px4- Px1) == (Py4 - Py1) * (Px4 - Px2))
                return false;
           else if  ((Py3 - Py2) * (Px3 - Px4) == (Py3 - Py4) * (Px3 - Px2))
                return false;//任意三点呈直线,不能构成四边形
            else
                return true;
        }

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

 public double MJ()//计算四边形面积
        {
        return Math.Abs(//计算方法)
        }

三角形面积求法(x1 * y2 + x2 * y3 + x3 * y1 - y1 * x2 - y2 * x3 - y3 * x1) / 2.0

class Program
    {
        static void Main(string[] args)
        {
            SBX sbx = new SBX();
            Console.Write("请输入第一个点X:");sbx.Px1 = Convert.ToInt16(Console.ReadLine());
            Console.Write("请输入第一个点Y:"); sbx.Py1 = Convert.ToInt16(Console.ReadLine());
            Console.Write("请输入第二个点X:"); sbx.Px2 = Convert.ToInt16(Console.ReadLine());
            Console.Write("请输入第二个点Y:"); sbx.Py2 = Convert.ToInt16(Console.ReadLine());
            Console.Write("请输入第三个点X:"); sbx.Px3 = Convert.ToInt16(Console.ReadLine());
            Console.Write("请输入第三个点Y:"); sbx.Py3 = Convert.ToInt16(Console.ReadLine());
            Console.Write("请输入第四个点X:"); sbx.Px4= Convert.ToInt16(Console.ReadLine());
            Console.Write("请输入第四个点Y:"); sbx.Py4 = Convert.ToInt16(Console.ReadLine());
            if (sbx.IsSBX())
            {
                Console.WriteLine("该四边形的面积是={0}", sbx.MJ());
            }
            else
            {
                Console.WriteLine("该点不能构成四边形!");
                Console.ReadLine();
            }
        }
    }
}

猜你喜欢

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