Permalänk
Medlem

Projekt programmering 1 c#

Hej Sweclockers
Denna har vart på tapeten tidigare och jag har läst dessa inlägg.
Jag har försökt hittat vad mitt fel är nu de senaste dagarna utan att lyckas.

I objektet minbuss ska det finns en vektor som håller reda på 25 stycken passagerare. Varje element i
vektorn är en ålder.
Observera att det ska vara just en vektor och inte en lista.
I sodacrate ska det finnas en switch-case meny där alternativen kopplas till olika metoder. Dessa
metoder är:
1. Lägga till en passagerare
2. Skriv ut bussen, eller rättare sagt – skriv ut alla åldrar på passagerare.
3. Beräkna den totala åldern av alla passagerare.
4. Avsluta programmet
Under metoden Run() ska alltså kod skrivas som
skriver ut text som välkomnar användaren och
därefter får en lista över vilka saker man kan göra.
Detta val bör ju läggas i en loop så inte programmet
stänger ner efter att man valt något.
Man kan själv välja hur stor vektorn ska vara.
Man ska inte kunna stoppa in fler passagerare än vad
som får plats.
Är backen full ska man få meddelande om detta och passageraren kan inte stiga på.

Jag har problem med metoden Calc_total age SnittAlder samt Print_buss
Jag får alltså till metoden där jag lägger till en passagerare
Jag vet att de är svenska och engelska blandat för tillfället. Jag försöker just nu bara få metoderna att fungera
Ni förstår ju att jag är väldigt ny. Så en förklaring på väldigt basic nivå vore magiskt.
Tack på förhand

class Program { public static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.Blue; var covid = new CovidBuss(); covid.Run(); // startar programmet Console.Write("Tryck på någon tangent för att AVSLUTA. . . "); Console.ReadKey(true); // } class CovidBuss { const int MAXPLATSER = 25; //Anger en variabel som visar att max antal platser är 25. public int[] passagerare = new int[MAXPLATSER]; // skapar en ny vektor(array) namnet passagerare med 25 fält[]- public int antal_passagerare = 0; // Utgångsvärdet för antal_passagerar är 0 public void Run() { int val = 0; do // skapar en do-loop { // MENY på konsollen med 4 olika val användaren kan göra Console.WriteLine(" [M] [E] [N] [Y] "); Console.WriteLine("_________________________________________________________________\n"); Console.WriteLine(" ------ Välj något av dessa 5 alternativ ------\n"); Console.WriteLine("[1]----> Låt en passagerare kliva ombord bussen"); Console.WriteLine("[2]----> Presentera den totala åldern på samtliga ombord bussen"); Console.WriteLine("[3]----> Räkna ut samtliga psassagerares snittålder"); Console.WriteLine("[4]----> Skriv ut antal passagerare ombord och deras ålder"); Console.WriteLine("[0]----> Avsluta / stäng denna M E N Y "); Console.WriteLine("_________________________________________________________________"); val = int.Parse(Console.ReadLine()); //tar emot inmatningen i string och gör om den till typen int switch (val) // skapar ett switch-statement som körs mot de inmatade värdet som använder knappar in { case 1:// hör i hop med knappval 1 vilket lägger till en passagerare Add_passenger(); // anropar metoden add-passenger break;// stopp på case 1 case 2: // hör ihop med knappval 2 vilket räknar ut totala åldern på samtliga ombord Calc_total_age(); // anropar metoden calc totalt age break;// Stopp på case 2 case 3:// hör ihop med knappval 3 vilket är att räkna ut snittåldern på samtliga ombord SnittAlder();// anropar metoden calc_average_age break; // Stopp på case 3 case 4:// hör ihop med knappval 4 vilket är att skriva ut antal passagerare och deras ålder Print_buss();// anropar metoden print_buss break; // Stopp på case 4 case 0:// Hör till knappval 0 vilket stänger/avslutar menyn break; // Stopp på case 0 default: Console.WriteLine("Något blev fel, knappa in alternativ 1-4 eller 0 om du vill stänga MENYN)"); break; } } while (val != 0); // } public void Add_passenger() { Console.WriteLine("Vi lägger nu till passagerare ombord bussen\n"); Console.Clear(); // Rensar konsollen Console.Write("Hur många ska få kliva ombord bussen? Ange antal: "); int antal = Convert.ToInt32(Console.ReadLine()); // konverterar svaret från användaren från string to int for (int i = 0; i < antal; i++) // skapar en for-loop som körs igenom samma antal som användaren knappade in { Console.Write("Hur gammal är personen som kliver ombord? Ange ålder: "); int nyOmbord = Convert.ToInt32(Console.ReadLine());//Konvertera string till int passagerare[i] = nyOmbord; //Adderar värdet till vektoren } } public void Print_buss() { Console.WriteLine("Här presenteras åldern och antal passagerare ombord "); for (int i = 0; i < passagerare.Length; i++) // kör en for-loop { Console.WriteLine(passagerare[i] + "är år gammal"); } } public int Calc_total_age() { int summaTotal = 0; // skapar en int-variabel där värdet från början är noll for (int i = 0; i < passagerare.Length; i++) // skapar en for-loop { summaTotal += passagerare[i]; } Console.WriteLine("Den totalla summan i ålder hos passagerarna är {0}, ", summaTotal); return summaTotal; // tar emot värdet } public int SnittAlder() { Console.Clear(); // Rensar konsollen Console.WriteLine(" Nu ska vi räkna ut snittåldern på de personer som klivit om bord bussen \n"); int hurGammal = 0; // skapar en varibael och visar att värdet är 0 innan for-loopen körs for (int i = 0; i < passagerare.Length; i++) // skapar en forloop { hurGammal += passagerare[i]; } Console.WriteLine("Snittåldern ombord bussen är" + hurGammal); return snittGammal; // retunerar variabeln/värdet snittGammal } } } }

Permalänk
Medlem

Vad är det för fel du får?

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem

Se svaren i denna tråd.

Permalänk
Medlem

SnittAlder och Calc_total_age gör samma sak. Du kan använda samma metod (calc_total_age) istället för göra en ny identisk. Medelvärdet får du ut genom att dela totala åldern med antalet passagerare. Medelvärde (statistik) går man igenom i matten i årskurs 5 (https://www.matteboken.se/lektioner/skolar-5/statistik/medelv...)

Sen ska du inte blanda svenska och engelska, men det var du medveten om. Bästa är om du endast skriver på engelska. Inga underscores (_) i metodnamn heller, använd PascalCase.

Edit:

Skrivet av BoMar:

I objektet minbuss ska det finns en vektor som håller reda på 25 stycken passagerare. Varje element i
vektorn är en ålder.
Observera att det ska vara just en vektor och inte en lista.
I sodacrate ska det finnas en switch-case meny där alternativen kopplas till olika metoder. Dessa
metoder är:
1. Lägga till en passagerare
2. Skriv ut bussen, eller rättare sagt – skriv ut alla åldrar på passagerare.
3. Beräkna den totala åldern av alla passagerare.
4. Avsluta programmet
Är backen full ska man få meddelande om detta och passageraren kan inte stiga på.

Det står inget i kravet om medelåldern? Varför är det blandat i kravet om flaskor/backar och bussen?
Menyval 2 ska skriva ut alla passagerare en och en (loop med en WriteLine)
Menyval 3 är din calc_total_age.