1.3-Object-Georienteerd-Programmeren

Bibliotheek

We gaan een bibliotheek-applicatie maken. Je kunt er boeken en/of dvd’s lenen. De uit te lenen objecten hebben allemaal een barcode (een string van cijfers, id in jullie csv bestanden) en een titel. Verder hebben boeken nog een ISBN nummer (tekst) en een auteur. Dvd’s hebben, naast barcode en titel dus, ook een beoordeling (rating) en een jaar van uitgifte.

De library bevat een lijst van boeken en een lijst van dvd’s, waarbij ieder uit te lenen object (dus boek of dvd) een status wel/niet uitgeleend heeft. Deze lijsten (de boeken en dvd’s) dienen ingelezen te worden uit de meegeleverde bestanden “books.csv” resp. “dvds.csv” (zie Bestanden).

Bij de start van de applicatie worden alle objecten automatisch ingelezen. Daarna heeft de bibliothecaris (de gebruiker) de mogelijkheid om:

Wij kiezen er in de output hier onder er voor om uitgeleende objecten weer te geven met een *.

Uiteraard dient je programma er voor te zorgen dat bij het uitlenen van innemen van boeken alleen een overzicht getoond wordt van de relevante boeken. Zorg er ook voor dat er exceptions gegooid worden als je iets probeert te doen wat niet mag.

Hint: Denk nog eens terug aan de OptionSelector opdracht van eerder en probeer in te zien hoe zo’n klasse deze opdracht veel makkelijker kan maken.

Voorbeeld

Hieronder kan je een voorbeeld vinden van een mogelijke uitvoer. Verschillen in de layout zijn natuurlijk niet erg!

Read 6 books and 6 dvds!

[C]ollection, [L]end list, lend [O]ut, take back [I]n or e[X]it: c
Selected option = 'C'

Collection:
  - Book - Fundamentals of Business Process Management (1000000001), isbn: 9783662565087, author: Dumas, Marlon,
  - Book - ICT Methodspack (1000000002), isbn: 9990002067426, author: diverse
  - Book - CompTIA A+ Complete Study Guide (1000000003), isbn: 9781119515937, author: Quentin Docter
  - Book - Gedrag in organisaties met MyLab NL toegangscode (1000000004), isbn: 9789043037204, author: Robbins, Stephen P.
  - Book - Essenties van verandermanagement (1000000005), isbn: 9789013105278, author: Witte, Marco de. Jonker, Jan. Vink, Maurits Jan
  - Book - CompTIA Network+ N10-007 Cert Guide (1000000006), isbn: 9780789759818, author: Sequeira, Anthony,
  - Dvd - Innocent Man (1989/ Kino Lorber Studio Classics/ Special Edition) (2000000001), rating: R, year: 1989
  - Dvd - Innocent Man (1989/ Kino Lorber Studio Classics/ Special Edition/ Blu-ray) (2000000002), rating: R, year: 1989
  - Dvd - John Wick / John Wick: Chapter 2 (2000000003), rating: R, year: 2017
  - Dvd - Enter The Wild (2000000004), rating: NR, year: 2018
  - Dvd - Global Meltdown (2000000005), rating: NR, year: 2017
  - Dvd - It Happened In L.A. (2000000006), rating: NR, year: 2017
  === END OF LIST ===

[C]ollection, [L]end list, lend [O]ut, take back [I]n or e[X]it: o
Selected option = 'O'

*************** LibraryObject selector ***************
1) - Dvd - Innocent Man (1989/ Kino Lorber Studio Classics/ Special Edition) (2000000001), rating: R, year: 1989
2) - Dvd - Innocent Man (1989/ Kino Lorber Studio Classics/ Special Edition/ Blu-ray) (2000000002), rating: R, year: 1989
3) - Dvd - John Wick / John Wick: Chapter 2 (2000000003), rating: R, year: 2017
4) - Dvd - Enter The Wild (2000000004), rating: NR, year: 2018
5) - Dvd - Global Meltdown (2000000005), rating: NR, year: 2017
6) - Dvd - It Happened In L.A. (2000000006), rating: NR, year: 2017
7) - Book - Fundamentals of Business Process Management (1000000001), isbn: 9783662565087, author: Dumas, Marlon,
8) - Book - ICT Methodspack (1000000002), isbn: 9990002067426, author: diverse
9) - Book - CompTIA A+ Complete Study Guide (1000000003), isbn: 9781119515937, author: Quentin Docter
10) - Book - Gedrag in organisaties met MyLab NL toegangscode (1000000004), isbn: 9789043037204, author: Robbins, Stephen P.
11) - Book - Essenties van verandermanagement (1000000005), isbn: 9789013105278, author: Witte, Marco de. Jonker, Jan. Vink, Maurits Jan
12) - Book - CompTIA Network+ N10-007 Cert Guide (1000000006), isbn: 9780789759818, author: Sequeira, Anthony,

Please select a value: 3
Lend out:
- Dvd - John Wick / John Wick: Chapter 2 (2000000003), rating: R, year: 2017
  === END OF LIST ===

[C]ollection, [L]end list, lend [O]ut, take back [I]n or e[X]it: o
Selected option = 'O'

*************** LibraryObject selector ***************
1) - Dvd - Innocent Man (1989/ Kino Lorber Studio Classics/ Special Edition) (2000000001), rating: R, year: 1989
2) - Dvd - Innocent Man (1989/ Kino Lorber Studio Classics/ Special Edition/ Blu-ray) (2000000002), rating: R, year: 1989
3) - Dvd - Enter The Wild (2000000004), rating: NR, year: 2018
4) - Dvd - Global Meltdown (2000000005), rating: NR, year: 2017
5) - Dvd - It Happened In L.A. (2000000006), rating: NR, year: 2017
6) - Book - Fundamentals of Business Process Management (1000000001), isbn: 9783662565087, author: Dumas, Marlon,
7) - Book - ICT Methodspack (1000000002), isbn: 9990002067426, author: diverse
8) - Book - CompTIA A+ Complete Study Guide (1000000003), isbn: 9781119515937, author: Quentin Docter
9) - Book - Gedrag in organisaties met MyLab NL toegangscode (1000000004), isbn: 9789043037204, author: Robbins, Stephen P.
10) - Book - Essenties van verandermanagement (1000000005), isbn: 9789013105278, author: Witte, Marco de. Jonker, Jan. Vink, Maurits Jan
11) - Book - CompTIA Network+ N10-007 Cert Guide (1000000006), isbn: 9780789759818, author: Sequeira, Anthony,

Please select a value: 11
Lend out:
- Book - CompTIA Network+ N10-007 Cert Guide (1000000006), isbn: 9780789759818, author: Sequeira, Anthony,
- Dvd - John Wick / John Wick: Chapter 2 (2000000003), rating: R, year: 2017
  === END OF LIST ===

[C]ollection, [L]end list, lend [O]ut, take back [I]n or e[X]it: l
Selected option = 'L'

Lend out:
- Book - CompTIA Network+ N10-007 Cert Guide (1000000006), isbn: 9780789759818, author: Sequeira, Anthony,
- Dvd - John Wick / John Wick: Chapter 2 (2000000003), rating: R, year: 2017
  === END OF LIST ===

[C]ollection, [L]end list, lend [O]ut, take back [I]n or e[X]it: i
Selected option = 'I'

*************** LibraryObject selector ***************
1) - Dvd - John Wick / John Wick: Chapter 2 (2000000003), rating: R, year: 2017
2) - Book - CompTIA Network+ N10-007 Cert Guide (1000000006), isbn: 9780789759818, author: Sequeira, Anthony,

Please select a value: 1
Lend out:
- Book - CompTIA Network+ N10-007 Cert Guide (1000000006), isbn: 9780789759818, author: Sequeira, Anthony,
  === END OF LIST ===

[C]ollection, [L]end list, lend [O]ut, take back [I]n or e[X]it: c
Selected option = 'C'

Collection:
  - Book - Fundamentals of Business Process Management (1000000001), isbn: 9783662565087, author: Dumas, Marlon,
  - Book - ICT Methodspack (1000000002), isbn: 9990002067426, author: diverse
  - Book - CompTIA A+ Complete Study Guide (1000000003), isbn: 9781119515937, author: Quentin Docter
  - Book - Gedrag in organisaties met MyLab NL toegangscode (1000000004), isbn: 9789043037204, author: Robbins, Stephen P.
  - Book - Essenties van verandermanagement (1000000005), isbn: 9789013105278, author: Witte, Marco de. Jonker, Jan. Vink, Maurits Jan
* - Book - CompTIA Network+ N10-007 Cert Guide (1000000006), isbn: 9780789759818, author: Sequeira, Anthony,
  - Dvd - Innocent Man (1989/ Kino Lorber Studio Classics/ Special Edition) (2000000001), rating: R, year: 1989
  - Dvd - Innocent Man (1989/ Kino Lorber Studio Classics/ Special Edition/ Blu-ray) (2000000002), rating: R, year: 1989
  - Dvd - John Wick / John Wick: Chapter 2 (2000000003), rating: R, year: 2017
  - Dvd - Enter The Wild (2000000004), rating: NR, year: 2018
  - Dvd - Global Meltdown (2000000005), rating: NR, year: 2017
  - Dvd - It Happened In L.A. (2000000006), rating: NR, year: 2017
  === END OF LIST ===

[C]ollection, [L]end list, lend [O]ut, take back [I]n or e[X]it: x
Selected option = 'X'

Exiting...

Bestanden