Har en uppgift med fljande kod:
Problemet r att functionen scania.Calc_Topspeed(horsepower, last) (halvnra slutet) inte vill kras, p grund av felmeddelandet p villkoren att "Cannot convert int to horsepower/last".
Och jag antog att det skulle g plocka variablerna frn metoden Scania() i klassen Run(), och anvnda som villkor i den metoden.
Men det verkar inte g, fastn samma funktion gr bra i metoden Volvo(), fast fr klassen Fordon istllet fr den Lastbil : Fordon.
Ngra ider?
Kod:
using System; namespace Fordon_Lastbil { internal class Program { static void Main(string[] args) { Fordon volvo = new Fordon(90, "grn"); Lastbil scania = new Lastbil(400, "vit", 3000); Run(); } static void Run() { int temp = 0; do { Console.Clear(); Console.WriteLine("Vlkommen till fordonssimulatorn."); Console.WriteLine("Vlj fordon:"); Console.WriteLine("1 Volvo - bil"); Console.WriteLine("2 Scania - lastbil"); Console.Write("\nDitt val: "); try { temp = int.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Var god vlj en siffra bland menyalternativen.\n" + "Tryck vilken knappt som helst fr att terg till menyn."); Console.ReadKey(true); Run(); } switch (temp) { case 1: Volvo(); break; case 2: Scania(); break; case 0: Console.WriteLine("Programmet avslutas."); break; default: Console.WriteLine("Felaktig inmatning."); Console.ReadKey(); break; } } while (temp != 0); } static void Volvo() { int horsepower=0; string color = "vit"; Console.WriteLine("Hur mnga hstkrafter har bilen?"); horsepower = int.Parse(Console.ReadLine()); Console.WriteLine("Vilken frg r bilen?"); color = Console.ReadLine(); Fordon volvo = new Fordon(horsepower, color); int temp = 0; do { Console.Clear(); Console.WriteLine("Vad ska bilen gra?."); Console.WriteLine("Vlj alternativ:"); Console.WriteLine("1 Kra"); Console.WriteLine("2 Tuta"); Console.WriteLine("3 Huvudmeny"); Console.Write("\nDitt val: "); try { temp = int.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Var god vlj en siffra bland menyalternativen.\n" + "Tryck vilken knappt som helst fr att terg till menyn."); Console.ReadKey(true); Volvo(); } switch (temp) { case 1: Console.WriteLine("Den {0}a Volvon kr i {1} km/h", color, volvo.Calc_Topspeed(horsepower)); ; Console.ReadKey(); break; case 2: volvo.Horn(); Console.ReadKey(); break; case 3: Run(); break; case 0: Console.WriteLine("Programmet avslutas."); break; default: Console.WriteLine("Felaktig inmatning."); Console.ReadKey(); break; } } while (temp != 0); } static void Scania() { int horsepower = 0; string color = "vit"; int last = 0; Console.WriteLine("Hur mnga hstkrafter har fordonet?"); horsepower = int.Parse(Console.ReadLine()); Console.WriteLine("Vilken frg r fordonet?"); color = Console.ReadLine(); Console.WriteLine("Hur mnga kilo r lastat p fordonet?"); last = int.Parse(Console.ReadLine()); Lastbil scania = new Lastbil(horsepower, color, last); int temp = 0; do { Console.Clear(); Console.WriteLine("Vad ska lastbilen gra?."); Console.WriteLine("Vlj alternativ:"); Console.WriteLine("1 Kra"); Console.WriteLine("2 Tuta"); Console.WriteLine("3 Huvudmeny"); Console.Write("\nDitt val: "); try { temp = int.Parse(Console.ReadLine()); } catch (Exception) { Console.WriteLine("Var god vlj en siffra bland menyalternativen.\n" + "Tryck vilken knappt som helst fr att terg till menyn."); Console.ReadKey(true); Scania(); } switch (temp) { case 1: Console.WriteLine("Den {0}a Scanian kr i {1} km/h", color, scania.Calc_Topspeed(horsepower, last)); ; Console.ReadKey(); break; case 2: scania.Horn(); Console.ReadKey(); break; case 3: Run(); break; case 0: Console.WriteLine("Programmet avslutas."); break; default: Console.WriteLine("Felaktig inmatning."); Console.ReadKey(); break; } } while (temp != 0); } } class Fordon { protected int horsepower; protected string color; public Fordon (int horsepower, string color) { this.horsepower = horsepower; this.color = color; } public virtual double Calc_Topspeed(int horsepower) { return horsepower * 1.5; } public void Horn() { Console.WriteLine("Du tutar."); } } class Lastbil : Fordon { private int last; //kilogram last public Lastbil(int horsepower, string color, int last) : base(horsepower, color) { this.last = last; this.horsepower = horsepower; this.color = color; } public override double Calc_Topspeed(horsepower, last) { return (horsepower * 1.5)/(last/7000); } } }
Problemet r att functionen scania.Calc_Topspeed(horsepower, last) (halvnra slutet) inte vill kras, p grund av felmeddelandet p villkoren att "Cannot convert int to horsepower/last".
Och jag antog att det skulle g plocka variablerna frn metoden Scania() i klassen Run(), och anvnda som villkor i den metoden.
Men det verkar inte g, fastn samma funktion gr bra i metoden Volvo(), fast fr klassen Fordon istllet fr den Lastbil : Fordon.
Ngra ider?