3 svar
777 visningar
Lavender behöver inte mer hjälp
Lavender 3 – Fd. Medlem
Postad: 9 dec 2020 15:47

Bussen/Läskbacken - programmet vill inte köras, kompileringsfel

Hej! Helt ny medlem som tidigare kikat runt en del i forumen, även jag håller på med slutuppgiften "Bussen" i Programmering 1, som jag inte får att fungera.

Det handlar alltså om att lagra ett antal värden i en array och sedan skapa en meny där man kan välja mellan att lägga till nya, skriva ut alla värden, räkna ut den sammanlagda summan av värdena, eller avsluta programmet.

Hur mycket jag än ändrar i min kod får jag inte programmet att köras, utan bara ett eller flera kompileringsfel. När jag tror att jag lyckats lösa det ena så dyker andra fel upp istället och det hela har blivit ett moment 22.

Nu undrar jag om det är något jag gjort fel med själva kodstrukturen? Finns det något uppenbart som jag har missat? Jag är helt ny inom programmering och så tacksam för all feedback jag kan få.

using System;

namespace Bussen
{

	class Buss 
	{
	public int [] passagerare = new int[25]; //Vektorn med plats för 25 "passagerare" i sitt index.
	public int antal_passagerare = 25; //Variabel för max antal passagerare

	public void Run() 
		{
		int val = 0;
		do
		{ 
			Console.WriteLine("Välkommen till bussen. Välj vad du vill göra:");
			Console.WriteLine("1. Lägg till passagerare");
			Console.WriteLine("2. Skriv ut åldern på passagerarna");
			Console.WriteLine("3. Räkna ut den totala åldern på passagerarna.");
			Console.WriteLine("4. Avsluta programmet");
			
			val = int.Parse(Console.ReadLine());
			SWITCH (val)	
			Case 1: add_passenger(); 
			break;
					
			Case 2: print_buss();
			break;
					
			Case 3: calc_total_age(); 
			break;
					
			Case 4: quit_buss();
			break;
					
			default:
			Console.WriteLine("Tyvärr har du tryckt på en knapp som inte motsvarar ett val.");
			break;
			} 
		
		} while (val != 0); //Om man trycker på 0 så avslutas programmet, annars fortsätter det
	
}
	
	//Metoden för att lägga till passagerare i bussen
	public void add_passenger() 
	{
		Console.WriteLine("Hur många passagerare vill du lägga till? ");
        string nya = Console.ReadLine();
        antal_passagerare = Convert.ToInt32(nya); //Inmatning lagras i variabeln "antal_passagerare"
			
        //Loop för att lägga till nya passagerare på bussen
		for (int i = 0; i < antal_passagerare; i++) 
        {
			Console.WriteLine("Lägg till en ny passagerare genom att skriva in passagerarens ålder {i+0}:");
            passagerare[i] = int.Parse(Console.ReadLine());
            break;
         } 
		
		if (nya + antal_passagerare == passagerare.Length) //Om nya passagerare och antal passagerare tillsammans stiger över längden av indexet är bussen full.
        {
			i = passagerare.Length;
			nya += antal_passagerare;
			Console.WriteLine("Nu är bussen full!");
         }
		
		else //Om antal passagerare inte stiger över längden på indexet kan man lägga till nya
		{
			i++;
	     }
	}

//Metoden för att skriva ut alla passagerare i vektorn
	public void print_buss()
	{
		for (int i = 0; i < passagerare.Length; i++)
			{
            	Console.WriteLine("Plats {0} på bussen är {1} år gammal", i, passagerare[i]);
            }
	}

//Metoden för att beräkna totala åldern för alla passagerare
	public void calc_total_age()
	{
		int summa = 0;
		Console.WriteLine("Du har valt att beräkna den totala åldern på passagerarna.");
		
		for (int i = 0; i < passagerare.Length; i++)
			{
			Console.WriteLine(passagerare[i].Length);
			summa += passagerare[i];
			}
		
			int ålder = summa / passenger.Length;	
			Console.WriteLine("Den totala åldern för passagerarna är {0}", ålder)
			return ålder;
	}

	//Metoden för att stänga av programmet
	public void quit_buss()
		{
			//Här kan användaren skriva in tex 0 för att avsluta programmet
		} 
	}
}
	class Program
	{
		public static void Main(string[] args)
		{
			var minbuss = new Buss(); //Här skapas objektet minbuss, av klassen Buss
			minbuss.Run();
			Console.ReadKey(true);
		}
	}


De kompileringsfel jag får är:

  • Program.cs(63,5) : Error CS1519: Token while är ogiltig i en deklaration för en klass-, struktur- eller gränssnittsmedlem
  • Rad (63,20) : Error CS1519: Token != är ogiltig i en deklaration för en klass-, struktur- eller gränssnittsmedlem
  • Rad (68,9) : Error CS1518: En klass, delegat, uppräkning, ett gränssnitt eller en struktur förväntas
  • Rad (78,28) : Error CS1518: En klass, delegat, uppräkning, ett gränssnitt eller en struktur förväntas
  • Rad (82,3) : Error CS0116: Ett namnområde får inte innehålla direkta medlemmar som fält eller metoder
  • Rad (93,2) : Error CS1022: En typ- eller namnområdesdefinition eller ett filslut förväntas
     
Laguna Online 30482
Postad: 9 dec 2020 16:03 Redigerad: 9 dec 2020 16:03

SWITCH verkar avslutas med en klammer, men inte börja med en. Det ser inte rätt ut.

Det andra är nog följdfel.

Lindehaven 820 – Lärare
Postad: 9 dec 2020 16:15

Det finns en del fel i koden men du kan börja med att åtgärda switch-satsen enligt nedan och sedan börja reda ut resterande fel.

				switch (val) { //FIXED: SWITCH (val) -> switch (val) {
					case 1: add_passenger(); //FIXED: Case -> case
					break;

					case 2: print_buss(); //FIXED: Case -> case
					break;

					case 3: calc_total_age(); //FIXED: Case -> case
					break;

					case 4: quit_buss(); //FIXED: Case -> case
					break;

					default:
					Console.WriteLine("Tyvärr har du tryckt på en knapp som inte motsvarar ett val.");
					break;
				}
Lavender 3 – Fd. Medlem
Postad: 13 dec 2020 14:03 Redigerad: 13 dec 2020 14:04

Stort tack för era svar! Jag började med att fixa switch-menyn och gick igenom koden rad för rad efter det. Var ju en hel del fel men nu har jag äntligen ett fungerande program! 

Svara
Close