public static void Main(string[] args) { Console.Write("Enter number of figures: "); Figure[] figureMassive = new Figure[0]; int n = 0; try { int.TryParse(Console.ReadLine(), out n); if (n < 1) { throw new Exception(); } figureMassive = new Figure[n]; } catch { Console.WriteLine("Error. Wrong number. It must be positive integer"); } Console.WriteLine($"{Environment.NewLine}Enter {n} numbers from 1 to 5. 1 - Line, 2 - Circle, 3 - Rectangle, 4 - Round, 5 - Ring"); int type = 0; try { for (int i = 0; i < n; i++) { Console.Write("Enter figure number: "); int.TryParse(Console.ReadLine(), out type); if (type < 1 || type > 5) { throw new Exception(); } switch (type) { case 1: Console.WriteLine("Enter one at a time x1, y1, x2, y2: "); int x1, x2, y1, y2; int.TryParse(Console.ReadLine(), out x1); int.TryParse(Console.ReadLine(), out y1); int.TryParse(Console.ReadLine(), out x2); int.TryParse(Console.ReadLine(), out y2); Console.WriteLine("____"); figureMassive[i] = new Line(x1, y1, x2, y2); break; case 2: Console.WriteLine("Enter one at a time x, y, r: "); int x, y, r; int.TryParse(Console.ReadLine(), out x); int.TryParse(Console.ReadLine(), out y); int.TryParse(Console.ReadLine(), out r); Console.WriteLine("____"); figureMassive[i] = new Circle(x, y, r); break; case 3: Console.WriteLine("Enter one at a time x1, y1, x2, y2, x3, y3, x4, y4: "); int x3, x4, y3, y4; int.TryParse(Console.ReadLine(), out x1); int.TryParse(Console.ReadLine(), out y1); int.TryParse(Console.ReadLine(), out x2); int.TryParse(Console.ReadLine(), out y2); int.TryParse(Console.ReadLine(), out x3); int.TryParse(Console.ReadLine(), out y3); int.TryParse(Console.ReadLine(), out x4); int.TryParse(Console.ReadLine(), out y4); Console.WriteLine("____"); figureMassive[i] = new Rectangle(x1, y1, x2, y2, x3, y3, x4, y4); break; case 4: Console.WriteLine("Enter one at a time x, y, r: "); int.TryParse(Console.ReadLine(), out x); int.TryParse(Console.ReadLine(), out y); int.TryParse(Console.ReadLine(), out r); Console.WriteLine("____"); figureMassive[i] = new Round(x, y, r); break; case 5: Console.WriteLine("Enter one at a time x, y, r, R: "); int r2; int.TryParse(Console.ReadLine(), out x); int.TryParse(Console.ReadLine(), out y); int.TryParse(Console.ReadLine(), out r); int.TryParse(Console.ReadLine(), out r2); Console.WriteLine("____"); figureMassive[i] = new Ring(x, y, r, r2); break; } } Console.WriteLine($"{Environment.NewLine}Drawing..{Environment.NewLine}"); for (int i = 0; i < figureMassive.Length; i++) { figureMassive[i].DrawFigure(); } } catch { Console.WriteLine(" ERROR. Wrong input data. Incorrect input, or incorrect figure."); } }
private static void Main(string[] args) { try { List <Figure> listFigure = new List <Figure>(); while (true) { Console.WriteLine("Select the type of figure:"); foreach (TypeFigure elem in Enum.GetValues(typeof(TypeFigure))) { Console.WriteLine($"{(int)elem + 1}. {elem}"); } if (int.TryParse(Console.ReadLine(), out int num)) { string name = string.Empty; int len; double radius; switch (num) { case 1: Console.WriteLine("Enter line name:"); name = Console.ReadLine(); Console.WriteLine("Enter line length:"); if (int.TryParse(Console.ReadLine(), out len)) { Line line = new Line(name, len); listFigure.Add(line); } break; case 2: Console.WriteLine("Enter round name:"); name = Console.ReadLine(); Console.WriteLine("Enter round radius:"); if (double.TryParse(Console.ReadLine(), out radius)) { Round round = new Round(name, radius); listFigure.Add(round); } break; case 3: Console.WriteLine("Enter circle name:"); name = Console.ReadLine(); Console.WriteLine("Enter circle radius:"); if (double.TryParse(Console.ReadLine(), out radius)) { Circle circle = new Circle(name, radius); listFigure.Add(circle); } break; case 4: Console.WriteLine("Enter ring name:"); name = Console.ReadLine(); Console.WriteLine("Enter ring inner radius:"); if (int.TryParse(Console.ReadLine(), out int radiusIn)) { Console.WriteLine("Enter ring outer radius:"); if (int.TryParse(Console.ReadLine(), out int radiusOut)) { Ring ring = new Ring(name, radiusIn, radiusOut); listFigure.Add(ring); } } break; case 5: Console.WriteLine("Enter rectangle name:"); name = Console.ReadLine(); Console.WriteLine("Enter rectangle first side:"); if (int.TryParse(Console.ReadLine(), out int side1)) { Console.WriteLine("Enter rectangle second side:"); if (int.TryParse(Console.ReadLine(), out int side2)) { Rectangle rect = new Rectangle(name, side1, side2); listFigure.Add(rect); } } break; } } Console.WriteLine(); Console.WriteLine("Created figures:"); foreach (var elem in listFigure) { Console.WriteLine(elem.Show()); } Console.WriteLine(); } } catch (Exception ex) { Console.WriteLine(ex); } }
public static void Main(string[] args) { Console.WriteLine("What type of figure do you need? Choose one of them:"); Console.WriteLine("line, round, rectangle, circle, ring"); string pos = Console.ReadLine(); double x1; double y1; bool checkX; bool checkY; string type; while (true) { Console.Write("Print x1: "); checkX = double.TryParse(Console.ReadLine(), out x1); Console.Write("Print y1: "); checkY = double.TryParse(Console.ReadLine(), out y1); try { switch (pos) { case "line": { double x2; double y2; Console.Write("Print x2: "); bool checkX2 = double.TryParse(Console.ReadLine(), out x2); Console.Write("Print y2: "); bool checkY2 = double.TryParse(Console.ReadLine(), out y2); Line line = new Line(x1, y1, x2, y2, checkX, checkY, checkX2, checkY2); type = line.TypeOfFigure; Console.WriteLine("this is: {0}, {1}:", type, line.GetLine); break; } case "round": { Console.Write("Print radius: "); int radius; bool checkRadius = int.TryParse(Console.ReadLine(), out radius); while (!checkRadius) { Console.WriteLine("Wrong radius, try again"); Console.Write("Print radius: "); checkRadius = int.TryParse(Console.ReadLine(), out radius); } Round round = new Round(x1, y1, radius, checkX, checkY, checkRadius); Console.WriteLine("this is: {0}, center ({1}, {2}) and radius {3}", round.TypeOfFigure, round.GetX, round.GetY, round.GetRadius); break; } case "rectangle": { double x2; double y2; Console.Write("Print x2: "); bool checkX2 = double.TryParse(Console.ReadLine(), out x2); Console.Write("Print y2: "); bool checkY2 = double.TryParse(Console.ReadLine(), out y2); Rectangle rectangle = new Rectangle(x1, y1, x2, y2, checkX, checkY, checkX2, checkY2); Console.WriteLine("this is: {0}, AB = {1}, BC = {2}, CD = {3}, AD = {4}, square = {5}", rectangle.TypeOfFigure, rectangle.GetAB, rectangle.GetBC, rectangle.GetCD, rectangle.GetAD, rectangle.GetSquare); break; } case "circle": { Console.Write("Print radius: "); int radius; bool checkRadius = int.TryParse(Console.ReadLine(), out radius); Circle circle = new Circle(x1, y1, radius, checkX, checkY, checkRadius); Console.WriteLine("this is: {0}, center ({1}, {2}), radius = {3}, square = {4}", circle.TypeOfFigure, circle.GetCenterX, circle.GetCenterY, circle.GetRadius, circle.GetSquare); break; } case "ring": { Console.Write("Print radius: "); int radius; bool checkRadius = int.TryParse(Console.ReadLine(), out radius); Console.Write("Print inner radius: "); int innerRadius; bool checkInnerRadius = int.TryParse(Console.ReadLine(), out innerRadius); Ring ring = new Ring(x1, y1, radius, innerRadius, checkX, checkY, checkRadius, checkInnerRadius); Console.WriteLine("this is: {0}, center ({1}, {2}), radius = {3}, inner radius = {4}, square = {5}", ring.TypeOfFigure, ring.GetCenterX, ring.GetCenterY, ring.GetRadius, ring.GetInnerRadius, ring.Square); break; } default: { Console.WriteLine("You didn't choose one of those types"); break; } } break; } catch (Exception e) { Console.WriteLine(e); } } }