首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 编撰一个控制台应用程序,计算两个点之间的直线距离“ConsoleApplication1.Point.x”不可访问,因为它受保护级别限制

2013-09-28 
c# 编写一个控制台应用程序,计算两个点之间的直线距离“ConsoleApplication1.Point.x”不可访问,因为它受保

c# 编写一个控制台应用程序,计算两个点之间的直线距离“ConsoleApplication1.Point.x”不可访问,因为它受保护级别限制
.编写一个控制台应用程序,构建一个表示平面点坐标的类Point,它提供两个公有的构造函数,一个没有参数的Point构造函数和一个有两个double参数的构造函数。另外在该类中提供一个静态方法计算两个点之间的直线距离,传入参数为两个Point类实例。然后设计一个测试类来对Point类进行使用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public class Point {
        double x;
        double y;
        
        public Point() {
         x = 0;
         y = 0;
        }

        public Point(double a, double b) {
            x = a;
            y = b;
        }

}
    class Program
    {
        static void Main(string[] args)
        {
            double a,b,c,d=0;
            Console.WriteLine("请输入第一个点的坐标:");
            
            a = Double.Parse(Console.ReadLine());
            b = Double.Parse(Console.ReadLine());
            Console.WriteLine("请输入第二个点的坐标:");
            c = Double.Parse(Console.ReadLine());
            d = Double.Parse(Console.ReadLine());
            Point test1 = new Point(a,b);
            Point test2 = new Point(c,d);
                      
            Console.ReadLine();
            
        }
        public static void Calculate(Point a, Point b)
        {
            double length;
            double lengthF;
            double xC;
            double yC;
            xC = a.x - b.x;
            yC = a.y - b.y;
            lengthF = Math.Pow(xC, 2.0) + Math.Pow(yC, 2.0);
            length = Math.Sqrt(lengthF);
            Console.WriteLine(length);
            Console.ReadLine();

        }
    }
}
产生错误:
错误2“ConsoleApplication1.Point.x”不可访问,因为它受保护级别限制D:\ks\ConsoleApplication1\ConsoleApplication1\Program.cs4726ConsoleApplication1
求大师帮忙!
c# 控制台 应用程序 namespace
[解决办法]
 public double x;
 public double y;
[解决办法]
Convert.ToDouble(Console.ReadLine());
[解决办法]


            try
            {
                a = Convert.ToDouble(Console.ReadLine());


                b = Convert.ToDouble(Console.ReadLine());
                Console.WriteLine("请输入第二个点的坐标:");
                c = Convert.ToDouble(Console.ReadLine());
                d = Convert.ToDouble(Console.ReadLine());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }


[解决办法]
你的问题是输入的字符串格式不正确,相当于你要把"abc"转换成一个double(双精度浮点型)类型的值肯定是不行的,输入对就没事
[解决办法]
Console.ReadLine()是读取输入的一整行
你是连接两行输入的数字吗?
[解决办法]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public class Point
    {
        public double x;
        public double y;

        public Point()
        {
            x = 0;
            y = 0;
        }

        public Point(double a, double b)
        {
            x = a;
            y = b;
        }

    }
    class Program
    {
        static void Main(string[] args)
        {
            double a, b, c, d = 0;
            try
            {
                Console.WriteLine("请输入第一个点的坐标:");
                a = Double.Parse(Console.ReadLine());
                b = Double.Parse(Console.ReadLine());
                Console.WriteLine("请输入第二个点的坐标:");
                c = Double.Parse(Console.ReadLine());
                d = Double.Parse(Console.ReadLine());
                Point test1 = new Point(a, b);
                Point test2 = new Point(c, d);
                Calculate(test1, test2);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
        public static void Calculate(Point a, Point b)
        {
            double length;
            double lengthF;
            double xC;
            double yC;
            xC = a.x - b.x;
            yC = a.y - b.y;
            lengthF = Math.Pow(xC, 2.0) + Math.Pow(yC, 2.0);


            length = Math.Sqrt(lengthF);
            Console.WriteLine(length);
        }
    }
}

热点排行