Projekt Hermods Programmering 1
Hej alla!
Nu kommer man till sista utvägen efter en tuff kurs.
Jag läser programmering 1 på distans och har ingen i min omgivning som kan hjälpa mig. Har dessutom kört fast helt och får ingen hjälp. Detta är sista projektet som läraren öppnat upp igen för att jag ska kunna slutföra den ordentligt.
Jag har en vektor som ska fyllas ut med user input, men jag behöver tillkalla denna vektorn för att kunna beräkna den totala åldern av alla passagerare och sedan medelåldern på alla passagerares ålder (detta är i två olika metoder).
Jag har frågat lärare, jag har läst i boken och all material men ej hittat lösning. Även sökt online men hittar ingen lösning. Vi använder oss av C# och jag hittar endast svar för C++ eller javascript.
Ni ser även några av mina kommentarer i koden, förhoppningsvis kan det hjälpa att guida lite ^^
Följande är min kod hittills:
using System;
namespace Uppdrag4
{
class Bussen
{
int[] add_passagerare = new int[24]; //Vectorn är placerad på heapen, 25 platser på bussen men räkningen startar på 0, därför skriver man 24.
public void Run()
{
int meny; //identifiering av menyn = introduktion
Console.WriteLine("Välkommen till minibussen"); //detta och det följande neråt skrivs ut först för en meny
Console.WriteLine("Välj ditt alternativ nedan"); //-"-
Console.WriteLine("[1] Lägg till ny passagerare");//-"-
Console.WriteLine("[2] Kolla upp ledig plats");//-"-
Console.WriteLine("[3] Nästa avgång");
Console.WriteLine("[4] Alla passagerares ålder ombord");
Console.WriteLine("[5] Totala summan ålder");
Console.WriteLine("[6] Medelålder av passagerare");
Console.WriteLine("[7] Avsluta programmet");//Sista som skrivs ut
meny = int.Parse(Console.ReadLine()); //Här läses menyn av och konverteras för följande switch
for (int z = 0; z < 10; z++)
switch (meny) //start av switch
{
case 1: //Om man trycker 1 hamnar man i add_passenger, som förklarat ovan
add_passenger(); //skickas vidare till denna metod
return; //går in i loopen igen och fortsätter med menyn
case 2: //om man trycker 2 hamnar man i sort_bus
sort_buss();
return;
case 3: //Trycker man på knapp nummer 4 hamnar man på next_buss
next_buss(); //denna skickas man vidare till
return; //här går den in i loopen igen
case 4:
print_buss();
return;
case 5:
calc_total_age();
return;
case 6:
calc_average_age();
return;
case 7:
Environment.Exit(0);
break;
default: //om man trycker in felaktigt, dvs en bokstav eller en siffra som inte finns med t.ex. 5, matas meningen nedan ut
Console.WriteLine("Felaktig inmatning"); //Denna mening skrivs ut om programmet går in här
break; //loopen bryts och går ej in igen
}
}
public void add_passenger() //här hamnar man om man trycker på knappen 1 ovan
//man får skriva in sitt förnamn, efternamn och ålder för att sedan bli välkomnad
{
string förnamn; //namngivning av viss string
string efternamn; //-"-
string ålder;
int åldertal;
for (int i = 0; i < 24; i++)
{
Console.WriteLine("Ange förnamn:"); //Meningen inom parantesen ska bli utskriven
förnamn = Console.ReadLine(); //Här blir inmatningen från ovan läst och får ett namn dvs förnamn
Console.WriteLine("Ange efternamn:"); //Meningen inom parantesen ska bli utskriven
efternamn = Console.ReadLine();//Här blir inmatningen från ovan läst och får ett namn dvs efternamn
Console.WriteLine("Ange ålder:"); //samma process här som ovan
ålder = Console.ReadLine();
åldertal = int.Parse(ålder); //varje gång man skriver in i ett program blir det av typen string, här omvandlas åldern till int vilket är ett heltal
add_passagerare[i] = new int();
Console.WriteLine("Välkommen ombord {0} {1}! Vi önskar er en trevlig resa! :)", förnamn, efternamn); //programmet använder informationen sedan tidigare för att välkomna användaren
if (i > 25)
{
Console.WriteLine("Tyvärr är bussen full, ta gärna nästa avgång");
next_buss();
}
}
}
public void sort_buss() //här hamnar man om man trycker på 2 i menyn
{
Random slump = new Random(); //detta är en mekanism för att slumpa fram ett nummer
int x = slump.Next(1, 25); //här skrivs det att slump numret får vara mellan 1-25
Console.WriteLine("En ledig plats på bussen är plats nummer " + x); //Meningen skrivs ut inom parantesen och det slumpade numret (x) läggs på efter
Console.ReadLine();
}
public void next_buss() //här hamnar man om man trycker på nummer 4 i menyn
{
string avgång; //introduktion och namngivning av string nedan
int nyavgång; //introduktion och namngivning av en int
Console.WriteLine("Är bussen full? Ta nästa avgång!"); //meningen inom parantesen skrivs ut
Console.WriteLine("Ange vilket minut slag du vill ta bussen:"); //-"-
avgång = Console.ReadLine(); //meningen ovan blir döpt till avgång
nyavgång = int.Parse(avgång); //eftersom varje inmatning blir string omvandlas avgång - tidigare inmatning om till nyavgång och blir av typen int
nyavgång = nyavgång + 15; //Här görs den inmatade siffran om +15, eftersom bussen går cirka varje kvart
Console.WriteLine("Din nästa avgång går cirka {0}", nyavgång); //här skrivs det inom parantesen ut och berättar cirka nästa avgång för användaren eller passageraren
}
public void print_buss()
{
add_passagerare [0] = (25); //Medan vectorn är placerad på heapen som är nämnt tidigare, så är de olika värdena placerade på stacken. Så man måste lägga till på den ena för att ta bort från den andra osv.
add_passagerare[1] = (43);
add_passagerare[2] = (38);
Console.WriteLine("Följande åldrarna finns på bussen:");
foreach (int value in add_passagerare)
{
Console.WriteLine(value);
}
}
public void calc_total_age()
{
int totalaålder;
foreach (int value in add_passagerare)
{
print_buss();
Console.WriteLine(value);
Console.WriteLine("Totala åldern för alla passagerare är: " + totalaålder);
//plussa ihop alla passagerares ålder
}
}
//Metoder för betyget C
public void calc_average_age()
{
//Betyg C
//Beräkna den genomsnittliga åldern. Kanske kan man tänka sig att denna metod ska returnera något annat värde än heltal?
// ta den iplussade åldern från calc_total_age och dela på antal passagerare
}
class Program
{
public static void Main(string[] args) //Denna metod kallas Main och programmet kan ej köras utan den.
{
var minibuss = new Bussen();
minibuss.Run(); //Här läggs metoderna till så de kan användas och syns i programmet
minibuss.add_passenger(); //-"-
minibuss.sort_buss();//-"-
minibuss.print_buss();
minibuss.calc_average_age();
minibuss.calc_total_age();
Console.WriteLine("Tack för ditt medverkande!"); //denna mening i parantesen skrivs ut, tackar användare för medverkande.
}
}
}
}
Uppskattar alla snabba svar!
Tack i förhand