Inlämningsuppgift
Inlämningsuppgift 4 – Skapa ett digitalt bibliotekssystem
Bygg ett modulärt Pythonprogram som sparar och söker böcker i en SQLite-databas.
Uppgift
Du ska skapa ett enklare bibliotekssystem där användaren kan:
- Lägga till en ny bok med titel och författare.
- Söka efter böcker.
- Visa alla böcker.
- Lagra och läsa data från en SQLite-databas.
- Ha programmet uppdelat i minst två egna moduler.
Syfte
Syftet med uppgiften är att du ska tillämpa dina kunskaper om:
- Fil- och databashantering.
- Undantagshantering med
try/except. - Uppdelning av koden i moduler och funktioner.
- Kodstandard och struktur.
Tekniska krav
- Skapa en databasfil, till exempel
bibliotek.db. - Databasen ska innehålla en tabell
bockermed kolumnernaid,titelochforfattare. - Använd
sqlite3för databasoperationer. - Dela upp programmet i minst två moduler, till exempel
databas.pyochmain.py. - Implementera en enkel meny i
main.py. - Använd
try/exceptvid all fil- och databashantering. - Koden ska vara läsbar, kommenterad och följa kodstandard.
Repetera innan du börjar
- Kap 3.7 - egna moduler och import.
- Kap 4.3 - kodstandard och struktur.
- Kap 4.5 - använda SQLite-databaser.
- Kap 4.6 - miniuppgift med SQLite-databas.
Validering och fel som ska hanteras
- Tom titel ska inte sparas.
- Tom författare ska inte sparas.
- Tom sökning ska ge ett tydligt meddelande i stället för att visa alla böcker.
- Databasfel ska fångas med
try/exceptså programmet inte kraschar direkt.
Exempel på användarflöde
1. Lägg till bok
2. Sök bok
3. Visa alla böcker
4. Avsluta
Checklista inför inlämning
- Programmet kan köras utan fel.
- Koden är uppdelad i minst två moduler.
- Du använder minst en funktion från varje modul.
- Du hanterar undantag vid databasanrop.
- SQL används för att spara och läsa data.
- Programmet är kommenterat och lätt att följa.
- Du har testat att lägga till och visa flera böcker.
Testfall
| Test | Indata | Förväntat resultat |
|---|---|---|
| Lägg till bok | Titel: "Project Hail Mary", Författare: "Andy Weir" | Boken sparas i databasen. |
| Tom titel | Titel: "", Författare: "Andy Weir" | Programmet visar felmeddelande och sparar inte boken. |
| Sök bok | Sökord: "Project" | Matchande bok visas. |
| Tom sökning | Sökord: "" | Programmet ber användaren skriva ett sökord. |
Förväntade kunskaper och färdigheter
- Skapa och använda en SQLite-databas i Python.
- Strukturera kod med funktioner och moduler.
- Följa god kodstandard och arbeta med tydlig felhantering.
- Göra en enkel analys av syfte och användarbehov i programupplägget.
Tips på struktur
Låt databas.py innehålla funktioner som skapar tabellen, lägger till böcker, söker och
hämtar alla böcker. Låt main.py innehålla menyn och anropa funktionerna från
databas.py.
Det här ska lämnas in
main.py.databas.py.- Eventuell databasfil om läraren vill kontrollera sparad data.
- En kort lista över testfall du har provat.
- En kort kommentar om hur du delat upp koden mellan modulerna.