Разработка класса "Геометрическая фигура"
Контрольная работа - Компьютеры, программирование
Другие контрольные работы по предмету Компьютеры, программирование
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.
Вывод
Разработанная программа отвечает поставленным требованиям. Работоспособность программы подтверждается разработчиком на основании и тестирования основных функций программы. Несомненными достоинствами класса является легкая интегрируемость за счет понятности текста класса, удобство и надежность.