THMMY.gr

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



Title: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 23/12/2015 12:00 πμ
Post by: Vlassis on December 05, 2015, 17:17:06 pm
Αρχεία και Iterators

Να δημιουργηθεί μια κλάση η οποία διαχειρίζεται τους εργαζομένους μια εταιρίας. Συγκεκριμένα η εταιρία θα έχεις ως ιδιότηττες τον όνομα και το μισθό των εργαζομένων. Τα αντικείμενα στο πρόγραμμα θα πρέπει να δημιουργούνται είτε από τιμές που θα δίνονται από το χρήστη είτε διαβάζοντας ενα αρχείο (employee.txt) στο οποίο αποθηκεύονται οι αντίστοιχες τιμές. Στην περίπωση του αρχείου τα στοιχεία θα είναι δομημένα στην ακόλουθη μορφή:<<Ονομα Μισθός >>. Επίσης θα πρέπει να υποστηρίζει τον υπολογισμό του μέσου όρου των μισθών όλων των αντικειμένων.

Το όνομα θα είναι τύπου string και ο μισθός double. Εαν τα δεδομένα στο αρχείο δεν είναι της σωστής μορφής π.χ ο μισθός περιέχει ένα όνομα τότε το προγραμμα θα πρέπει να δημιουργεί την αντίστοιχη εξαίρεση. Για την εξαίρεση θα πρέπει να κληρονομείται την exception και να υλοποιείτε την κατάλληλη μέθοδο.

Στη main θα πρέπει να δημιουργείται αντικείμενα employee τόσο διαβάζοντας από το αρχείο όσο και από το πληκτρολόγιο (έως 20 αντικείμενα) εκτός και εαν ο χρήστης δώσει τον χαρακτήρα ! (θαυμαστικό).

Στο τέλος του προγράμματος θα πρέπει να υπολογίζει το μέσο όρο του μισθού όλων των αντικειμένων. Για αυτή τη λειτουργία θα πρέπει να γίνει χρήση vector και iterator.

επειδη δεν καταλαβα τι παιζει με την αριθμηση, την προηγουμενη ασκηση την εγραφε στο mail του ως εργασια 8, και αυτην εργασια 10.
το βαζω ετσι στον τιτλο, ομως αν ειναι διαφορετικο πειτε μου να το αλλαξω, μη σας μπερδεψω κιολας.
(εκτος αν θεωρει το project ως την 9η εργασια)

edit: ημερομηνία προθεσμίας
Quote from: Δημήτριος Γενειατάκης
Η άσκηση 10 θα πρέπει να υποβληθεί οριστικά εως την 23η Δεκεμβρίου


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Ap.Mor. on December 09, 2015, 20:35:02 pm
Ίσως ρωτάω κάτι πολύ χαζό,αλλά έχει καταλάβει κάποιος πως μπορούμε να ελέγξουμε αν ο μισθός είναι τύπου double και δεν περιέχει κανένα χαρακτήρα μέσα?


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Schro on December 11, 2015, 06:04:59 am
Ο χρήστης είτε θα επιλέγει να δώσει αυτός ονόματα και μισθούς για τους υπαλλήλους,οπότε θα δίνει τα στοιχεία θα υπολογίζεται ο μέσος όρος και μετά τα στοιχεία θα χάνοντα, είτε θα επιλέγει να διαβάσει τα ονόματα και τους μισθούς από αρχείο;

Ή μήπως αν επιλέξει να τα δώσει αυτός θα πρέπει τα στοιχεία που έδωσε να αποθηκεύονται και αυτά στο αρχείο των υπαλλήλων και κάθε φορά ο μέσος όρος να υπολογίζεται σύμφωνα με τα συνολικά στοιχεία των υπαλλήλων;

Κατάλαβε κάποιος τι ρωτάω;


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: monavi on December 11, 2015, 10:38:27 am
Ο χρήστης είτε θα επιλέγει να δώσει αυτός ονόματα και μισθούς για τους υπαλλήλους,οπότε θα δίνει τα στοιχεία θα υπολογίζεται ο μέσος όρος και μετά τα στοιχεία θα χάνοντα, είτε θα επιλέγει να διαβάσει τα ονόματα και τους μισθούς από αρχείο;

Ή μήπως αν επιλέξει να τα δώσει αυτός θα πρέπει τα στοιχεία που έδωσε να αποθηκεύονται και αυτά στο αρχείο των υπαλλήλων και κάθε φορά ο μέσος όρος να υπολογίζεται σύμφωνα με τα συνολικά στοιχεία των υπαλλήλων;

Κατάλαβε κάποιος τι ρωτάω;

Το πρωτο που λες θα γινεται. Καθε φορα που δινει ο χρηστης στοιχεια θα δημειουργειται κ ενα αντικειμενο κ θα αποθηκευεται στο vector. Στη συνεχεια (ή κ απο την αρχη αμα θες) θα περνας τα στοιχεια του File σε εναν πινακα (ή δυο) και απο εκει θα δημιουργεις παλι αντικειμενα που θα αποθηκευονται στο vector. Ε στο τελος, θα βγαλεις το μεσο ορο απο το Vector και οχι απο το file


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Apostolof on December 12, 2015, 16:17:26 pm
Ίσως ρωτάω κάτι πολύ χαζό,αλλά έχει καταλάβει κάποιος πως μπορούμε να ελέγξουμε αν ο μισθός είναι τύπου double και δεν περιέχει κανένα χαρακτήρα μέσα?

Βρήκα αυτά:
http://stackoverflow.com/questions/12721911/c-how-to-verify-is-the-data-input-is-of-the-correct-datatype
http://stackoverflow.com/questions/2666631/how-do-i-check-the-input-data-type-of-a-variable-in-c
αλλά είναι για την είσοδο από τον χρήστη.

Για την είσοδο από το αρχείο βρήκα αυτό:
http://www.cplusplus.com/doc/tutorial/files/
στο Checking state flags λέει:
Quote
bad()
    Returns true if a reading or writing operation fails. For example, in the case that we try to write to a file that is not open for writing or if the device where we try to write has no space left.
fail()
    Returns true in the same cases as bad(), but also in the case that a format error happens, like when an alphabetical character is extracted when we are trying to read an integer number.


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Apostolof on December 12, 2015, 16:27:06 pm
...
Το πρωτο που λες θα γινεται. Καθε φορα που δινει ο χρηστης στοιχεια θα δημειουργειται κ ενα αντικειμενο κ θα αποθηκευεται στο vector. Στη συνεχεια (ή κ απο την αρχη αμα θες) θα περνας τα στοιχεια του File σε εναν πινακα (ή δυο) και απο εκει θα δημιουργεις παλι αντικειμενα που θα αποθηκευονται στο vector. Ε στο τελος, θα βγαλεις το μεσο ορο απο το Vector και οχι απο το file

Δηλαδή στον υπολογισμό του μέσου όρου θα περιλαμβάνονται οι τιμές και από το αρχείο και από τον χρήστη σωστά;


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: akyrosHM on December 13, 2015, 00:40:24 am
Για κάποιο λόγο όταν διαβάζω το Salary από το text και είναι όντως της μορφής 1a8583 και καλείται κανονικά η exception, το πρόγραμμά μου crashάρει. Καμιά ιδέα;


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Apostolof on December 13, 2015, 01:17:24 am
Για κάποιο λόγο όταν διαβάζω το Salary από το text και είναι όντως της μορφής 1a8583 και καλείται κανονικά η exception, το πρόγραμμά μου crashάρει. Καμιά ιδέα;

Κάνεις try και catch;


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: wthfck on December 13, 2015, 01:24:46 am
Έχω μπερδευτεί λίγο...
Εγώ έκανα 2 constructors έναν χωρίς ορίσματα και έναν με ορίσματα. Όταν έχω την επιλογή να διαβάσω ένα αρχείο, δημιουργώ αντικείμενα με διάφορα ορίσματα ονόματος και μισθού και τα βάζω στο αρχείο. Στην περίπτωση όμως που θα εισάγει ο χρήστης manually έχω βάλει μια λούπα να δημιουργεί αντικείμενα (χωρίς όρισμα), και αυτά θα τα αποθηκεύσω στο αρχείο?

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


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: akyrosHM on December 13, 2015, 01:25:57 am
Για κάποιο λόγο όταν διαβάζω το Salary από το text και είναι όντως της μορφής 1a8583 και καλείται κανονικά η exception, το πρόγραμμά μου crashάρει. Καμιά ιδέα;

Κάνεις try και catch;
Κάνω. Αυτό δε καταλαβαίνω. Αφού πιάνει τα exceptions, γιατί κρασάρει;


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Apostolof on December 13, 2015, 01:34:09 am
Κάνω. Αυτό δε καταλαβαίνω. Αφού πιάνει τα exceptions, γιατί κρασάρει;

Πως ξέρεις ότι κάνει catch το exception; Αφού κάνεις catch καλείς την what();
Μπορεί να έχει πρόβλημα ο κώδικας του exception.

Έχω μπερδευτεί λίγο...
Εγώ έκανα 2 constructors έναν χωρίς ορίσματα και έναν με ορίσματα. Όταν έχω την επιλογή να διαβάσω ένα αρχείο, δημιουργώ αντικείμενα με διάφορα ορίσματα ονόματος και μισθού και τα βάζω στο αρχείο. Στην περίπτωση όμως που θα εισάγει ο χρήστης manually έχω βάλει μια λούπα να δημιουργεί αντικείμενα (χωρίς όρισμα), και αυτά θα τα αποθηκεύσω στο αρχείο?

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

Εγώ στον κώδικα δεν γράφω καθόλου μέσα στο αρχείο, μόνο διαβάζω από αυτό. Μετά ελέγχω αν οι εγγραφές είναι <20 και συνεχίζω να γράφω στο ίδιο vector (που έχει αυτά που πήρα από το αρχείο) τις εγγραφές που μου δίνει ο χρήστης. Στο τέλος εμφανίζω ένα μ.ο. από όλα. Βέβαια στην εκφώνηση δε φαίνεται να το ξεκαθαρίζει οπότε κάν'το όπως θες  :P


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: akyrosHM on December 13, 2015, 01:42:21 am
Υπήρχε πρόβλημα στο throw μου, το έλυσα. Τώρα, βέβαια, όταν βρίσκει exception ο cursor δε πάει στην επόμενη γραμμή.  :D (Θα το λύσω, ελπίζω).

Στο αρχείο έβαλα να δέχεται ονοματεπώνυμο με συνένωση strings. Είπε αν θέλει κάτι τέτοιο ή του αρκεί να έχει ένα όνομα;


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Ap.Mor. on December 13, 2015, 14:22:56 pm
Τον έλεγχο για το μισθό το καταφέρατε με τα checking state flags,ή κάπως αλλιώς;Γιατί πραγματικα δεν βγάζω άκρη... :D
Όπως και να ΄χει ευχαριστώ!
Επίσης,τα αντικείμενα που δημιουργείτε κάθε φορά,εκτός από το μισθό,τα κρατάτε κάπου"π.χ. σε ένα vector";(γιατί δε το ξεκαθαρίζει!)


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Apostolof on December 13, 2015, 14:46:04 pm
Τον έλεγχο για το μισθό το καταφέρατε με τα checking state flags,ή κάπως αλλιώς;Γιατί πραγματικα δεν βγάζω άκρη... :D
Όπως και να ΄χει ευχαριστώ!
Επίσης,τα αντικείμενα που δημιουργείτε κάθε φορά,εκτός από το μισθό,τα κρατάτε κάπου"π.χ. σε ένα vector";(γιατί δε το ξεκαθαρίζει!)

Εγώ για τον έλεγχο κάνω αυτό:
Code:
while(!(cin >> employeeSalary)){
                cout << "Bad value!" << endl;
                cin.clear();
                cin.ignore(numeric_limits<streamsize>::max(), '\n');
            }
Αποθηκεύω τα αντικείμενά μου σε ένα vector και μετά με χρήση iterator βγάζω τον μ.ο.  :)


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: akyrosHM on December 13, 2015, 15:08:49 pm
Τελικά βάζετε Ονοματεπώνυμα ή απλά ονόματα; Για να το στείλω επιτέλους!  :D

edit: Και με το όνομα της εργασίας τι παίζει; Το ανεβάζω Α10-ΑΕΜ ή Α9-ΑΕΜ;


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Apostolof on December 13, 2015, 15:21:22 pm
Τελικά βάζετε Ονοματεπώνυμα ή απλά ονόματα; Για να το στείλω επιτέλους!  :D

edit: Και με το όνομα της εργασίας τι παίζει; Το ανεβάζω Α10-ΑΕΜ ή Α9-ΑΕΜ;

Εγώ βάζω μόνο ένα string. Δηλαδή ή όνομα ή επίθετο, όχι και τα δύο.
Α10 την ονόμασα αν και μου έχει πει ότι δεν έχει σημασία τι όνομα θα έχει το zip.


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Vlassis on December 13, 2015, 17:31:08 pm
Quote from:  Δημήτριος Γενειατάκης
Λόγω της προόδου στο μάθημα των σημάτων η εργασία "10"  μπορεί να παραδοθεί και εκπρόθεσμα.


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Schro on December 13, 2015, 22:24:01 pm
Quote from:  Δημήτριος Γενειατάκης
Λόγω της προόδου στο μάθημα των σημάτων η εργασία "10"  μπορεί να παραδοθεί και εκπρόθεσμα.

έχει δώσει κάπου μέχρι και πόσες μέρες μετά;
επίσης έχω θέμα με τους iterators, ζητάω πλέον ανοιχτά βοήθεια!


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Apostolof on December 13, 2015, 22:49:47 pm
Quote from:  Δημήτριος Γενειατάκης
Λόγω της προόδου στο μάθημα των σημάτων η εργασία "10"  μπορεί να παραδοθεί και εκπρόθεσμα.

έχει δώσει κάπου μέχρι και πόσες μέρες μετά;
επίσης έχω θέμα με τους iterators, ζητάω πλέον ανοιχτά βοήθεια!

Code:
double sum = 0;
    for (vector<Employee*>::iterator it = employees.begin() ; it != employees.end(); ++it){ //Implement an iterator to access employees vector elements
        cout << (*it)->getName() << ' ' << (*it)->getSalary() << endl;
        sum += (*it)->getSalary();
    }
    if(employees.size() != 0)
        cout << "Mean salary: " << sum/(employees.size());

Πρόσεξε ότι στη δικιά μου υλοποίηση έχω vector<Employee*> δλδ ο vector έχει μέσα pointer σε αντικείμενα τύπου Employee! Για αυτό και κάνω
(*it)->getName()
που είναι ίδιο με το:
(*(*it)).getName()

ΕΔΙΤ: Τα iterators τα διάβασα από εδώ:
http://www.cplusplus.com/reference/vector/vector/begin/
http://stackoverflow.com/questions/2395275/how-to-navigate-through-a-vector-using-iterators-c


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Schro on December 13, 2015, 23:12:28 pm
. . .

Thank you, μια χαρά δουλεύει.

Όσο αφορά την υλοποίηση εγώ δίνω στον χρήστη 3 επιλογές.
1.Διάβασε τους υπαλλήλους από το αρχείο και υπολόγισε μέσο όρο μισθών χωρίς input από τον χρήστη
2.Δώσε όνομα και μισθό για υπαλλήλους, υπολογισμός μέσου όρου χωρίς να κρατηθούν κάπου όνομα και μισθός
3.Δώσε όνομα και μισθό για υπαλλήλους (τα δεδομένα αυτά αποθηκεύονται στο αρχείο) και διάβασε τα υπόλοιπα από το αρχείο. και μετά συνολικός υπολογισμός μέσου όρου.


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Schro on December 14, 2015, 00:15:49 am
μετά την εξαίρεση το πρόγραμμα σας τερματίζει ή συνεχίζει την εκτέλεση και ζητάτε από τον χρήση να εισάγει ξανά σωστά τα δεδομένα;


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Apostolof on December 14, 2015, 01:10:48 am
μετά την εξαίρεση το πρόγραμμα σας τερματίζει ή συνεχίζει την εκτέλεση και ζητάτε από τον χρήση να εισάγει ξανά σωστά τα δεδομένα;

Όταν παίρνω λάθος δεδομένα από το αρχείο σταματάω να διαβάζω από εκεί. Όταν δίνει ο χρήστης λάθος τύπο, εμφανίζω ότι έκανε λάθος και ξαναζητάω την τιμή.


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Schro on December 14, 2015, 01:27:09 am
. . .

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


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: wthfck on December 16, 2015, 02:53:34 am
Υπάρχει κάποιος τρόπος να ελέγξουμε αν το όνομα τύπου string αποτελείται μόνο από αλφαβητικούς χαρακτήρες?  ^superconfused^


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: pentium4 on December 16, 2015, 02:53:39 am
wthfck   01:50:59   Δημοσιεύει μήνυμα στο [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ.

τί καλό;  8))

edit : φτου για 4''
και εγώ τώρα αυτό θα κοιτάξω :P


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: teslaaaa on December 16, 2015, 03:14:00 am
Υπάρχει κάποιος τρόπος να ελέγξουμε αν το όνομα τύπου string αποτελείται μόνο από αλφαβητικούς χαρακτήρες?  ^superconfused^
Regex
Αν βρεις έστω ένα ψηφίο --> εξαίρεση
Αντίστοιχα, για τον μισθό, αν βρεις έστω και ένα χαρακτήρα


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: wthfck on December 16, 2015, 03:16:20 am
Στα ψηφία που λες περιλαμβάνονται και χαρακτήρες? πχ. # ή @


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: pentium4 on December 16, 2015, 03:20:06 am
στην εκφώνηση λέει να κληρονομούμε την exception οπότε παίρνεις αυτή

http://www.cplusplus.com/reference/stdexcept/logic_error/


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: teslaaaa on December 16, 2015, 03:21:28 am
Στα ψηφία που λες περιλαμβάνονται και χαρακτήρες? πχ. # ή @
https://solarianprogrammer.com/2011/10/12/cpp-11-regex-tutorial/
Αν δεις το λινκ, λέει ότι το regex r("[[:digit:]]") βρίσκει οποιοδήποτε ψηφίο (δλδ από 0 έως 9)
Άρα λογικά όχι..

Αν και μάλλον για το μισθό πρέπει να εξαιρέσεις μερικούς χαρακτήρες, πχ. υποδιαστολές


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: wthfck on December 16, 2015, 03:30:36 am
στην εκφώνηση λέει να κληρονομούμε την exception οπότε παίρνεις αυτή

http://www.cplusplus.com/reference/stdexcept/logic_error/

Nαι μαρή κληρονομώ την εξεψιον, μεγάλη κληρονομιά μου άφησε ... :P


Στα ψηφία που λες περιλαμβάνονται και χαρακτήρες? πχ. # ή @
https://solarianprogrammer.com/2011/10/12/cpp-11-regex-tutorial/
Αν δεις το λινκ, λέει ότι το regex r("[[:digit:]]") βρίσκει οποιοδήποτε ψηφίο (δλδ από 0 έως 9)
Άρα λογικά όχι..

Αν και μάλλον για το μισθό πρέπει να εξαιρέσεις μερικούς χαρακτήρες, πχ. υποδιαστολές

Βρήκα αυτό
if (Name.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ")

if (Name.find_first_not_of("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ") != std::string::npos)


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: pentium4 on December 16, 2015, 03:31:30 am
στην εκφώνηση λέει να κληρονομούμε την exception οπότε παίρνεις αυτή

http://www.cplusplus.com/reference/stdexcept/logic_error/

Nαι μαρή κληρονομώ την εξεψιον, μεγάλη κληρονομιά μου άφησε ... :P

ΧΑΧΑΑΧΧΑΧΑΧΑΧΑΧΑΧΑ


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 15/12/2015 12:00 πμ
Post by: Apostolof on December 17, 2015, 12:09:56 pm
Quote from: Δημήτριος Γενειατάκης
Η άσκηση 10 θα πρέπει να υποβληθεί οριστικά εως την 23η Δεκεμβρίου


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 23/12/2015 12:00 πμ
Post by: ilektrik on December 18, 2015, 14:31:29 pm
Τα δεδομένα που θα βρίσκονται μέσα στο αρχείο θα πρέπει να τα έχουμε καταχωρήσει εμείς εκτός προγράμματος ή θα τα δίνει ο χρήστης και απλά αντί να δημιουγείται κατευθείαν το αντικείμενο (όπως αναφέρει στην εκφώνηση δηλαδή "θα δίνονται από το χρήστη") τα δεδομένα που δίνει θα αποθηκεύονται στο αρχείο (εφόσον το επιλέξει); Με μπερδεύει το σημείο "είτε διαβάζοντας ενα αρχείο (employee.txt) στο οποίο αποθηκεύονται οι αντίστοιχες τιμές".
Εν ολίγοις, αυτό που ρωτάω είναι, το αρχείο θα διαβάζεται από τον χρήστη, αλλά από ποιον θα γράφεται;;   :???:


Title: Re: [C++] Άσκηση 10 - 2015/2016 Προθεσμία 23/12/2015 12:00 πμ
Post by: Apostolof on December 18, 2015, 19:25:15 pm
Τα δεδομένα που θα βρίσκονται μέσα στο αρχείο θα πρέπει να τα έχουμε καταχωρήσει εμείς εκτός προγράμματος ή θα τα δίνει ο χρήστης και απλά αντί να δημιουγείται κατευθείαν το αντικείμενο (όπως αναφέρει στην εκφώνηση δηλαδή "θα δίνονται από το χρήστη") τα δεδομένα που δίνει θα αποθηκεύονται στο αρχείο (εφόσον το επιλέξει); Με μπερδεύει το σημείο "είτε διαβάζοντας ενα αρχείο (employee.txt) στο οποίο αποθηκεύονται οι αντίστοιχες τιμές".
Εν ολίγοις, αυτό που ρωτάω είναι, το αρχείο θα διαβάζεται από τον χρήστη, αλλά από ποιον θα γράφεται;;   :???:

Εγώ υποθέτω ότι το αρχείο υπάρχει από πριν και έχει εγγραφές. Δηλαδή κάνω αυτό που λες στην αρχή:
Quote
Τα δεδομένα που θα βρίσκονται μέσα στο αρχείο θα πρέπει να τα έχουμε καταχωρήσει εμείς εκτός προγράμματος