Programmering 1 - Bussen
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 size; // 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.WriteLine("Hur många passagerare kan åka med idag? Bussen har 50 platser.\n");
try
{
size = Convert.ToInt32(Console.ReadLine()); // läser in värde från användaren som bestämmer storlek på vektor
}
catch (Exception e) // fångar upp om storleken på vektorn är mindre än 0 eller större än 50
{
if (size < 0 && size > 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.WriteLine("Hur många passagerare kan åka med idag?\n");
}
passengers = new int[size]; // 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("Vä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");
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:
TotalAge(); // skriver ut den sammanlagda åldern av alla passagerare
break;
case 4:
AverageAge(); // skriver ut passagerarnas medelålder
break;
case 5:
menu = 0; // avslutar programmet
break;
}
}
while (menu != 0); // villkor för när do-while loop avslutas
}
public void AddPassenger()
{
for (int y = size; y < passengers.Length; y++)
{
Random newNumber = new Random();
int newPassenger = newNumber.Next(1, 85);
passengers[y] = newPassenger; // Varför fyller inte detta min vektor med slumpade tal?
}
Console.WriteLine("\nAlla passagerare har nu klivit på:");
foreach (int age in passengers)
Console.WriteLine(age);
}
public void PrintAge()
{
foreach (int age in passengers)
{
Console.WriteLine("Passagerarnas åldrar är: " + age);
}
}
public void TotalAge()
{
int sum = 0;
for (int y = size; size < passengers.Length; y++)
{
sum += passengers[y];
Console.WriteLine("Passagerarnas total ålder är {0}" + sum + " år");
}
}
public void AverageAge()
{
int sum = 0; // Instansierar sum till värdet 0
double sum1 = 0; // instansierar sum1 till värdet 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
Console.WriteLine("Passagerarnas medelålder är {0}" + sum1 + " år"); // skriver ut medelåldern
}
}
static void Main(string[] args)
{
var myBus = new Bus();
myBus.Run();
Console.ReadKey();
}
}
}
}