Модифицирование программы для определения класса, реализующего понятие геометрической фигуры в графической системе (Лабораторная работа № 2), страница 5

 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