THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: il capitano on December 17, 2009, 13:49:17 pm



Title: [C++] 9η εργασια 2009
Post by: il capitano on December 17, 2009, 13:49:17 pm
Εργασία Ι
Η εκτέλεση μιας παραγγελίας που φτάνει σε ένα εργοστάσιο απαιτεί ένα κόστος και ένα χρόνο για να εκτελεστεί. Το κόστος ορίζεται από το κόστος που απαιτεί η κατασκευή του συγκεκριμένου προϊόντος (κόστος πρώτων υλών κλπ) στο οποίο προστίθεται το κόστος λειτουργίας της μηχανής που θα το κατασκευάσει. Για κάθε προϊόν είναι γνωστό το κόστος και ο χρόνος που απαιτείται για την κατασκευή ενός τεμαχίου ενώ για κάθε μηχανή είναι γνωστό το κόστος λειτουργίας της ανά μονάδα χρόνου.  
Το εργοστάσιο διαθέτει έναν αριθμό μηχανών κάθε μια από τις οποίες μπορεί να κατασκευάσει εξολοκλήρου ένα τεμάχιο και στις οποίες κατανέμεται η κατασκευή των τεμαχίων του προϊόντος που απαιτεί η παραγγελία έτσι ώστε αυτή να τελειώσει το συντομότερο δυνατόν.
Να σχεδιαστεί και να γραφεί το λογισμικό στο οποίο να ορίζεται η παραμετρική κλάση order η οποία υλοποιεί μια παραγγελία και η οποία να διαθέτει τις κατάλληλες συναρτήσεις για να υπολογίσει το κόστος και τον χρόνο που απαιτεί η εκτέλεση της. Η κλάση να δέχεται ως παραμετρικούς τύπους τον τύπο των προϊόντων της παραγγελίας και τον τύπο των μηχανών που διαθέτει το εργοστάσιο και ως σταθερές τον αριθμό των τεμαχίων και τον αριθμό των μηχανών.
Το λογισμικό να διαθέτει ακόμη την παραμετρική συνάρτηση comp η οποία να δέχεται ως παραμέτρους τους τύπους των κλάσεων που ορίζουν δύο διαφορετικές παραγγελίες και η οποία να επιστρέφει την τιμή 1 αν το γινόμενο του συνολικού κόστους της πρώτης παραγγελίας επί τον αντίστοιχο χρόνο παράδοσής της είναι μικρότερο από το αντίστοιχο γινόμενο της δεύτερης παραγγελίας, διαφορετικά να επιστρέφει την τιμή 2.
Η συνάρτηση main να ορίζει δύο αντικείμενα για δύο διαφορετικές υλοποιήσεις της παραμετρικής κλάσης order και να εκτυπώνει για κάθε ένα από αυτά το κόστος και τον χρόνο παράδοσης της αντίστοιχής παραγγελίας. Τέλος η main να καλεί την παραμετρική συνάρτηση comp και να εκτυπώνει την τιμή που αυτή επιστρέφει αν σε αυτήν δοθούν τα αντικείμενα που ορίστηκαν πιο πάνω.
Ως εφαρμογή να θεωρηθεί ότι η πρώτη παραγγελία αποτελείται από προϊόντα τύπου produc1 για τον τύπο των οποίων είναι γνωστό το κόστος και ο χρόνος κατασκευής ενός τεμαχίου. Η παραγγελία να θεωρηθεί ότι θα εκτελεστεί από μηχανές τύπου machine1 για τον τύπο των οποίων είναι γνωστό το κόστος λειτουργίας μιας μηχανής ανά μονάδα χρόνου. Η δεύτερη παραγγελία να θεωρηθεί ότι αποτελείται επίσης από προϊόντα τύπου produc1 και η οποία θα εκτελεστεί από μηχανές τύπου machine2 για τον τύπο των οποίων είναι γνωστό το κόστος λειτουργίας και το κόστος συντήρησης μιας μηχανής ανά μονάδα χρόνου.
Βοηθητικές παρατηρήσεις:
Η κάθε παραγγελία να θεωρηθεί ότι αποτελείται από απολύτως όμοια τεμάχια και ότι εκτελείται από απολύτως όμοιες μηχανές.  
  
παραδωση στις 10/01


Title: Re: [C++] 9η εργασια 2009
Post by: nasia!! on December 17, 2009, 13:51:02 pm
Από όσα έχω καταλάβει αυτή είναι η τελευταία! ^hello^


Title: Re: [C++] 9η εργασια 2009
Post by: ΚΗΜΜΥ on December 17, 2009, 14:18:17 pm
Eιναι σιγουρα. Μας το ειπε χθες στο μαθημα...


Title: Re: [C++] 9η εργασια 2009
Post by: provataki on December 29, 2009, 23:17:59 pm
τι θεωρια χρειαζεται;
templates ;



Title: Re: [C++] 9η εργασια 2009
Post by: il capitano on December 29, 2009, 23:19:13 pm
απ το λιγο που την ειδα ναι...


Title: Re: [C++] 9η εργασια 2009
Post by: provataki on December 29, 2009, 23:28:23 pm
παιζει να ΄ναι απο τις πιο ευκολες. :o

καλά ασκηση με αρχεια δεν εχει ρε γαμωτο; ;D


Title: Re: [C++] 9η εργασια 2009
Post by: Αιμιλία η φτερωτή χελώνα on December 29, 2009, 23:32:52 pm
Εσυ Κορτεση, τι ειδες? ::)

 ;D ;D ;D ;D ;D ;D
Δειτε το!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

https://www.youtube.com/watch?v=4lpdeJ1GdMU


Title: Re: [C++] 9η εργασια 2009
Post by: provataki on December 29, 2009, 23:46:17 pm
γραφεις ιστορια........
καμια μερα θα πω τον Κορτεση Γαρδελη...  ;D ;D ;D


Title: Re: [C++] 9η εργασια 2009
Post by: ΚΗΜΜΥ on December 30, 2009, 00:39:49 am
σιγα μη δουμε και το κυλοτακι του...


Title: Re: [C++] 9η εργασια 2009
Post by: il capitano on December 30, 2009, 00:45:15 am
ειναι σαν την κορινα στα εγκληματα που ελεγε "αμα καθεσαι απο κατω μου για να δεις το βρακι μου στην εσκασα...δεν φοραω βρακι"


Title: Re: [C++] 9η εργασια 2009
Post by: ΚΗΜΜΥ on December 30, 2009, 00:48:27 am
θα ξερασω... :P


Title: Re: [C++] 9η εργασια 2009
Post by: Αιμιλία η φτερωτή χελώνα on December 30, 2009, 00:51:10 am
 ^moon^


Title: Re: [C++] 9η εργασια 2009
Post by: GKOUNTAS on January 07, 2010, 14:54:50 pm
Stis simeiwseis tou Kortesi den paizei kati sxetiko me templates e?


Title: Re: [C++] 9η εργασια 2009
Post by: ΚΗΜΜΥ on January 07, 2010, 16:25:16 pm
εχει ενα powerpoint @ ethmmy


Title: Re: [C++] 9η εργασια 2009
Post by: kgiann78 on January 07, 2010, 22:06:27 pm
Μάλλον ειμαι κουρασμένος γιατί δεν εξηγείται αλλιώς πως δεν μπορώ να βγάλω άκρη από αυτά που διαβάζω....


Title: Re: [C++] 9η εργασια 2009
Post by: foulis on January 09, 2010, 18:15:23 pm
Η κλάση να δέχεται ως παραμετρικούς τύπους τον τύπο των προϊόντων της παραγγελίας και τον τύπο των μηχανών που διαθέτει το εργοστάσιο

δηλαδη??

αν
template <class Type>
class order{
   int eidos,kostos_mixanis;
public:
   order();

};

template <class Type>
order<Type>::order() {
cout<<"ti eidos mixanes(1/2)"
cin>>eidos;
if(eidos==1)  kostos_mixanis=1;
else kostos_mixanis=2;
}


είμαι ενταξει? τι εννοεί?


Title: Re: [C++] 9η εργασια 2009
Post by: creat.ure on January 09, 2010, 18:30:20 pm
όχι , η κλαση δέχεται ώς παραμετρικούς τύπους τον τύπο των προιόντων της παραγγελίας και τον τύπο της μηχανής, δλδ

template <typename PType, typename MType , int num_pro , int num_machines> class order {

και ως σταθερές τον αριθμό των τεμαχίων  και των αριθμό των μηχανών.

Εγώ έφτιαξα 3 classes για product1,machine12 και ο constructor δίνει τιμές σταθερές (είναι γνωστά λέει) αλλά ποιό ακριβώς είναι το νόημα? Οτί αμα βάλλουμε αλλο ένα product2 και καλά δεν θα πειράξουμε τον τρόπο που υπολογίζεται το κόστος?? Μου φαίνεται λίγο χαζό παράδειγμα για templates... μπορεί να κατάλαβα και λάθος



Title: Re: [C++] 9η εργασια 2009
Post by: foulis on January 09, 2010, 20:59:44 pm
σε ευχαριστώ creat.ure   μόλις την τελείωσα


Title: Re: [C++] 9η εργασια 2009
Post by: creat.ure on January 09, 2010, 21:04:42 pm
επ επ, περιμενε μόλις βρήκα κάτι νέο, σε περίπτωση που σε ξεγέλασε κι εσένα. έχεις κάνει τη δήλωση κάπως έτσι??

order<product1,machine1> p1m1(p1,m1,pro,mach);


Title: Re: [C++] 9η εργασια 2009
Post by: afroditeschild on January 09, 2010, 21:32:07 pm
για να καταλαβω φτιαχνουμε 3 κλασεις(product1,machine1,machine2)και εχουμε και την order.Στην main ομως πως τα γραφουμε?


Title: Re: [C++] 9η εργασια 2009
Post by: afroditeschild on January 09, 2010, 21:32:44 pm
εννοω πως κανουμε την δηλωση :)


Title: Re: [C++] 9η εργασια 2009
Post by: afroditeschild on January 09, 2010, 22:19:50 pm
βγαζει συντακτικο λαθος για το typename helpppppp :'(


Title: Re: [C++] 9η εργασια 2009
Post by: Anastacia on January 10, 2010, 04:35:54 am
Γράψε class αντί για typename.


Title: Re: [C++] 9η εργασια 2009
Post by: pumba on January 10, 2010, 14:41:30 pm
ρε παιδια απο που μπορουμε ν βρουμε θεωρια γ τις templates??


Title: Re: [C++] 9η εργασια 2009
Post by: provataki on January 10, 2010, 14:49:28 pm
ρε παιδια απο που μπορουμε ν βρουμε θεωρια γ τις templates??

μαθετε τη c++ απο το μηδεν


Title: Re: [C++] 9η εργασια 2009
Post by: pumba on January 10, 2010, 15:06:46 pm
ρε παιδια απο που μπορουμε ν βρουμε θεωρια γ τις templates??

μαθετε τη c++ απο το μηδεν

το οποιο δν εχω...αλλα δν πειραζει,βρηκα εκεινο τ power point απο τ ethmmy π λεγατε...


Title: Re: [C++] 9η εργασια 2009
Post by: afroditeschild on January 10, 2010, 17:41:09 pm
στην comp πως στο καλο γραφουμε μεσα τα ορισματα?στη main θα ορισουμε ουσιαστικα 2 αντικειμενα αλλα θα εχουν απο δυο τυπους πχ το ενα θα αντιστοιχιζεται σε product1 k machine και το αλλο σε product1 k machine2 αρα στη main θα καλεσουμε την comp(a,b)οπου α,b ειναι τα αντιστοιχα αντικειμενα?


Title: Re: [C++] 9η εργασια 2009
Post by: creat.ure on January 10, 2010, 22:47:34 pm
http://cplusplus.com/doc/tutorial/ (http://cplusplus.com/doc/tutorial/)  είναι πολύ κατατοπιστικό το tutorial.
ναί έτσι θα την καλέσεις.