Ejemplo n.º 1
0
int StartMenu()
{
	bool exit = false;
	int figureChoise = 0;

	Rectangle NewRectangle;
	Triangle NewTriangle;
	Circle NewCircle;

	while(!exit)
	{
		PrintMainMenu(figureChoise);
		int currentChoise;

		cin >> currentChoise;
		if (!MakeCheckForNumberInputFromCin(kEnterCorrectChoiseValueErrorMessage))
			continue;

		if (!figureChoise && (currentChoise != kSelectFigureChoiseType) &&
			(currentChoise != kClearScreenChoiseType) &&
			(currentChoise != kExitChoiseType))
		{
			if (currentChoise > kSelectFigureChoiseType &&
				currentChoise < kClearScreenChoiseType)
			{
				printf(kYouNeedSelectFigureFirstlyErrorMessage);
				continue;
			}
			else
			{
				printf(kNoCorrespondingOptionErrorMessage);
				continue;
			}
		}

		switch (currentChoise)
		{
		 case kSelectFigureChoiseType:
			{
				PrintFirstSubMenu();
				cin >> currentChoise;

				if (!MakeCheckForNumberInputFromCin(kEnterCorrectChoiseValueErrorMessage))
					break;

				if (currentChoise != kRectangleChoiseType &&
					currentChoise != kTriangleChoiseType &&
					currentChoise != kCircleChoiseType)
				{
					printf(kEnterCorrectChoiseValueErrorMessage);
					break;
				}

				switch (currentChoise)
				{
				 case kRectangleChoiseType:
					 {
						 figureChoise = kRectangleChoiseType;
						 break;
					 }
				 case kTriangleChoiseType:
					 {
						 figureChoise = kTriangleChoiseType;
						 break;
					 }
				 case kCircleChoiseType:
					 {						 
						 figureChoise = kCircleChoiseType;
						 break;
					 }
				 default:
					 {
						 printf(kNoCorrespondingOptionErrorMessage);
						 break;
					 }
				}
				break;
			}
		 case kEnterFigureParametersChoiseType:
			 {
				 if (figureChoise == kRectangleChoiseType)
				 {
					 printf(kEnterRectangleXCoordinetMessage);
					 printf(kInputSymbolMessage);
					 int rectX;					 
					 cin >> rectX;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewRectangle.SetLeftDownAngleX(rectX);
					 
					 printf(kEnterRectangleYCoordinetMessage);
					 printf(kInputSymbolMessage);
					 int rectY;
					 cin >> rectY;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewRectangle.SetLeftDownAngleY(rectY);

					 printf(kEnterRectangleWidthMessage);
					 printf(kInputSymbolMessage);
					 int rectWidth;
					 cin >> rectWidth;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewRectangle.SetWidth(rectWidth);

					 printf(kEnterRectangleHeightMessage);
					 printf(kInputSymbolMessage);
					 int rectHeight;
					 cin >> rectHeight;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewRectangle.SetHeight(rectHeight);					 
				 }
				 else if (figureChoise == kTriangleChoiseType)
				 {
					 printf(kEnterLeftDownAngleXCoordinetMessage);
					 printf(kInputSymbolMessage);
					 int leftDownAngleX;
					 cin >> leftDownAngleX;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewTriangle.SetFirstPointX(leftDownAngleX);

					 printf(kEnterLeftDownAngleYCoordinetMessage);
					 printf(kInputSymbolMessage);
					 int leftDownAngleY;
					 cin >> leftDownAngleY;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewTriangle.SetFirstPointY(leftDownAngleY);

					 printf(kEnterRightDownAngleXCoordinetMessage);
					 printf(kInputSymbolMessage);
					 int rightDownAngleX;
					 cin >> rightDownAngleX;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewTriangle.SetSecondPointX(rightDownAngleX);

					 printf(kEnterRightDownAngleYCoordinetMessage);
					 printf(kInputSymbolMessage);
					 int rightDownAngleY;
					 cin >> rightDownAngleY;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewTriangle.SetSecondPointY(rightDownAngleY);

					 printf(kEnterUpperAngleXCoordinetMessage);
					 printf(kInputSymbolMessage);
					 int upperAngleX;
					 cin >> upperAngleX;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewTriangle.SetThirdPointX(upperAngleX);

					 printf(kEnterUpperAngleYCoordinetMessage);
					 printf(kInputSymbolMessage);
					 int upperAngleY;
					 cin >> upperAngleY;
					 if (!MakeCheckForNumberInputFromCin(kEnterCorrectValueErrorMessage))
					 break;
					 NewTriangle.SetThirdPointY(upperAngleY);					 
				 }
				 else if (figureChoise == kCircleChoiseType)