C# skriva ut sista index position i en vektor
using System;
namespace Bussen
{
class Program
{
class Bus
{
public int[] passengers; // vektor med plats för passagerare i form av värden (åldrar)
public int numberOfPassengers; // variabel som används för att bestämma vektorns storlek
public void Run()
{
Console.WriteLine("Välkommen till programmet för buss statistik\n");
Console.Write("Hur många passagerare kan åka med idag? Bussen har 50 platser.\n");
do
try
{
numberOfPassengers = Convert.ToInt32(Console.ReadLine()); // läser in värde från användaren som bestämmer storlek på vektor
if (numberOfPassengers > 50) // villkorsstyrning för värde som bestämmer storlek på vektor
{
Console.WriteLine("Det får bara plats 50 personer på bussen!\n");
Console.Write("Hur många passagerare kan åka med idag?\n");
numberOfPassengers--;
}
else if (numberOfPassengers <=0)
{
Console.WriteLine("Någon måste väl ändå få åka med?\n");
Console.Write("Hur många passagerare kan åka med idag?");
}
}
catch (Exception e) // fångar upp om storleken på vektorn är mindre än 0 eller större än 50
{
Console.WriteLine("Det får bara plats 50 personer på bussen!\n");
Console.WriteLine("Hur många passagerare kan åka med idag?\n");
numberOfPassengers--;
}
while (numberOfPassengers <= 0 || numberOfPassengers > 50); // loopar inläsning från användaren tills inläst värde är mellan 1-50
passengers = new int[numberOfPassengers]; // tidigare inläst värde bestämmer storlek på vektor
Console.WriteLine("\nVad vill du göra idag?\n");
int menu = 0; // villkor för do-while loop deklareras
do
{
Console.WriteLine("\nVälj alternativ med siffran 1-5: \n");
Console.WriteLine("1. Lägga till passagerare\n");
Console.WriteLine("2. Skriv ut ålder för alla passagerare\n");
Console.WriteLine("3. Beräkna den sammanlagda åldern för alla passagerare\n");
Console.WriteLine("4. Beräkna medelålder för alla passagerare\n");
Console.WriteLine("5. Avsluta programmet\n");
Console.Write("Ditt val:");
menu = int.Parse(Console.ReadLine());
switch (menu)
{
case 1:
AddPassenger(); // fyller vektor med värden
break;
case 2:
PrintAge(); // skriver ut alla åldrar på passagerarna
break;
case 3:
CalcTotalAge(); // skriver ut den sammanlagda åldern av alla passagerare
break;
case 4:
CalcAverageAge(); // skriver ut passagerarnas medelålder
break;
case 5:
Console.WriteLine("Programmet avslutas");
break;
default:
Console.WriteLine("Felaktig inmatning");
break;
}
}
while (menu != 0); // villkor för när do-while loop avslutas
}
public void AddPassenger()
{
for (int y = 0; y < passengers.Length; y++)
{
Random newNumber = new Random();
int newPassenger = newNumber.Next(1, 85);
passengers[y] = newPassenger;
}
Console.WriteLine("\nAlla passagerare har nu klivit på:");
foreach (int age in passengers)
Console.WriteLine(age);
}
public void PrintAge()
{
int passengerNr = 1;
foreach (int age in passengers)
{
Console.WriteLine("\nPassagerare " + passengerNr++ + " är " + age + " år\n");
}
}
public void CalcTotalAge()
{
int sum = 0;
for (int y=0; y < passengers.Length; y++)
{
sum += passengers[y];
Console.WriteLine();
}
}
public void CalcAverageAge()
{
int sum = 0; // Instansierar sum till värdet 0
double sum1 = 0; // instansierar sum1 till värdet 0
double sum2 = 0;
for (int y = 0; y < passengers.Length; y++) // tilldelar vektor värden
{
sum += passengers[y]; // lägger ihop värden i vektor med värdet för sum som är 0
sum1 = (double)sum; // typomvandlar int sum till double
sum1 = sum / passengers.Length; // delar totalt värde i vektor med vektors längd
sum2 = Math.Round(sum1, 1);
Console.WriteLine("Passagerarnas medelålder är " + sum1 + " år"); // skriver ut medelåldern
}
}
static void Main(string[] args)
{
var myBus = new Bus();
myBus.Run();
Console.ReadKey();
}
}
}
}