Untitled
unknown
plain_text
2 years ago
9.5 kB
4
Indexable
Never
meny menuu = new meny(); //skapar en instans av klassen meny menuu.displaymeny(); //IKitchenmach[] apparater = new IKitchenmach[] { new Osthyvel(), new Smörkniv(), new Slickepott }; //SkrivUtApparater(); //void SkrivApparater() //{ // Console.WriteLine("======Amazing Kitchen======"); // foreach (var apparat in apparater) // { // Console.WriteLine($"Typ: {apparat.Type}\nSort: {apparat.Brand}\nFunkar: {apparat.Working}"); // Console.WriteLine("- - - - - - - - - - - -"); // } // Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~"); //} interface IKitchenmach ///interface { public string Type { get; set; } public string Brand { get; set; } public bool Working { get; set; } } class meny { List<IKitchenmach> redskap = new List<IKitchenmach>() //lista av objekt (generiska List-klassen som kan skapa en lista) { new köksapparater ("Osthyvel", "IKEA", true ), new köksapparater ("Smörkniv", "Mora", false ), new köksapparater ("Slickepott", "Duka", true ) }; public void displaymeny() //en metod för att skriva ut huvudmenyn { Console.WriteLine("======Amazing Kitchen======"); Console.WriteLine("1. Använd köksapparat"); Console.WriteLine("2. Lägg till köksapparat"); Console.WriteLine("3. Lista köksapparater"); Console.WriteLine("4. Ta bort köksapparater"); Console.WriteLine("5. Avsluta"); int option = int.Parse(Console.ReadLine()); switch (option) { case 1: //To do - Ändra första bokstav på klasserna och metoder till stor choosetool(); break; case 2: addtool(); break; case 3: //listtools(); break; case 4: //deltools(); break; case 5: exit(); break; default: // code block break; } } public void choosetool() //metod { Console.WriteLine("Vilken köks-'apparat' vill du använda"); int order = 1; foreach (var tool in redskap) { Console.WriteLine(order + ". " + tool.Type); //definerat "order" som börjar från 0, be programmet att lägga till ++1 för varje type som används i varje körning order++; } string info = Console.ReadLine(); //användaren att lägga till ett val och OM valet är en int så fortsätter till nästa rad int dittVal = 0; if (int.TryParse(info, out dittVal)) { if (dittVal <= redskap.Count && dittVal >= 1) //Om valet är ENDAST är mindre eller lika med antal redskap och inte mindre än 1 kör koden { int selectedIndex = dittVal - 1; // Eftersom vi visar listan med int + 1, så hittar vi index genom val - 1 if (redskap[selectedIndex].Working == true) //Om redskap [i varje vald index].Working (se där uppe om det är true eller false) är true då ska du skriva ut redskap fungerar och används // Med hjälp av index så kan vi få reda på apparat typ. Console.WriteLine("\n" + redskap[selectedIndex].Type + " används!!"); //om inte den är trasig. else Console.WriteLine("\n" + redskap[selectedIndex].Type + " är trasig!!"); choosetool(); } else //om vi anger felaktig tal eller input gå tillbaka till "choosetool();" { Console.WriteLine("Talen var felaktiga"); choosetool(); } } else //annars gå tillbaka till meny { displaymeny(); } } public void addtool() //metod { Console.WriteLine("Ange en köksapparat du vill lägga till"); var newapparat = Console.ReadLine(); Console.WriteLine("Ange en märket på köksapparaten"); var märket = Console.ReadLine(); Console.WriteLine("Ange om köksapparat fungerar (j/n)"); var working = Console.ReadLine(); bool fungerar = false; if (working == "j") { fungerar = true; } //else //{ // //fungerar = false; //Kan tas bort då boolen utgår från att den ej fungerar om inte "j" trycks in. //} Console.WriteLine("Tilllagd!"); var köksapp = new köksapparater(newapparat, märket, fungerar); redskap.Add(köksapp); displaymeny(); } static void listtools() { Console.WriteLine("Dessa köks-'apparater' finns"); int order = 1; foreach (var tool in redskap) { Console.WriteLine(order + ". " + tool.Type + ". " + tool.Brand + ". " + tool.Working); //definerat "order" som börjar från 0, be programmet att lägga till ++1 för varje type som används i varje körning order++; } displaymeny(); } //public void deltools() //metod //{ //Den ska lista appraterna // Console.WriteLine("Ange en köksapparat du vill ta bort"); // redskap.Remove(köksapp); // displaymeny(); //} static void exit() { Console.WriteLine("Välkommen åter!"); Environment.Exit(0); } } class köksapparater : IKitchenmach //ny klass som ärver av interfacet - { public string Type { get; set; } //properties public string Brand { get; set; } public bool Working { get; set; } public köksapparater(string type, string brand, bool working) //"base till underklasserna" - konstruktorn (en metod som körs bara om objektet ska skapas) { Type = type; //sparar till värdet i property:n Brand = brand; Working = working; } public class Osthyvel : köksapparater { public Osthyvel(string type, string brand, bool working) : base(type, brand, working) // konstruktor i klassen //anropar base { // this.Type = type; // this.Brand = brand; Värde är redan sparat i anropet till base // this.Working = working; } } public class Smörkniv : köksapparater { public Smörkniv(string type, string brand, bool working) : base(type, brand, working) // konstruktor i klassen { //this.Type = type; //this.Brand = brand; //this.Working = working; } public class Slickepott : köksapparater { public Slickepott(string type, string brand, bool working) : base(type, brand, working) // konstruktor i klassen { //this.Type = type; //this.Brand = brand; //this.Working = working; } } } } //för att lägga till och ta bort ex //var names = new List<string> { "<name>", "Scott", "Kendra"}; //names.Add("Maria"); //names.Add("Bill"); //names.Remove("Ana"); //foreach (var name in names) //{ // Console.WriteLine(name); //} //Skapa ett program som: //Huvudmeny //- Skriver ut en huvudmeny innehållande ett antal val (1. Använd köksapparat 2. Lägg till köksapparat 3. Lista köksapparater 4. Ta bort köksapparat 5. Avsluta). [1] //-Låter användaren ange ett val i huvudmenyn och läser in valet. [2] //Val 1.Använd köksapparat //- Skriver ut en undermeny. [3] //-Låter användaren ange ett val i undermenyn för att välja köksapparat och läser in valet. [4] //-Skriver ut ett meddelande om att köksapparaten är trasig om den är trasig. Annars ska ett meddelande skrivas ut om att köksapparaten används. [5] //-Går tillbaka till huvudmenyn. [6] //Val 2.Lägg till köksapparat //- Låter användaren mata in typ, märke och skick (t.ex. ”Våffeljärn”, //”Electrolux”, ”j”). [7] Om användaren matar in ett litet j betyder det att //köksapparaten fungerar. Annars om användaren matar in ett litet n //betyder det att köksapparaten är trasig. [8] //-Lagrar köksapparaten i en lista och skriver ut ett meddelande om att //köksapparaten har lagts till. [9] //-Går tillbaka till huvudmenyn. [10] //Val 3.Lista köksapparater //- Skriver ut en lista över alla köksapparater (inklusive alla som har lagts //till). I listan ska typ, märke och skick skrivas ut. [11] //-Går tillbaka till huvudmenyn. [12] //Val 4.Ta bort köksapparat //- Skriver ut en numrerad lista över alla köksapparater. [13] //-Låter användaren ange vilken köksapparat som ska tas bort och läser in //valet. [14] //-Tar bort köksapparat från listan över lagrade köksapparater och skriver //ut ett meddelande om att köksapparaten har tagits bort. [15] //-Går tillbaka till huvudmenyn. [16] //Val 5 //- Avslutar huvudmenyn. [17] //Övrigt: //-När programmet startar ska det finnas ett antal köksapparater lagrade i //en lista redo att användas. [18] //-Programmet ska felhantera all inmatning. [19]