3 η Σειρά Ασκήσεων Άσκηση 1 Να γραφεί πρόγραμμα το οποίο θα διαχειρίζεται λογαριασμούς χρηστών (Accounts). Από το πρόγραμμα θα έχουμε δυνατότητα με το κατάλληλο μενού να δημιουργούμε νέους λογαριασμούς, να κάνουμε κατάθεσή, ανάληψη αλλά και να εκτυπώνουμε τα στοιχεία των λογαριασμών. Στο πρόγραμμα θα πρέπει να γίνει χρήση κλάσεων. Για την υλοποίηση του προγράμματος χρειάζονται 3 βασικές κλάσεις. Κλάση User Η Κλάση User θα χρησιμοποιηθεί για να κρατάμε τα στοιχεία του κάθε χρήστη και θα έχει τα εξής χαρακτηριστικά και συναρτήσεις. Χαρακτηριστικά της κλάσης User name String Όνομα του χρήση. surname String Επίθετο του χρήστη. address String Διεύθυνση χρήστη. telephone String Τηλέφωνο χρήστη. email String Email του χρήστη. Συναρτήσεις της κλάσης User print_user_info() Αυτή η συνάρτηση θα εκτυπώνει όλα τα χαρακτηριστικά ενός χρήστη (User) name, surname, κτλ. Κλάση Account Η Κλάση Account θα χρησιμοποιηθεί για να κρατάμε τα στοιχεία του λογαριασμό του χρήστη και θα έχει τα εξής χαρακτηριστικά και συναρτήσεις. Χαρακτηριστικά τις κλάσης Account id Integer Ένας μοναδικός ακέραιος αριθμός για κάθε λογαριασμό (Account) ο οποίος δημιουργείται αυτόματα από τον AccountManager κατά την δημιουργία του λογαριασμού. user User Σε αυτή την μεταβλητή κρατάμε τον χρήστη (User) στον οποίο ανήκει αυτός ο λογαριασμός. balance Float Το τρέχων ποσό του λογαριασμού.
Συναρτήσεις της κλάσεις Account print_account_info() Αυτή η συνάρτηση θα εκτυπώνει όλα τα χαρακτηριστικά ενός λογαριασμού (Account) id, balance, user.name, user.surname. print_balance() Αυτή η συνάρτηση θα εκτυπώνει το τρέχων ποσό που υπάρχει διαθέσιμο στον λογαριασμό. Κλάση AccountManager Η κλάση AccountManager θα διαχειρίζεται τους λογαριασμούς των χρηστών και θα έχει τα εξής χαρακτηριστικά και συναρτήσεις. Χαρακτηριστικά τις κλάσης AccountManager accounts List Λίστα όπου θα αποθηκεύει τους λογαριασμούς των χρηστών. Συναρτήσεις της κλάσεις AccountManager create_account() Αυτή η συνάρτηση θα διαβάζει από το πληκτρολόγιο ότι στοιχεία είναι απαραίτητα και θα δημιουργεί έναν καινούριο χρήστη και έναν λογαριασμό και θα τον αποθηκεύει στην λίστα accounts. print_accounts_info() Αυτή η συνάρτηση θα εκτυπώνει όλες τις πληροφορίες των λογαριασμών που υπάρχουν αποθηκεμένοι στην λίστα accounts. deposit(account_id, amount) Αυτή η συνάρτηση θα παίρνει σαν όρισμα το id του λογαριασμού και το ποσό και θα προσθέτει το ποσό αυτό (amount) στο balance του λογαριασμού. Η συνάρτηση θα επιστρέφει το τρέχον ποσό που έχει ο λογαριασμός (balance). Επίσης θα εμφανίζει μήνυμα αν ο λογαριασμός με το συγκεκριμένο id δεν βρεθεί. withdraw(account_id, amount) Αυτή η συνάρτηση θα παίρνει σαν όρισμα το id του λογαριασμού και το ποσό και θα αφαιρεί το ποσό αυτό (amount) από το balance του λογαριασμού. Η συνάρτηση θα επιστρέφει το τρέχον ποσό που έχει ο λογαριασμός (balance). Επίσης θα εμφανίζει μήνυμα αν ο λογαριασμός με το συγκεκριμένο id δεν βρεθεί. Μενού του προγράμματος Επιλογή 1 Θα δημιουργεί έναν νέο λογαριασμό. 2 Θα κάνει ανάληψη σε έναν λογαριασμό. 3 Θα κάνει κατάθεση σε έναν λογαριασμό. 4 Θα Εκτυπώνει τα στοιχεία όλων των λογαριασμών. 5 Έξοδος από το πρόγραμμα.
Παράδειγμα εκτέλεσης της Άσκησης 1 Choose Action:1.::New Account::. Insert Name:George Insert Surname:Alexiou Insert Address:Estauromenos Insert Telephone:090242424 Insert Email:g.alexiou@pasiphae.eu Insert Account current Balance:1000 Account with ID 1 successfully created! ID:1, Balance:1000.0 Euro, Owner:George Alexiou Choose Action:3 Insert Account ID:1 Insert Amount:500.::Deposit::. 500.0 Euro deposit @ Account ID 1, Current Balance:1500.0 Euro ID:1, Balance:1500.0 Euro, Owner:George Alexiou
Choose Action:2 Insert Account ID:1 Insert Amount:200.::Withdraw::. 200.0 Euro withdraw @ Account ID 1, Current Balance:1300.0 Euro ID:1, Balance:1300.0 Euro, Owner:George Alexiou Choose Action:1.::New Account::. Insert Name:Nikos Insert Surname:Papadakis Insert Address:Estauromenos Insert Telephone:090242425 Insert Email:npapadak@cs.teicrete.gr Insert Account current Balance:2000 Account with ID 2 successfully created! ID:1, Balance:1300.0 Euro, Owner:George Alexiou ID:2, Balance:2000.0 Euro, Owner:Nikos Papadakis
Choose Action:2 Insert Account ID:500 Insert Amount:100.::Withdraw::. Account ID 500 not found! Choose Action:5 bb!! Όλες οι ασκήσεις θα πρέπει να ανέβουν στο e class σε συμπιεσμένη μορφή (ZIP) και το όνομα του αρχείου θα πρέπει να έχει την εξής μορφή: python_seira3_tp<αριθμό μητρώου>.zip Π.χ για A.M 2087 > python_seira3_tp2087.zip