Пример #1
0
        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.");
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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);
                }
            }
        }