printf ("X2 --- %d\nY2 --- %d\nDx2 -- %d\nDy2 -- %d\nAng2 - %d\n",R.Get(6),R.Get(7),R.Get(8),R.Get(9),R.Get(10));
getch();
}
void main()
{int gmode, choice;
int gdriver = DETECT, errorcode;
initgraph(&gdriver, &gmode, "C:\\bc\\bgi");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}
do
{restorecrtmode();
clrscr();
printf ("1 - Contur romba\n");
printf ("2 - Zakrashennyj romb\n");
printf ("3 - Dva vlozhennyh romba\n\n");
printf ("4 - Vvesti parametry (vse)\n");
printf ("5 - Izmenit parametry (vyborochno)\n");
printf ("6 - Graphic options\n");
printf ("7 - Vyvod dannyh na ekran\n\n");
printf ("8 - Save\n");
printf ("9 - Load\n\n");
printf ("0 - Exit\n");
scanf ("%d",&choice);
switch (choice)
{case 1: setgraphmode(gmode); R.contromb();getch();break;
case 2: setgraphmode(gmode); R.coloromb();getch();break;
case 3: setgraphmode(gmode); R.dupromb();getch();break;
case 4: restorecrtmode(); enter();break;
case 5: restorecrtmode(); Change(); if (check2()) printf ("error:ne vlozheny\n");if (check1()) printf (“error:za ekran”);getch();break;
case 6: restorecrtmode(); Goptions(); break;
case 7: restorecrtmode(); Output(); break;
case 8: R.save();break;
case 9: R.load(); if (check2()) printf ("error:ne vlozheny\n");
if (check1()) printf (“error:za ekran\n”);getch();break;
case 0: break;
}
}
while (choice!=0);
closegraph();
}
4. Набортестов
№ |
Введенные данные: координаты x,y; длины диагоналей горизонтальной и вертикальной; угол наклона ромба по часовой стрелке Или функция |
Результат |
1 |
320 240 10 15 30 320 240 20 30 30 contromb(), =>coloromb(), =>dupromb() |
Незакрашенный ромб с углом наклона 30, =>закрашенный ромб, => два ромба, 1-й вложен во 2-й |
2 |
320 240 50 100 0 320 240 10 15 0 check1()->Get() |
Сообщение о том, что ромбы не являются вложенными |
3 |
20 20 10 15 0 20 20 15 20 0 check2()->Getxy() |
Сообщение о том, что ромб выходит за пределы экрана |
4 |
320 240 10 15 30 320 240 20 30 30 Output()-> Get() |
Вывод на экран: 320 240 10 15 30 320 240 20 30 30 |
5 |
load() |
Из файла load.txt были загружены находящиеся в нем данные: параметры ромба, графические параметры |
6 |
save() |
В файл save.txt были сохранены текущие параметры ромба и графические параметры |
7 |
Vektor() -> move(100,50) |
Ромб был перемещен на 100pix по оси X и на 50pix по оси Y |
8 |
Vektor() -> move(1000,10) |
Сообщение о том, что в результате перемещения ромб попадет за пределы экрана. Предложение ввести новые данные |
9 |
enter() 1)320 240 10 15 30 320 0 1 20 30 2)320 240 50 50 0 320 240 30 30 0 3)320 240 10 15 30 320 240 5 20 30 |
1) Сообщение, что данные не верны, просьба ввести новые. 2) Сообщение, что ромбы не вложены, необходимо ввести правильные данные. 3)Отправляет данные в Romb::enter |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.