programmering 1 . Buss projekt
Hej , jag har löst den här projekten, men försöker få betyg A, men hittar inte nåt i boken eller i nätet som förklarar hur man kan lösa detta. Jag har gjort en klass för PRINT_SEX men ändå funkar inte bra .
är fast på hur man få de sista metoder att funka ,
tusen tack för hjälpen.
---------------------------------
namespace Project81
{
class sex
{
public string kön;
public string[] info = new string[25];
class Buss : sex
{
public int[] passagerare = new int[25];
public int antal_passagerare;
public void Run()
{
int[] passagerare = new int[25];
int meny = 0;
Console.WriteLine("Welcome to the awesome Buss-simulator");
do
{
Console.WriteLine("____________________________________________________________________");
Console.WriteLine("välj alternativ");
Console.WriteLine("___________________________________________________________");
Console.WriteLine("1. låt en man kliva i busssen ");
Console.WriteLine("2. Skriv ut alla bussens passagerare");
Console.WriteLine("3. Beräkna den totala åldern");
Console.WriteLine("4. Beräkna medel åldern ");
Console.WriteLine("5. Ta reda på den äldre man i bussen ");
Console.WriteLine("6. Hitta åldern ");
Console.WriteLine("7. Sortera bussen efter åldern ");
Console.WriteLine("8. Ta reda på passagerarens kön");
Console.WriteLine("___________________________________________________________");
meny = int.Parse(Console.ReadLine());
switch (meny)
{
case 1:
add_passenger();
break;
case 2:
print_buss();
break;
case 3:
calc_total_age();
break;
case 4:
calc_average_age();
break;
case 5:
max_age();
break;
case 6:
find_age();
break;
case 7:
sort_buss();
break;
case 8:
print_sex();
break;
default:
Console.WriteLine("felaktigt inmatining");
break;
}
} while (meny != 0);
}
public void add_passenger()
{
// Jag har laggt till ( Console.clear ) för att om man väljer val 1, då kommer en sida eller skärm, detta är bättre tycker jag,
// jag har lärt mig detta av någon i studerande grupp i google.
Console.WriteLine("");
Console.Clear();
Console.WriteLine("Ange talet för passagerare :");
// Här omvandlar jag det inmatatde talet som är deklarerat i början av koden, till intigar 32.
antal_passagerare = Convert.ToInt32(Console.ReadLine());
// Här lägger startvärde, villkor och förändrings värde, för att skriva ut bara talet som användaren skriver in.
for (int i = 0; i < antal_passagerare; i++)
{
if (antal_passagerare > 25)
{
Console.Write("slut bara 25 stolar");
string str = Console.ReadLine();
break;
}
Console.Write($"Hur många år vill du att passagerare vara[{i + 1}]:");
// Jag har laggt till här en ny intigar, eftersom den första intigar ( antal_passagerare ) funkade inte här,
// då visste jag den funkar bara med passagerares antalet som användaren skriver in.
int age = Convert.ToInt32(Console.ReadLine());
// Jag har satt fast här ett tag, sedan tog jag reda på att man måste sätta passagerares antal med passagerare värde som finns i vektorn.
passagerare[i] = age;
for (int k = 0; k < info.Length ; k++)
{
Console.WriteLine($" är passagerare man eller kvinna " + (k + 1));
kön = Console.ReadLine();
}
/* (tal ==25 || tal > 25)
{
Console.WriteLine("Bussen är full");
break;
}
else if (i>25)
{
Console.WriteLine("hur många år vill du ha för passagerae");
tal = Convert.ToInt32(Console.ReadLine()); */
}
}
public void print_buss()
{
Console.WriteLine($"Åldern av passagerare som sitter i bussen är : \n");
// Här skapar jag en loop, så den körs 25 gånger. toma platser fick 0 för värde
// Och sedan kommer skrivs ut åldern av passagerare som sitter i bussen.
// Dessa personer sparat redan i vektorn som har värde PASSAGERARE.
for (int i = 0; i < passagerare.Length; i++)
{
// Här skrivs ut lista av passagerare i bussen .
Console.WriteLine(passagerare[i]);
/* if (passagerare[i] <= 0)
{
Console.Write("ledig");
} */
}
}
public int calc_total_age()
{
// Jag har skapat en ny variable här för beräkna summan av total age
int summan = 0;
// en loop
for (int i = 0; i < passagerare.Length; i++)
{
// den nya variablen plus eller lika med åldern av passagerare som vi mattat in .
// Jag har satt fast lite för att förstå vad händer, eftersom variablen summan har värde 0
// Sedan uppfattat jag att det bara sätter som gör programmet beräknar totala åldern.
summan += passagerare[i];
}
Console.WriteLine("Den totala åldern av passagerare är " + summan);
// Här man måste använda return för att retunera vädret av FOR parentasen .
return summan;
}
public int calc_average_age()
{
// Skapat två nya variabler, en för summan av åldern och den andra för antal passagerare.
// För att vi vill veta average age, så man måste dela passagerare ålden på antal passagerare.
int summan = 0;
int summan1 = 0;
// loop
for (int i = 0; i < passagerare.Length; i++)
{
summan += passagerare[i];
}
// Delar värde eller passagerare åldern på antal passagerare.
summan1 = summan / antal_passagerare;
Console.WriteLine("Medel åldern är " + summan1);
// Retunerar summan
return summan1;
}
public int max_age()
{
// Här satt jag fast lite tills skapat en obejkt för att veta max age.
// Sedan deklerarat variablen med passagerare och ett reserverad ord i C# Min.
int maxValue = passagerare.Max();
Console.WriteLine("Den högsta åldern i bussen är " + maxValue);
// Retunerar värde
return maxValue;
}
public void find_age()
{
// Jag skapat här BOOL för att, om man hittar inte åldern som skrivit in,
// då kommer utskrift visar att denn här åldern existerar inte.
bool found = false;
// Här skriver den inledande mening, sedan skapar variable och omvandlar den.
Console.WriteLine("Vilken är den yngst åldern som du vill hitta ?");
int yngst = Convert.ToInt32(Console.ReadLine());
// Skapar variable och omvandlar den.
Console.WriteLine("Vilken är det högst åldern som du vill hitta ?");
int högst = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Passagerarna som mellan åldern " + yngst + " - " + högst + " sitter i : ");
// En loop som körs varv beroende på passagerare som sitter mellan de inmatade information.
for (int i = 0; i < passagerare.Length; i++)
{
if (passagerare[i] > högst || passagerare[i] > yngst)
{
// Skriver ut stolen med åldern av personen som sitter på.
// Här märkte jag att koden eller programmet tar bara de första stolarna,
// så om man vill hitta åldern for example mellan 30 till 35. då kommer de sitta på de första 5 stolarna.
// Detta eftersom vi laggt till [i] istället för passagerare [i].
// Det kommer skrivas ut alla stolen + åldern av passagerare.
Console.WriteLine("stolen " + i);
found = true;
}
}
// Om den inmatade talen exsiterar inte i FOR, då kommer köras denna if .
// Detta pekar på att den inmatade åldern finns inte.
if (!found)
{
Console.WriteLine("OBS det finns inte sån ålder i bussen ");
}
}
public void sort_buss()
{
// Jag har skapat en nyvariable för att jag kommer använda den sedan.
int temp;
// Om man vill sortera ålder i bussen, så måste man subtrahera 1 från passagerare. langth i loopen .
for (int i = 0; i < passagerare.Length - 1; i++)
{
// Vi måste göra här en till loop, för att lagra värden eller elementen i listan som står i boken
// Vi subtraherar en gång till här, för detta värde som är redan sorterade .
for (int j = 0; j < passagerare.Length - 1 - i; j++)
{
// Jämför värden
if (passagerare[j] > passagerare[j + 1])
{
// Detta sätt är för ge båda värden samma värde
temp = passagerare[j];
passagerare[j] = passagerare[j + 1];
passagerare[j + 1] = temp;
}
}
}
// Till slut här lägger vi till en till loop FOR och
// skriver hur utskriften kommer se ut när man sorterar bussen efter åldern.
for (int i = 0; i < passagerare.Length; i++)
{
Console.WriteLine("Passagerare " + (i + 1) + " är " + passagerare[i] + " år gammal ");
}
}
public void print_sex()
{
for (int k = 0; k < info.Length +1; k++)
{
Console.WriteLine("Plats" + info[k] + kön);
}
//Betyg A
//Denna metod är nödvändigtvis inte svårare än andra metoder men kräver att man skapar en klass för passagerare.
//Skriv ut vilka positioner som har manliga respektive kvinnliga passagerare.
}
}
}
public void poke()
{
//Betyg A
//Vilken passagerare ska vi peta på?
//Denna metod är valfri om man vill skoja till det lite, men är också bra ur lärosynpunkt.
//Denna metod ska anropa en passagerares metod för hur de reagerar om man petar på dom (eng: poke)
//Som ni kan läsa i projektbeskrivningen så får detta beteende baseras på ålder och kön.
}
public void getting_off()
{
//Betyg A
//En passagerare kan stiga av
//Detta gör det svårare vid inmatning av nya passagerare (som sätter sig på första lediga plats)
//Sortering blir också klurigare
//Den mest lämpliga lösningen (men kanske inte mest realistisk) är att passagerare bakom den plats..
//.. som tillhörde den som lämnade bussen, får flytta fram en plats.
//Då finns aldrig någon tom plats mellan passagerare.
}
}
internal class Class1
{
public static void Main(string[] args)
{
var minbuss = new Buss();
minbuss.Run();
minbuss.add_passenger();
var mysex = new sex();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}