Разработка класса "Геометрическая фигура"

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

lt;CoordRO<<endl

CoordFi<<endl

<< "Point."<<endl<<endl;();

}

}::~Point()

{_t seconds = time(NULL);* timeinfo = localtime(&seconds);>SetQuiet(0);(Qu)

{<<endl<<endl

<<asctime(timeinfo)

<< "~Point:" <<endl

CoordRO<<endl

CoordFi<<endl

<< "~Point."<<endl<<endl;();

}

}Point::RotatePoint(Point &Second, double Angle, int j)

{, CrdY, X, Y;, CoordY;(&CoordX, &CoordY);.ConvertToXY(&X, &Y);= X + (CoordX - X)*cos(Angle) - (CoordY - Y)*sin(Angle);= Y + (CoordX - X)*sin(Angle) + (CoordY - Y)*cos(Angle);(CrdX,CrdY);

}Point::ConvertToXY(double *CoordX, double *CoordY)

{

*CoordX = CoordRO*cos(CoordFi);

*CoordY = CoordRO*sin(CoordFi);

}Point::ConvertToRF(double CoordX, double CoordY)

{= sqrt(pow(CoordX,2)+pow(CoordY,2));(CoordX> 0)

{(CoordY>= 0)= atan(CoordY/CoordX);= atan(CoordY/CoordX) + 2*M_PI;

}(CoordX 0)= M_PI/2;(CoordY< 0)= 3*M_PI/2;= 0;

}Point::GetCoordRO() const

{<< "The radial coordinate of the point - RO: " <<CoordRO<<endl;

}Point::GetCoordFi() const

{<< "The angular coordinate of a point in radians - Fi: " <<CoordFi<<endl;

}Point::SetCoord(char ch)

{

charstr[2]; // Будем вводить макс. один символ для проверки наличия лишнего

double work = NULL;(ch)

{P:

{= NULL, CoordY = NULL;(;;)

{<<endl<< "Please enter a value of X coordinate (numeric) - ";= scanf("%lf""%1[^\n]""%*[^\n]", &CoordX, str);(num != 1)

{("\n>>Only digits and only one number allowed!<<\n");();(num == 0)("%*[^\n]");

}; // Из for(;;)

}(;;)

{<<endl<< "Please enter a value of Y coordinate (numeric) - ";= scanf("%lf""%1[^\n]""%*[^\n]",&CoordY,str);(num != 1)

{("\n>>Only digits and only one number allowed!<<\n");();(num == 0)("%*[^\n]");

};

}>ConvertToRF(CoordX, CoordY);0;

}F:

{(;;)

{();<< "Enter the angular coordinate of a point " <<

"(in radians) - Fi: ";= scanf("%lf""%1[^\n]""%*[^\n]", &work, str);(num != 1)

{("\n>>Only digits and only one number allowed!<<\n");();(num == 0)("%*[^\n]");

}(work 2*M_PI)

{Radial coordinate of the point must be " <<

"be greater than 0 and less than 2*Pi<<" <<endl;();

};

}work;

}

}

return 0;

}

программа геометрическая фигура

9 Тестирование программы

 

Производится тестирование программы с целью ее отладки и определения корректности ее работы. Тестирование проводится по принципу черного ящика. Проверяется работоспособность функций поворота и создания симметричной фигуры относительно заданной точки.

 

Метод классов эквивалентности:

№(X0,Y0)(X1,Y1)AngleArea(.) sim(RO,Fi)(RO,Fi)Radius1.(1;1)(0;0)0.7855.49819(5,5)12.7279 0.78539814.1421 0.7853981.414212.(3;4)(4;12)0.314193.999(-1,-6)16.7631 4.409524.7386 4.46741193.9993.(100;1000)(100;-700)5.781725658(33,18)964.599 4.67713736.785 1.6469617004.(-150;-5)(70,-49)6.2111816.76(0,22;1.76)150.681 0.05657387.1604 2.49488224.357

№(X0,Y0)(X1,Y1)Angle(X,Y)Rotate(RO,Fi)(RO,Fi)Area1.(1;1)(0;0)0.785(5,5)0.141.66815 0.2924740.989141 5.567795.498192.(3;4)(4;12)0.314(-1,-6)4.56914.1069 5.3436921.025 5.58466193.9993.(100;1000)(100;-700)5.781(33,18)2.356947.615 3.86724756.171 0.859867256584.(-150;-5)(70,-49)6.211(0,22;1.76)5.555151.32 2.4484484.6179 4.933051816.76

Итог

 

Общее количество строк текста: 208+168+122 = 498;

Количество строк комментариев, занимающих отдельные строки: 14;

Количество пустых строк: 38.

 

Вывод

 

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