Разработка класса контейнера, реализующего понятие множества без дубликатов (Лабораторная работа № 3), страница 2

                                           printf("\n There are such element");

                                    else printf("\n There are no such element.");

                                    getch();};

 public:void print(){while(u->pred!=NULL){u=u->pred;};

                            while(u->next!=NULL)

                            {u=u->next;

                             printf("\n(x,y)=(%d,%d)\nR=%d",u->Circle.get_x(),u->Circle.get_y(),u->Circle.get_R());};

                             getch();};

 public:void reverseprint(){while(u->next!=NULL)u=u->next;

                                       while(u->pred!=NULL)

                                         {printf("\n(x,y)=(%d,%d)\nR=%d",u->Circle.get_x(),u->Circle.get_y(),u->Circle.get_R());

                                         u=u->pred;};

                                       getch();};

 public:container(){u=new och;

                            u->next=NULL;

                            u->pred=NULL;};

 public:~container(){while(u->pred!=NULL)u=u->pred;

                            while(u->next!=NULL)

                              {temp=u;

                               u=u->next;

                               u->pred=NULL;

                               delete temp;}

                            u=NULL;};

};

/***********************Программа****************************/

#include<graphics.h>

#include<conio.h>

#include<stdio.h>

#include<stdlib.h>

#include"Z:\help.cpp"

void main()

{container test;

 int menu=50;

            clrscr(); /*Clear the screen.*/

            int gd, gm, error;

            detectgraph(&gd, &gm);

            initgraph(&gd, &gm, "Y:\\bc\\bgi");

            error=graphresult();

//-----------------proverka na oshibki-----------//

            if(error!=grOk)

             {

             puts("oshibka grafiki");

             puts(grapherrormsg(error));

             exit(1);

             }

//-----------------------------------------------//

            cleardevice();

            clearviewport();

            settextstyle(SMALL_FONT,HORIZ_DIR,4);

            setfillstyle(SOLID_FILL,14);

            maxx=getmaxx();

            maxy=getmaxy();

   while(menu!=0)

            {clrscr();

            outtextxy(maxx-300,maxy-210,"Choose the operation:");

            outtextxy(maxx-300,maxy-190,"1-Add element.");

            outtextxy(maxx-300,maxy-180,"2-Search element.");

            outtextxy(maxx-300,maxy-170,"3-Direct way of printing.");

            outtextxy(maxx-300,maxy-160,"4-Reverse way of printing.");

            outtextxy(maxx-300,maxy-150,"0-Exit");

            scanf("%d",&menu);

            if (menu==1) {clrscr(); test.add_el(); clrscr();};

            if (menu==2) {clrscr(); test.search_el(); clrscr();};

            if (menu==3) {clrscr(); test.print();clrscr();};

            if (menu==4) {clrscr(); test.reverseprint(); clrscr();};

            if (menu!=0&&menu!=1&&menu!=2&&menu!=3&&menu!=4){printf("Unknown operation!"); getch();};

};

            fclose(fp);

            fclose(fp2);

            closegraph();

            exit(0);

}


4.  Тесты:

Входные данные

Проверка

«Распечатка» в прямом порядке

«Распечатка» в обратном порядке

Результаты поиска

100,100

10||200,200,20||300,300,30

окружности

(100,100)

10||(200,200),20||(300,300),30

5.  Результаты тестирования.

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