By DePaul Dimadis
Choose your prefered Language: greek_flag uk_flag

Μια μονάδα παραγωγής διαθέτει αποθέματα από Ν διαφορετικά προϊόντα (να θεωρήσετε το Ν ως μια σταθερά στην αρχή του προγράμματος). Τα αποθέματα κάθε προϊόντος έχουν παραχθεί σταδιακά, σε διαφορετικές γενικά ημερομηνίες. Για κάθε ποσότητα αποθέματος ενός προϊόντος είναι γνωστά τα εξής :
• Κωδικός προϊόντος (επιτρεπτές τιμές 1 έως Ν, ακέραιες)
• Ποσότητα αποθέματος (θετικός ακέραιος αριθμός)
• Ημερομηνία παραγωγής (ακέραιος αριθμός στη μορφή ΜΜΕΕ όπου ΕΕ = έτος και ΜΜ = αριθμός μήνα (1-12) (π.χ. 816  Αύγουστος 2016). Αποδεκτά έτη από 2007 έως και 2016.
• Κόστος διατήρησης της ποσότητας αποθέματος (θετικός ακέραιος αριθμός τύπου long)
Να γραφεί ο ορισμός μιας κλάσης με το όνομα stock με μέλη-δεδομένα τα παραπάνω.
Η συνάρτηση main( ) :
1. θα δημιουργεί έναν πίνακα αντικειμένων με όνομα alfa της κλάσης stock μεγέθους M (η τιμή του M να οριστεί ως σταθερά στην αρχή του προγράμματος). Στη συνέχεια θα εισάγει δεδομένα στον πίνακα αντικειμένων ΜΟΝΟ με χρήση συνάρτησης constructor (δομητή) με τους απαραίτητους ελέγχους εγκυρότητας τιμών. Συνιστάται η κατάλληλη χρήση γεννήτριας τυχαίων αριθμών.
2. θα βρίσκει και θα εμφανίζει για κάθε προϊόν ξεχωριστά το συνολικό κόστος διατήρησης καθώς και τη συνολική ποσότητα του αποθέματος.
3. η μονάδα θα πρέπει να διακόψει την παραγωγή ενός προϊόντος εφόσον η συνολική ποσότητα αποθεμάτων που έχουν παραχθεί πριν από τις 1/11/2016 υπερβαίνουν το 50% της συνολικής ποσότητας αποθεμάτων του. Χρησιμοποιώντας μια επαναληπτική διαδικασία, σε όλα τα αντικείμενα του πίνακα, να βρείτε και να εμφανίσετε (αν υπάρχουν) τους κωδικούς προϊόντων για τα οποία θα πρέπει άμεσα να διακοπεί η παραγωγή τους.
(ΥΠΟΔΕΙΞΗ : όσες συναρτήσεις – μέλη της κλάσης stock απαιτηθούν κατά την ανάπτυξη του προγράμματος μπορούν να γραφούν σε οποιοδήποτε σημείο με χρήση των κατάλληλων συμβολισμών)
ΣΤΗ ΣΥΝΕΧΕΙΑ ΚΑΙ ΧΩΡΙΣ ΝΑ ΞΑΝΑΓΡΑΨΕΤΕ ΚΩΔΙΚΑ ΠΟΥ ΗΔΗ ΥΠΑΡΧΕΙ!!!
να δημιουργήσετε μια απορρέουσα κλάση με όνομα new_stock που θα περιλαμβάνει ως επιπλέον private μέλη – δεδομένα :

• ημερομηνία λήξης της ποσότητας παραγωγής, στην ίδια μορφή ΜΜΕΕ
• κόστος παραγωγής της μονάδας προϊόντος (θετικός αριθμός τύπου float)
Στη συνέχεια:
1. να γράψετε τη συνάρτηση του constructor (δομητή) για την εισαγωγή των δεδομένων σε ένα αντικείμενο της απορρέουσας κλάσης new_stock ΜΕ ΤΟΝ ΑΠΑΡΑΙΤΗΤΟ ΕΛΕΓΧΟ εγκυρότητας τιμών.
2. να γράψετε τη συνάρτηση – μέλος της κλάσης new_stock που θα επιστρέφει για ένα προϊόν τη συνολική ποσότητα παραγωγής που έχει λήξει με βάση τον τρέχοντα μήνα (1113) μαζί με το αντίστοιχο κόστος παραγωγής. Ο κωδικός προϊόντος θα αποτελεί όρισμα εισόδου για τη συνάρτηση.
3. Να ορίσετε στο συνάρτηση main( ) ένα πίνακα αντικειμένων με όνομα beta της κλάσης new_stock μεγέθους L (η τιμή του L να οριστεί ως σταθερά στην αρχή του προγράμματος, πρέπει να είναι L<=M).
4. Να κάνετε εισαγωγή δεδομένων στον πίνακα beta με χρήση constructor χρησιμοποιώντας (αντιγράφοντας) τα L πρώτα αντικείμενα του πίνακα alfa καθώς και τη γεννήτρια των τυχαίων αριθμών για τα επιπλέον δεδομένα.
5. Χρησιμοποιώντας μια επαναληπτική διαδικασία, σε όλα τα αντικείμενα του πίνακα beta, να βρείτε και να εμφανίσετε (αν υπάρχουν), για κάθε προϊόν ξεχωριστά, τη συνολική ποσότητα που έχει λήξει με βάση τον τρέχοντα μήνα (1117) καθώς και το αντίστοιχο συνολικό κόστος παραγωγής.