Det här repositoriet innehåller min lösning för den första laborationen i kursen Objektorienterad Programutveckling. Uppgiften fokuserade på att utveckla en Reverse Polish Notation (RPN) kalkylator i C#, vilket innefattar grundläggande principer inom objektorienterad programmering, inklusive abstraktion, polymorfism, arv, och inkapsling.
Laborationen innebar att skapa en RPN-kalkylator som följer dessa huvudmoment:
- RPN Kalkylator: Utveckla en kalkylator som använder Reverse Polish Notation för att beräkna uttryck.
- Stack Hantering: Använda en stack för att hantera beräkningar av RPN-uttryck.
- Användargränssnitt: Skapa två användargränssnitt, ett interaktivt konsolbaserat och ett icke-interaktivt filbaserat.
- Språk: C# med .NET 6.0.
- Arkitektur: Använda MVC (Model-View-Controller) arkitekturen.
- Uppdelning i Klasser: Skapa klasser för modell (logik och data), vy (användargränssnitt) och kontroller (applikationsstyrning).
- Exception Hantering: Implementera undantagshantering för fel i uttryck och beräkningar.
- Input/Output: Hantera användarinmatning från konsol eller fil och skriv ut resultat till konsol eller fil.
- Korrekt implementering av RPN kalkylatorn.
- Kod måste vara välorganiserad och följa god objektorienterad design.
- Adekvat dokumentation och namngivning enligt C# standarder.
- Programmet måste kompilera och köra korrekt i en .NET-miljö.
Uppgiften bedömdes som godkänd eller underkänd baserat på korrekt implementering och dokumentation av de krävda funktionerna.