Задача о бассейне с колоннами С++ WinForms Visual Studio 2010

Задание на курсовую работу

  • Описание: В прямоугольном зале с колоннами необходимо разместить круглый бассейн максимального радиуса. Очевидно, он не должен пересекать колонны и стены зала. Найти радиус и координаты центра бассейна и изобразить графически.
  • Исходные данные: В примере, первая строка содержит одно число N —количество колонн (0 ≤ N ≤ 1000). Во второй строке записаны три действительных числа: R — радиус каждой из колонн, MX, MY — ширина и высота зала. Дале идут N строк по два действительных числа: координаты очередной колонны относительно левого нижнего угла зала.
  • Результат: максимальный радиус бассейна и координаты его центра. Все числа должны быть выведены с пятью правильными знаками после запятой.
  • Пример:

Исходные данные

Результат

1

5 100 100

55 55

  • 30.14719 30.14719
  • Описание принципа работы  приложения в текстовой форме:

Пошаговый алгоритм использования программы:

  • Запуск приложения
  • Ввод ширины и высоты зала с бассейном (ввод только числовых значений)
  • При создании зала программа уведомляет Вас о  том, каким образом добавляются и удаляются колонны в зале.
  • Добавление – левая кнопка мыши
  • Удаление – правая кнопка мыши
  • Результаты задачи: максимальный радиус бассейна и координаты его центра, отражаются в верхнем левом углу формы, каждое изменение в программе (добавление или удаление колонны) влечет за собой изменение результатов решения задачи.

Содержание архива

  • исходный код  на C# для Visual Studio 2010
  • Пояснительная записка

Фрагмент программного кода

private: System::Void DrawPanel_MouseClick(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) 
{
sCircle t = newCircle(e->X,e->Y,1);
//если левая то добавляем круг
if (e->Button == System::Windows::Forms::MouseButtons::Left){//проверка пересмечения
for (int i=0;i<cCount;i++)
if (is2CirclesCollide(t,c[i])) return;
					
//вызов формы
add_form->cx = e->X;
add_form->cy = e->Y;
add_form->ShowDialog();
if (add_form->cr<=0) return;

//добавление в массив
	t = newCircle(add_form->cx,add_form->cy,add_form->cr);
	cCount++;
	c = (sCircle*) realloc(c,sizeof(sCircle)*cCount); 
	c[cCount-1] = t;
			}
	//если правая то удаляем
	if (e->Button == System::Windows::Forms::MouseButtons::Right) {
		bool find = false;
		for (int i=0;i<cCount;i++){
		     if (is2CirclesCollide(t,c[i])){
			find = true;
			if (cCount == 1){
			cCount = 0;
			break;}
                     else{
			c[i] = c[cCount-1];
			cCount--;
			break;
			}
			}
			}
		        if (!find) return;
			}

Присоединяйся

Зарегестрируйся с помощью социальных сетей.

Публикуй

Опиши работу, прикрепи файлы и назначь цену.

Зарабатывай

Получай пассивный доход с продажи работ.

Тебе понадобится 5 минут для публикации работы на сайте.
Купить

780,00 

(без учета комиссии 3,8 %)

9. Задача о бассейне с колоннами.rar
6942451
Оцени работу

рейтинг

Поделись работой с друзьями

Мы не грузим циферки, чтоб ты увидел контент как можно быстрее;

Комментарии (1)

klausms

/ /

Оставить комментарий

Ты не можешь комментировать

Только зарегестрированые пользователи имеют возможность комментировать работы
Задача о бассейне с колоннами С++ WinForms Visual Studio 2010
Описание: В прямоугольном зале с колоннами необходимо разместить круглый бассейн максимального радиуса. Очевидно, он не должен пересекать колонны и стены зала. Найти радиус и координаты центра бассейна и изобразить графически.
Категория: Образование
Стоимость: 780,00