Till KTH:s startsida Till KTH:s startsida

Labb 5

Gör följande uppgift, kraven måste uppfyllas.

TV-simulatorn

Scenario betyder en exempelkörning av simulatorn.
OBS! I scenariot har vi, för att tydliggöra vad som är användarens inmatning och vad som är utskrift från simulatorn, valt text i fetstil som simulatorns utskrift och användarens i normal text.

Skriv ett program som simulerar TV-apparater. Användaren ska kunna välja en kanal samt kunna öka och sänka ljudvolymen. Se till att kanalerna respektive ljudvolymen håller sig inom rimliga värden, man ska t.ex inte kunna välja 7 som kanal då det endast finns 4 kanaler att välja mellan.

1. Skapa en lista med kanaler och program. När ett TV-objekt skapas använder konstruktorn kanal- och program- listan för att hämta aktuella program som sänds. Du kan anta att följande program sänds:
MTv: Music is life
Tv 3: Har du tur i kärlek?
Svt 1: Pengar är inte allt
Kanal 4: Vem vill inte bli miljonär?

Initial kanal kan vara första kanal i kanallistan, i detta fall "MTv", men när simulatorn har använts ett tag och användaren väljer att avsluta simulatorn ska information om TV-apparater och deras status lagras i en fil. Information i filen ska sedan användas när man startar simulatorn igen. TV-apparaterna ska alltså ha samma kanal och samma volym som de hade då den senaste körningen avslutades.

2. Ljudvolymen kan ha värden 0 till 10. Se till att användaren kan ändra samt att ljudvolymen håller sig inom rimliga värden d.v.s. mellan 0 och 10.


En körning av simulatorn kan se ut som nedan:
***Välkommen till TV-simulatorn, vi har två TV-apparater som kan användas i simuleringen****
1. VardagsrumsTV
2. Köks TV
3. Avsluta
Välj: 4
Fel val, försök igen: 7
Fel val, försök igen: 0
Fel val, försök igen: 1

VardagsrumsTV:
Tv-program: Music is life
Kanal: MTv
Ljudvolymen: 3

1. Byt kanal
2. Sänk ljudvolym
3. Höj ljudvolym
4. Gå till huvudmenyn
Välj: 3

VardagsrumsTV:
Tv-program: Music is life
Kanal: MTv
Ljudvolymen: 4

1. Byt kanal
2. Sänk ljudvolym
3. Höj ljudvolym
4. Gå till huvudmenyn
Välj: 1

1. MTv: Music is life
2. Tv 3: Har du tur i kärlek?
3. Svt 1: Pengar är inte allt
4. Kanal 4: Vem vill inte bli miljonär?
Välj: 0
Fel val, försök igen: 3

VardagsrumsTV:
Tv-program: Pengar är inte allt
Kanal: Svt 1
Ljudvolymen: 4

1. Byt kanal
2. Sänk ljudvolym
3. Höj ljudvolym
4. Gå till huvudmenyn
Välj: 4

1. VardagsrumsTV
2. Köks TV
3. Avsluta
Välj: 3

Simuleringen avslutas

Krav:
  • En klass som representerar TV-apparat ska deklareras i en egen fil. Huvudprogrammet ska skivas i en egen fil som importerar filen med deklaration av TV-apparaten. Förutom att programmet går att köra felfritt är strukturering av programmet också viktigt med metoderna bytKanal, sank_volym, hoj_volym, menyer och kanske diverse andra funktioner och metoder som gör att man får ett välstrukturerat program.
  • Inför felhantering i ditt program. Om det finns 4 kanaler att välja mellan och man väljer t.ex 7 ska man få ett felmeddelande. Därefter ska man ha möjlighet att välja igen. Använd dessutom try, except för att fånga in annan inmatning än tal.
  • Man ska inte kunna välja ett tal som ljudvolym, utan att endast kunna sänka eller höja volym.
  • Inga koduppreppningar i din kod. Tips: Definiera generella funktioner med parametrar.
  • Tänk på att metoderna i klassen TV ska inte ha några anrop till input och print, d.v.s inga inläsningar eller utskrift i metoderna ska finnas. Använd parametrar för indata och returvärde för utdata.
  • Simulatorn ska komma ihåg apparaternas kanal och volym mellan varje körning, t.ex om vardagsrumsTVs kanal är Svt 1 och volymen är inställd på 7 innan man avslutar simulatorn, ska vardagsrumsTV visa programmet som sänds från Svt 1 och volymen ska vara inställd på 7 när man startar simulatorn nästa gång.