C#实验练习题

qq_41858489 2018-05-26 03:14:08
1、声明一个类MyPoint,该类有两个字段x和y,分别代表该点的横纵坐标,设计一个2参构造函数可以用于传入x和y,设计一个实例方法CalDis(),用于计算两个MyPoint对象之间的距离,距离公式使用平方根距离(即两点横纵坐标差值的平方和 开平方根)。然后随机生成10个MyPoint实例【存入数组】,计算这10个点之间的最短距离或最长距离。
...全文
1100 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
10个点两两相连总共有几段距离你自己算一下,就可以把list改成double数组了 比如,假设距离总数为10,则可以改为

double[] arr2=new double[10];
           int k=0;
            for(int i=0;i<arr.Length;i++)
            {
                for(int j=i+1;j<arr.Length;j++)
                {
                   if(k==arr2.Length)
{
break;
}
                    arr2[k]=program.CalDis(arr[i], arr[j]));
                     k++;
                }
            }
            Console.WriteLine("10点之间的最短距离是"+arr2.Min());
            Console.WriteLine("10点之间的最长距离是"+arr2.Max());
qq_41858489 2018-05-26
  • 打赏
  • 举报
回复
我给你30分,替换掉list,把剩下的给你.一共有50分
qq_41858489 2018-05-26
  • 打赏
  • 举报
回复
有什么能代替list吗?我们还没学到list
  • 打赏
  • 举报
回复
主题帖顶上有个“结贴”,点下这个按钮给分
qq_41858489 2018-05-26
  • 打赏
  • 举报
回复
请问怎么给分呀?第一次用帖子
  • 打赏
  • 举报
回复

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

namespace ConTest
{
    class MyPoint
    {
        private int x;
        private int y;
        public int X
        {
            get
            {
                return x;
            }
        }
        public int Y
        {
            get
            {
                return y;
            }
        }
        public MyPoint(int x, int y)
        {
            this.x = x;
            this.y = y;
        }
    }
    class Program
    {
        public double CalDis(MyPoint point1, MyPoint point2)
        {
            return Math.Sqrt(Math.Pow(point1.X-point2.X, 2) + Math.Pow(point1.Y-point2.Y, 2));
        }
        static void Main(string[] args)
        {
            Program program = new Program();
            Random ran1 = new Random(int.MinValue);
            Random ran2 = new Random(int.MaxValue);
            MyPoint[] arr = new MyPoint[10];
            for(int i=0;i<10;i++)
            {
                arr[i] = new MyPoint(ran1.Next(), ran2.Next());
            }
            List<double> list = new List<double>();
            for(int i=0;i<arr.Length;i++)
            {
                for(int j=i+1;j<arr.Length;j++)
                {
                    list.Add(program.CalDis(arr[i], arr[j]));
                }
            }
            Console.WriteLine("10点之间的最短距离是"+list.Min());
            Console.WriteLine("10点之间的最长距离是"+list.Max());
            Console.Read();
        }
    }
}

qq_41858489 2018-05-26
  • 打赏
  • 举报
回复
对,但我们还没学到list,而且其他帖子有list了,看不懂,就用数组好了
zxf1234556 2018-05-26
  • 打赏
  • 举报
回复
学校的作业?

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧