1
svar
2153
visningar
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.
bool hittad = false;
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();
break;
}
/* (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);
}
}
}
}
Pröva använd queue, för den sista metodern. Det är som en lista som fungerar som namnet själv kö. Använd dequeue för att ta ut den som har varit längst på bussen, och enque för att köa in nya.