Vul de ontbrekende delen in (__________) om method overloading correct te implementeren.
Specificaties
Vul de ontbrekende methodesignatures (__________) correct in.
Test de code in een C#-omgeving en controleer of alle methoden correct worden opgeroepen.
Verwachte output
Resultaat 1: 15
Resultaat 2: 6
Resultaat 3: 6
Nu jij
using System;class Berekenaar{ // Methode voor optellen van twee gehele getallen public int Optellen(__________) { return a + b; } // Overloaded methode voor optellen van twee kommagetallen public double Optellen(__________) { return a + b; } // Overloaded methode voor optellen van drie gehele getallen public int Optellen(__________) { return a + b + c; }}class Program{ static void Main() { Berekenaar berekenaar = new Berekenaar(); int resultaat1 = berekenaar.Optellen(5, 10); double resultaat2 = berekenaar.Optellen(3.5, 2.5); int resultaat3 = berekenaar.Optellen(1, 2, 3); Console.WriteLine("Resultaat 1: " + resultaat1); Console.WriteLine("Resultaat 2: " + resultaat2); Console.WriteLine("Resultaat 3: " + resultaat3); }}
Mogelijke uitwerking
using System;class Berekenaar{ // Methode voor optellen van twee gehele getallen public int Optellen(int a, int b) { return a + b; } // Overloaded methode voor optellen van twee kommagetallen public double Optellen(double a, double b) { return a + b; } // Overloaded methode voor optellen van drie gehele getallen public int Optellen(int a, int b, int c) { return a + b + c; }}class Program{ static void Main() { Berekenaar berekenaar = new Berekenaar(); int resultaat1 = berekenaar.Optellen(5, 10); double resultaat2 = berekenaar.Optellen(3.5, 2.5); int resultaat3 = berekenaar.Optellen(1, 2, 3); Console.WriteLine("Resultaat 1: " + resultaat1); Console.WriteLine("Resultaat 2: " + resultaat2); Console.WriteLine("Resultaat 3: " + resultaat3); }}
Oefening 2 Method overloading
Vul de ontbrekende delen in (__________) om method overloading correct te implementeren.
Specificaties
Vul de ontbrekende methodesignatures (__________) correct in.
Test de code in een C#-omgeving en controleer of alle methoden correct worden opgeroepen.
using System;class Vermenigvuldiger{ // Methode voor vermenigvuldigen van twee gehele getallen public int Vermenigvuldig(int a, int b) { return ___________; } // Overloaded methode voor vermenigvuldigen van twee kommagetallen public double Vermenigvuldig(double a, double b) { return ___________; } // Overloaded methode voor vermenigvuldigen van een geheel getal en een kommagetal public double Vermenigvuldig(int a, double b) { return ___________; }}class Program{ static void Main() { Vermenigvuldiger rekenmachine = new Vermenigvuldiger(); int resultaat1 = rekenmachine.Vermenigvuldig(4, 5); double resultaat2 = rekenmachine.Vermenigvuldig(2.5, 3.5); double resultaat3 = rekenmachine.Vermenigvuldig(3, 2.5); Console.WriteLine("Resultaat 1: " + resultaat1); Console.WriteLine("Resultaat 2: " + resultaat2); Console.WriteLine("Resultaat 3: " + resultaat3); }}
Mogelijke uitwerking
using System;class Vermenigvuldiger{ // Methode voor vermenigvuldigen van twee gehele getallen public int Vermenigvuldig(int a, int b) { return a * b; } // Overloaded methode voor vermenigvuldigen van twee kommagetallen public double Vermenigvuldig(double a, double b) { return a * b; } // Overloaded methode voor vermenigvuldigen van een geheel getal en een kommagetal public double Vermenigvuldig(int a, double b) { return a * b; }}class Program{ static void Main() { Vermenigvuldiger rekenmachine = new Vermenigvuldiger(); int resultaat1 = rekenmachine.Vermenigvuldig(4, 5); double resultaat2 = rekenmachine.Vermenigvuldig(2.5, 3.5); double resultaat3 = rekenmachine.Vermenigvuldig(3, 2.5); Console.WriteLine("Resultaat 1: " + resultaat1); Console.WriteLine("Resultaat 2: " + resultaat2); Console.WriteLine("Resultaat 3: " + resultaat3); }}
Opdracht 3 Method overriding
Vul de ontbrekende delen in (__________) om method overriding correct te implementeren.
Specificaties
Vul de ontbrekende methodesignatures (__________) correct in.
Test de code in een C#-omgeving en controleer of alle methoden correct worden opgeroepen.
Verwachte output
Output:
Oppervlakte van een vierkant (5x5): 25
Oppervlakte van een rechthoek (5x10): 50
Oppervlakte van een cirkel (straal 3): 28.274333882308138
Nu jij
using System;class OppervlakteBerekening{ public int BerekenOppervlakte(int lengte) { return lengte * lengte; } public int __________(__________) { return lengte * breedte; } public __________ BerekenOppervlakte(double __________) { return Math.PI * straal * straal; }}class Program{ static void Main() { OppervlakteBerekening berekening = new OppervlakteBerekening(); Console.WriteLine("Oppervlakte van een vierkant (5x5): " + berekening.BerekenOppervlakte(5)); Console.WriteLine("Oppervlakte van een rechthoek (5x10): " + berekening.BerekenOppervlakte(5, 10)); Console.WriteLine("Oppervlakte van een cirkel (straal 3): " + berekening.BerekenOppervlakte(3)); }}
Mogelijke uitwerking
using System;class OppervlakteBerekening{ public int BerekenOppervlakte(int lengte) { return lengte * lengte; } public int BerekenOppervlakte(int lengte, int breedte) { return lengte * breedte; } public double BerekenOppervlakte(double straal) { return Math.PI * straal * straal; }}class Program{ static void Main() { OppervlakteBerekening berekening = new OppervlakteBerekening(); Console.WriteLine("Oppervlakte van een vierkant (5x5): " + berekening.BerekenOppervlakte(5)); Console.WriteLine("Oppervlakte van een rechthoek (5x10): " + berekening.BerekenOppervlakte(5, 10)); Console.WriteLine("Oppervlakte van een cirkel (straal 3): " + berekening.BerekenOppervlakte(3)); }}
Oefening 4 Method overloading
Je gaat een method overloading toepassen om berichten op verschillende manieren te tonen. Vul de ontbrekende delen in (__________) om method overloading correct te implementeren.
Specificaties
Vul de ontbrekende methodesignatures (__________) correct in.
Test de code in een C#-omgeving en controleer of alle methoden correct worden opgeroepen.
Verwachte output
Hallo, wereld!
Dit is een waarschuwing! (geel gekleurd)
Dit wordt 3 keer herhaald.
Dit wordt 3 keer herhaald.
Dit wordt 3 keer herhaald.
Nu jij
using System;class BerichtenService{ public void ToonBericht(__________) { Console.WriteLine(__________); } public void ToonBericht(__________, __________) { Console.ForegroundColor = __________; Console.WriteLine(__________); Console.ResetColor(); } public void ToonBericht(__________, __________) { for (int i = 0; i < __________; i++) { Console.WriteLine(__________); } }}class Program{ static void Main() { BerichtenService service = new __________(); service.ToonBericht("Hallo, wereld!"); service.ToonBericht("Dit is een waarschuwing!", ConsoleColor.Yellow); service.ToonBericht("Dit wordt 3 keer herhaald.", __________); }}
Mogelijke uitwerking
using System;class BerichtenService{ public void ToonBericht(string bericht) { Console.WriteLine(bericht); } public void ToonBericht(string bericht, ConsoleColor kleur) { Console.ForegroundColor = kleur; Console.WriteLine(bericht); Console.ResetColor(); } public void ToonBericht(string bericht, int aantal) { for (int i = 0; i < aantal; i++) { Console.WriteLine(bericht); } }}class Program{ static void Main() { BerichtenService service = new BerichtenService(); service.ToonBericht("Hallo, wereld!"); service.ToonBericht("Dit is een waarschuwing!", ConsoleColor.Yellow); service.ToonBericht("Dit wordt 3 keer herhaald.", 3); }}// Output:// Hallo, wereld!// Dit is een waarschuwing! (geel gekleurd)// Dit wordt 3 keer herhaald.// Dit wordt 3 keer herhaald.// Dit wordt 3 keer herhaald.
Opdracht 5 Interface implementation
Je gaat polymorfisme toepassen door een interface te implementeren in verschillende klassen. Het onderwerp van deze oefening is “Betaalsystemen”. Je gaat een interface IBetaalMethode maken en verschillende betaalmethoden implementeren:
Creditcard: Hiermee kan een betaling worden verwerkt met een kaartnummer.
PayPal: Hiermee kan een betaling worden verwerkt met een e-mailadres.
Cryptocurrency: Hiermee kan een betaling worden verwerkt met een wallet-adres.
Vul de ontbrekende delen in (__________) om method overloading correct te implementeren.
Specificaties
Vul de ontbrekende methodesignatures (__________) correct in.
Test de code in een C#-omgeving en controleer of alle methoden correct worden opgeroepen.
Verwachte output
Betaling van €100,00 uitgevoerd met creditcard: 1234-5678-9012-3456
Betaling van €50,00 uitgevoerd via PayPal-account: gebruiker@email.com
Betaling van €0,01 uitgevoerd met cryptocurrency-wallet: 1A2b3C4d5E6F
Nu jij
using System;interface IBetaalMethode{ void VoerBetalingUit(__________);}class CreditcardBetaling : IBetaalMethode{ private string kaartNummer; public CreditcardBetaling(string kaartNummer) { this.kaartNummer = __________; } public void VoerBetalingUit(__________) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd met creditcard: {kaartNummer}"); }}class PayPalBetaling : __________{ private string email; public PayPalBetaling(string email) { this.email = __________; } public void VoerBetalingUit(__________) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd via PayPal-account: {email}"); }}class CryptoBetaling : __________{ private string walletAdres; public CryptoBetaling(string walletAdres) { this.walletAdres = __________; } public void VoerBetalingUit(__________) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd met cryptocurrency-wallet: {walletAdres}"); }}class BetaalProcessor{ public void VerwerkBetaling(__________, __________) { betaalMethode.VoerBetalingUit(__________); }}class Program{ static void Main() { BetaalProcessor processor = new __________(); IBetaalMethode creditcard = new __________("1234-5678-9012-3456"); IBetaalMethode paypal = new __________("gebruiker@email.com"); IBetaalMethode crypto = new __________("1A2b3C4d5E6F"); processor.VerwerkBetaling(creditcard, 100.00m); processor.VerwerkBetaling(paypal, 50.00m); processor.VerwerkBetaling(crypto, 0.005m); }}
Mogelijke uitwerking
using System;interface IBetaalMethode{ void VoerBetalingUit(decimal bedrag);}class CreditcardBetaling : IBetaalMethode{ private string kaartNummer; public CreditcardBetaling(string kaartNummer) { this.kaartNummer = kaartNummer; } public void VoerBetalingUit(decimal bedrag) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd met creditcard: {kaartNummer}"); }}class PayPalBetaling : IBetaalMethode{ private string email; public PayPalBetaling(string email) { this.email = email; } public void VoerBetalingUit(decimal bedrag) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd via PayPal-account: {email}"); }}class CryptoBetaling : IBetaalMethode{ private string walletAdres; public CryptoBetaling(string walletAdres) { this.walletAdres = walletAdres; } public void VoerBetalingUit(decimal bedrag) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd met cryptocurrency-wallet: {walletAdres}"); }}class BetaalProcessor{ public void VerwerkBetaling(IBetaalMethode betaalMethode, decimal bedrag) { betaalMethode.VoerBetalingUit(bedrag); }}class Program{ static void Main() { BetaalProcessor processor = new BetaalProcessor(); IBetaalMethode creditcard = new CreditcardBetaling("1234-5678-9012-3456"); IBetaalMethode paypal = new PayPalBetaling("gebruiker@email.com"); IBetaalMethode crypto = new CryptoBetaling("1A2b3C4d5E6F"); processor.VerwerkBetaling(creditcard, 100.00m); processor.VerwerkBetaling(paypal, 50.00m); processor.VerwerkBetaling(crypto, 0.005m); }}// Verwachte output:// Betaling van €100,00 uitgevoerd met creditcard: 1234-5678-9012-3456// Betaling van €50,00 uitgevoerd via PayPal-account: gebruiker@email.com// Betaling van €0,01 uitgevoerd met cryptocurrency-wallet: 1A2b3C4d5E6F
Opdracht 6 Interface implementation
Je gaat polymorfisme toepassen door een interface te implementeren in verschillende klassen. In deze variatie voegen we validatie toe aan de betaalmethoden:
Creditcard: Controleert of het kaartnummer uit 16 cijfers bestaat.
PayPal: Controleert of het e-mailadres een geldig formaat heeft.
Cryptocurrency: Controleert of het wallet-adres minstens 10 tekens lang is.
Als de validatie mislukt, wordt een foutmelding weergegeven.
Vul de ontbrekende delen in (__________) om method overloading correct te implementeren.
Specificaties
Vul de ontbrekende methodesignatures (__________) correct in.
Test de code in een C#-omgeving en controleer of alle methoden correct worden opgeroepen.
Verwachte output
Betaling van €100,00 uitgevoerd met creditcard: 1234567812345678
Betaling van €50,00 uitgevoerd via PayPal-account: gebruiker@email.com
Betaling van €0,01 uitgevoerd met cryptocurrency-wallet: 1A2b3C4d5E6F
Fout bij aanmaken betaalmethode: Ongeldig kaartnummer. Moet 16 cijfers bevatten.
Nu jij
using System;using System.Text.RegularExpressions;interface IBetaalMethode{ void VoerBetalingUit(__________);}class CreditcardBetaling : IBetaalMethode{ private string kaartNummer; public CreditcardBetaling(string kaartNummer) { if (kaartNummer.Length == __________) this.kaartNummer = kaartNummer; else throw new ArgumentException("Ongeldig kaartnummer. Moet 16 cijfers bevatten."); } public void VoerBetalingUit(__________) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd met creditcard: {kaartNummer}"); }}class PayPalBetaling : IBetaalMethode{ private string email; public PayPalBetaling(string email) { if (Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$")) this.email = __________; else throw new ArgumentException("Ongeldig e-mailadres."); } public void VoerBetalingUit(__________) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd via PayPal-account: {email}"); }}class CryptoBetaling : IBetaalMethode{ private string walletAdres; public CryptoBetaling(string walletAdres) { if (walletAdres.Length >= __________) this.walletAdres = walletAdres; else throw new ArgumentException("Ongeldig wallet-adres. Moet minstens 10 tekens lang zijn."); } public void VoerBetalingUit(__________) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd met cryptocurrency-wallet: {walletAdres}"); }}class BetaalProcessor{ public void VerwerkBetaling(__________, __________) { try { betaalMethode.VoerBetalingUit(__________); } catch (Exception ex) { Console.WriteLine($"Fout bij betaling: {ex.Message}"); } }}class Program{ static void Main() { BetaalProcessor processor = new BetaalProcessor(); try { IBetaalMethode creditcard = new CreditcardBetaling("1234567812345678"); IBetaalMethode paypal = new PayPalBetaling("gebruiker@email.com"); IBetaalMethode crypto = new CryptoBetaling("1A2b3C4d5E6F"); processor.VerwerkBetaling(creditcard, 100.00m); processor.VerwerkBetaling(paypal, 50.00m); processor.VerwerkBetaling(crypto, 0.005m); // Foutieve betalingen IBetaalMethode ongeldigeCreditcard = new CreditcardBetaling("1234"); processor.VerwerkBetaling(ongeldigeCreditcard, 20.00m); } catch (Exception ex) { Console.WriteLine($"Fout bij aanmaken betaalmethode: {ex.Message}"); } }}
Mogelijke uitwerking
using System;using System.Text.RegularExpressions;interface IBetaalMethode{ void VoerBetalingUit(decimal bedrag);}class CreditcardBetaling : IBetaalMethode{ private string kaartNummer; public CreditcardBetaling(string kaartNummer) { if (kaartNummer.Length == 16) this.kaartNummer = kaartNummer; else throw new ArgumentException("Ongeldig kaartnummer. Moet 16 cijfers bevatten."); } public void VoerBetalingUit(decimal bedrag) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd met creditcard: {kaartNummer}"); }}class PayPalBetaling : IBetaalMethode{ private string email; public PayPalBetaling(string email) { if (Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$")) this.email = email; else throw new ArgumentException("Ongeldig e-mailadres."); } public void VoerBetalingUit(decimal bedrag) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd via PayPal-account: {email}"); }}class CryptoBetaling : IBetaalMethode{ private string walletAdres; public CryptoBetaling(string walletAdres) { if (walletAdres.Length >= 10) this.walletAdres = walletAdres; else throw new ArgumentException("Ongeldig wallet-adres. Moet minstens 10 tekens lang zijn."); } public void VoerBetalingUit(decimal bedrag) { Console.WriteLine($"Betaling van {bedrag:C} uitgevoerd met cryptocurrency-wallet: {walletAdres}"); }}class BetaalProcessor{ public void VerwerkBetaling(IBetaalMethode betaalMethode, decimal bedrag) { try { betaalMethode.VoerBetalingUit(bedrag); } catch (Exception ex) { Console.WriteLine($"Fout bij betaling: {ex.Message}"); } }}class Program{ static void Main() { BetaalProcessor processor = new BetaalProcessor(); try { IBetaalMethode creditcard = new CreditcardBetaling("1234567812345678"); IBetaalMethode paypal = new PayPalBetaling("gebruiker@email.com"); IBetaalMethode crypto = new CryptoBetaling("1A2b3C4d5E6F"); processor.VerwerkBetaling(creditcard, 100.00m); processor.VerwerkBetaling(paypal, 50.00m); processor.VerwerkBetaling(crypto, 0.005m); // Foutieve betalingen IBetaalMethode ongeldigeCreditcard = new CreditcardBetaling("1234"); processor.VerwerkBetaling(ongeldigeCreditcard, 20.00m); } catch (Exception ex) { Console.WriteLine($"Fout bij aanmaken betaalmethode: {ex.Message}"); } }}// Verwachte output:// Betaling van €100,00 uitgevoerd met creditcard: 1234567812345678// Betaling van €50,00 uitgevoerd via PayPal-account: gebruiker@email.com// Betaling van €0,01 uitgevoerd met cryptocurrency-wallet: 1A2b3C4d5E6F// Fout bij aanmaken betaalmethode: Ongeldig kaartnummer. Moet 16 cijfers bevatten.