Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
1

Создать DLL с классом Point, описывающим точку на плоскости, заданную декартовыми и полярными координатами

06.01.2012, 10:38. Показов 3493. Ответов 29
Метки нет (Все метки)

Создать DLL с классом Point, описывающим точку на плоскости, заданную декартовыми и полярными координатами. Среди методов класса Point предусмотреть метод Distance, вычисляющий расстояние до заданной точки. Построить Windows проект, предостовляющий пользователю интерфейс для работы с классом Point.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2012, 10:38
Ответы с готовыми решениями:

Вычислить расстояние между двумя точками, заданными декартовыми или полярными координатами
две точки заданы на плоскости своими координатами, которые могут быть как декартовыми, так и...

Задачка с классами (Класс точки на плоскости представлен полярными координатами)
В общем такая вот задачка, кто шарит, помогите пожалуйста должны быть реализованы следующие...

Дано множество точек на плоскости, заданных полярными координатами. Получить декартовы координаты этих точек
Получилось сделать для координаты одной точки, а как сделать для множества точек, через цикл или...

Перевести точку, лежащую на плоскости в двухмерную систему координат, заданную на этой плоскости
Есть произвольная плоскость, заданная уравнением Ax+By+Cz+D=0, а так же точка (которую нужно...

29
Эксперт .NET
4353 / 2016 / 391
Регистрация: 27.03.2010
Сообщений: 5,492
Записей в блоге: 1
06.01.2012, 10:58 2
В чём трудность?

Создай проект Windows Forms. Появится решение, в котором будет проект Windows Forms.
1) Файл - Создать - Проект - В списке выбери: Приложение Windows Forms.

Далее добавь в существующее решение бибилотеку классов.
2) Файл - Добавить - Создать проект - В списке выбери: Библиотека классов.

Это основное, что надо для начала сделать.
1
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
06.01.2012, 11:38  [ТС] 3
это я уже сделал)
мне нужен код который нужно вставить в класс Point.
Я сейчас на экзамене сижу, помогите пожалуйста!

Добавлено через 33 минуты
Helpppppp
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
06.01.2012, 11:44 4
Не уверен, что это то, что тебе нужно. Это описание точки на плоскости.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class Point
    {
        // Минимальная разница между числами при которой они не считаются одинаковыми
        // ( Подробнее смотри специфику сравнения переменных типа double )
        private static double minDifference = 0.000001;
        // Открытый конструктор ( Создает точку по ее координатам )
        public Point(double x, double y)
        {
            this.X = x;
            this.Y = y;
        }
 
        // Координаты точки
        public double X { private set; get; }
        public double Y { private set; get; }
 
        // Переопределение оператора сравнения ( == )
        public static bool operator == (Point point, Point anotherPoint)
        {
            // Если хотя бы одна из точек null ( означает что линии не пересекаются ), 
            // возвращаем false. Приведение типов необходимо чтобы избежать рекурсии
            if ((object)point == null || (object)anotherPoint == null)
            {
                return false;
            }
            // Иначе смотрим совпадают ли обе координаты у точек
            else
            {
                return Math.Abs(point.X - anotherPoint.X) < minDifference
                    && Math.Abs(point.Y - anotherPoint.Y) < minDifference;
            }
        }
 
        // Переопределение оператора сравнения ( != ) ( Нужно ибо компилятор заругался )
        public static bool operator !=(Point point, Point anotherPoint)
        {
            return !(point == anotherPoint);
        }
    }
1
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
06.01.2012, 11:49  [ТС] 5
а не подскажите какой примерно должен быть интерфейс windows form для этого класса (какие поля должны быть)?
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
06.01.2012, 11:50 6
Что должна делать программа?
0
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
06.01.2012, 11:52  [ТС] 7
"Построить Windows проект, предостовляющий пользователю интерфейс для работы с классом Point. "
в 1 посте описано
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
06.01.2012, 11:59 8
Я себе это так представляю:
TextBox "X";
TextBox "Y";
TextBox "R"; // Расстояние до начала отсчета
TextBox "Angle"

TextBox "ObserverX" // Точка от которой отсичитывается расстояние. Точка "наблюдателя"
TextBox "ObserverY"
// Сюда можно также добавить полярные координаты.

TextBox "Distance"
Button "CalculateDistance"

Куча label.
0
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
06.01.2012, 12:03  [ТС] 9
а что означает TextBox "Angle" ?
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
06.01.2012, 12:07 10
Угол ( для представления точки в полярных координатах )
0
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
06.01.2012, 12:11  [ТС] 11
если не сложно не могли бы написать код кнопки button )
В долгу не останусь
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
06.01.2012, 12:19 12
На самом деле все предельно просто:

C#
1
2
3
4
5
button_Click( бла бла бла )
{
      double distance = Point.DistanceTo( new Point( observerX, observerY ) );
      DistanceTextBox.Text = distance.ToString();
}
Другое дело что метода DistanceTo в классе пока нету, - сейчас этим занимаюсь.

Добавлено через 3 минуты
Потести код:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
class Point
    {
        // Открытый конструктор ( Создает точку по ее координатам )
        public Point(double x, double y)
        {
            this.X = x;
            this.Y = y;
        }
 
        // Координаты точки
        public double X { set; get; }
        public double Y { set; get; }
        
        public double Radius
        {
            get 
            {
                return Math.Sqrt((this.X * this.X) + (this.Y * this.Y));
            }
            set 
            {
                double currAngle = Angle;
                this.X = value * Math.Cos(currAngle);
                this.Y = value * Math.Sin(currAngle); 
            }
        }
        public double Angle
        {
            get 
            {
                return Math.Atan(this.Y / this.X);
            }
            set 
            {
                double currRadis = Radius;
                this.X = currRadis * Math.Cos(value);
                this.Y = currRadis * Math.Sin(value);
            }
        }
 
        public double DistanceTo(Point anotherPoint)
        {
            return Math.Sqrt((this.X - anotherPoint.X) * (this.X - anotherPoint.X)
                + (this.Y - anotherPoint.Y) * (this.Y - anotherPoint.Y));
        }
    }
0
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
06.01.2012, 12:36  [ТС] 13
Ошибка 1 Для нестатического поля, метода или свойства "Point.DistanceTo(Point)" требуется ссылка на объект
Ошибка 2 Элемент "observer" не существует в текущем контексте.

Ошибка 3 Элемент "observerY" не существует в текущем контексте.

Добавлено через 11 минут
каким кодом подключить класс в код кнопки?
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
06.01.2012, 12:38 14
Point замени на _Point - Это будет переменная класса которую создашь в конструкторе формы.
По поводу ObserverX и ObserverY - это значения которые вытаскиваются из соответствующих текстбосов на форме:

C#
1
2
3
4
5
6
// ObserverX_TB -- название TextBox на форме ( ObserverY_TB тоже ) 
double observerX = Double.Parse( ObserverX_TB.Text );
double observerY = Double.Parse( ObserverY_TB.Text );
// _Point -- переменная класса формы
double distance = _Point.DistanceTo( new Point( observerX, observerY ) );
DistanceTextBox.Text = distance.ToString();
Надеюсь так понятнее.

Добавлено через 1 минуту
каким кодом подключить класс в код кнопки?
lol, что ?
0
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
06.01.2012, 12:49  [ТС] 15
Ошибка 1 Наиболее подходящий перегруженный метод для "System.Drawing.Point.Point(int, int)" имеет несколько недопустимых аргументов
Ошибка 2 Аргумент "1": преобразование типа из "System.Windows.Forms.TextBox" в "int" невозможно
Ошибка 3 Аргумент "2": преобразование типа из "System.Windows.Forms.TextBox" в "int" невозможно
Ошибка 4 Наиболее подходящий перегруженный метод для "WindowsFormsDLL_s_clasom_Point._Point.DistanceTo(WindowsFor msDLL_s_clasom_Point._Point)" имеет несколько недопустимых аргументов
Ошибка 5 Аргумент "1": преобразование типа из "System.Drawing.Point" в "WindowsFormsDLL_s_clasom_Point._Point" невозможно
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
06.01.2012, 12:55 16
Ошибка 1 Наиболее подходящий перегруженный метод для "System.Drawing.Point.Point(int, int)" имеет несколько недопустимых аргументов
Блджад, конфликт имен.
1) Попробуй убрать
C#
1
using System.Drawing;
Вроде ничего не должно сломаться.

Ошибка 2 Аргумент "1": преобразование типа из "System.Windows.Forms.TextBox" в "int" невозможно
Ошибка 3 Аргумент "2": преобразование типа из "System.Windows.Forms.TextBox" в "int" невозможно
Ты правильно все написал?

C#
1
2
double observerX = Double.Parse( ObserverX_TB.Text );
double observerY = Double.Parse( ObserverY_TB.Text );
0
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
06.01.2012, 12:58  [ТС] 17
теперь только 1 ошибка
Ошибка 1 Не удалось найти имя типа или пространства имен "Point" (пропущена директива using или ссылка на сборку?)
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
06.01.2012, 13:02 18
Значит ты не подключил dll.
Попробуй Reference => Add Reference => Browse => Укажи путь к dll с Point.
0
1 / 1 / 0
Регистрация: 06.01.2012
Сообщений: 22
06.01.2012, 13:04  [ТС] 19
что за Reference немогу понять(
0
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
06.01.2012, 13:06 20
В Solution Explorer ( Который сбоку ) если его там нет тогда попробуй view => SolutionExplorer
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2012, 13:06

построить точку, заданную тремя координатами в пространстве
простите за глупый вопрос. но как построить точку, заданную тремя координатами в пространстве,...

Проходит ли график функции y = 5x^2-7x+2 через заданную точку с координатами (а, b)
2. Составьте программу, определяющую, пройдет график функции y = 5x2-7x+2 через заданную точку с...

36. График функции у = ах2 + Ьх+ с проходит через заданную точку с координатами (т, п)
36. График функции у = ах2 + Ьх+ с проходит через заданную точку с координатами (т, п).

График функции у = ах2 + bx + с проходит через заданную точку с координатами (т, п).
График функции у = ах2 + bx + с проходит через заданную точку с координатами (т, п).

Найти соприкасающиеся плоскости кривой, проходящие через заданную точку
Найти соприкасающиеся плоскости кривой x=t, y=2t, z=t^2, проходящие через точку М(1, 0, 1) ...

Составьте алгоритм, определяющий, пройдет график функции через заданную точку с координатами
Составьте алгоритм, определяющий, пройдет график функции y = 5x2-7x 2 через заданную точку с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru