/// <summary> /// Den privata statiska metoden RandomizeShapes() ska slumpa mellan /// 5 och 20 figurer vars längder och bredder slumpas till värden av typen /// double i det halvöppna intervallet mellan 5,0 och 100,0 ([5, 100[). /// /// Typ av figur ska också slumpas och då måste en ”switch”-sats användas /// tillsammans med uppräkningsbara typen ShapeType, som ska användas för att /// typomvandla heltalet 0 till ShapeType.Ellips och heltalet 1 till /// ShapeType.Rectangle. /// /// Referenserna till figurerna ska sparas i en array som metoden returnerar /// en referens till. /// </summary> /// <returns></returns> private static Shape[] RandomizeShapes() { Random randomNumber = new Random(); int numberOfShapes = randomNumber.Next(5, 20); Shape[] shapes = new Shape[numberOfShapes]; int maximum = 99; int minimum = 5; for (int i = 0; i < numberOfShapes; i++) { double lenght = randomNumber.NextDouble() * (maximum - minimum) + minimum; double width = randomNumber.NextDouble() * (maximum - minimum) + minimum; int typeOfShape = randomNumber.Next(0, 2); switch ((ShapeType)typeOfShape) { case ShapeType.Ellipse: shapes[i] = new Ellipse(lenght, width); break; case ShapeType.Rectangle: shapes[i] = new Rectangle(lenght, width); break; } } return shapes; }
/// <summary> /// Den privata statiska metoden ViewShapes() ska presentera figurerna som /// skickas till metoden i en enkel tabell. Metoden måste se till en figurs /// detaljer presenteras genom att använda textbeskrivningen för varje objekt, /// d.v.s. ToString() måste användas då ett objekts detaljer ska presenteras. /// </summary> /// <param name="shapes"></param> static void ViewShapes(Shape[] shapes) { Console.Clear(); Console.WriteLine("{0}{1, 10}{2, 10}{3, 10}{4, 10}", "Figur".PadRight(10), "Längd", "Bredd", "Omkrets", "Area"); foreach (Shape item in shapes) { Console.WriteLine(item.ToString()); } }
//Skriv ut "detalj-header" och hämta detaljer via ToString i klassen Shape. private static void ViewShapeDetail(Shape shape) { Console.WriteLine(); Console.BackgroundColor = ConsoleColor.DarkGreen; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("==========================="); Console.WriteLine("= ="); Console.WriteLine("= Detaljer ="); Console.WriteLine("= ="); Console.WriteLine("==========================="); Console.ResetColor(); Console.WriteLine(); Console.WriteLine(shape); }