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]