Oefening OO code schrijven
Home

Oefening OO code schrijven

Oefening OO code schrijven

Meetkundige vormen tekenen op de console.

We breken het tekenen van vormen op in methoden die slechts één iets uitvoeren (het SOLID patroon). Vormen bestaan uit lijnen en lijnen uit punten. Om een punt te tekenen gebruiken we de methode Console.Write(). Daarvoor moeten zelf geen methode schrijven. Om een lijn te tekenen moeten we zelf aan de slag en maken een methode met de naam Lijn(). Meetkundige vormen behoren tot de wiskunde. We plaatsen onze methoden in de klasse Vormen, in de namespace met de naam Wiskunde.Meetkunde. We maken een bestand met de naam Vormen.cs waarin we alle logica, die met wiskundige vormen te maken hebben, zullen plaatsen.

  1. De juiste werkmap kiezen Zorg ervoor dat je een map hebt gemaakt voor de module Programmeren 3. Ik heb die map de naam gegeven Programmeren3. De naam van die map kies je zelf.
    Oefening OO code schrijven - map
    Oefening OO code schrijven - map
  2. Een nieuw project maken Open Visual Studio en maak een nieuw Project met de naam learning. Als je al een project met die naam hebt, hoef je dat niet meer te doen. Vink de optie Create directory for Solution niet aan, anders wordt er een map in de map met dezelfde naam gemaakt.
    Oefening OO code schrijven - een console applicatie maken
    Oefening OO code schrijven - een console applicatie maken
    1. Visual C#
    2. een Console applicatie in .NET Core
    3. geef er de naam learning aan (verplichte naam, niet vrij te kiezen);
    4. maak het project in de map Programmeren3/dotnetcore;
    5. maak geen extra map voor de solution
    6. creëer geen GIT repo, dat doen we vanaf de command prompt of in Powershell;
  3. Een klassenbestand maken
    Maak een klassenbestand met de naam Vormen.cs.
  4. Namespace
    Typ de namespace Wiskunde.Meetkunde en maak een codeblok.
    namespace Wiskunde.Meetkunde
    {
        ...
    }
  5. Klasse
    Maak een klasse met de naam Vormen.
    namespace Wiskunde.Meetkunde
    {
        class Vormen
        {
          ...
        }
    }
  6. Eigenschap
    We voegen de eigeschap Kleur toe. Daarmee gegeven we aan in welke kleur de vorm getekend moet worden:
    namespace Wiskunde.Meetkunde
    {
        class Vormen
        {
            private ConsoleColor kleur;
            public ConsoleColor Kleur
            {
                get { return kleur; }
                set
                {
                    kleur= value;
                    Console.ForegroundColor = kleur;
                }
            }
            .
            .
            .
        }
    }
    
    
  7. Methode
    Maak de Lijn() methode die een lijn tekent van een opgegeven aantal koppeltekens '-'.
    namespace Wiskunde.Meetkunde
    {
        class Vormen
        {
            public static string Lijn(int lengte)
            {
                return new string('-', lengte);
            }
        }
    }

Opdracht

  1. Maak methode voor de volgende vormen:
    1. rechthoek
    2. driehoek
  2. Wijzig de klasse zodat het mogelijk is om ook het teken te kiezen waarmee de vorm getekend wordt.
  3. Je kan de kleur en het teken wijzigen met een set property. Voeg ook overload methoden toe waarmee je de vormen kan tekenen én de kleur of het teken opgeven. In het totaal heb je daarvoor voor elke vorm vier overloads nodig:
    1. een om de vorm te tekenen
    2. een om de vorm te tekenen in een bepaalde kleur
    3. een om de vorm te tekenen met een bepaald teken
    4. een om de vorm te tekenen in een bepaald kleur met een bepaald teken
  4. Synchroniseer je workspace op Cloud9 met behulp van GIT:
    1. Bewaar je werk in een lokale git repo.
    2. Plaats in de commentaar van de commit de volgende message: "Oefening OO Code schrijven - final" (deze boodschap moet identiek zijn in je commit).
    3. Push je lokale repo naar Bitbucket.
    4. En synchroniseer tenslotte je workspace op Cloud9.

Het zijn oefeningen om nog eens na te denken over

  1. het gebruik van loops
  2. klassen
  3. overload methoden

JI

2017-10-05 17:37:04