Title: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: George_RT on October 31, 2013, 16:18:40 pm Άσκηση Α Σε ένα σύστημα διαχείρισης της κατανάλωσης ηλεκτρικής ενέργειας οι μετρητές συνδέονται, μέσω δικτύου, με τον κεντρικό υπολογιστή της εταιρίας στον οποίο καταγράφονται αυτόματα οι ενδείξεις των μετρητών και οι οφειλές των πελατών. Να γραφεί το λογισμικό στο οποίο να ορίζεται ένα αντικείμενο για κάθε πελάτη της εταιρίας. Η κλάση στον τύπο της οποίας υλοποιούνται αυτά τα αντικείμενα να διαθέτει τις κατάλληλες συναρτήσεις έτσι ώστε. α) Με τη δημιουργία αντικειμένων στον τύπο της κλάσης να εισάγεται ο κωδικός του πελάτη, ως ένας αριθμός τύπου long, το όνομα του πελάτη, ως ένα string 30 το πολύ χαρακτήρων, ένα login name για τον πελάτη, ως ένα string 5 χαρακτήρων και ένας αριθμός τύπου long ως password. Για κάθε αντικείμενο να εισάγεται ακόμη το κόστος της κιλοβατώρας με το οποίο χρεώνεται ο συγκεκριμένος πελάτης και ένα μέγιστο υπόλοιπο που μπορεί να έχει ο λογαριασμός του, για το οποίο, αν το υπερβεί, θα διακόπτεται η ηλεκτροδότηση. β)Ο πελάτης της εταιρίας να μπορεί, εισάγοντας το login name και το password, να εξοφλεί μέρος ή ολόκληρο το υπόλοιπο του λογαριασμού του. Στο πρόγραμμα να οριστούν οι κατάλληλες συναρτήσεις με τις οποίες ο διαχειριστής του συστήματος να μπορεί να εισάγει και να διαγράφει πελάτες, να τυπώνει τα ονόματα και το ανεξόφλητο υπόλοιπο των πελατών και να τυπώνει τα ονόματα και το υπόλοιπο του των πελατών για τους οποίους θα διακοπεί η ηλεκτροδότηση. Το λογισμικό να ορίζει μια ατέρμονα ανακύκλωση σε κάθε επανάληψη της οποίας ο χρήστης, μέσα από ένα μενού επιλογών, να επιλέγει αν είναι πελάτης ή ο διαχειριστής του συστήματος. Αν είναι πελάτης, εισάγοντας το login name και το password, να μπορεί να εξοφλεί μέρος ή όλο το υπόλοιπο του λογαριασμού του. Αν είναι διαχειριστής να επιλέγει μέσα από ένα δεύτερο μενού επιλογών, αν θα εισάγει νέους πελάτες, αν θα διαγράψει κάποιον πελάτη, αν θα τυπώσει τα στοιχεία των πελατών για τους οποίους θα διακοπεί η ηλεκτροδότηση ή αν θα τυπώσει τα στοιχεία και τα υπόλοιπα όλων των πελατών. Η έξοδος από την ανακύκλωση να γίνεται μόνο μέσα από το μενού επιλογών του διαχειριστή. Βοηθητικές παρατηρήσεις: Το πρόγραμμα να ακολουθεί την αρχή της ενσωμάτωσης. Για την εξόφληση των λογαριασμών ο πελάτης να εισάγει έναν αριθμό τραπεζικού λογαριασμού και το ποσόν που θα καταβάλει. Το λογισμικό να θεωρεί ότι έγινε η πληρωμή εκτυπώνοντας αυτά τα στοιχεία. Η μνήμη για την καταχώρηση των αντικειμένων να δεσμεύεται δυναμικά χρησιμοποιώντας τις συναρτήσεις malloc() και realloc(). Σε κάθε περίπτωση που το σύστημα θέλει να υπολογίσει ή να εκτυπώσει στοιχεία που αφορούν τον λογαριασμό ενός πελάτη να διαβάζεται η ένδειξη που έχει ο μετρητής εκείνη τη στιγμή. Κατά τον σχεδιασμό του λογισμικού να προσπαθήσετε να υλοποιήσετε, ως αυτόνομες συναρτήσεις, κομμάτια του κώδικα που θα μπορούσαν να χρησιμοποιηθούν και σε άλλες εφαρμογές Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Mr K on October 31, 2013, 19:30:35 pm Τι είναι πάλι η αρχή της ενσωμάτωσης;; >:( >:( >:( (ξεκινάω γεμάτος κέφι )
Edit: Εντάξει ο τύπος ειναι απλά θεός, η εκφώνηση τα σπάει :D :D :D Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: gkyriazt on November 01, 2013, 13:03:47 pm mporei kaneis na mou pei me enan tropo pou na mporw na katalabw pws mporw na metrhsw tous xarakthres twn string??
8a boh8ouse px na to balw ka8e xarakthra apo tous 30 se ena stoixeio enos pinaka 31 8esewn kai na tsekarw an allazei to teleytaio stoixeio h den 3erw egw ti allo... sorry gia ta greeklish. Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Marco on November 02, 2013, 17:17:17 pm mporei kaneis na mou pei me enan tropo pou na mporw na katalabw pws mporw na metrhsw tous xarakthres twn string?? Απλά γράψε αυτό8a boh8ouse px na to balw ka8e xarakthra apo tous 30 se ena stoixeio enos pinaka 31 8esewn kai na tsekarw an allazei to teleytaio stoixeio h den 3erw egw ti allo... sorry gia ta greeklish. Code: class consumer{ Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Marco on November 02, 2013, 17:32:35 pm Άσκηση Α Σε ένα σύστημα διαχείρισης της κατανάλωσης ηλεκτρικής ενέργειας οι μετρητές συνδέονται, μέσω δικτύου, με τον κεντρικό υπολογιστή της εταιρίας στον οποίο καταγράφονται αυτόματα οι ενδείξεις των μετρητών και οι οφειλές των πελατών. .................. Σε κάθε περίπτωση που το σύστημα θέλει να υπολογίσει ή να εκτυπώσει στοιχεία που αφορούν τον λογαριασμό ενός πελάτη να διαβάζεται η ένδειξη που έχει ο μετρητής εκείνη τη στιγμή. Πώς καταγράφονται "αυτόματα"; Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: lady_of_winter on November 02, 2013, 19:15:04 pm Άσκηση Α Κατά τον σχεδιασμό του λογισμικού να προσπαθήσετε να υλοποιήσετε, ως αυτόνομες συναρτήσεις, κομμάτια του κώδικα που θα μπορούσαν να χρησιμοποιηθούν και σε άλλες εφαρμογές Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Fcoriolis on November 02, 2013, 20:06:55 pm Άσκηση Α Κατά τον σχεδιασμό του λογισμικού να προσπαθήσετε να υλοποιήσετε, ως αυτόνομες συναρτήσεις, κομμάτια του κώδικα που θα μπορούσαν να χρησιμοποιηθούν και σε άλλες εφαρμογές Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 02, 2013, 20:07:38 pm Τι είναι πάλι η αρχή της ενσωμάτωσης;; >:( >:( >:( (ξεκινάω γεμάτος κέφι ) Λογικά το βρήκες ήδη, αλλά είναι αυτό: "Η εσωτερική κατάσταση ενός αντικειμένου πρέπει να είναι τροποποιήσιμη μόνο μέσω της δημόσιας διασύνδεσής του." Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Exomag on November 02, 2013, 20:30:47 pm Άσκηση Α Κατά τον σχεδιασμό του λογισμικού να προσπαθήσετε να υλοποιήσετε, ως αυτόνομες συναρτήσεις, κομμάτια του κώδικα που θα μπορούσαν να χρησιμοποιηθούν και σε άλλες εφαρμογές Βασικά εννοεί να μην έχεις μέσα στις συναρτήσεις (όσο είναι δυνατό) πράγματα που αφορούν το συγκεκριμένο πρόγραμμα, αλλά να είναι όσο πιο αφηρημένες γίνεται και να επιτελούν μόνο μία λειτουργία. Ένα κλασσικό παράδειγμα είναι να μην εκτυπώνεις μέσα σε μια συνάρτηση τα αποτελέσματα. Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: vasilis94 on November 02, 2013, 20:39:37 pm Σχετικά με τους διαχειριστές για πείτε καμιά γνώμη:
1) Θέλει λογικά να φτιάξουμε μια κλάση διαχειριστή,right? Αυτή λογικά θα έχει τις συναρτήσεις για να διαχειρίζεται τους πελάτες.. 2) Ο χρήστης τελικά απλώς θα ρωτάται αν είναι διαχειριστής και μετά αν πατήσει ναι στο μενού, θα μπορεί να κάνει τα πάντα? Κανένας κωδικός? Γιατί κάτι τέτοιο κατάλαβει κάποιος από την εκφώνηση... Άρα, δε κρατώ διαχειριστές. Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: vasilis1005 on November 02, 2013, 21:57:28 pm Σχετικά με τους διαχειριστές για πείτε καμιά γνώμη: λογικα αμα πει ο χρηστης οτι ειναι διαχειριστης μετα τον ρωτας τον κωδικο διαχειριστη.1) Θέλει λογικά να φτιάξουμε μια κλάση διαχειριστή,right? Αυτή λογικά θα έχει τις συναρτήσεις για να διαχειρίζεται τους πελάτες.. 2) Ο χρήστης τελικά απλώς θα ρωτάται αν είναι διαχειριστής και μετά αν πατήσει ναι στο μενού, θα μπορεί να κάνει τα πάντα? Κανένας κωδικός? Γιατί κάτι τέτοιο κατάλαβει κάποιος από την εκφώνηση... Άρα, δε κρατώ διαχειριστές. καμια ιδεα για την υλοποιηση της συναρτησης που προσθετει πελατες (μαλλον περισσοτερους απο εναν); :( :( (μπερδευομαι λιγο με τις συναρτησεις που ανηκουν σε κλαση) Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 03, 2013, 19:32:05 pm καμια ιδεα για την υλοποιηση της συναρτησης που προσθετει πελατες (μαλλον περισσοτερους απο εναν); :( :( (μπερδευομαι λιγο με τις συναρτησεις που ανηκουν σε κλαση) Θα έχεις έναν pointer, έστω pelatis *p, που θα είναι η λίστα των πελατών. Για να προσθέσεις πελάτη, κάνε έναν temp_pelatis και μετά με malloc/realloc δέσμευσε δυναμικά μνήμη στον p και μετά βάλε τον temp_pelatis στον p (και αυξάνεις το n). Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Mr K on November 03, 2013, 20:09:12 pm Σχετικά με τους διαχειριστές για πείτε καμιά γνώμη: 1) Θέλει λογικά να φτιάξουμε μια κλάση διαχειριστή,right? Αυτή λογικά θα έχει τις συναρτήσεις για να διαχειρίζεται τους πελάτες.. 2) Ο χρήστης τελικά απλώς θα ρωτάται αν είναι διαχειριστής και μετά αν πατήσει ναι στο μενού, θα μπορεί να κάνει τα πάντα? Κανένας κωδικός? Γιατί κάτι τέτοιο κατάλαβει κάποιος από την εκφώνηση... Άρα, δε κρατώ διαχειριστές. 1)Εγω κατέληξα οτι δεν χρειάζεται κλάση διαχειριστής. Ο διαχειριστης θα παταει στη main οτι ειναι διαχειριστής και μετά θα κάνει ενεργειες οι οποιες υλοποιουνται κατευθείαν μεσω μεθοδων των πελατων. (πχ. Constructor στην επιλογη ΠΡΟΣΘΕΣΕ ΚΑΙΝΟΥΡΓΙΟ ΠΕΛΑΤΗ) 2)Δεν κρατας διαχειριστες και δεν χρειάζεται κωδικό. Θα το έλεγε (Trust me :) ειμαι στο fun club κορτέσης και παρακολουθω εκφωνήσεις για χρόνια :P) Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 03, 2013, 20:15:47 pm Σχετικά με τους διαχειριστές για πείτε καμιά γνώμη: 1) Θέλει λογικά να φτιάξουμε μια κλάση διαχειριστή,right? Αυτή λογικά θα έχει τις συναρτήσεις για να διαχειρίζεται τους πελάτες.. 2) Ο χρήστης τελικά απλώς θα ρωτάται αν είναι διαχειριστής και μετά αν πατήσει ναι στο μενού, θα μπορεί να κάνει τα πάντα? Κανένας κωδικός? Γιατί κάτι τέτοιο κατάλαβει κάποιος από την εκφώνηση... Άρα, δε κρατώ διαχειριστές. 1)Εγω κατέληξα οτι δεν χρειάζεται κλάση διαχειριστής. Ο διαχειριστης θα παταει στη main οτι ειναι διαχειριστής και μετά θα κάνει ενεργειες οι οποιες υλοποιουνται κατευθείαν μεσω μεθοδων των πελατων. (πχ. Constructor στην επιλογη ΠΡΟΣΘΕΣΕ ΚΑΙΝΟΥΡΓΙΟ ΠΕΛΑΤΗ) 2)Δεν κρατας διαχειριστες και δεν χρειάζεται κωδικό. Θα το έλεγε (Trust me :) ειμαι στο fun club κορτέσης και παρακολουθω εκφωνήσεις για χρόνια :P) +1 Αν θες ντε και καλά κωδικό κάντον define πάνω :P Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: George_RT on November 03, 2013, 20:52:12 pm Μόνο εγώ είμαι που ενω ασχολούμουν με την C εδω δεν βγάζω άκρη για να λύσω την άσκηση ;
Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Mr K on November 03, 2013, 20:57:58 pm Μόνο εγώ είμαι που ενω ασχολούμουν με την C εδω δεν βγάζω άκρη για να λύσω την άσκηση ; Πρέπει να διευρίνεις λίγο την αντιληψη σου απο το δομημένο: 1)σχετικα με το τι ειναι κλάσεις και αντικειμενα και πως δουλεύουν. 2) Γράψε με μορφη σχολιών σε ψευδογλώσσα τον κώδικά σου. πχ με το που ξεκιναει η main βάλε σχολιο "//εδω θα επιλέγω αν πελατης ή διαχειριστής". Θα σε βοηθήσει να θέσεις ξεκάθαρα ερωτήματα και να τα λύσεις ενα ενα (αντι του γενικου δεν καταλαβαινω απο που να πιασω και απο που να αφησω). Αρχικα θα ειναι ενα γενικο πλάνο σχολιων και στη συνέχεια θα γίνει λεπτομερές και θα είσαι ετοιμος να γράψεις κώδικα (φαινεται χρονοβόρο και άσκοπο αλλα τελικά σε βοηθάει να γλιτώνεις χρόνο) Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: George_RT on November 03, 2013, 21:17:03 pm Μόνο εγώ είμαι που ενω ασχολούμουν με την C εδω δεν βγάζω άκρη για να λύσω την άσκηση ; Πρέπει να διευρίνεις λίγο την αντιληψη σου απο το δομημένο: 1)σχετικα με το τι ειναι κλάσεις και αντικειμενα και πως δουλεύουν. 2) Γράψε με μορφη σχολιών σε ψευδογλώσσα τον κώδικά σου. πχ με το που ξεκιναει η main βάλε σχολιο "//εδω θα επιλέγω αν πελατης ή διαχειριστής". Θα σε βοηθήσει να θέσεις ξεκάθαρα ερωτήματα και να τα λύσεις ενα ενα (αντι του γενικου δεν καταλαβαινω απο που να πιασω και απο που να αφησω). Αρχικα θα ειναι ενα γενικο πλάνο σχολιων και στη συνέχεια θα γίνει λεπτομερές και θα είσαι ετοιμος να γράψεις κώδικα (φαινεται χρονοβόρο και άσκοπο αλλα τελικά σε βοηθάει να γλιτώνεις χρόνο) Ευχαριστώ για τα tips ,στην C πάνω κατω έτσι τα έκανα αλλα με αυτές της εκφωνήσεις που βαζει καταναλώνεις τα 3/4 του χρόνου σου για να καταλάβεις τι στο καλό σου ζητάει μονο (και αν ...!) :D Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: ori0ngel on November 04, 2013, 20:06:30 pm Το λογισμικό να ορίζει μια ατέρμονα ανακύκλωση σε κάθε επανάληψη της οποίας ο χρήστης, μέσα από ένα μενού επιλογών, να επιλέγει αν είναι πελάτης ή ο διαχειριστής του συστήματος. Αν είναι πελάτης, εισάγοντας το login name και το password, να μπορεί να εξοφλεί μέρος ή όλο το υπόλοιπο του λογαριασμού του. Αν είναι διαχειριστής να επιλέγει μέσα από ένα δεύτερο μενού επιλογών, αν θα εισάγει νέους πελάτες, αν θα διαγράψει κάποιον πελάτη, αν θα τυπώσει τα στοιχεία των πελατών για τους οποίους θα διακοπεί η ηλεκτροδότηση ή αν θα τυπώσει τα στοιχεία και τα υπόλοιπα όλων των πελατών. Η έξοδος από την ανακύκλωση να γίνεται μόνο μέσα από το μενού επιλογών του διαχειριστή. Δηλαδη ο καθενας μπορει να επιλεξει την επιλογη "διαχειριστης του συστηματος" και να εχει ετσι απλα προσβαση σε ολες τις ενεργειες του διαχειριστη. Ωραιος ρε Κορτεση...... Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 04, 2013, 22:21:29 pm Αν σε ενοχλεί πολύ, βάλε και κωδικό, π.χ. με #define (σωστό θα είναι). Δεν το αναφέρει ο Κορτέσης γιατί δεν είναι σημαντικό (τα βασικά πράγματα που θέλει να καταλάβεις στην άσκηση είναι άλλα).
Υ.Γ.: Omg υπερασπίζομαι τον Κορτέση... Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Fcoriolis on November 04, 2013, 22:38:42 pm Υ.Γ.: Omg υπερασπίζομαι τον Κορτέση... Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: paul on November 06, 2013, 15:37:39 pm παιδια εχω δυο αποριες
Πρωτον, οταν ο πελατης κανει login δινει ενα username.Εμεις πρεπει να κανουμε καποια αναζητηση ωστε με την μεθοδολογια παραλληλων πινακων(απο το λυκειο) να βρουμε τα υπολοιπα στοιχεια του? (Εδω κανουμε και ελεγχο στο password?) Δευτερον, ο διαχειριστης μπορει να διαγραψει καποιον πελατη απο το μενου επιλογων του.Εχουμε καμια ιδεα πως γινεται αυτο? Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 06, 2013, 15:43:04 pm Για το πρώτο, δε χρειάζεται παράλληλους πίνακες. Όταν εισαχθούν τα login και password απλώς θα γίνει μία αναζήτηση για το αν αυτά επαληθεύονται από κάποιο αντικείμενο τύπου πελάτης, το οποίο θα ανήκει σε έναν πίνακα που θα περιέχει όλους τους πελάτες. Τα υπόλοιπα στοιχεία θα τα παίρνεις με get από αυτόν τον πελάτη. Νομίζω εμμέσως απαντάω και στο δεύτερο ερώτημα :)
Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Mr K on November 06, 2013, 18:25:25 pm Δηλαδη ο καθενας μπορει να επιλεξει την επιλογη "διαχειριστης του συστηματος" και να εχει ετσι απλα προσβαση σε ολες τις ενεργειες του διαχειριστη. Ωραιος ρε Κορτεση...... Αν με πλήρωνε θα του έκανα πρόγραμμα προστασίας κβαντικού υπολογιστή, αλλα δεν με πληρώνει οπότε ενα πλήκτρο για πρόσβαση αρκει :P Υ.Γ.: Omg υπερασπίζομαι τον Κορτέση... ^wav^ Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: 4emonas on November 06, 2013, 19:57:08 pm "αν θα εισάγει νέους πελάτες, αν θα διαγράψει κάποιον πελάτη"
μπορει κανεις να με βοηθησει πως? Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: reservoir dog on November 06, 2013, 20:56:25 pm λογικα αφου ειναι διαχειριστης επιλεγει απο ενα μενου αν θελει να βαλει η να σβησει πελατη και αναλογα καλεις η μια συναρτηση new_client ή μια delete_client αντιστοιχα και δουλευεις με malloc realloc? δεν ειμαι σιγουρος, παροτι την ψιλοπαλευα με c, με c++ δεν, οποτε χρησιμη θα ηταν και μια αλλη γνωμη.
Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 07, 2013, 00:48:20 am Σωστά το πας.
Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Mr K on November 07, 2013, 10:39:04 am "αν θα εισάγει νέους πελάτες, αν θα διαγράψει κάποιον πελάτη" μπορει κανεις να με βοηθησει πως? Ο κυριος ρεζερβουαρ ντογκις τα λέει καλά ;) Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: vasilis1005 on November 07, 2013, 11:51:22 am παω να τυπωσω τη λιστα πελατων
Code: *pelatis_list Code: cout<<*pelatis_list; αλλα μου βγαζει error: No match for 'operator<<' in std::cout τι κανω λαθος; Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 07, 2013, 12:47:13 pm Έχεις έναν πίνακα αντικειμένων, έναν pointer βασικά, που περιέχει τη διεύθυνση του πρώτου αντικειμένου σου, οπότε προφανώς δεν έχει νόημα αυτό που έγραψες.
Hint: Θα πρέπει να κάνεις μία επανάληψη, μέσα στην οποία θα καλούνται οι κατάλληλες συναρτήσεις (ή συνάρτηση...) για κάθε αντικέιμενο της pelatis_list. Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: vasilis1005 on November 07, 2013, 15:31:56 pm Έχεις έναν πίνακα αντικειμένων, έναν pointer βασικά, που περιέχει τη διεύθυνση του πρώτου αντικειμένου σου, οπότε προφανώς δεν έχει νόημα αυτό που έγραψες. Hint: Θα πρέπει να κάνεις μία επανάληψη, μέσα στην οποία θα καλούνται οι κατάλληλες συναρτήσεις (ή συνάρτηση...) για κάθε αντικέιμενο της pelatis_list. αμα μου τυπωνει ακαταλαβιστικα τι ειναι το πιθανοτερο να συμβαινει; Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 07, 2013, 16:09:28 pm Δες (ενδεικτικά) αν
1) Υπάρχει πρόβλημα στην εκτύπωση ελληνικών χαρακτήρων και χρησιμοποιείς τέτοιους 2) Εκτυπώνεις κάτι που είναι σκουπίδια (πχ μεταβλητές που τις έκανες declare αλλά δεν τους έβαλες τιμή) 3) Εκτυπώνεις διευθύνσεις (πχ αν έχει int* a και εκτυπώνεις a αντί για *a) Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: reservoir dog on November 07, 2013, 20:36:03 pm επειδη οσο προχωραει η ασκηση αρχιζω και την χανω την μπαλα, να θεσω μερικα ερωτηματα.
1) Θα χρειαστει να υπαρχει κληρονομικοτητα στις συναρτησεις? 2) Θα δηλωνεται ενας pointer τυπου clients μεσω του οποιου θα καλουμε συναρτησεις και τα λοιπα? 3)Χρειαζονται constructors και destructors? Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 07, 2013, 20:43:47 pm επειδη οσο προχωραει η ασκηση αρχιζω και την χανω την μπαλα, να θεσω μερικα ερωτηματα. 1) Θα χρειαστει να υπαρχει κληρονομικοτητα στις συναρτησεις? 2) Θα δηλωνεται ενας pointer τυπου clients μεσω του οποιου θα καλουμε συναρτησεις και τα λοιπα? 3)Χρειαζονται constructors και destructors? 1) ??? 2) Θα έχεις έναν pointer clients που θα είναι ο πίνακας με τους πελάτες... από εκεί και πέρα, υπάρχουν συναρτήσεις μέσα στην κλάση και συναρτήσεις έξω από αυτήν... 3) Ένας constructor, destructor δε θες. Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: paul on November 08, 2013, 15:16:47 pm Άσκηση Α Σε ένα σύστημα διαχείρισης της κατανάλωσης ηλεκτρικής ενέργειας οι μετρητές συνδέονται, μέσω δικτύου, με τον κεντρικό υπολογιστή της εταιρίας στον οποίο καταγράφονται αυτόματα οι ενδείξεις των μετρητών και οι οφειλές των πελατών. .................. Σε κάθε περίπτωση που το σύστημα θέλει να υπολογίσει ή να εκτυπώσει στοιχεία που αφορούν τον λογαριασμό ενός πελάτη να διαβάζεται η ένδειξη που έχει ο μετρητής εκείνη τη στιγμή. Πώς καταγράφονται "αυτόματα"; και εγω εχω την ιδια ερωτηση... Μας ζηταει να επεξεργαστουμε και να εμφανισουμε μια τιμη (τις οφειλες του καταναλωτη) χωρις να εχουμε απο καπου αυτα τα δεδομενα! Τρελο? :o Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Halfpenny on November 08, 2013, 15:36:21 pm Τον ρωτήσαμε. Δεν καταγράφονται αυτόματα. Την ζητάει από τον πελάτη. Σκέψου το σαν να ζητάς από τον πελάτη να κατέβει στον μετρητή του και να σου πει τι γράφει η ένδειξη.
Μια άλλη ερώτηση. Αν πούμε ότι δουλεύουμε με ένα πίνακα που περιέχει αντικείμενα στον τύπο της κλάσης του πελάτη, λογικά στην αρχή αυτός ο πίνακας δεν περιέχει καμία καταχώρηση και καταχωρεί κάτι εφόσον ο διαχειριστής μέσα από το μενού επιλέξει να προσθέσει έναν πελάτη, έτσι? Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 08, 2013, 15:40:02 pm Μια άλλη ερώτηση. Αν πούμε ότι δουλεύουμε με ένα πίνακα που περιέχει αντικείμενα στον τύπο της κλάσης του πελάτη, λογικά στην αρχή αυτός ο πίνακας δεν περιέχει καμία καταχώρηση και καταχωρεί κάτι εφόσον ο διαχειριστής μέσα από το μενού επιλέξει να προσθέσει έναν πελάτη, έτσι? Ναι. Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: paul on November 08, 2013, 15:46:18 pm Τον ρωτήσαμε. Δεν καταγράφονται αυτόματα. Την ζητάει από τον πελάτη. Σκέψου το σαν να ζητάς από τον πελάτη να κατέβει στον μετρητή του και να σου πει τι γράφει η ένδειξη. Μια άλλη ερώτηση. Αν πούμε ότι δουλεύουμε με ένα πίνακα που περιέχει αντικείμενα στον τύπο της κλάσης του πελάτη, λογικά στην αρχή αυτός ο πίνακας δεν περιέχει καμία καταχώρηση και καταχωρεί κάτι εφόσον ο διαχειριστής μέσα από το μενού επιλέξει να προσθέσει έναν πελάτη, έτσι? Η μεταβλητη αυτη μπαινει στην κλαση? Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 08, 2013, 15:48:14 pm Τον ρωτήσαμε. Δεν καταγράφονται αυτόματα. Την ζητάει από τον πελάτη. Σκέψου το σαν να ζητάς από τον πελάτη να κατέβει στον μετρητή του και να σου πει τι γράφει η ένδειξη. Μια άλλη ερώτηση. Αν πούμε ότι δουλεύουμε με ένα πίνακα που περιέχει αντικείμενα στον τύπο της κλάσης του πελάτη, λογικά στην αρχή αυτός ο πίνακας δεν περιέχει καμία καταχώρηση και καταχωρεί κάτι εφόσον ο διαχειριστής μέσα από το μενού επιλέξει να προσθέσει έναν πελάτη, έτσι? Η μεταβλητη αυτη μπαινει στην κλαση? (Προφανώς εννοείς ως static). Οχι, δεν υπάρχει λόγος να μπει στην κλάση . Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Halfpenny on November 08, 2013, 15:52:03 pm Όχι. Λογικά όταν ο πελάτης κάνει είσοδο στο σύστημα πέρα από λογκιν θα καταγράφει και την ένδειξη του για να πληρώσει το αντίστοιχο ή μέρος του αντίστοιχου κόστους.
Έχει βρει κανείς κάπου σε βιβλίο/σημειώσεις, ή σε κάποιο τουτόριαλ/φόρουμ πως μπορούμε να επεξεργαζόμαστε πίνακες (είσοδος/διαγραφή στοιχείου) με αντικείμενα που έχουμε δεσμεύσει με δυναμική δέσμευση μνήμης? Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: heavy melon on November 08, 2013, 16:14:33 pm Όχι. Λογικά όταν ο πελάτης κάνει είσοδο στο σύστημα πέρα από λογκιν θα καταγράφει και την ένδειξη του για να πληρώσει το αντίστοιχο ή μέρος του αντίστοιχου κόστους. Έχει βρει κανείς κάπου σε βιβλίο/σημειώσεις, ή σε κάποιο τουτόριαλ/φόρουμ πως μπορούμε να επεξεργαζόμαστε πίνακες (είσοδος/διαγραφή στοιχείου) με αντικείμενα που έχουμε δεσμεύσει με δυναμική δέσμευση μνήμης? *νομιζω* οτι η φαση ειναι απλα οτι για την 1.εισοδο στοιχειου, κανεις realloc με max+1 στοιχεια, οπου max το αρχικο μεγεθος του πινακα σου και για 2.διαγραφη στοιχειου, κρατας τη θεση του στοιχειου που θες να διαγραψεις, κ κανεις realloc απο την επομενη θεση μεχρι το τελος, βαζοντας τα μια θεση πριν (για να μην εχεις κενη θεση). Αν κανω λαθος, ας διορθωσει καποιος Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: molotov49 on November 08, 2013, 22:38:24 pm Παιδια μια ερωτηση θελω να κανω (ειμαι λιγο νουμπακι οποτε σορρυ αν σας φανει χαζη):
Πως συμπληρωνεται ο πινακας με τα στοιχεια των πελατων?? Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: vasilis1005 on November 09, 2013, 15:10:15 pm Όχι. Λογικά όταν ο πελάτης κάνει είσοδο στο σύστημα πέρα από λογκιν θα καταγράφει και την ένδειξη του για να πληρώσει το αντίστοιχο ή μέρος του αντίστοιχου κόστους. Έχει βρει κανείς κάπου σε βιβλίο/σημειώσεις, ή σε κάποιο τουτόριαλ/φόρουμ πως μπορούμε να επεξεργαζόμαστε πίνακες (είσοδος/διαγραφή στοιχείου) με αντικείμενα που έχουμε δεσμεύσει με δυναμική δέσμευση μνήμης? *νομιζω* οτι η φαση ειναι απλα οτι για την 1.εισοδο στοιχειου, κανεις realloc με max+1 στοιχεια, οπου max το αρχικο μεγεθος του πινακα σου και για 2.διαγραφη στοιχειου, κρατας τη θεση του στοιχειου που θες να διαγραψεις, κ κανεις realloc απο την επομενη θεση μεχρι το τελος, βαζοντας τα μια θεση πριν (για να μην εχεις κενη θεση). Αν κανω λαθος, ας διορθωσει καποιος πως το κανω αυτο; :( Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: TheHound on November 09, 2013, 19:54:33 pm οι realloc θα γίνονται μέσα στις συναρτήσεις? πρέπει άρα να περάσουμε τον πίνακα αντικειμένων στις συναρτήσεις έτσι?
Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Mr K on November 09, 2013, 21:03:50 pm Παιδια μια ερωτηση θελω να κανω (ειμαι λιγο νουμπακι οποτε σορρυ αν σας φανει χαζη): Πως συμπληρωνεται ο πινακας με τα στοιχεια των πελατων?? μεσα στη main στην επιλογη του διαχειριστη Προσθεσε Πελάτη: θα παιρνεις στοιχεια με cin , θα δημιουργεις αντικειμενο Client με τα στοιχεια αυτα , θα δεσμευεις/ξαναδεσμευεις μνήμη για το πινακα (για παραπάνω info εδώ βλέπε σημειώσεις κορτεση στην C, για δυναμική δέσμευση μνήμης), θα καταχωρείς το αντικειμενο στην τελευταια θέση μνήμης του πινακα. Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Mr K on November 09, 2013, 21:05:08 pm Όχι. Λογικά όταν ο πελάτης κάνει είσοδο στο σύστημα πέρα από λογκιν θα καταγράφει και την ένδειξη του για να πληρώσει το αντίστοιχο ή μέρος του αντίστοιχου κόστους. Έχει βρει κανείς κάπου σε βιβλίο/σημειώσεις, ή σε κάποιο τουτόριαλ/φόρουμ πως μπορούμε να επεξεργαζόμαστε πίνακες (είσοδος/διαγραφή στοιχείου) με αντικείμενα που έχουμε δεσμεύσει με δυναμική δέσμευση μνήμης? *νομιζω* οτι η φαση ειναι απλα οτι για την 1.εισοδο στοιχειου, κανεις realloc με max+1 στοιχεια, οπου max το αρχικο μεγεθος του πινακα σου και για 2.διαγραφη στοιχειου, κρατας τη θεση του στοιχειου που θες να διαγραψεις, κ κανεις realloc απο την επομενη θεση μεχρι το τελος, βαζοντας τα μια θεση πριν (για να μην εχεις κενη θεση). Αν κανω λαθος, ας διορθωσει καποιος πως το κανω αυτο; :( Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Mr K on November 09, 2013, 21:06:14 pm οι realloc θα γίνονται μέσα στις συναρτήσεις? πρέπει άρα να περάσουμε τον πίνακα αντικειμένων στις συναρτήσεις έτσι? γενικά ειναι καλό να κρατάς την main οσο πιο ελάχιστη γίνεται οπότε ναι. Τα ορισματα θα ειναι ο pointer που δειχνει στον πίνακα και ενας int που ειναι το μέγεθος του πινακα Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: TheHound on November 09, 2013, 21:11:13 pm Όχι. Λογικά όταν ο πελάτης κάνει είσοδο στο σύστημα πέρα από λογκιν θα καταγράφει και την ένδειξη του για να πληρώσει το αντίστοιχο ή μέρος του αντίστοιχου κόστους. Έχει βρει κανείς κάπου σε βιβλίο/σημειώσεις, ή σε κάποιο τουτόριαλ/φόρουμ πως μπορούμε να επεξεργαζόμαστε πίνακες (είσοδος/διαγραφή στοιχείου) με αντικείμενα που έχουμε δεσμεύσει με δυναμική δέσμευση μνήμης? *νομιζω* οτι η φαση ειναι απλα οτι για την 1.εισοδο στοιχειου, κανεις realloc με max+1 στοιχεια, οπου max το αρχικο μεγεθος του πινακα σου και για 2.διαγραφη στοιχειου, κρατας τη θεση του στοιχειου που θες να διαγραψεις, κ κανεις realloc απο την επομενη θεση μεχρι το τελος, βαζοντας τα μια θεση πριν (για να μην εχεις κενη θεση). Αν κανω λαθος, ας διορθωσει καποιος πως το κανω αυτο; :( Μετά πρέπει όμως δεν πρέπει να αποδεσμεύσουμε 1 θέση μνήμης?...οπότε κάνουμε realloc για μια θέση λιγότερη? Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Mr K on November 09, 2013, 21:40:38 pm Μετά πρέπει όμως δεν πρέπει να αποδεσμεύσουμε 1 θέση μνήμης?...οπότε κάνουμε realloc για μια θέση λιγότερη? ναι Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: PureForm on November 10, 2013, 01:41:10 am τα στοιχεια της κλασησ δεν θα τα δηλωσουμε στην μαιν ως,client *c,αν η κλαση μασ λεγετε client ? οταν στη συνεχεια προσπθω να κανω πχ. c.get_password(),εχοντασ ορισει να μου κανει ριτερν το πασσ αυτη η συναρτηση το προγραμμα τρεχει αλλα το ριτερν εχει οτινανε τιμη καπου πεζει λογικο λαθος και δεν ξερω που(η get_password() εχει μεσα τησ την εντολη ριτερν password που το εχω δηλωμενο ωσ private),η μνημη δεσμευται σωστα ειμαι σχεδον σιγουρος αλλα και να μη δεσμευοταν εχω δοκιμασει τα παντα αλλα δεν ξερω τι φτεει καποια βοηθεια? λυθηκε Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: Lazakalf on November 10, 2013, 18:41:11 pm Δεν μπορώ να καταλάβω την χρήση pointer ως δομή καταχώρησης των πελατών και κυρίως με μπερδεύει η προσπέλαση του καταλόγου πελατών(άμα ασπουμε κάνω τον κατάλογο και θέλω να σβήσω κάποιον, δε θα μείνει κενό στο μπλοκ μνήμης που έχει κρατηθει? και μετά πως θα κάνω προσπέλαση τον κατάλογο? ), επίσεις δεν βρίσκω και κάποιο καλό documentation για dynamic memory allocation στη c++(μπορώ να χρησημοποιησω vector()? ο κορτέσης πάντως λέει για malloc και realoc...)
plz help έχω μπλέξει τα μπουτια μου... Title: Re: [C++] Άσκηση A - 2013/2014 - Προθεσμία 10/11/ Post by: L on November 10, 2013, 19:54:44 pm Για το πρώτο, διάβασε εδώ (http://www.cplusplus.com/doc/tutorial/pointers/), κυρίως από εκεί που λέει pointers and arrays και κάτω, και έπειτα σκέψου ότι εδώ θέλεις πίνακα αντικειμένων... Στη C++ για δυναμική δέσμευση χρησιμοποιούνται κυρίως οι new και delete, εδώ όμως θέλει να το κάνεις με malloc και realloc (όπως έκανες στη C).
|