Programmering 2, fastnat på en uppgift.

Permalänk
Medlem

Programmering 2, fastnat på en uppgift.

Hejsan,

Nyligen börjat på programmering 2 hos Hermods och sitter fast på en uppgift. Jag har kommit en bit påväg men av någon anledning skriver det inte ut med resultat.. Jag har försökt kontrollera det med mina tidigare uppgifter som varit relativt snarlika men är antingen blind eller har missat något..

Någon på forumet som kan se vad/vilka saker jag missat?

Allt väl.

//A

----------------------------------------------------------------------------------------------------------------------------------------------

Uppgift
För att öva på arv i förberedelser för den större uppgiften ovan så ska du här lämna in följande uppgift.

Skapa en klass som heter fordon och som har följande fält:

#hästkrafter
#färg
Denna klass ska ha en lämplig konstruktor och en metod som beräknar maxhastigheten för fordonet.

Vidare kan du lägga till en valfri metod som exempelvis att fordonet "tutar".

Maxhastigheten baseras på hästkrafter med en lämplig formel.

Metoden för att beräkna tophastigheten är kursiv i UML:et vilket innebär att den är virtuell.

Skapa ytterigare en klass som heter lastbil och som ärver av fordon. I denna klass finns ytterligare ett fält som heter last.

Maxhastigheten för lastbil beräknas utifrån hästkrafter och last på ett lämpligt sätt.

Observera att formeln inte på något sätt behöver vara realistisk. Det är principen med kodningen som är det viktiga.

using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace Trucker // Note: actual namespace depends on the project name. { internal class Program { static void Main(string[] args) { Vehicle volvo = new Truck(100,"green", 40); Console.ReadLine(); } abstract class Vehicle { protected int horsePower; protected string color; protected Vehicle(int _horsepower, string _color) { horsePower = _horsepower; color = _color; } public virtual int CalcSpeed() { var topspeed = horsePower *2; return topspeed; } } class Truck: Vehicle { private int load; public Truck(int _horsepower, string _color, int _load) : base(_horsepower, _color) { horsePower = _horsepower; color = _color; load = _load; } public override int CalcSpeed() { var topspeed = horsePower + (load / 3) * 2; return topspeed; } public override string ToString() { string truck = string.Format("The truck is loaded with : {0} KG. The color is of the truck is: {1}. Amount of horsepower;: {2}. \nThe topspeed is: {3}", load, color, horsePower); return truck; } } } }

Permalänk
Medlem

Vilken rad ligger koden som skriver ut på?

Visa signatur

Fractal Design Node 304 -> ASUS ROG STRIX Z370-I GAMING ->i5 8600K -> be quiet! Pure Rock -> MSI GeForce RTX 4070 VENTUS 2X E 12G OC -> Corsair Vengeance LPX 3200 32GB -> Seasonic FOCUS Plus 650W Gold -> Samsung 960 EVO 500GB -> 2 * Western Digital Black 2 TB -> Samsung 850 EVO Basic SSD 500GB

Permalänk
Medlem

Hejsan!

Jag vill göra utskriften från min ToString() och texten som ska skrivas ut är på rad 75 (kör visual studio 2022)

Permalänk
Medlem

Du behöver göra något mer med variabeln volvo förutom att instansiera ett nytt Truck objekt.

Visa signatur

~. Citera så jag hittar tillbaka .~

Permalänk
Medlem

Menar ni att hämta metoden (eller vad det kallas) och skriva ut den i main? Till ex: Console.WriteLine(volvo.CalcSpeed());

Jag tänkte göra på det viset först men hade gärna fått till min ToString lösning.

Permalänk
Medlem
Skrivet av Andolo2:

Menar ni att hämta metoden (eller vad det kallas) och skriva ut den i main? Till ex: Console.WriteLine(volvo.CalcSpeed());

Jag tänkte göra på det viset först men hade gärna fått till min ToString lösning.

Din ToStringmetod är det inget fel på men var kallar du på den?

Visa signatur

Fractal Design Node 304 -> ASUS ROG STRIX Z370-I GAMING ->i5 8600K -> be quiet! Pure Rock -> MSI GeForce RTX 4070 VENTUS 2X E 12G OC -> Corsair Vengeance LPX 3200 32GB -> Seasonic FOCUS Plus 650W Gold -> Samsung 960 EVO 500GB -> 2 * Western Digital Black 2 TB -> Samsung 850 EVO Basic SSD 500GB

Permalänk
Medlem

Suck, Ibland går hissen går inte hela vägen upp... Nu fick jag till det, tack för hjälpen, ni räddade min kväll!

/A