THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: vasilis94 on October 22, 2014, 17:21:09 pm



Title: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: vasilis94 on October 22, 2014, 17:21:09 pm
Άσκηση Α

Η εγγραφή σε μια σελίδα κοινωνικής δικτύωσης γίνεται στέλνοντας ένα e-mail στο διαχειριστή της σελίδας. Στο e-mail δηλώνεται ένα όνομα, ένα login name και ένα password. Ο διαχειριστής καταχωρεί το νέο μέλος δίνοντας του ως ταυτότητα (id) τη θέση του στον πίνακα των μελών της σελίδας. Αφού ολοκληρωθούν οι εγγραφές η σελίδα ανοίγει στα μέλη της τα οποία μπαίνουν σε αυτή δίνοντας το login name  και το password. Όταν ένα μέλος της σελίδας μπει σε αυτήν μπορεί να αναζητήσει με το όνομά του κάποιο από τα μέλη της, να καταχωρίσει ένα μέλος ως φίλο, να διαγράψει ένα μέλος από φίλο ή να τυπώσει τα ονόματα των φίλων του.

Να γραφεί το λογισμικό που διαχειρίζεται τη σελίδα. Στο λογισμικό, για κάθε μέλος της σελίδας, να ορίζεται ένα αντικείμενο στο οποίο να καταχωρούνται, ως private στοιχεία, η ταυτότητα του μέλους, το όνομα του, το login name, το password και ένας πίνακας με το πολύ 10 θέσεις στον οποίο θα καταχωρούνται οι ταυτότητες των μελών που θα δηλώσει ως φίλους. Με τη δημιουργία αντικειμένων στον τύπο της αντίστοιχης κλάσης να καταχωρούνται τα στοιχεία του μέλους το οποίο υλοποιεί το αντικείμενο. Η αντίστοιχη κλάση να διαθέτει τις κατάλληλες συναρτήσεις έτσι ώστε να εξυπηρετούνται οι λειτουργίες που διαθέτει η σελίδα.
 
Βοηθητικές παρατηρήσεις


Ο πίνακας των αντικειμένων που υλοποιούν τα μέλη της σελίδας να ορίζεται δυναμικά.
Η εγγραφή φίλων να επιτρέπει τις πολλαπλές εγγραφές του ίδιου μέλους.
Στο λογισμικό να ορίζεται αρχικά μια ατέρμων ανακύκλωση σε κάθε επανάληψη της οποίας να γίνεται η καταχώρηση ενός νέου μέλους. Η επαναλήψεις να σταματούν όταν ο διαχειριστής της σελίδας δώσει το δικό του login name και password.
Το λογισμικό να διαθέτει μια δεύτερη ατέρμων ανακύκλωση σε κάθε επανάληψη της οποίας να ζητείται από τον χρήστη να εισάγει το login name του και το password για να μπει στη σελίδα. Μετά την είσοδο ο χρήστης να μπορεί, μέσα από ένα μενού επιλογών, να χρησιμοποιεί τις δυνατότητες που διαθέτει η σελίδα. Η ανακύκλωση να τερματίζεται όταν ο διαχειριστής δώσει το δικό του login name και το password.
Το λογισμικό να συμμορφώνεται με την αρχή της ενσωμάτωσης.      


Καλή υπομονή και φέτος...


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: pikachu93 on October 23, 2014, 13:51:01 pm
Παιδιά ο Κορτέσης "επιτρέπει" να χρησιμοποιείται ο τύπος δεδομένου string ή πρέπει να το πάμε με char array και malloc?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: nohponex on October 23, 2014, 13:55:03 pm
Παιδιά ο Κορτέσης "επιτρέπει" να χρησιμοποιείται ο τύπος δεδομένου string ή πρέπει να το πάμε με char array και malloc?


Όπως σε βολεύει κάντο. Είναι σωστό και με τους δύο τρόπους.


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: rspappas on October 23, 2014, 14:07:14 pm
συνηθως εχει κολλημα να τα κανεις με οτι εχει διδαξει μεχρι στιγμης


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Ragnar Lothbrok on October 23, 2014, 15:53:01 pm
Άμα κάνουμε τις εργασίες, κρατιουνται και για τον Σεπτέμβριο;


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: airguitar on October 23, 2014, 19:50:08 pm
Mπορω να κανω malloc για τον πινακα που ζηταει μεσα στην κλαση ή πρεπει να γινει απ εξω ?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Μικρός λόρδος on October 23, 2014, 20:56:28 pm
Άμα κάνουμε τις εργασίες, κρατιουνται και για τον Σεπτέμβριο;

ναι..


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Vlassis on October 25, 2014, 20:16:59 pm
Πως ξερουμε ποσοι θα ειναι οι χαρακτηρες στο Ονομα, το login name κλπ?
Υπαρχει καποιο οριο η δεν χρειαζεται να το ξερουμε  ?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Baratheon on October 27, 2014, 12:30:23 pm
συγνωμη αν ειναι noob ερωτηση αλλα μαυτο τι εννοει ρε παιδες??
Ο διαχειριστής καταχωρεί το νέο μέλος δίνοντας του ως ταυτότητα (id) τη θέση του στον πίνακα των μελών της σελίδας


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: reservoir dog on October 28, 2014, 14:42:56 pm
Φανταζομαι εννοει πως αν ειναι ο πρωτος που εγγραφεται το id του ειναι το 1. Αν ειναι ο 599ος που εγγραφεται το id του ειναι 599. Το password που θα δωσει ο χρηστης φανταζομαι θα το κανουμε με malloc?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: ablaoublas on October 28, 2014, 16:03:22 pm
Πως ξερουμε ποσοι θα ειναι οι χαρακτηρες στο Ονομα, το login name κλπ?
Υπαρχει καποιο οριο η δεν χρειαζεται να το ξερουμε  ?


Μάλλον θέτεις εσύ ο ίδιος ένα όριο , δηλαδή ορίζεις char name[30] ; για παράδειγμα ...


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Κονσερβοκούτης on October 28, 2014, 19:12:26 pm
παρατηρω οτι τωρα τελευταια το εχουμε χεσει το forum και δεν υπαρχει καποια βοηθεια και παρατηρησεις σχετικα με τις εργασιες. Αυτο βεβαια "καιει" σε πολλαπλο βαθμο και οσους αποφασισουν να ασχοληθουν με κατι τετοια μαθηματα αποκλειστικα το σεπτεμβρη.

Επειδη φανταζομαι πολλοι (οπως εγω) ειδαν την εκφωνηση και ειπαν "τι στο διαλο", δινω μια μικρη βοηθεια.
Προσωπικα θα κανω ενα class με το ονομα "μελος" (εγω το ονομασα class member), με μεταβλητες το id, τον αριθμο των φιλων, το login name, password και το ονομα. Ως public τις συναρτησεις void προσθηκης και αφαιρεσης φιλου, και με την εντολη return παιρνω ονομα, password, login name, φιλους. Με την main δεν εχω ασχοληθει ακομα. Οποια παρατηρηση/βοηθεια ευπροσδεκτη  ;D


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Vlassis on October 28, 2014, 23:40:12 pm
Πως ξερουμε ποσοι θα ειναι οι χαρακτηρες στο Ονομα, το login name κλπ?
Υπαρχει καποιο οριο η δεν χρειαζεται να το ξερουμε  ?


Μάλλον θέτεις εσύ ο ίδιος ένα όριο , δηλαδή ορίζεις char name[30] ; για παράδειγμα ...
Το να το ελεγξουμε αυτο με δυναμικη δεσμευση κλπ πρεπει να ειναι λιγο δυσκολο ε? Θα το κανω οπως ειπες :D

και κατι αλλο, τι σημαινει να διαγραφει ενα φιλο? Θα μειωνουμε τον πινακα (των πολυ 10 θεσεων) κατα 1 απλα ?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: K on October 28, 2014, 23:54:25 pm
ο Κορτέσης θεωρία έχει φτάσει μέχρι pointers σε αντικείμενα?

+Στην άσκηση τα passwords των μελών να είναι τύπου float?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: ablaoublas on October 29, 2014, 21:23:39 pm
Πως ξερουμε ποσοι θα ειναι οι χαρακτηρες στο Ονομα, το login name κλπ?
Υπαρχει καποιο οριο η δεν χρειαζεται να το ξερουμε  ?


Μάλλον θέτεις εσύ ο ίδιος ένα όριο , δηλαδή ορίζεις char name[30] ; για παράδειγμα ...
Το να το ελεγξουμε αυτο με δυναμικη δεσμευση κλπ πρεπει να ειναι λιγο δυσκολο ε? Θα το κανω οπως ειπες :D

και κατι αλλο, τι σημαινει να διαγραφει ενα φιλο? Θα μειωνουμε τον πινακα (των πολυ 10 θεσεων) κατα 1 απλα ?

Για την δυναμική δέσμευση, ίσως όχι απλά δύσκολο αλλά να μην γίνεται στο δεδομένο πρόβλημα . Για την διαγραφή φίλων εγώ όρισα έναν πίνακα f [10] τον οποίο τον μηδένισα αρχικά και μετά για διαγραφή στοιχείου i, στην θέση i έβαλα την τελευταία μη μηδενική τιμή του πίνακα (πρακτικά το τελευταίο στοιχείο του πίνακα) και στο πρακτικά τελευταίο στοιχείο του πίνακα έβαλα μηδενική τιμή


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: ablaoublas on October 29, 2014, 21:29:42 pm
παρατηρω οτι τωρα τελευταια το εχουμε χεσει το forum και δεν υπαρχει καποια βοηθεια και παρατηρησεις σχετικα με τις εργασιες. Αυτο βεβαια "καιει" σε πολλαπλο βαθμο και οσους αποφασισουν να ασχοληθουν με κατι τετοια μαθηματα αποκλειστικα το σεπτεμβρη.

Επειδη φανταζομαι πολλοι (οπως εγω) ειδαν την εκφωνηση και ειπαν "τι στο διαλο", δινω μια μικρη βοηθεια.
Προσωπικα θα κανω ενα class με το ονομα "μελος" (εγω το ονομασα class member), με μεταβλητες το id, τον αριθμο των φιλων, το login name, password και το ονομα. Ως public τις συναρτησεις void προσθηκης και αφαιρεσης φιλου, και με την εντολη return παιρνω ονομα, password, login name, φιλους. Με την main δεν εχω ασχοληθει ακομα. Οποια παρατηρηση/βοηθεια ευπροσδεκτη  ;D

Και εγώ κάτι τέτοιο έκανα αλλά αντί για δύο συναρτήσεις (προσθήκη-αφαίρεση φίλου) έκανα μία η οποία δέχεται, μεταξύ πολλών άλλων πραγμάτων, ενάν αριθμό τύπου int ανάλογα με την τιμή του οποίου η συνάρτηση επιτελεί είτε αναζήτηση φίλου είτε προσθήκη είτε αφαίρεση φίλου κτλ ... Βέβαια ψιλοέγινε χαμός ...  :P


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: K on October 29, 2014, 22:48:46 pm
Η αρχή της ενσωμάτωσης τί είναι?
Οι κωδικοί των μελών float ή strings? Έχει σημασία?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: geopas on October 29, 2014, 23:07:40 pm
Η αρχή της ενσωμάτωσης τί είναι?
Οι κωδικοί των μελών float ή strings? Έχει σημασία?
οι κωδικοι ειπε να ειναι strings


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: K on October 29, 2014, 23:08:35 pm
Η αρχή της ενσωμάτωσης τί είναι?
Οι κωδικοί των μελών float ή strings? Έχει σημασία?
οι κωδικοι ειπε να ειναι strings

Πότε το πε?
Η αρχή της ενσωμάτωσης τι είναι όμως?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: vasilis94 on October 30, 2014, 10:11:58 am
Η αρχή της ενσωμάτωσης τί είναι?
Οι κωδικοί των μελών float ή strings? Έχει σημασία?
οι κωδικοι ειπε να ειναι strings

Πότε το πε?
Η αρχή της ενσωμάτωσης τι είναι όμως?
Απλώς οι μεταβλητές στις κλάσεις θα πρέπει να είναι γενικά private και να είναι προσπελάσιμες μόνο από τις public συναρτήσεις. Θα το γράφει στις παρατηρήσεις σχεδόν σ όλες τις εργασίες. Τσέκαρε: ethmmy>Υλικό μαθήματος > Σημειώσεις > arxes - OOP.ppt > 5η-6η διαφάνεια.


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: reservoir dog on October 30, 2014, 20:56:46 pm

Ο πίνακας των αντικειμένων που υλοποιούν τα μέλη της σελίδας να ορίζεται δυναμικά.


Αν καταλαβαινω σωστα αυτο σημαίνει πως πρωτα πρεπει να βρουμε ποσα θα ειναι τα μελη και μετα να δεσμευσουμε μνημη με malloc για να δημιουργησουμε τον πινακα ? Γιατι εγω σκεφτομουν να δηλωσω εξ'αρχης στην main εναν pointer τυπο member και στην πρωτη ατερμονη επαναληψη να καλω κατευθειαν τον constructor του. Καποια διευκολυνση?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Vlassis on October 30, 2014, 21:19:47 pm

Ο πίνακας των αντικειμένων που υλοποιούν τα μέλη της σελίδας να ορίζεται δυναμικά.


Αν καταλαβαινω σωστα αυτο σημαίνει πως πρωτα πρεπει να βρουμε ποσα θα ειναι τα μελη και μετα να δεσμευσουμε μνημη με malloc για να δημιουργησουμε τον πινακα ? Γιατι εγω σκεφτομουν να δηλωσω εξ'αρχης στην main εναν pointer τυπο member και στην πρωτη ατερμονη επαναληψη να καλω κατευθειαν τον constructor του. Καποια διευκολυνση?
Εγω ορισα εναν pointer τυπου Member στην main, και εκανα με malloc για n=1 εναν πινακα, οπου θα βαλω το πρωτο μελος, και μετα εβαλα πως αν n != 1 , τοτε με realloc να αναπροσαρμοζει τη μνημη για το n που εχω αυξησει κατα ενα, αν υπαρχει αλλο μελος..
Δεν ξερω κατα ποσο ειναι σωστο ομως, αν γινεται αυτο το πραγμα ..  :-\


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: airguitar on October 30, 2014, 22:22:31 pm
γενικα πρεπει να κανω 2 κλασεις ??
εγω εκανα μια κλαση member με στοιχεια name password κλπ.. και η οποια κλαση εχει μια συναρτηση member(costructor) η οποια ζηταει ολα αυτα τα στοιχεια (name password κλπ)
και επισης εφτιαξα μια κλαση social network η οποια εχει μια  for που σε καθε loop της καλει την συναρτηση member


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: airguitar on October 31, 2014, 22:42:26 pm
Πρεπει να κανω 2 κλασεις μια π.χ μεμπερ και μια αλλη ??


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Delaney on November 01, 2014, 00:07:01 am
παρατηρω οτι τωρα τελευταια το εχουμε χεσει το forum και δεν υπαρχει καποια βοηθεια και παρατηρησεις σχετικα με τις εργασιες. Αυτο βεβαια "καιει" σε πολλαπλο βαθμο και οσους αποφασισουν να ασχοληθουν με κατι τετοια μαθηματα αποκλειστικα το σεπτεμβρη.

Επειδη φανταζομαι πολλοι (οπως εγω) ειδαν την εκφωνηση και ειπαν "τι στο διαλο", δινω μια μικρη βοηθεια.
Προσωπικα θα κανω ενα class με το ονομα "μελος" (εγω το ονομασα class member), με μεταβλητες το id, τον αριθμο των φιλων, το login name, password και το ονομα. Ως public τις συναρτησεις void προσθηκης και αφαιρεσης φιλου, και με την εντολη return παιρνω ονομα, password, login name, φιλους. Με την main δεν εχω ασχοληθει ακομα. Οποια παρατηρηση/βοηθεια ευπροσδεκτη  ;D

Δυο διευκρινιστικες ερωτησεις θελω να κανω αφου πω οτι δε βλεπω κατι λαθος στη συλλογιστικη σου:
1) Μηπως μπορεις να μου πεις τη λογικη που θα κανεις προσθηκη και αφαιρεση γιατι δε μου ερχεται κατι καθολου?
2) Νομιζω οτι θελει στο private κομματι ένα πίνακα με το πολύ 10 θέσεις στον οποίο θα καταχωρούνται οι ταυτότητες των μελών που θα δηλώσει ως φίλους το καθε μελος της σελιδας. Το γραφω γιατι δε το γραφεις παραπανω και αναρωτιεμαι αν το ξεχασες?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Fedra on November 01, 2014, 17:00:08 pm
Να κάνω μια ερώτηση.. Χρειάστηκε κανένας να κάνει επικάλυψη τελεστών?? ://


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Fcoriolis on November 01, 2014, 17:28:07 pm
οι operators είναι πιο μετά από ότι θυμάμαι, λογικά δεν θέλει!


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: molotov49 on November 01, 2014, 17:28:31 pm
Η εργασία μοιάζει πολύ (μπορεί να είναι και ακριβώς ίδια) με αυτήν που είχε βάλει το 2011/2012. Υπάρχει ανεβασμένο pdf στα downloads.


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Fedra on November 01, 2014, 20:47:14 pm

Ο πίνακας των αντικειμένων που υλοποιούν τα μέλη της σελίδας να ορίζεται δυναμικά.


Αν καταλαβαινω σωστα αυτο σημαίνει πως πρωτα πρεπει να βρουμε ποσα θα ειναι τα μελη και μετα να δεσμευσουμε μνημη με malloc για να δημιουργησουμε τον πινακα ? Γιατι εγω σκεφτομουν να δηλωσω εξ'αρχης στην main εναν pointer τυπο member και στην πρωτη ατερμονη επαναληψη να καλω κατευθειαν τον constructor του. Καποια διευκολυνση?
Εγω ορισα εναν pointer τυπου Member στην main, και εκανα με malloc για n=1 εναν πινακα, οπου θα βαλω το πρωτο μελος, και μετα εβαλα πως αν n != 1 , τοτε με realloc να αναπροσαρμοζει τη μνημη για το n που εχω αυξησει κατα ενα, αν υπαρχει αλλο μελος..
Δεν ξερω κατα ποσο ειναι σωστο ομως, αν γινεται αυτο το πραγμα ..  :-\

Και όταν αποθηκεύεις το πρώτο αντικείμενο στον πίνακα, δε σου χτυπάει? Γιατί εμένα ναι..


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Fedra on November 01, 2014, 23:16:49 pm
ο πίνακας με τους φίλους του κάθε χρήστη είναι του τύπου της κλάσης (π.χ. member),έτσι δεν είναι? αλλιώς πώς θα τυπώνει τα ονόματα?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: K on November 01, 2014, 23:29:52 pm
ο πίνακας με τους φίλους του κάθε χρήστη είναι του τύπου της κλάσης (π.χ. member),έτσι δεν είναι? αλλιώς πώς θα τυπώνει τα ονόματα?


Μπορεί να έχει τα ids. Και μετά με έναν παράλληλο πίνακα, στον πινακα με τα μέλη, που θα έχει τα ids θα γίνεται ταυτοποίηση.έτσι αντιλαμβάνομαι εγώ


Επιτρέπεται να ανεβάσω αρχείο κώδικα, μπας και κανείς βοηθήσει να τρέξει σωστα?


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: nohponex on November 01, 2014, 23:45:50 pm
[..]
Επιτρέπεται να ανεβάσω αρχείο κώδικα, μπας και κανείς βοηθήσει να τρέξει σωστα?

Ναι φυσικά !
( Προτείνω κανα link απο σελίδες τύπου http://codepad.org/, http://ideone.com/, https://gist.github.com/ για να γίνεται και το syntax highlight  :) )


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: K on November 02, 2014, 12:04:11 pm
[..]
Επιτρέπεται να ανεβάσω αρχείο κώδικα, μπας και κανείς βοηθήσει να τρέξει σωστα?

Ναι φυσικά !
( Προτείνω κανα link απο σελίδες τύπου http://codepad.org/, http://ideone.com/, https://gist.github.com/ για να γίνεται και το syntax highlight  :) )
http://codepad.org/0YJCKrKR


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Fcoriolis on November 02, 2014, 12:26:26 pm
Για τη main πρέπει να την κάνεις int main και στο τέλος να βάλεις return 0.


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: K on November 02, 2014, 12:34:04 pm
Για τη main πρέπει να την κάνεις int main και στο τέλος να βάλεις return 0.

Σε borland το τρέχω


τρέχει κανονικά απλά εμφανίζει κάποιο πρόβλημα στο login, οποιος μπορεί ας κάνει εναν κόπο να βοηθήσει

edit:έκανα κάτι ψιλοδιορθώσεις και το ξανανέβασα.


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: Apostolof on November 02, 2014, 13:32:38 pm

Ο πίνακας των αντικειμένων που υλοποιούν τα μέλη της σελίδας να ορίζεται δυναμικά.


Αν καταλαβαινω σωστα αυτο σημαίνει πως πρωτα πρεπει να βρουμε ποσα θα ειναι τα μελη και μετα να δεσμευσουμε μνημη με malloc για να δημιουργησουμε τον πινακα ? Γιατι εγω σκεφτομουν να δηλωσω εξ'αρχης στην main εναν pointer τυπο member και στην πρωτη ατερμονη επαναληψη να καλω κατευθειαν τον constructor του. Καποια διευκολυνση?
Εγω ορισα εναν pointer τυπου Member στην main, και εκανα με malloc για n=1 εναν πινακα, οπου θα βαλω το πρωτο μελος, και μετα εβαλα πως αν n != 1 , τοτε με realloc να αναπροσαρμοζει τη μνημη για το n που εχω αυξησει κατα ενα, αν υπαρχει αλλο μελος..
Δεν ξερω κατα ποσο ειναι σωστο ομως, αν γινεται αυτο το πραγμα ..  :-\

Και εγώ έκανα το ίδιο, όρισα μία κλάση user κάθε αντικείμενο της οποίας είναι ένας χρήστης και μία κλάση cloud η οποία έχει μόνο ένα pointer τύπου user [που στην ουσία είναι πίνακας με pointers σε αντικείμενα user (σωστά;  ^que^ )].
Το πρόγραμμα μου δε τρέχει, βγάζει πρόβλημα όταν προσπαθεί να κάνει τη realloc λέγοντας ότι έχει χάσει τον pointer (Error in `./prog': realloc(): invalid pointer: 0xb76f2d84 ***  από http://ideone.com/ZQ7fP2). Σύμφωνα με αυτό πρέπει να φτιάξω ένα copy constructor στην κλάση cloud ( ; )
http://en.wikipedia.org/wiki/Rule_of_three_%28C%2B%2B_programming%29

Ορίστε ο κώδικάς μου:
http://codepad.org/DrKfwb5g
όποιος αυτοαποκαλείτε C++ guru ας δώσει λίγη βοήθεια...


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: K on November 02, 2014, 13:37:42 pm
Λοιπόν μάγκες διόρθωσα διάφορα πράγματα και τώρα τρέχει καλύτερα.. Κολλάει μόνο στην εκτύπωση τον ονομάτων
http://codepad.org/m9VIq4XK

Θερμή παράκληση όποιος ειναι τεμπέλης και δε θέλει να μάθει c++, και θελήσει να αντιγράψει τον κώδικα,τουλάχιστον ας τον αλλάξει λίγο μην καουμε στο εργαστήριο.


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: airguitar on November 02, 2014, 14:08:25 pm
για να δηλωσω τα στοιχεια του χρηστη το κανω μεσω του constructor (member::member δηλ) ομως ετσι μου κρασαρει !!
οταν το κανω ομως με αλλη συναρτηση π.χ set_user(η οποια ειναι στο public
κομματι της κλασης member) δεν εχω προβλημα...
Ξερει κανεις τι παιζει ??


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: K on November 02, 2014, 14:36:26 pm
για να δηλωσω τα στοιχεια του χρηστη το κανω μεσω του constructor (member::member δηλ) ομως ετσι μου κρασαρει !!
οταν το κανω ομως με αλλη συναρτηση π.χ set_user(η οποια ειναι στο public
κομματι της κλασης member) δεν εχω προβλημα...
Ξερει κανεις τι παιζει ??

Δεν υπάρχει λόγος να το κάνεις μέσω συνάρτησης αρχικών συνθηκών(constructor)
Constructor θα μπορούσες να χρησιμοποιήσεις για τον πίνακα των φίλων για παράδειγμα, όπου θα έβαζες όλα τα ids 0 και μετά θα άλλαζαν όταν θα καταχωρούσες φίλο.
Τα στοιχεία δίνονται απ΄ τον χρήστη άρα είναι άτοπο να χρησιμοποιήσεις σ.α.σ.


Title: Re: [C++] Άσκηση A - 2014/2015 - Προθεσμία 2/11/2014
Post by: airguitar on November 02, 2014, 14:58:58 pm
οκ ευχαριστω !!
τωρα την κανω με απλη συναρτηση εχω ενα θεμα ομως
οταν βαζω το username-password του διαχειριστη δεν
τερματιζεται το λουπ...
Code:
int main() //MAIN
{

    char login_name[30],name[30],password[30];
    int n,i,k,id,my_id=0,fn,fl;
    int *fr;//pinakas filwn
    Member *member_matrix;


    cout<<"Dwse ton arithmo twn newn melwn\n";
    cin>>n;
Member newm;


 if((member_matrix=(Member*)malloc(n*sizeof(Member)))==NULL)
       {
           cout<<"prolhma me mnhmh";
           exit(1);
       }


for(i=0;i<n;i++)
  {
     cout<<"kataxwrhsh melous\n"<<i<<"\n";

    if((!strcmp("admin",newm.get_login_name()))&&(!strcmp("apass",newm.get_password())))break;
    else {member_matrix[i].set_member();}

  }

 cout<<"Ta melh:"<<member_matrix[i].get_name()<<"Dhmiourghthikan\n";

ετσι το κανω