Άσκηση Α
Σε ένα σύστημα διαχείρισης της κατανάλωσης ηλεκτρικής ενέργειας οι μετρητές συνδέονται, μέσω δικτύου, με τον κεντρικό υπολογιστή της εταιρίας στον οποίο καταγράφονται αυτόματα οι ενδείξεις των μετρητών και οι οφειλές των πελατών.
Να γραφεί το λογισμικό στο οποίο να ορίζεται ένα αντικείμενο για κάθε πελάτη της εταιρίας. Η κλάση στον τύπο της οποίας υλοποιούνται αυτά τα αντικείμενα να διαθέτει τις κατάλληλες συναρτήσεις έτσι ώστε.
α) Με τη δημιουργία αντικειμένων στον τύπο της κλάσης να εισάγεται ο κωδικός του πελάτη, ως ένας αριθμός τύπου long, το όνομα του πελάτη, ως ένα string 30 το πολύ χαρακτήρων, ένα login name για τον πελάτη, ως ένα string 5 χαρακτήρων και ένας αριθμός τύπου long ως password. Για κάθε αντικείμενο να εισάγεται ακόμη το κόστος της κιλοβατώρας με το οποίο χρεώνεται ο συγκεκριμένος πελάτης και ένα μέγιστο υπόλοιπο που μπορεί να έχει ο λογαριασμός του, για το οποίο, αν το υπερβεί, θα διακόπτεται η ηλεκτροδότηση.
β)Ο πελάτης της εταιρίας να μπορεί, εισάγοντας το login name και το password, να εξοφλεί μέρος ή ολόκληρο το υπόλοιπο του λογαριασμού του.
Στο πρόγραμμα να οριστούν οι κατάλληλες συναρτήσεις με τις οποίες ο διαχειριστής του συστήματος να μπορεί να εισάγει και να διαγράφει πελάτες, να τυπώνει τα ονόματα και το ανεξόφλητο υπόλοιπο των πελατών και να τυπώνει τα ονόματα και το υπόλοιπο του των πελατών για τους οποίους θα διακοπεί η ηλεκτροδότηση.
Το λογισμικό να ορίζει μια ατέρμονα ανακύκλωση σε κάθε επανάληψη της οποίας ο χρήστης, μέσα από ένα μενού επιλογών, να επιλέγει αν είναι πελάτης ή ο διαχειριστής του συστήματος. Αν είναι πελάτης, εισάγοντας το login name και το password, να μπορεί να εξοφλεί μέρος ή όλο το υπόλοιπο του λογαριασμού του. Αν είναι διαχειριστής να επιλέγει μέσα από ένα δεύτερο μενού επιλογών, αν θα εισάγει νέους πελάτες, αν θα διαγράψει κάποιον πελάτη, αν θα τυπώσει τα στοιχεία των πελατών για τους οποίους θα διακοπεί η ηλεκτροδότηση ή αν θα τυπώσει τα στοιχεία και τα υπόλοιπα όλων των πελατών. Η έξοδος από την ανακύκλωση να γίνεται μόνο μέσα από το μενού επιλογών του διαχειριστή.
Βοηθητικές παρατηρήσεις:
Το πρόγραμμα να ακολουθεί την αρχή της ενσωμάτωσης.
Για την εξόφληση των λογαριασμών ο πελάτης να εισάγει έναν αριθμό τραπεζικού λογαριασμού και το ποσόν που θα καταβάλει. Το λογισμικό να θεωρεί ότι έγινε η πληρωμή εκτυπώνοντας αυτά τα στοιχεία.
Η μνήμη για την καταχώρηση των αντικειμένων να δεσμεύεται δυναμικά χρησιμοποιώντας τις συναρτήσεις malloc() και realloc().
Σε κάθε περίπτωση που το σύστημα θέλει να υπολογίσει ή να εκτυπώσει στοιχεία που αφορούν τον λογαριασμό ενός πελάτη να διαβάζεται η ένδειξη που έχει ο μετρητής εκείνη τη στιγμή.
Κατά τον σχεδιασμό του λογισμικού να προσπαθήσετε να υλοποιήσετε, ως αυτόνομες συναρτήσεις, κομμάτια του κώδικα που θα μπορούσαν να χρησιμοποιηθούν και σε άλλες εφαρμογές