На нашем сайте Вы сможете найти готовые курсовые и дипломные работы по программированию
Сейчас работаем

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

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

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

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

Результат

1

5 100 100

55 55

  • 30.14719 30.14719

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

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

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

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

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;
			}

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

  • исходный код  на C++ WinForms Visual Studio 
  • Пояснительная записка (9 страниц)
Купить 99,00 
Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.
Комментарии (1)

/ /

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

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

Только зарегистрированые пользователи имеют возможность комментировать работы
Купить

99,00 

Сразу после оплаты Вы сможете скачать работу и мы вышлем дополнительно файл с работой на электронную почту. Исходник программ Вы сможете отредактировать, как Вам нужно.

Заказать через

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

рейтинг

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