THMMY.gr

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



Title: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Vlassis on December 13, 2015, 17:32:20 pm
Τηλεφωνικός κατάλογος

Να δημιουργήσετε μια κλάση τηλεφωνικού καταλόγου η οποία να περιέχει το όνομα και το τηλέφωνο των χρηστών. Το όνομα των χρηστών και το τηλέφωνο θα είναι τύπου string και int * αντιστοίχως. Θα πρέπει να παρέχεται η δυνατότητα δημιουργίας και καταστροφής αντικειμένων καθώς επίσης και να δίνεται δυνατότητα ανάθεσης τιμής σε ένα συγκεκριμένο αντικείμενο.

Να δημιουργήσετε ένα πρόγραμμα το οποίο θα ελέγχει τη λειτουργία της παραπάνω κλάσης
Να δημιουργήσετε ένα δέυτερο πρόγραμμα το οπόιο θα δημιουργεί 10 αντικείμενα και θα τα αποθηκεύει σε δύο δομες set. Οι δομές set θα περιέχουν αντικείμενα τύπου τηλεφωνικού καταλόγου. Το πρόγραμμα στη συνέχεια θα τυπώνει κατά αύξουσα και κατά φθίνουσα σειρά τα αντικείμενα του καταλόγου τυπώνοντας τα περιεχομενα των αντίστοιχων set αντικειμένων. Η ταξινόμηση θα γίνεται με βάση το όνομα.

edit:
Quote from: Γενειατακης
Η αρίθμηση συνεχίζει από το 11 καθώς λανθασεμένα την προηγούμενη την είχα αριθμήσει με 10.


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Schro on December 13, 2015, 22:22:59 pm
ήλπιζα ότι θα μας χαρίσει και μια βδομάδα για δώρο χριστουγέννων!  :'(


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Apostolof on December 13, 2015, 22:43:07 pm
ήλπιζα ότι θα μας χαρίσει και μια βδομάδα για δώρο χριστουγέννων!  :'(

Πιστεύω αν του πούμε στο μάθημα θα το αλλάξει και θα δώσει παραπάνω!


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: electric67 on December 16, 2015, 22:52:36 pm
ανέφερε μήπως τίποτα σήμερα στο μάθημα για ενδεχόμενη παράταση;


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Apostolof on December 17, 2015, 00:22:43 am
ανέφερε μήπως τίποτα σήμερα στο μάθημα για ενδεχόμενη παράταση;

Όχι. Αν και ξέχασα να του πω ότι θέλουμε... :P
Αύριο ξανά.


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Schro on December 17, 2015, 01:11:21 am
ήλπιζα ότι θα μας χαρίσει και μια βδομάδα για δώρο χριστουγέννων!  :'(

Πιστεύω αν του πούμε στο μάθημα θα το αλλάξει και θα δώσει παραπάνω!

στηριζόμαστε πάνω σου. (no pressure, though!) αλλά στηριζόμαστε (no pressure)    :D


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Apostolof on December 17, 2015, 16:45:03 pm
ήλπιζα ότι θα μας χαρίσει και μια βδομάδα για δώρο χριστουγέννων!  :'(

Πιστεύω αν του πούμε στο μάθημα θα το αλλάξει και θα δώσει παραπάνω!

στηριζόμαστε πάνω σου. (no pressure, though!) αλλά στηριζόμαστε (no pressure)    :D

Κυνηγημένος από τις ευθύνες, αγχώθηκα και πήγα μάθημα! Που φτάσαμε...  ;D

Λοιπόν η εργασία αυτή είναι η τελευταία και μπορούμε να παραδώσουμε μέχρι και μετά τις γιορτές.  8))

Επειδή δεν ήμουν από την αρχή έχασα κάποια πολύ χρήσιμα hint που έδωσε για την εργασία. Όποιος ήταν ας τα μεταφέρει και σε εμάς  :)


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: akyrosHM on December 17, 2015, 18:54:01 pm

Λοιπόν η εργασία αυτή είναι η τελευταία και μπορούμε να παραδώσουμε μέχρι και μετά τις γιορτές.  8))

YAAAAAAAAAAY! ^wav^ ^wav^


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: alexpaxi on December 18, 2015, 04:30:08 am
Παιδες ειπε τιποτα στο μαθημα ή καταλαβε κανεις τι θελει να πει στην ασκηση οταν λεει να ειναι δομες set?


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: pentium4 on December 18, 2015, 04:39:38 am
Παιδες ειπε τιποτα στο μαθημα ή καταλαβε κανεις τι θελει να πει στην ασκηση οταν λεει να ειναι δομες set?

αν ρωτάς το απλό, το set είναι container , δες τις 2 τελευταίες παρουσιάσεις, είναι κάπου εκεί μέσα

http://www.cplusplus.com/reference/set/set/


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: emoustri on December 19, 2015, 14:01:21 pm
oi duo domes tha einai arxika idies kai meta tha allaksoume thn kathe mia wste na ginou auksousa kai fthinousa antistoixa?
Οι δυο δομες θα ειναι αρχικα ιδιες και μετα θα αλλαξουμε την καθε μια ωστε να γινουν αυξουσα και φθινουσα αντιστοιχα?

edit: οχι greeklish


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Apostolof on December 20, 2015, 22:42:22 pm
Επειδή δεν ήμουν από την αρχή έχασα κάποια πολύ χρήσιμα hint που έδωσε για την εργασία. Όποιος ήταν ας τα μεταφέρει και σε εμάς  :)


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Ap.Mor. on December 21, 2015, 18:07:13 pm
Βρήκα αυτό:
http://lafstern.org/matt/col1.pdf
Με ψιλοβοήθησε να καταλάβω λίγο τη φάση με τις δομές set.


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Apostolof on December 21, 2015, 18:09:42 pm
http://lafstern.org/matt/col1.pdf

Quote
Why you shouldn't use set
;D


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Ap.Mor. on December 21, 2015, 18:23:46 pm
Χαχαχα,ναι ο τίτλος δεν είναι ακριβώς αυτό που θα θέλαμε :D...


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 22/12/2015 12:00 πμ
Post by: Schro on December 21, 2015, 19:37:26 pm
αλλάξε ρε την προθεσμία στο τόπικ. ξεχάστηκα ότι μπορούμε και μετά τις γιορτές και μου κόπηκε η όρεξη!  ;D


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2015 12:00 πμ
Post by: Vlassis on December 21, 2015, 20:16:36 pm
αλλάξε ρε την προθεσμία στο τόπικ. ξεχάστηκα ότι μπορούμε και μετά τις γιορτές και μου κόπηκε η όρεξη!  ;D
κολπο ηταν  ;D  ;D


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2015 12:00 πμ
Post by: Apostolof on December 22, 2015, 15:31:08 pm
αλλάξε ρε την προθεσμία στο τόπικ. ξεχάστηκα ότι μπορούμε και μετά τις γιορτές και μου κόπηκε η όρεξη!  ;D
κολπο ηταν  ;D  ;D

Ο Vlassis φροντίζει τη δίαιτά σου μέσα στις γιορτές!  ;D


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: akyrosHM on December 25, 2015, 18:00:38 pm
Χρόνια πολλά!

Στις δομές set βάζετε το χρήστη να πληκτρολογήσει ονόματα και αριθμούς, ή τα έχετε εσείς στη main και τα κοτσάρετε απλά μέσα στις set?


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: pentium4 on December 28, 2015, 02:51:36 am
επειδή δεν έχω πολλή υπομονή και κουράστηκα με το googling δώστε κανένα hint για το πως κάνω την ταξινόμηση με key ή οτιδήποτε

εκείνο που κάνουμε ξεχωριστεί συνάρτηση bool δε μου άρεσε πολύ :P


εδιτ : ναι θέλει αυτή τη συνάρτηση/struct οτιδήποτε , αφήστε θα την κάνω μόνη :@


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Apostolof on December 30, 2015, 16:27:43 pm
Τηλεφωνικός κατάλογος
... Θα πρέπει να παρέχεται η δυνατότητα δημιουργίας και καταστροφής αντικειμένων καθώς επίσης και να δίνεται δυνατότητα...

Τι εννοεί ο ποιητής; Θέλει απλά constructor+destructor ή κάτι πιο περίπλοκο;


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Delaney on December 31, 2015, 18:54:44 pm
Τηλεφωνικός κατάλογος
... Θα πρέπει να παρέχεται η δυνατότητα δημιουργίας και καταστροφής αντικειμένων καθώς επίσης και να δίνεται δυνατότητα...

Τι εννοεί ο ποιητής; Θέλει απλά constructor+destructor ή κάτι πιο περίπλοκο;

Η δημιουργία και καταστροφή αντικειμένων σημαίνει χρήση constructor/destructor. Δε νομίζω να θέλει κάτι άλλο..


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Schro on January 05, 2016, 01:07:27 am
Quote from: Εκφώνηση
Θα πρέπει να παρέχεται η δυνατότητα δημιουργίας και καταστροφής αντικειμένων
καθώς επίσης και να δίνεται δυνατότητα ανάθεσης τιμής σε ένα συγκεκριμένο αντικείμενο.

εννοεί για έναν χρήστη πχ να μπορείς να αλλάξεις το νούμερο του? ή θέλει και για ένα νούμερο να μπορείς να αλλάξεις το όνομα του χρήστη? ή θέλει κάτι πιο πολύπλοκο?

σόρρυ αν ρωτάω μ@λακίες, σκούριασα από τις γιορτές.


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: pentium4 on January 05, 2016, 06:05:26 am
Quote from: Εκφώνηση
Θα πρέπει να παρέχεται η δυνατότητα δημιουργίας και καταστροφής αντικειμένων
καθώς επίσης και να δίνεται δυνατότητα ανάθεσης τιμής σε ένα συγκεκριμένο αντικείμενο.

εννοεί για έναν χρήστη πχ να μπορείς να αλλάξεις το νούμερο του? ή θέλει και για ένα νούμερο να μπορείς να αλλάξεις το όνομα του χρήστη? ή θέλει κάτι πιο πολύπλοκο?

σόρρυ αν ρωτάω μ@λακίες, σκούριασα από τις γιορτές.

προσωπικά έβαλα setter με 2 ορίσματα, αλλά ίσως το αλλάξω και το κάνω 2 setters ,1 για αριθμό 1 για όνομα
δε νομίζω να θέλει κάτι πιο περίπλοκο


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Schro on January 08, 2016, 03:07:18 am
. . .

Thank you!  :)


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Schro on January 08, 2016, 03:27:38 am
χαζή ερώτηση αλλά, θα έχουμε 2 δομές set και η κάθε μια θα έχει 10 στοιχεία ή θα έχουμε δυο δομές set με 5 στοιχεία στην κάθε δομή?


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Ap.Mor. on January 13, 2016, 11:57:17 am
Έχει κανείς το πρόβλημα,ότι στις δομές set αντί για τον κανονικό αριθμό του αντικειμένου αποθηκεύεται ο αριθμός του τελευταίου αντικειμένου που πληκτρολογήσαμε;
π.χ (Δίνοντας τις τιμές)
Apostolos 12345
Vagelis 23456
(τυπώνοντας τα αντικείμενα στη set μου βγάζει)
Apostolos 23456
Vagelis 23456

Η struct που έχω βάλει για την ταξινόμηση:

Code:
struct ascending{
public:
bool operator()( book x, book y){
return x.getname() < y.getname();
}};



Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Apostolof on January 13, 2016, 13:24:56 pm
χαζή ερώτηση αλλά, θα έχουμε 2 δομές set και η κάθε μια θα έχει 10 στοιχεία ή θα έχουμε δυο δομές set με 5 στοιχεία στην κάθε δομή?

Εγώ έχω 2 set με 10 στοιχεία το καθένα.

...
Η struct που έχω βάλει για την ταξινόμηση:

Code:
struct ascending{
public:
bool operator()( book x, book y){
return x.getname() < y.getname();
}};

Βλέπω ότι το struct σου έχει κάποια προβλήματα:

bool operator()( book x, book y)

εκτός ότι δεν υπάρχει book (αλλά υπάρχει bool), οι μεταβλητές αυτές θα έπρεπε να είναι του τύπου της κλάσης που έχεις ορίσει προηγουμένως. Επίσης η σωστή μέθοδος είναι να περάσεις τα ορίσματα ως const και με αναφορά, δηλαδή:
Code:
struct ascending{
    bool operator()(const H_KLASH_SOY& x, const H_KLASH_SOY& y) const {
        return x.getname() < y.getname();
    }
};

Δοκίμασε με αυτό αν διορθώνεται.  :)


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Ap.Mor. on January 13, 2016, 21:01:04 pm
Ωπ,ξέχασα να αναφέρω ότι την κλάση μου τη λένε book!
Έκανα τις αλλαγές και πάλι μου βγάζει λάθος...ίσως είναι κάπου αλλού!
Ευχαριστώ!


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Apostolof on January 13, 2016, 21:51:20 pm
Ωπ,ξέχασα να αναφέρω ότι την κλάση μου τη λένε book!
Έκανα τις αλλαγές και πάλι μου βγάζει λάθος...ίσως είναι κάπου αλλού!
Ευχαριστώ!

Lol δε μου πέρασε καθόλου από το μυαλό ότι μπορεί να την λεν book ;D
Μόλις το είδα νμζ ήθελες να γράψεις bool.
Πάντως λογικό να μη διορθώνεται γιατί αυτό το κομμάτι του κώδικα δεν έχει κάποια σχέση με τις τιμές που δίνονται στις μεταβλητές των αντικειμένων σου. Πολύ πιθανό να βρίσκεται στη main το λάθος, αλλιώς δες τον constructor της κλάσης σου.


Title: Re: [C++] Άσκηση 11 - 2015/2016 Προθεσμία 15/01/2016 12:00 πμ
Post by: Ap.Mor. on January 13, 2016, 23:12:41 pm
Μου έχει φάει όλη τη μέρα...Σίγουρα είναι στη main(),παίζει να ξαναγράψω το πρόγραμμα >:(