P-uppgift: Kodskelett

Programmeringsteknik

(Skillnad mellan versioner)
Hoppa till: navigering, sök
Rad 23: Rad 23:
* Funktioner (utan kod) med kommentarer.
* Funktioner (utan kod) med kommentarer.
* Klasser med attribut och metoder (om du använder klasser), men utan kod.
* Klasser med attribut och metoder (om du använder klasser), men utan kod.
 +
* Använder du dig av klasser? Om inte, skriv en kommentar som motiverar varför du inte gör det.
==Kodskelett till bibliotek==
==Kodskelett till bibliotek==

Versionen från 29 juli 2014 kl. 15.57

       Information          Kodskelett          Prototyp          Granskning          Redovisning          Exempel      

Innehåll:

  • Kodskelett
  • Kodskelett till Fiktiv P-uppgift: Bibliotek
  • Inlämningsuppgift: kodskelett

Innan programmet skrivs ska en specifikation i form av ett kodskelett lämnas in. Syftet är att du ska tänka igenom problemet innan du försöker lösa det. Kodskelettet ska innehålla följande delar:

  • En inledande kommentar som kortfattat beskriver vad programmet gör och hur det är implementerat.
  • Funktioner (utan kod) med kommentarer.
  • Klasser med attribut och metoder (om du använder klasser), men utan kod.
  • Använder du dig av klasser? Om inte, skriv en kommentar som motiverar varför du inte gör det.

Kodskelett till bibliotek

Se Bibliotek för uppgiftslydelse.

I kodskelettet hoppar vi över extrauppgifterna. Eftersom uppgiften handlar om att lagra böcker i en databas så kan det vara lämpligt att ha en klass som heter Book som innehåller all information om en bok. Databasen kan vi representera som en lista av Book-objekt. De olika valaternativen i menyn implementerar vi med hjälp av funktioner. Eftersom kodskelettet kommer att utgöra basen för vårt program så ser vi till att programmet går att kompilera redan nu trots att det ännu inte innehåller fungerande kod. Det är därför samtliga metoder innehåller kommandot return i stället för riktig kod.

Observera att det ska finnas kommentarer till samtliga klasser, metoder och funktioner. Kommentaren i början av en klass ska beskriva vad klassen represerar samt en förklaring av klassens samtliga attribut (klassvariabler).

Exempel på ett kodskelett för den fiktiva P-uppgiften:

# -*- coding: iso8859-1 -*-

# Titel: Bibliotek
# Författare: Stefan Nilsson
# Datum: 2007-06-28
#
# Det här är ett program för hantering av enklare biblioteksrutiner.
# Programmet lagrar böckerna i en fil med namnet "bibliotek.txt"
# mellan körningarna.

# En klass som beskriver en bok:
#    author - namnet på författaren
#    title - bokens titel
#    isBorrowed - en variabel som är True om boken är utlånad.
class Book:
    # Skapar en ny bok.
    def __init__(self, author, title):
        self.author = author
        self.title = title
        self.isBorrowed = False

    # Returnerar en sträng som beskriver boken
    def string(self):
        return

# En klass som beskriver en bibliotekskatalog:
#    books - en lista som innehåller samtliga böcker.
class Bibliotek:
    # Skapar en bibliotekskatalog med de böcker som finns i filen.
    def __init__(self, filename):
        self.books = list()

    # Sparar hela bibliotekskatalogen i en fil.
    def save(self, filename):
        return

    # Skriver ut valmenyn.
    def meny(self):
        return

    # Läser in och returnerar användarens val.
    def choose(self):
        return

    # Söker på en titel.
    def findTitle(self, title):
        return

    # Söker på en författare.
    def findAuthor(self, author):
        return

    # Lånar en bok.
    def borrowBook(self, book):
        return

    # Återlämnar en bok.
    def returnBook(self, book):
        return

    # Lägger till en ny bok:
    def addBook(self, book):
        return

    # Tar bort en bok:
    def deleteBook(self, book):
        return

    # Returnerar en lista över alla böcker:
    def listBooks(self):
        return

# Huvudprogram

FILENAME = 'bibliotek.txt'
bibliotek = Bibliotek(FILENAME)

# choice = '';
# while choice != 'S':
#     bibliotek.meny()
#     choice = bibliotek.choose()
#     # Utför detta val.

bibliotek.save(FILENAME)

Det här kodskelettet är inte avsett att vara varken perfekt eller komplett. Det är inte bara koden som saknas; vi kommer också att behöva modifiera både funktioner och kommentarer efterhand som projektet fortskrider.


Inlämningsuppgift: kodskelett

Skriv ett kodskelett till din P-uppgift och lämna in den på vanligt sätt under rubriken "P-uppgift Kodskelett".

Notera: Bibliotek är enbart en exempeluppgift här i kurslitteraturen.

Du finner din uppgift genom att göra så här:

- Du klickar i studentportalen på Examination.

- Sedan så finns den uppgift som just du är tilldelad att hämta under P-Uppgift -> Din P-Uppgift