School Commit Init
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# Assignment 07
|
||||
|
||||
Observation:
|
||||
* Requirements **3** and **4** must be implemented using inheritance and polymorphism.
|
||||
|
||||
## Bonus possibility (0.2p, deadline week 9)
|
||||
In addition to the file-based implementation for the repository, implement a true database-backed repository. For this, use inheritance and polymorphism. You are free to choose any type of database management system (e.g. `MySQL`, `SQLite`, `PostgreSQL`, `Couchbase` etc.).
|
||||
|
||||
## Problem Statement
|
||||
For your solution to the previous assignments (Assignments 04-05, 06), add the following features:
|
||||
|
||||
1. Store data in a text file. When the program starts, entities are read from the file. Modifications made during program execution are stored in the file. Implement this using the `iostream` library. Create insertion and extraction operators for your entities and use these when reading/writing to files or the console.
|
||||
|
||||
2. Use exceptions to signal errors:
|
||||
- from the repository;
|
||||
- validation errors – validate your entities using Validator classes;
|
||||
- create your own exception classes.
|
||||
- validate program input.
|
||||
|
||||
3. Depending on your assignment, store your (adoption list, movie watch list, shopping basket or tutorial watch list) in a file. When the application starts, the user should choose the type of file between `CSV` or `HTML`. Depending on the type, the application will save the list in the correct format.
|
||||
|
||||
**Indications**\
|
||||
The CSV file will contain each entity on one line and the attributes will be separated by comma \
|
||||
The HTML file will contain a table, in which each row holds the data of one entity. The columns of the table will contain the names of the data attributes.\
|
||||
These are exemplified in the [example.csv](example.csv) and [example.html](example.html) files.
|
||||
`CSV` and `HTML` files are used to save and display data to the user; they act as program outputs, so data should not be read from them!
|
||||
|
||||
4. Add a new command, allowing the user to see the:
|
||||
* adoption list
|
||||
* movie watch list
|
||||
* shopping basket
|
||||
* tutorial watch list\
|
||||
Displaying the list means opening the saved file (`CSV` or `HTML`) with the correct application (`CSV` files using Notepad, Notepad++, Microsoft Excel etc. and `HTML` files using a browser)
|
||||
|
||||
5. Create a UML class diagram for your entire application. For this, you can use any tool that you like ([StarUML](https://staruml.io/) or [LucidChart](https://www.lucidchart.com/) are only some examples. Many other options exist.
|
||||
Reference in New Issue
Block a user