By DePaul Dimadis
Choose your prefered Language: greek_flag uk_flag

Ένα δίκτυο αγωγών μεταφοράς φυσικού αερίου τροφοδοτεί εγκαταστάσεις υψηλής πίεσης και εγκαταστάσεις μέσης πίεσης. Υπάρχουν συνολικά 5 εγκαταστάσεις υψηλής πίεσης και 5 εγκαταστάσεις μέσης πίεσης. Σε ένα σειριακό αρχείο με όνομα gas.txt περιέχονται δεδομένα για τις ποσότητες μεταφοράς για κάθε ημέρα.Κάθε γραμμή του αρχείου περιέχει τις εξής πληροφορίες :

  • Ημερομηνία στη μορφή ΗΗΜΜ όπου ΗΗ = ημέρα [1,30] και ΜΜ = μήνας [1,12]
  • Είδος εγκατάστασης (0=υψηλής πίεσης, 1=μέσης πίεσης)
  • Ποσότητα τροφοδοσίας σε m3 για κάθε μία από τις εγκαταστάσεις (πέντε αριθμοί τύπου float, >=0.0)Μια τυχαία γραμμή του αρχείου είναι η εξής (οι επικεφαλίδες δεν υπάρχουν στο αρχείο):
ΗΜΕΡΟΜΗΝΙΑ ΕΙΔΟΣ ΕΓΚΑΤΑΣΤΑΣΗΣ ΠΟΣΟΤΗΤΑ
 1405 1 17.2 16.9 25.7 8.0 27.7

Ζητούνται να υλοποιηθούν τα παρακάτω :

  1. Να γραφεί ο ορισμός μιας κλάσης με όνομα station που θα περιέχει ως private μέλη – δεδομένα όλα τα στοιχεία μιας γραμμής του αρχείου.
  2. Στη συνάρτηση main( ) να οριστεί ένας πίνακας αντικειμένων της κλάσης station N θέσεων (Ν=γνωστό). Να αρχικοποιηθούν όλες οι θέσεις του πίνακα με χρήση default constructor, σύμφωνα με τα παραπάνω, θέτοντας ως εξ ορισμού μηδενικές τιμές για όλα τα δεδομένα.
  3. Να γραφεί ένας δομητής (constructor) της κλάσης station για την εισαγωγή δεδομένων στον πίνακα αντικειμένων της κλάσης. Τα δεδομένα θα διαβάζονται σειριακά από το αρχείο (απαιτείται έλεγχος για την ύπαρξη του αρχείου).
  4. Για να εισαχθεί μια γραμμή του αρχείου στον πίνακα αντικειμένων θα πρέπει η συνολική ποσότητα και για τις 5 εγκαταστάσεις να είναι >=10.0. Αν ο συνολικός αριθμός γραμμών του αρχείου gas.txt που θα εισαχθούν στον πίνακα είναι μεγαλύτερος του Ν τότε, για τις γραμμές που ικανοποιούν τον παραπάνω περιορισμό και δεν θα καταχωρηθούν στον πίνακα : το είδος της εγκατάστασης και η αντίστοιχη συνολική ποσότητα και για τις 5 εγκαταστάσεις θα καταχωρούνται αντιστοίχως σε δύο μονοδιάστατους δυναμικούς πίνακες.
  5. Χρησιμοποιώντας όλα τα αντικείμενα του πίνακα να βρεθούν και να εμφανιστούν οι συνολικές ποσότητες ανά μήνα και είδος εγκατάστασης (δηλ. συνολικά 24 τιμές, 12 για υψηλή πίεση και 12 για μέση πίεση).

Χρησιμοποιώντας τα στοιχεία των δυναμικών πινάκων να βρεθούν οι συνολικές ποσότητες που έχουν καταχωρηθεί για κάθε είδος εγκατάστασης (δηλ. δύο τελικά σύνολα ποσοτήτων).(ΥΠΟΔΕΙΞΗ : όσες συναρτήσεις – μέλη της κλάσης station απαιτηθούν κατά την ανάπτυξη του προγράμματος μπορούν να γραφούν σε οποιοδήποτε σημείο με χρήση των κατάλληλων συμβολισμών)Να δημιουργήσετε μια απορρέουσα κλάση με όνομα new_station που θα περιλαμβάνει ως επιπλέον private μέλη – δεδομένα:

  • Το κόστος λειτουργίας κάθε εγκατάστασης για τη συγκεκριμένη ημερομηνία (πέντε τιμές τύπου float >=0.0)Στη συνέχεια να γράψετε :
    Tη συνάρτηση του constructor (δομητή) για την εισαγωγή των δεδομένων σε ένα αντικείμενο της κλάσης new_station ΜΕ ΤΟΝ ΑΠΑΡΑΙΤΗΤΟ ΕΛΕΓΧΟ εγκυρότητας τιμών.