/// <summary>
        /// ShapeChoice: Checks what shapes user choose
        /// </summary>
        private static void ShapeChoice()
        {
            int  shapesCounter = Shape.GetCount(); //
            bool result        = true;             //
            bool wrongInput    = false;            //

            switch (userInput.ToUpper())
            {
            case "A":
                shape[shapesCounter] = new Rectangle();
                break;

            case "B":
                shape[shapesCounter] = new Square();
                break;

            case "C":
                shape[shapesCounter] = new Box();
                break;

            case "D":
                shape[shapesCounter] = new Cube();
                break;

            case "E":
                shape[shapesCounter] = new Ellipse();
                break;

            case "F":
                shape[shapesCounter] = new Circle();
                break;

            case "G":
                shape[shapesCounter] = new Cylinder();
                break;

            case "H":
                shape[shapesCounter] = new Sphere();
                break;

            case "I":
                shape[shapesCounter] = new Triangle();
                break;

            case "J":
                shape[shapesCounter] = new Tetrahedron();
                break;

            case "0":
                result = false;
                break;

            default:
                WrongChoice();
                wrongInput = true;
                break;
            }
            if (result && !wrongInput)
            {
                shape[shapesCounter].SetData();
            }
            usertInputResult = result;
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            //создание экзмепляров классов
            var rect   = new Rectangle(4, 5);
            var square = new Square(6);
            var circle = new Circle(10);

            //создание обобщенного списка и вывод
            var arrayList = new ArrayList {
                square, circle, rect
            };

            Console.WriteLine("Через необобщенную коллекцию ArrayList ");
            Console.WriteLine("До сортировки:");

            foreach (var figure in arrayList)
            {
                Console.WriteLine(((Figure)figure).area());
            }

            // сортировка и вывод
            arrayList.Sort();
            Console.WriteLine("\nПосле сортировки:");

            foreach (var figure in arrayList)
            {
                Console.WriteLine(((Figure)figure).area());
            }

            Console.WriteLine("\nТо же самое, но только через обобщенную коллекцию List<T> ");
            //создание необобщенного списка, сортировка и вывод
            var list = new List <Figure> {
                square, circle, rect
            };

            list.Sort();
            foreach (var figure in list)
            {
                Console.WriteLine(figure.area());
            }


            //создание разреженной матрицы

            Console.WriteLine("\nМатрица");
            var matrix = new Matrix <Figure>(2, 2, 2, new FigureMatrixCheckEmpty());

            for (var i = 0; i < 2; i++)
            {
                for (var j = 0; j < 2; j++)
                {
                    for (var k = 0; k < 2; k++)
                    {
                        matrix[i, j, k] = list[new Random().Next(0, 2)];
                    }
                }
            }
            Console.WriteLine(matrix.ToString());


            Console.WriteLine("Работаем со стеком: ");
            var stack = new SimpleStack <Figure>();

            stack.push(rect);
            stack.push(square);
            stack.push(circle);
            stack.add(circle);


            Console.WriteLine("\nВывод стэка простым перебором обычного списка по принципу FIFO: ");
            foreach (var element in stack)
            {
                Console.WriteLine(element.ToString());
            }

            Console.WriteLine("\nВывод стэка методом pop() по принципу LIFO: ");

            while (stack.count > 0)
            {
                Console.WriteLine(stack.pop().ToString());
            }
        }