我现在正在学习编程,我需要做一辆“公共汽车”。我有一个带有 25 个点的向量,用户将用乘客填充这些点。我有一个 switch-case 菜单,所以你可以选择是添加乘客还是获取完整的乘客列表等等。当我输入了大约 5 名乘客并希望获得乘客名单时,公交车上的每个人都变为 0,而不是我输入的年龄。我不知道怎么了?
代码中的注释是瑞典语。
{
class Buss
{
public int[] passagerare;
public int antal_passagerare ;
public void Run()
{
Console.WriteLine("Welcome to the awesome Buss-simulator");
do
{
Console.WriteLine("Välj alternativ");
Console.WriteLine("1: Lägg till passagerare");
Console.WriteLine("2: Skriv ut listan över passagerare");
Console.WriteLine("3: Skriv ut total åldern över passagerna");
Console.WriteLine("4: Skriv ut medelåldern över passagerarna");
Console.WriteLine("0: Avsluta programmet.");
string str = Console.ReadLine();
int temp = Convert.ToInt32(str);
switch (temp)
{
case 1:
Console.WriteLine("Lägg till passagerare (ange ålder endast)!");
add_passenger();
break;
case 2:
Console.WriteLine("Skriv ut gästlistan!");
print_buss();
break;
case 3:
Console.WriteLine("hejsan");
break;
case 4:
Console.WriteLine("hejsan");
break;
case 0:
Console.WriteLine("hejsan");
break;
}
//ska ändra så att om man väljer 0 så stängs programmet
} while (true);
//Här ska menyn ligga för att göra saker
//Jag rekommenderar switch och case här
//I filmen nummer 1 för slutprojektet så skapar jag en meny på detta sätt.
//Dessutom visar jag hur man anropar metoderna nedan via menyn
//Börja nu med att köra koden för att se att det fungerar innan ni sätter igång med menyn.
//Bygg sedan steg-för-steg och testkör koden.
}
//Metoder för betyget E
public void add_passenger()
{
passagerare = new int[25];
if (antal_passagerare < 25)
{
Console.WriteLine("Ålder på passagerare nr " + antal_passagerare);
string age = Console.ReadLine();
int age2 = Convert.ToInt32(age);
passagerare[antal_passagerare] = age2;
Console.WriteLine(passagerare[antal_passagerare]);
antal_passagerare++;
}
else
{
Console.WriteLine("Bussen är full!");
}
//Lägg till passagerare. Här skriver man då in ålder men eventuell annan information.
//Om bussen är full kan inte någon passagerare stiga på
}
public void print_buss()
{
for (int i = 0; i < antal_passagerare; i++)
{
Console.WriteLine(passagerare[i]);
}
}
// public int calc_total_age()
//{
//}
//public int calc_average_age()
//{
//}
public void find_age()
{
}
public void sort_buss()
{
}
}
class Program
{
public static void Main(string[] args)
{
var minbuss = new Buss();
minbuss.Run();
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
如果我正确理解这一点,则您正在设置数组:
passagerare = new int[25];
每次进入该add_passenger
函数时都会转换为一个新数组,因此尽管您实际上可能在第一次设置它,但下次用户进入该函数时,它将再次重置。
如果是这种情况,您可以在调用此函数之前简单地定义它并将其作为参数传递。
编辑:关于您的评论,您可以在两个地方之一定义它。
1)您可以创建一个构造函数,将数组设置为如下长度[25]
:
public Buss(){
passagerare = new int[25];
}
2)您可以在输入switch
语句之前定义它并将数组作为参数传递给每个函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句