Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/41: Рейтинг темы: голосов - 41, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 9

Описать класс "Круг" и предусмотреть все необходимые методы

12.04.2012, 22:15. Показов 8539. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проверьте плж, правильно ли я написал?
Если нет, то укажите ошибки.

Код программы:

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
/*Предусмотреть метод для создания объектов, вычисления площади круга, длины окружности,
  проверки попадания заданной точки в внутрь круга. Описать свойства для получения состояния объекта*/
 
namespace lab_4_v12_task_1
{
    class DISK
    { 
        public DISK()
        {
            this.contain = "";
            this.radius = 0;
            this.square = 0;
            this.lenght = 0;
        }
 
        public DISK(double R, double x, double y) : this()
        {
            this.radius = R;
            this.square = 3.14 * Math.Pow(radius,2);
            this.lenght = 2 * 3.14 * radius;
            if (Math.Pow(x, 2) + Math.Pow(y, 2) < Math.Pow(radius, 2))
                this.contain = "Данная точка входит в внутрь круга!";
            else
                this.contain = "Данная точка не входит в внутрь круга!";
        }
 
        public void Condition()
        {
            Console.WriteLine("Радиус = {0}",radius);
            Console.WriteLine("Площадь = {0}", square);
            Console.WriteLine("Длина окружности = {0}", lenght);
            Console.WriteLine(contain);
        }
 
        string contain;
        double radius, square, lenght;
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            string buf;
            
            Console.WriteLine("***lab_4_v12_task1***");
            
            Console.Write("Введите радиус круга: ");
            buf = Console.ReadLine();
            double r = Convert.ToDouble(buf);
            
            Console.Write("Введите координату x: ");
            buf = Console.ReadLine();
            double x = Convert.ToDouble(buf);
            
            Console.Write("Введите координату y: ");
            buf = Console.ReadLine();
            double y = Convert.ToDouble(buf);
            
            DISK first = new DISK(r, x, y);
            first.Condition();
 
            Console.WriteLine("***END***");
            Console.ReadKey();
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.04.2012, 22:15
Ответы с готовыми решениями:

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

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

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

10
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
13.04.2012, 08:34
я бы добавил методы для изменения параметров круга и получения этих параметров по отдельности.
Например, вдруг я захочу изменить радиус круга и посмотреть как изменится площадь или вывести только длину окружности, а не все параметры.
В общем конструктор - это конечно хорошо, но он инициализирует параметры только при создании нового экземпляра класса.
0
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 9
13.04.2012, 20:10  [ТС]
Это плохо, что он инициализирует параметры только при создании нового экземпляра класса?
0
 Аватар для gitarillo
755 / 554 / 48
Регистрация: 17.06.2010
Сообщений: 1,041
Записей в блоге: 1
13.04.2012, 20:18
wisamik, это хорошо. но ИМХО должна быть возможность менять параметры
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
13.04.2012, 20:28
ваш класс делает проверку только для случая когда центр круга лежит в начале координат. явно не то что надо.
1. следует сделать только 3 поля: координаты х и у для центра круга и его радиус.
2. конструктор только инициализирует поля. точка. Запомните это как аксиому.
3. Для вычисления площади, окружности, вхождения точки - три отдельных метода. первый два без парамтров, третий - два параметра, координаты точки. первый и второй возвращает значение, третий true/false входит-не входит. соответственно пересмотрите мат. часть для метода вхождения.

из методов можно еще добавить площадь сектора, площадь сегмента.

вовсе оригинально будет если напишите метод который указывает характер пересечения с другим кругом(внутри, извне него, пересекаются, соприкасаются, не пересекаются и не входят друг в друга)
0
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 9
13.04.2012, 20:37  [ТС]
Цитата Сообщение от gitarillo Посмотреть сообщение
wisamik, это хорошо. но ИМХО должна быть возможность менять параметры
ok, спасибо

Добавлено через 1 минуту
Цитата Сообщение от Learx Посмотреть сообщение
ваш класс делает проверку только для случая когда центр круга лежит в начале координат. явно не то что надо.
1. следует сделать только 3 поля: координаты х и у для центра круга и его радиус.
2. конструктор только инициализирует поля. точка. Запомните это как аксиому.
3. Для вычисления площади, окружности, вхождения точки - три отдельных метода. первый два без парамтров, третий - два параметра, координаты точки. первый и второй возвращает значение, третий true/false входит-не входит. соответственно пересмотрите мат. часть для метода вхождения.

из методов можно еще добавить площадь сектора, площадь сегмента.

вовсе оригинально будет если напишите метод который указывает характер пересечения с другим кругом(внутри, извне него, пересекаются, соприкасаются, не пересекаются и не входят друг в друга)
круг находится не на координатной плоскости, поэтому тут не надо указывать x, y.
а добавить всё остальное - спасибо.
я первый раз это пишу просто
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
13.04.2012, 20:40
судя по методу вхождения точки, который вы используете, именно в координатной плоскости.
0
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 9
13.04.2012, 21:35  [ТС]
Цитата Сообщение от Learx Посмотреть сообщение
судя по методу вхождения точки, который вы используете, именно в координатной плоскости.
ну если мы нарисуем круг на чистом листе. и чтобы узнать вхождение точки, мы проводим оси, которые пересекаются в центре круга, и преставляем, что центр (0,0).

А вообще, да, тут спорно. Но будем считать ,что центр у нас (0,0).
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
13.04.2012, 21:37
а как ты поступишь если я нарисую несколько кругов одинакового радиуса на одном листочке? все твои умозаключения полетят в тартарары.
0
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 9
13.04.2012, 21:39  [ТС]
Цитата Сообщение от Learx Посмотреть сообщение
а как ты поступишь если я нарисую несколько кругов одинакового радиуса на одном листочке? все твои умозаключения полетят в тартарары.
А здесь только с одним кругом работаем)
0
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
13.04.2012, 21:46
задача программиста предусмотреть все наперед и еще больше.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.04.2012, 21:46
Помогаю со студенческими работами здесь

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

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

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

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

Равенство и порядок. Добавьте в класс все необходимые для сравнения точек методы
Пусть точки упорядочиваются лексикографически («как в словаре») по имени, при совпадении имён — по первой координате, при совпадении и...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru