Permalänk
Medlem

Få in en undermeny i en meny

Hej!

Jag skulle vilja få in en meny under valet "Service" där man likt i "huvudmenyn" ska få upp 3 alternativ som man ska kunna välja mellan. Hur går jag till väga för det? Har testat göra samma "kodning" av meny under service blocket (metoden) men då funkar inte de övriga menyvalen.
using System;

namespace Testnummer1uppdrag4 { class Program { static void Main(string[] args) { Console.WriteLine("Välkommen till Stenbergs Bilhandel i Göteborg"); string användarensVal = ""; for (int i = 0; i < 1; i++) { SkrivMeny(); användarensVal = Console.ReadLine(); Console.WriteLine(""); switch (användarensVal) { case "1": MenyValAnställda(); break; case "2": MenyvalService(); break; case "3": MenyValKöpaBil(); break; case "4": MenyValSäljabil(); break; case "5": ///gör inget, stängs av break; default: Console.WriteLine("Du valde ett ogiltigt alternativ"); break; } Console.WriteLine(); } } static void SkrivMeny() { Console.WriteLine("Välj ett alternativ"); Console.WriteLine("1. Hantera anställda "); Console.WriteLine("2. Service"); Console.WriteLine("3. Köpa bil"); Console.WriteLine("4. Sälja bil"); Console.WriteLine("5. Avsluta"); } static void MenyValAnställda() { Console.WriteLine("Här har vi våra anställda, har du kommit fel, tryck Enter för att komma tillbaka till huvudmenyn!"); string[] Stenbergsanställda = new string[4]; Stenbergsanställda[0] ="Jakob Stenberg, Ägare, jobbat sedan 2019-03-01"; Stenbergsanställda[1] = "Hanna Stenberg, Ägare, jobbat sedan 2019-03-01"; Stenbergsanställda[2] = "David Olsson, Bilförsäljare, jobbat sedan 2019-05-01"; Stenbergsanställda[3] = "Pernilla Svensson, Bilförsäljare, jobbat sedan 2020-03-01"; Console.WriteLine($"{Stenbergsanställda[0]}"); Console.WriteLine($"{Stenbergsanställda[1]}"); Console.WriteLine($"{Stenbergsanställda[2]}"); Console.WriteLine($"{Stenbergsanställda[3]}"); } static void MenyvalService() { } static void MenyValKöpaBil () { Console.Clear(); Console.WriteLine("Så du är intresserad av att köpa en bil, vet du redan nu vilken bil, eller vill du se alla bilar vi har inne?"); Console.ReadLine(); //fortsätt med mer info } static void MenyValSäljabil() { Console.Clear(); Console.WriteLine("Här säljer man sin bil, har du kommit fel tryck enter"); } } }

Skulle vara super tacksam för hjälp!

Permalänk
Medlem

Svårt att säga vad som går fel eftersom du inte verkar visa vad du faktiskt har testat i.o.m. att din metod är tom.
På vilket sätt menar du att du har försökt göra "samma kodning" och hur exakt slutar övriga menyval att fungera?

Visa signatur

AMD Ryzen 7 1700X 3.8 GHz 20MB | ASUS PRIME X370-PRO | MSI GeForce GTX 1080 Gaming X 8GB | G.Skill 16GB DDR4 3200 MHz CL14 Flare X | Corsair RM650x 650W

Permalänk
Medlem

o vad gör for-loopen? Om du vill visa menyn tills programmet avslutas så är en While(true) mer gångbar

// LZ

Permalänk
Medlem
Skrivet av noMad17:

Svårt att säga vad som går fel eftersom du inte verkar visa vad du faktiskt har testat i.o.m. att din metod är tom.
På vilket sätt menar du att du har försökt göra "samma kodning" och hur exakt slutar övriga menyval att fungera?

Jag har lagt in en ny meny under, alltså skrivit samma kod (string [] menuOptions = new string[]{"anställda"} (koden fortsätter) under case tre men även under public static void. Jag har även gjort en ny menykod (testat med MenySelection) skrivit in den i Public main, sen gjort samma sak som med första menuOptions, men de funkar ändå inte. De övriga koderna blir helt rödmarkerade som att de är felskrivet.

Permalänk
Medlem
Skrivet av Tea42BBS:

o vad gör for-loopen? Om du vill visa menyn tills programmet avslutas så är en While(true) mer gångbar

// LZ

Jag vill bara visa menyn en gång, alltså i början. När man sen väljer ett menyval, så vill jag att den ska försvinna och undermenyn komma upp istället.

Permalänk
Medlem
Skrivet av enn:

Jag vill bara visa menyn en gång, alltså i början. När man sen väljer ett menyval, så vill jag att den ska försvinna och undermenyn komma upp istället.

Console.Clear()

Permalänk
Medlem
Skrivet av enn:

Jag vill bara visa menyn en gång, alltså i början. När man sen väljer ett menyval, så vill jag att den ska försvinna och undermenyn komma upp istället.

ok... jag skulle tänka flödet så här

While(running) //

DisplayMainMenu();

MainMenu
1. Sälj
2. köp
3. visa undermeny -> Anropar funktionen VisaUndermeny();
4. Avsluta(sätter running till false, så körs koden efter while loopen)

Visaundermeny

töm console
skriv ut undermeny, typ
1. visa anställda
2. återvänd till huvudmeny

mvh Lazze

Permalänk
Medlem

Ungefär som nedan kanske?

Jag har ändrat det i fetstil

Ber om ursäkt för dålig indentering.

using System; class Program { static void Main(string[] args) { Console.WriteLine("Välkommen till Stenbergs Bilhandel i Göteborg"); string användarensVal = ""; while (användarensVal != "5") { SkrivMeny(); användarensVal = Console.ReadLine(); Console.WriteLine(""); switch (användarensVal) { case "1": MenyValAnställda(); break; case "2": MenyvalService(); break; case "3": MenyValKöpaBil(); break; case "4": MenyValSäljabil(); break; case "5": ///gör inget, stängs av break; default: Console.WriteLine("Du valde ett ogiltigt alternativ"); break; } Console.WriteLine(); } } static void SkrivMeny() { Console.WriteLine("Välj ett alternativ"); Console.WriteLine("1. Hantera anställda "); Console.WriteLine("2. Service"); Console.WriteLine("3. Köpa bil"); Console.WriteLine("4. Sälja bil"); Console.WriteLine("5. Avsluta"); } static void MenyValAnställda() { Console.WriteLine("Här har vi våra anställda, har du kommit fel, tryck Enter för att komma tillbaka till huvudmenyn!"); string[] Stenbergsanställda = new string[4]; Stenbergsanställda[0] ="Jakob Stenberg, Ägare, jobbat sedan 2019-03-01"; Stenbergsanställda[1] = "Hanna Stenberg, Ägare, jobbat sedan 2019-03-01"; Stenbergsanställda[2] = "David Olsson, Bilförsäljare, jobbat sedan 2019-05-01"; Stenbergsanställda[3] = "Pernilla Svensson, Bilförsäljare, jobbat sedan 2020-03-01"; Console.WriteLine($"{Stenbergsanställda[0]}"); Console.WriteLine($"{Stenbergsanställda[1]}"); Console.WriteLine($"{Stenbergsanställda[2]}"); Console.WriteLine($"{Stenbergsanställda[3]}"); } static void MenyvalService() { Console.Clear(); string serviceVal = ""; Console.WriteLine("1. Service alternativ 1"); Console.WriteLine("2. Service alternativ 2"); Console.WriteLine("3. Service alternativ 3"); Console.WriteLine("4. Tillbaka till huvudmenyn"); serviceVal = Console.ReadLine(); Console.WriteLine(""); switch (serviceVal) { case "1": break; case "2": break; case "3": break; case "4": Console.Clear(); break; } } static void MenyValKöpaBil () { Console.Clear(); Console.WriteLine("Så du är intresserad av att köpa en bil, vet du redan nu vilken bil, eller vill du se alla bilar vi har inne?"); Console.ReadLine(); //fortsätt med mer info } static void MenyValSäljabil() { Console.Clear(); Console.WriteLine("Här säljer man sin bil, har du kommit fel tryck enter"); } }