P-uppgift: Kodskelett

Programmeringsteknik

Hoppa till: navigering, sök
       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 (utan kod) med kommentarer.

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 valalternativen 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 representerar samt en förklaring av klassens samtliga attribut (klassvariabler).

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

# 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

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

Du finner din uppgift under "P-uppgift: Uppgiftsbeskrivning och kodskelett" i lärandeplattformen.

Skriv ett kodskelett till din P-uppgift och lämna in den på vanligt sätt under rubriken "P-uppgift Kodskelett", döp filen till Förnamn_efternamn_kodskelett.py


KONTROLL INNAN INLÄMNING:
* Har du 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 (utan kod) med kommentarer.