By DePaul Dimadis
Choose your prefered Language: greek_flag uk_flag

Μία παραγωγική μονάδα χρησιμοποιεί 10 συνεργεία συντήρησης, με κωδικούς 1-10, για τη συντήρηση των εργαλειομηχανών της. Η μονάδα διαθέτει συνολικά 20 εργαλειομηχανές με κωδικούς 1-20. Τo σειριακό αρχείο service.txt περιέχει πληροφορίες για τους χρόνους απασχόλησης κάθε συνεργείου για μία ημέρα του ιδίου έτους. Κάθε συνεργείο απασχολείται μόνον μία φορά την ημέρα σε κάποια εργαλειομηχανή. Κάθε γραμμή του αρχείου αφορά μόνον μία ημέρα και περιλαμβάνει:
α) την ημερομηνία στη μορφή HHMM, αριθμός τύπου int
β) το πλήθος των συνεργείων που απασχολήθηκαν, αριθμός τύπου int
γ) υπό μορφή τριάδων: τον κωδικό του συνεργείου, τον κωδικό της εργαλειομηχανής και τον αντίστοιχο χρόνο απασχόλησης (σε πρώτα λεπτά, αριθμός τύπου int). (Προφανώς το μέγιστο πλήθος των ζευγών είναι 10.)
Το αρχείο δεν είναι ταξινομημένο ημερολογιακά και κάθε ημερομηνία υπάρχει μόνον μία φορά στο αρχείο. Π.χ. (οι παρενθέσεις δεν υπάρχουν στο αρχείο και παρατίθενται για διευκόλυνσή σας).
1107, 3,      (5, 7,100), (4,11,45),(8,13,90)

1405, 1,      (7,10,80)
2903, 2,      (1,4,120),(9,17,250)
………
Να γραφεί μια κλάση με όνομα repair που θα διαχειρίζεται τα δεδομένα από το αρχείο service.txt. Τα private μέλη – δεδομένα της κλάσης είναι τα δεδομένα του αρχείου.
Η κλάση πρέπει να περιέχει:

- Έναν constructor για την απόδοση μηδενικών τιμών στα μέλη των αντικειμένων της
- Έναν constructor για την εκχώρηση τιμών από την ανάγνωση του αρχείου. Τα δεδομένα θα διαβάζονται σειριακά από το αρχείο (απαιτείται έλεγχος για την ύπαρξη του αρχείου).
Στη συνάρτηση main( ) :
1. να δηλώσετε έναν πίνακα αντικειμένων της κλάσης repair με 𝛮𝛮 θέσεις (𝛮𝛮 = γνωστό) και να αρχικοποιήσετε όλες τις θέσεις του πίνακα με χρήση του κατάλληλου constructor, θέτοντας ως εξ ορισμού μηδενικές τιμές για όλα τα μέλη - δεδομένα. H τιμή του 𝛮𝛮 μπορεί να είναι μικρότερη, μεγαλύτερη ή και ίση με το πλήθος των εγγραφών του αρχείου service.txt. Στη συνέχεια να γίνει εισαγωγή τιμών στα αντικείμενα του πίνακα, με τη χρήση του κατάλληλου constructor.
2. Να βρεθεί (αν υπάρχει) το πλήθος των γραμμών από το αρχείο που δεν περιλαμβάνονται στον πίνακα αντικειμένων.
3. Χρησιμοποιώντας όλα τα αντικείμενα του πίνακα:
a. Να βρείτε και να εμφανίσετε τον συνολικό χρόνο που αφιερώθηκε για τη συντήρηση κάθε μιας από τις εργαλειομηχανές, δηλ. 20 τιμές
b. Να βρείτε και να εμφανίσετε τον συνολικό χρόνο απασχόλησης κάθε συνεργείου για κάθε μήνα του έτους για τη συντήρηση όλων των εργαλειομηχανών, δηλ. συνολικά 120 τιμές
4. Να δημιουργήσετε μια απορρέουσα κλάση με όνομα new_service, που θα περιλαμβάνει ως επιπλέον private μέλος – δεδομένο το αντίστοιχο κόστος (θετικός ακέραιος αριθμός) συντήρησης για κάθε συνεργείο και κάθε εργαλειομηχανή (δηλ. θα υπάρχουν για κάθε ημέρα τόσα κόστη όσα και τα συνεργεία που απασχολήθηκαν). Στη συνέχεια:
a. Να γράψετε τη συνάρτηση του constructor (δομητή) για την εισαγωγή των δεδομένων σε ένα αντικείμενο της απορρέουσας κλάσης new_service.
b. Να ορίσετε έναν πίνακα αντικειμένων της κλάσης new_service, μεγέθους 𝛮𝛮 = γνωστό.
c. Χρησιμοποιώντας τον δομητή της απορρέουσας κλάσης, να αντιγράψετε σε αυτόν τον νέο πίνακα τα δεδομένα από τον πίνακα αντικειμένων της κλάσης repair που έχετε δημιουργήσει στο ερώτημα 1, δημιουργώντας τυχαία έγκυρα ποσά για το νέο μέλος-δεδομένο σε κάθε θέση του νέου πίνακα.