By DePaul Dimadis
Choose your prefered Language: greek_flag uk_flag

Ένας αγωγός μεταφοράς Φυσικού Αερίου (ΦΑ) διαθέτει κατά μήκος του σημεία ελέγχου του δικτύου. Σε τακτά χρονικά διαστήματα, που διαφέρουν ανάλογα με το σημείο ελέγχου, διενεργούνται προληπτικοί έλεγχοι για την διαπίστωση της κατάστασης του αγωγού, μέσω μετρητικών οργάνων που είναι κοινά σε όλα τα σημεία ελέγχου. Για κάθε σημείο ελέγχου τα δεδομένα είναι :
α) Κωδικός σημείου ελέγχου – ακέραιος θετικός αριθμός τύπου int [όρια 1-999]
β) Συχνότητα προληπτικών ελέγχων σε ημέρες - ακέραιος θετικός αριθμός τύπου int [όρια 1-365]
γ) Κατάσταση καθενός από τα 10 διαφορετικά μετρητικά όργανα του σημείου ελέγχου – επιτρεπτές τιμές 1 ή 2 ή 3 ή 4.
Να γραφεί μια κλάση με όνομα checkpoint και private μέλη – δεδομένα τα προαναφερόμενα δεδομένα.
Στη συνάρτηση main( ) :
1. να οριστεί ένας πίνακας αντικειμένων της κλάσης checkpoint Ν θέσεων (Ν = γνωστό, Ν <=99) και να αρχικοποιηθούν όλες οι θέσεις του πίνακα με χρήση default constructor, θέτοντας μηδενικές τιμές για όλα τα δεδομένα.
2. Να γίνει εισαγωγή δεδομένων στον πίνακα αντικειμένων της checkpoint μέσω δομητή (constructor) της κλάσης, χρησιμοποιώντας μόνον τυχαίους αριθμούς, στα όρια τιμών που έχουν δοθεί.
3. Χρησιμοποιώντας όλα τα αντικείμενα του πίνακα:
a. Να βρείτε και να εμφανίσετε σε πόσα σημεία ελέγχου καθένα από τα μετρητικά όργανα βρίσκεται σε κατάσταση 1 (δηλ. 10 τιμές, μία για κάθε μετρητικό όργανο).
b. Να δημιουργήσετε και να εμφανίσετε ένα δυναμικό πίνακα που θα περιλαμβάνει τους κωδικούς των σημείων ελέγχου που έχουν συχνότητα προληπτικών ελέγχων μικρότερη των 30 ημερών και τουλάχιστον 5 μετρητικά όργανα με κατάσταση 4.
4. ΣΤΗ ΣΥΝΕΧΕΙΑ ΚΑΙ ΧΩΡΙΣ ΝΑ ΞΑΝΑΓΡΑΨΕΤΕ ΚΩΔΙΚΑ ΠΟΥ ΗΔΗ ΥΠΑΡΧΕΙ!!! να δημιουργήσετε μια απορρέουσα κλάση με όνομα extended_checkpoint που θα περιλαμβάνει ως επιπλέον private μέλη – δεδομένα:
 Το κόστος του προληπτικού ελέγχου κάθε μετρητικού οργάνου (θετικοί αριθμοί τύπου double)
 Τον προβλεπόμενο χρόνο εκτέλεσης του προληπτικού ελέγχου κάθε μετρητικού οργάνου (θετικοί αριθμοί τύπου double)
Στη συνέχεια να γράψετε :
τη συνάρτηση του constructor (δομητή) για την εισαγωγή των δεδομένων σε ένα αντικείμενο της κλάσης extended_checkpoint χρησιμοποιώντας μόνον τυχαίους αριθμούς και θέτοντας μόνοι σας τα αντίστοιχα άνω όρια τιμών.