Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Utmaning: Metodöverlagring | OOP-Grunder
C# Bortom Grunderna

bookUtmaning: Metodöverlagring

I denna övningsuppgift får du en ShippingCalculator-klass med en metod som heter CalculateShippingCost. Metoden ska överlagras för att stödja olika scenarier för fraktkostnader baserat på vikt och destination.

Din uppgift är att fylla i luckorna (___) på lämpligt sätt för att slutföra beräkningarna i metoden CalculateShippingCost för både lokala och internationella försändelser.

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344
using System; public class ShippingCalculator { // Method to calculate shipping cost for local shipments public double CalculateShippingCost(double weight) { // Local shipments have a fixed rate of $5 per kilogram return weight * ___; } // Method to calculate shipping cost for international shipments // It has two parameters 'weight' and an additional 'destinationCountry' which is of type 'string' ___ { // International shipments have a base rate of $10 per kilogram // Additional $3 per kilogram for shipments to Canada // Additional $5 per kilogram for shipments to other countries double baseRate = ___; double additionalRate = destinationCountry.ToLower() == "canada" ? ___ : ___; return weight * (baseRate + additionalRate); } } class ConsoleApp { static void Main() { ShippingCalculator calculator = new ShippingCalculator(); // Test local shipment double localCost = calculator.CalculateShippingCost(2); Console.WriteLine($"Local Shipment Cost: ${localCost}"); // Test international shipment to Canada double internationalToCanadaCost = calculator.CalculateShippingCost(2, "Canada"); Console.WriteLine($"International Shipment to Canada Cost: ${internationalToCanadaCost}"); // Test international shipment to other countries double internationalToOtherCost = calculator.CalculateShippingCost(2, "Germany"); Console.WriteLine($"International Shipment to Other Country Cost: ${internationalToOtherCost}"); } }

Du behöver överlagra CalculateShippingCost. Därför måste den nya metoden ha samma namn men olika parametrar. De nödvändiga parametrarna anges i kommentarerna.

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344
using System; public class ShippingCalculator { // Method to calculate shipping cost for local shipments public double CalculateShippingCost(double weight) { // Local shipments have a fixed rate of $5 per kilogram return weight * 5; } // Method to calculate shipping cost for international shipments // It has two parameters 'weight' and an additional 'destinationCountry' which is of type 'string' public double CalculateShippingCost(double weight, string destinationCountry) { // International shipments have a base rate of $10 per kilogram // Additional $3 per kilogram for shipments to Canada // Additional $5 per kilogram for shipments to other countries double baseRate = 10; double additionalRate = destinationCountry.ToLower() == "canada" ? 3 : 5; return weight * (baseRate + additionalRate); } } class ConsoleApp { static void Main() { ShippingCalculator calculator = new ShippingCalculator(); // Test local shipment double localCost = calculator.CalculateShippingCost(2); Console.WriteLine($"Local Shipment Cost: ${localCost}"); // Test international shipment to Canada double internationalToCanadaCost = calculator.CalculateShippingCost(2, "Canada"); Console.WriteLine($"International Shipment to Canada Cost: ${internationalToCanadaCost}"); // Test international shipment to other countries double internationalToOtherCost = calculator.CalculateShippingCost(2, "Germany"); Console.WriteLine($"International Shipment to Other Country Cost: ${internationalToOtherCost}"); } }
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 8

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 2.04

bookUtmaning: Metodöverlagring

Svep för att visa menyn

I denna övningsuppgift får du en ShippingCalculator-klass med en metod som heter CalculateShippingCost. Metoden ska överlagras för att stödja olika scenarier för fraktkostnader baserat på vikt och destination.

Din uppgift är att fylla i luckorna (___) på lämpligt sätt för att slutföra beräkningarna i metoden CalculateShippingCost för både lokala och internationella försändelser.

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344
using System; public class ShippingCalculator { // Method to calculate shipping cost for local shipments public double CalculateShippingCost(double weight) { // Local shipments have a fixed rate of $5 per kilogram return weight * ___; } // Method to calculate shipping cost for international shipments // It has two parameters 'weight' and an additional 'destinationCountry' which is of type 'string' ___ { // International shipments have a base rate of $10 per kilogram // Additional $3 per kilogram for shipments to Canada // Additional $5 per kilogram for shipments to other countries double baseRate = ___; double additionalRate = destinationCountry.ToLower() == "canada" ? ___ : ___; return weight * (baseRate + additionalRate); } } class ConsoleApp { static void Main() { ShippingCalculator calculator = new ShippingCalculator(); // Test local shipment double localCost = calculator.CalculateShippingCost(2); Console.WriteLine($"Local Shipment Cost: ${localCost}"); // Test international shipment to Canada double internationalToCanadaCost = calculator.CalculateShippingCost(2, "Canada"); Console.WriteLine($"International Shipment to Canada Cost: ${internationalToCanadaCost}"); // Test international shipment to other countries double internationalToOtherCost = calculator.CalculateShippingCost(2, "Germany"); Console.WriteLine($"International Shipment to Other Country Cost: ${internationalToOtherCost}"); } }

Du behöver överlagra CalculateShippingCost. Därför måste den nya metoden ha samma namn men olika parametrar. De nödvändiga parametrarna anges i kommentarerna.

index.cs

index.cs

copy
1234567891011121314151617181920212223242526272829303132333435363738394041424344
using System; public class ShippingCalculator { // Method to calculate shipping cost for local shipments public double CalculateShippingCost(double weight) { // Local shipments have a fixed rate of $5 per kilogram return weight * 5; } // Method to calculate shipping cost for international shipments // It has two parameters 'weight' and an additional 'destinationCountry' which is of type 'string' public double CalculateShippingCost(double weight, string destinationCountry) { // International shipments have a base rate of $10 per kilogram // Additional $3 per kilogram for shipments to Canada // Additional $5 per kilogram for shipments to other countries double baseRate = 10; double additionalRate = destinationCountry.ToLower() == "canada" ? 3 : 5; return weight * (baseRate + additionalRate); } } class ConsoleApp { static void Main() { ShippingCalculator calculator = new ShippingCalculator(); // Test local shipment double localCost = calculator.CalculateShippingCost(2); Console.WriteLine($"Local Shipment Cost: ${localCost}"); // Test international shipment to Canada double internationalToCanadaCost = calculator.CalculateShippingCost(2, "Canada"); Console.WriteLine($"International Shipment to Canada Cost: ${internationalToCanadaCost}"); // Test international shipment to other countries double internationalToOtherCost = calculator.CalculateShippingCost(2, "Germany"); Console.WriteLine($"International Shipment to Other Country Cost: ${internationalToOtherCost}"); } }
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 8
some-alt