CPP.CPP
#include<graphics.h>
#include<math.h>
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
int sravnenie(long x1,long x2,long y1,long y2,long r1,long r2)
{int d;
d=int(sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
if (d>(r1+r2)) return 1; else return 0;} //1-ne peresekajutsja 0-peresikajutsja
void main()
{char s,otv;
int dr=DETECT, mod, err;
int color[100],KOL,ist;
long x[100],y[100],r[100],l,i,f,k,j,n;
m1:
initgraph(&dr,&mod," ");
err=graphresult();
if(err) {
cout<<"error initgraph"<<grapherrormsg(err);
exit(1);
}
cout<<"Vvedite kol-vo okruzhnostei -> "; cin>>KOL;
randomize();
cleardevice();
for (i=0;i<KOL;i++)
{
x[i]=random(540)+50;
y[i]=random(320)+80;
r[i]=random(20)+30;
color[i]=random(13)+1;
}
for (i=0;i<KOL;i++)
{ setcolor(color[i]);
circle(x[i],y[i],r[i]); }
outtextxy(5,5,"Press '1' for vivoda okryzhnostei yedinenih");
outtextxy(5,15,"Press '2' for vivoda okryzhnostei sgrypirovanih po 3");
outtextxy(5,25,"Press 'q' for quit");
m: ist=0;
s=getch();
if (s=='1') {
cleardevice();
for (i=0;i<KOL;i++)
{ f=0;
for (j=0;j<KOL;j++)
if (i!=j) if (sravnenie(x[i],x[j],y[i],y[j],r[i],r[j])==1) f++;
if (f==KOL-1) {setcolor(color[i]); circle(x[i],y[i],r[i]); ist++;}
}if (ist==0) cout<<"Takix okryzhnostei net\n\n\n\n";
} else
if (s=='2') { cleardevice();
for (i=0;i<KOL;i++)
for (j=0;j<KOL;j++)
if (i!=j) if (sravnenie(x[i],x[j],y[i],y[j],r[i],r[j])==0)
{ f=0;
for(l=0;l<KOL;l++)
if ((l!=i)&&(l!=j))
if
(sravnenie(x[i],x[l],y[i],y[l],r[i],r[l])==0)||(sravnenie(x[l],x[j],y[l],y[j],r[l],r[j])==0)) {f++; k=l;}
if (f==1)
for (n=0;n<KOL;n++)
if ((n!=k)&&(n!=i)&&(n!=j))
if (sravnenie(x[n],x[k],y[n],y[k],r[n],r[k])==0) f++;
if (f==1)
{setcolor(color[i]);
circle(x[i],y[i],r[i]);
setcolor(color[j]);
circle(x[j],y[j],r[j]);
setcolor(color[k]);
circle(x[k],y[k],r[k]); ist++;}
}
if (ist==0) cout<<"Takix okruzhnostei net\n\n\n\n"; } else
if (s=='q') exit(1); else goto m;
cout<<"Snova? (y,n)"; otv=getch();
if (otv=='y') {closegraph(); goto m1;} else exit(1);
}
Руководство пользователя
При запуске курсовой работы на дисплее появится титульный лист сопровождаемый мелодией и анимацией.
Нажмите:
- любую клавишу для остановки мелодии.
- P для проигрывания мелодии
- M для перехода к МЕНЮ
- ESC для выхода
Перейдите к МЕНЮ для запуска курсовой работы
В МЕНЮ наведите курсор на задание и нажмите ENTER. Запускается задание курсовой работы. Просмотрев результат работы задания, нажимаем клавишу клавишу Q и выходим в МЕНЮ. Для выхода из программы нажимаем – ESC.
При работе с программой могут возникнуть проблемы: программа может не запускаться, и выводить ошибку инициализации графики. Чтобы избежать этого пользователь должен перед запуском программы убедиться в том, что файл EGAVGA.BGIнаходится в данном каталоге. В каталоге так же должны находится исполняемые файлы KOMP.EXE(Титульный лист) CPP.EXE(Задание по курсовой работе).
Программа нормально работает в операционных системах WindowsXP/NT/2000/98, а так же в MS-DOS'e. В других операционных системах программа не тестировалась.
Список используемой литературы
- Бьерн Страуструп «Язык программирования С++»
- Дейтел и Дейтел «Как программировать на C++»
- Дейтел и Дейтел «Как программировать на C»
- А.Б.Крупник «Изучаем C++»
- В.В.Подбельский «Язык Си++»
- Курс лекций по предмету «Программирование на ЯВУ»
- Методические указания к лабораторным работам по предмету «Программирование на ЯВУ»