Slutprojekt i programmering 1
Hejsan, som rubriken lyder så jobbar jag med ett slutprojekt i programmering 1. Har precis blivit introducerad till vektorer vilket jag känner är medel svårt. Att arbeta med fler metoder än 1 är också ganska nytt och väldigt utmanande för mig, speciellt att tillkalla variabler och vektorer mellan olika metoder (görs detta mest med for loops? om jag har fattat rätt), har ingen tidigare erfarenhet av programmering sen cirka 13v tillbaka så ha de i åtanke. Jag googlat runt och kollat lite på andra som har gjort samma uppgift för att få lite hjälp på traven. Hur som, till uppgiften.
Slutprojektet handlar om att man ska samla information kring resenärer på en buss. Det finns 25 tillgängliga platser och det får inte överskridas, antal samt ålder på resenärerna ska registreras. Man ska via en meny ange 1. hur många passagerare det finns på bussen, 2. få en lista med ålder på passagerarna, 3. få medelåldern på passagerarna samt kunna 4. avsluta programmet. Jag är just nu vid punkt 3. där jag har fastnat.
Min fråga är hur kan jag få ut värdena som är samlade i vektorn för att kunna göra uträkningar? Om ni kollar vid metoden calc_total_age() så kan ni se lite vad jag har kommit fram till men det funkar inte. Alla tips och hjälp uppskattas jätte mycket!
class Bus
{
const int busSeats = 25;
public int passengers = 0;
public int[] agePassengers = new int[busSeats];
public void Run()
{
int menu = 0;
do
{
Console.WriteLine("------------------------------------");
Console.WriteLine("Welcome, what would you like to do?");
Console.WriteLine("1. Add passenger(s)");
Console.WriteLine("2. See age of passengers");
Console.WriteLine("3. See average age of passengers");
Console.WriteLine("4. Quit program");
Console.WriteLine("-----------------------------------");
Console.Write("Input: ");
try
{
menu = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.WriteLine("Your input may only contain intergers");
}
switch (menu)
{
case 1:
add_passenger();
break;
case 2:
print_bus();
break;
case 3:
calc_total_age();
break;
case 4:
Console.WriteLine("Programs is exiting");
break;
default:
Console.WriteLine("Wrong input. Choose a number between 1-4");
break;
}
} while (menu != 0);
}
public void add_passenger()
{
Console.Write("Enter number of passengers: ");
int newPassengers = int.Parse(Console.ReadLine());
if ((passengers + newPassengers) > busSeats)
{
Console.WriteLine("Number of passengers exceeded maximum");
return;
}
passengers = passengers + newPassengers;
for (int z = 0; z < newPassengers; z++)
{
for (int i = 0; i < agePassengers.Length; i++)
{
if (agePassengers[i] == 0)
{
Console.Write("Enter age of passenger {0}:",(z+1));
agePassengers[i] = int.Parse(Console.ReadLine());
break;
}
}
}
}
public void print_bus()
{
Console.WriteLine("Age of passengers from first to last are:");
foreach (int seatAge in agePassengers)
{
if (seatAge!=0)
{
Console.WriteLine("{0} years old",seatAge);
}
}
}
private void calc_total_age()
{
/*int[] agePassengers = new int[busSeats];
List<int> list1 = new List<int>(busSeats);
int sum = agePassengers.Sum();
/* foreach (int seatAge in agePassengers)
{
Console.WriteLine("Sum of ages: "+ sum(agePassengers[seatAge]));
}
//for (int i=0;i<busSeats.Length; i++)
//{
// Console.WriteLine(busSeats[i]);
//
}*/
}
}
class Program
{
public static void Main(string[] args)
{
var mybus = new Bus();
mybus.Run();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}