Deadline 1:a oktober 23:55
Denna uppgift handlar om grundläggande objektorientering och består av två delar: objektorienterad programmering i C# och objektorienterad analys/design. Båda delarna är obligatoriska.
Om någon del av beskrivningen nedan är otydlig, kontakta mig för förtydligande. Om beskrivningen är tydlig men ni kan tänka er mer än ett sätt att lösa ett problem så får ni själva välja vilken lösning som ni tycker är bäst.
Filen Program.cs innehåller ett fullständigt program som simulerar en enkel nätbutik. Skriv om koden till programmet så att den endast innehåller två klassmetoder: Main och Process. Använd objektorienterad programmering (instansmetoder och properties) för att åstadkomma detta.
Programmets beteende ska vara oförändrat; denna del av uppgiften handlar enbart om att strukturera om koden som redan finns där. Ni ska inte heller lägga till några nya klasser utan bara göra om metoderna som redan finns (förutom Main och Process) till instansmetoder och properties i lämpliga befintliga klasser.
Utgå från följande beskrivning av en biograf, som vill ha ett program utvecklat för att sköta biljettförsäljning:
Biografen består av flera olika salonger som i sin tur är uppdelade i numrerade sittplatser. Antalet sittplatser varierar för varje salong men deras fysiska placering är inte viktiga för detta system, endast deras nummer i salongen. (Radnummer är inte heller viktiga.) Varje salong kan användas flera gånger per dag för att visa filmer.
Varje film har en titel, en längd, en eller flera genrer och en eller flera skådespelare. Filmer kan också ha åldersgränser (baserade på de svenska: 7 år, 11 år, 15 år och 18 år) men vissa filmer är tillåtna för alla. Slutligen har varje film ett biljettpris.
En kund har grundläggande personuppgifter samt en epostadress och ett telefonnummer som behövs för biljettköp. Kunder kan köpa biljetter till visningar, som äger rum i en bestämd salong vid ett bestämt datum och klockslag. Som ovan nämnt är biljettpriset på en visning knutet till själva filmen, men vissa visningar sker i 3D och har således högre biljettpris (en fix ökning oavsett film).
Utifrån beskrivningen ovan, gör nu följande:
{ get; set; }. Om ni kan tänka er flera sätt att åstadkomma något, välj lösningen som ni tycker verkar bäst och förklara kortfattat ert beslut med kommentarer.Er lösning ska lämnas in via PingPong senast klockan 23:55 den 1:a oktober. Lösningen ska lämnas in i form av två textfiler: Part1.cs som ska innehålla er lösning på del 1, och Part2.cs som ska innehålla er lösning på del 2.
Ctrl+E följt av D eller Ctrl+K följt av Ctrl+D (kan variera beroende på inställningar).Nedan följer korta exempel på vad ni förväntas lämna in i de olika delarna.
Om uppgiften exempelvis är att skriva om följande program på ett objektorienterat sätt:
så skulle följande vara en möjlig lösning:
Om uppgiften exempelvis är att föreslå en objektorienterad design för följande beskrivning:
En skola består av utbildningar och studenter med namn och hemort. Studenter kan välja utbildningar förutsatt att deras gymnasiepoäng är höga nog. Varje utbildning består av en eller flera kurser.
så skulle följande vara en möjlig lösning på första punkten:
och följande en möjlig lösning på andra punkten:
Curriculum-klassen skulle kunna ha en metod som skriver upp en student på utbildningen om deras Score är hög nog, och en metod som tar bort dem från utbildningen och skickar ett mejl till utbildningsledaren. Student-klassen skulle kunna ha en metod med signaturen "Student[] StudyMates(Curriculum c)" som returnerar alla studenter på en utbildning som bor på samma ort som studenten i fråga.