Till KTH:s startsida Till KTH:s startsida

Visa version

Version skapad av Åsa Björndahl 2015-09-15 15:47

Visa < föregående | nästa >
Jämför < föregående | nästa >

Labb 5

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

TV-objekt

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 med röd färg som användarens inmatning och text med svart färg som simulatorns utskrift. Ditt program behöver alltså inte hantera färger.

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:
datorn:> python3 tv_simulatorn.py
***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


datorn:> python3 tv_simulatorn.py
***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: 1

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: 3
osv.....

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.