Bussen c#
Hej,
Jag har också fastnat på uppdraget Bussen, som flera andra har. Jag har även läst igenom dom flesta trådarna här.
Det jag undrar är:
1. Har jag gjort rätt som har valt "private" på:
private int[] passagerare = new int[25];
private int antalPassagerare = 0;
private int maxPassagerare = 25;
Public använder man väl om man har objekt/klasser tex? Jag har ju bara en klass som är "Buss" så jag valde att ändra till private, eller är jag helt ute och cyklar nu?
2. Kan jag då ändra alla mina metoder till private också?...
3. Jag har även valt att lägga "return;" på två ställen i koden. Är det en okej lösning? Eller borde jag ändra det?
4. Tar gärna emot feedback på vad som går att förbättras.
STORT tack på förhand!
using System;
namespace Bussen
{
class Buss
{
private int[] passagerare = new int[25];
private int antalPassagerare = 0;
private int maxPassagerare = 25;
public void Run()
{
Console.WriteLine("Välkommen ombord på bussen!\nDu ska nu få välja ett val från menyn.");
int meny;
do
{
Console.WriteLine("\n1. Lägg till passagerare. ");
Console.WriteLine("2. Kontrollera åldern på passagerarna.");
Console.WriteLine("3. Beräkna sammanlagda åldern på alla passagerare.");
Console.WriteLine("0.Avsluta programmet.\n");
meny = int.Parse(Console.ReadLine());
switch (meny)
{
case 1:
adderaPassagerare();
break;
case 2:
utskriftPassagerare();
break;
case 3:
totalÅlder();
break;
case 0:
meny = 0;
break;
default:
Console.WriteLine("Du har valt ett felaktigt alternativ, försök igen.");
break;
}
} while (meny != 0);
}
public void adderaPassagerare()
{
Console.WriteLine("\nHur många passagerare vill du lägga till? ");
int antal = int.Parse(Console.ReadLine());
Console.WriteLine(" ");
if (antalPassagerare + antal > maxPassagerare)
{
int platserKvar = 25 - antalPassagerare;
Console.WriteLine($"Det finns inte plats för så många passagerare, bussen rymmer 25st passagerare totalt, nu finns det {platserKvar} lediga platser kvar. ");
return;
}
else if (antalPassagerare == passagerare.Length) //Om bussen är full kan inte någon passagerare stiga på
{
Console.WriteLine("Bussen är fullsatt.");
return;
}
for (int i = 0; i < antal; i++)
{
Console.Write($"Du har valt att lägga till en passagerare, skriv in åldern för passageraren: ");
try //Här kontrollerar vi om det är ett inmatat heltal
{
passagerare[antalPassagerare] = int.Parse(Console.ReadLine());
antalPassagerare++;
}
catch //Är det inget heltal så skrivs nedan ut
{
Console.WriteLine("Vänligen ange ett heltal, försök igen.");
i--; // Hoppar tillbaka ett steg i indexposition.
}
}
}
public void utskriftPassagerare() //Skriv ut alla värden ur vektorn.
{
for (int i = 0; i < antalPassagerare; i++)
{
int bussplats = i + 1; // Deklarerar variabel för visa nummer på bussplats
String biljettTyp = "";
if (passagerare[i] <= 20)
{
biljettTyp = "Barn & ungdomsbiljett.";
}
else
{
biljettTyp = "Vuxenbiljett.";
}
Console.WriteLine($"Passageraren på bussplats {bussplats} är {passagerare[i]} år gammal. Passageraren har åkt på: {biljettTyp}");
}
if (antalPassagerare == 0)
{
Console.WriteLine("Bussen är tom.");
}
}
public void totalÅlder()
{
int sum = 0;
for (int i = 0; i < antalPassagerare; i++)
{
sum += passagerare[i];
}
Console.WriteLine($"\nSammanlagda åldern för alla passagerare är {sum}");
if (antalPassagerare == 0)
{
Console.WriteLine("Bussen är tom.");
}
}
class Program
{
public static void Main(string[] args)
{
//Skapar ett objekt av klassen Buss som heter minbuss
var minbuss = new Buss();
minbuss.Run();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
}