THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: George_RT on November 14, 2013, 14:24:47 pm



Title: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: George_RT on November 14, 2013, 14:24:47 pm
Άσκηση C

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

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

Να γραφεί το λογισμικό στο οποίο να ορίζονται:

α) Η κλάση data η οποία να υλοποιεί όλα τα απαραίτητα δεδομένα για την περιοχή. Με τη δημιουργία αντικειμένων στον τύπο της κλάσης να διαβάζεται ο αριθμός των ζωνών, οι αντικειμενικές αξίες των οικοπέδων και των κτηρίων για κάθε ζώνη καθώς και οι αντίστοιχοι συντελεστές φορολόγησης. Ακόμη να διαβάζεται ο συντελεστής μείωσης του φόρου για τις αποθήκες καθώς και οι δύο συντελεστές φορολόγησης για τα αγροτεμάχια.

β) Η κλάση ground η οποία υλοποιεί ένα οικόπεδο ή ένα αγροτεμάχιο. Η κλάση να διαθέτει δύο συναρτήσεις αρχικών συνθηκών από τις οποίες η πρώτη να υλοποιεί ένα οικόπεδο και να δέχεται ως όρισματα τη ζώνη και το εμβαδόν του οικοπέδου. Η συνάρτηση να καταχωρεί για το αντίστοιχο αντικείμενο, τη ζώνη, το εμβαδόν, την αντικειμενική τιμή της ζώνης και τον αντίστοιχο συντελεστή φορολόγησης. Η δεύτερη συνάρτηση να υλοποιεί ένα αγροτεμάχιο και να δέχεται ως ορίσματα το εμβαδόν του αγροτεμαχίου και το είδος της καλλιέργειας. Η συνάρτηση να καταχωρεί για τη ζώνη την τιμή 0, το εμβαδόν του αγροτεμαχίου και τον αντίστοιχο συντελεστή φορολόγησης. Η κλάση να διαθέτει τις κατάλληλες συναρτήσεις για τον υπολογισμό του φόρου για το οικόπεδο ή για το αγροτεμάχιο.

γ) Η κλάση building η οποία να υλοποιεί οικίες ή αποθήκες. Η κλάση να διαθέτει δύο συναρτήσεις αρχικών συνθηκών από τις οποίες η πρώτη να υλοποιεί μια κατοικία και να δέχεται ως ορίσματα τη ζώνη, το εμβαδόν της κατοικίας και τον αριθμό των ορόφων. Η συνάρτηση να καταχωρεί την τιμή της ζώνης το εμβαδόν της κατοικίας, την αντικειμενική τιμή της ζώνης για τα κτήρια, τον αντίστοιχο συντελεστή φορολόγησης και τον αριθμό των ορόφων. Η δεύτερη συνάρτηση να υλοποιεί μια αποθήκη και να δέχεται ως ορίσματα τη ζώνη και το εμβαδόν της αποθήκης. Η συνάρτηση να καταχωρεί τη ζώνη, το εμβαδόν της αποθήκης την αντικειμενική τιμή της ζώνης για τα κτήρια και τον αντίστοιχό συντελεστή φορολόγησης. Η κλάση να διαθέτει τις κατάλληλες συναρτήσεις για τον υπολογισμό του φόρου για την κατοικία  ή για τον αποθήκη.

δ) Η κλάση property ως private παραγόμενη από τις κλάσεις ground και building η οποία να υλοποιεί μια ιδιοκτησία. Η κλάση να διαθέτει τις κατάλληλες συναρτήσεις για τον υπολογισμό του φόρου που αντιστοιχεί στην ιδιοκτησία.

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

 

Βοηθητικές παρατηρήσεις

Το πρόγραμμα να ακολουθεί την αρχή της ενσωμάτωσης.

Να θεωρηθεί ότι σε κάθε οικόπεδο ή αγροτεμάχιο υπάρχει και ένα μοναδικό κτήριο που είναι είτε κατοικία είτε αποθήκη.

Να θεωρήσετε ότι όλα τα αγροτεμάχια ανήκουν στη ζώνη 0

Αφού ορίσετε ένα αντικείμενο τύπου data όλα τα απαραίτητα δεδομένα για την υλοποίηση των αντικειμένων των άλλων κλάσεων (αντικειμενικές αξίες ,συντελεστές φορολόγησης κ.λ.π) να τα παίρνετε από αυτό το αντικείμενο.

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

Οι ζώνες να ορίζονται ως αριθμοί τύπου int αρχίζοντας από το 0.

Για τη λήψη της ημερομηνίας από τον υπολογιστή σας να χρησιμοποιήσετε τη συνάρτηση getdate(…) ή άλλη αντίστοιχη συνάρτηση της βιβλιοθήκης του μεταγλωττιστή που χρησιμοποιείτε.


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: Mr K on November 17, 2013, 19:29:41 pm
Και ξεκινάω. Πως θα προσπελάσουμε τα στοιχεια του αντικειμενου Data ΧΩΡΙΣ να αλλάξουμε τα ορισματα των constructors στις κλάσεις ground και building;

(Με getters και setters στην main δεν γίνεται, γιατι τα ground και building δημιουργούνται μέσα στην property)

Επισης: Τι σημαίνει για τις προσπελάσεις η private κληρονομικότητα; Δεν μπορω να προσπελάσω τίποτα στην property απο τα στοιχεια των ground και building; Αν ναι πως θα υπολογίζω το tax?


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: gdims on November 21, 2013, 01:28:04 am
Θα δημιουργησεις γενικη μεταβλητη στον τυπο της data !!


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: PureForm on November 21, 2013, 01:43:35 am
λιγο οφφτοπικ  :P
Quote
Μπερδεύεσαι. Διαφωνείς.Απογοητεύεσαι. Ξαναπροσπαθείς. Ενθαρρύνεσαι. Επιτυγχάνεις. Βλεπεις περα απο τα ορατα. Σκέφτεσαι πέρα από αυτά που μπορεις.
Και τελικα Ζεις. Με εντονα συναισθήματα και καθε στιγμή μετράει.

Και όλα αυτά σε μια μικρούλα εκφώνηση της C++...

γαμωσταυριζεις ξεχασες να βαλεις


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: Mr K on November 21, 2013, 11:45:43 am
Θα δημιουργησεις γενικη μεταβλητη στον τυπο της data !!

Στο δομημένο απαγορευόταν οι γενικές μεταβλητές έξω απο την main.Είπε ξεκάθαρα οτι επιτρέπεται στην c++;

ΝΕΑ ΕΡΩΤΗΣΗ: κανεις που να έχει codeblocks και να έκανε την έξοδο απο τον ατερμων βρόγχο με την ημερομηνία; Καμιά ιδέα;

γαμωσταυριζεις ξεχασες να βαλεις

 ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: vasilis1005 on November 21, 2013, 23:44:41 pm
λεει οτι η ground πρεπει να παιρνει σαν ορισμα το εμβαδον (ειτε οικοπεδου ειτε αγροτεμαχιου).
το εμβαδον ομως που θα το ορισουμε (μεσα στην data;) ;


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: PureForm on November 22, 2013, 02:14:32 am
Το εμβαδο θα τ διβαζεις στη μαιν και μετα θα παιρναει στην προπερτι που ειν η βασικη κ απ κει στισ παραγωμενες μεσω τις κληρονομικοτητας


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: Fcoriolis on November 22, 2013, 03:36:51 am
Το εμβαδο θα τ διβαζεις στη μαιν και μετα θα παιρναει στην προπερτι που ειν η βασικη κ απ κει στισ παραγωμενες μεσω τις κληρονομικοτητας
Το εμβαδόν πως θα το ορίσουμε διανυσματικά;


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: vasilis1005 on November 22, 2013, 13:33:02 pm
Το εμβαδο θα τ διβαζεις στη μαιν και μετα θα παιρναει στην προπερτι που ειν η βασικη κ απ κει στισ παραγωμενες μεσω τις κληρονομικοτητας
Το εμβαδόν πως θα το ορίσουμε διανυσματικά;


οταν λες διανυσματικα τι εννοεις; (το εμβαδον δεν θα εχει απλα μια τιμη;)

επισης κατι ακομα στην αρχη που λεει για ατικειμενικη τιμη ανα μετρο λογικα εννοει ανα τετραγωνικο μετρο;

και μεσα στην data οταν οριζουμε την αντικειμενικη αξια των οικοπεδων και των κτιριων της ζωνης θα ειναι οπως στο π.χ.;
(π.χ. αν στη ζωνη 1 εχουμε 3 οικοπεδα που αξιζουν απο 1000 ευρω το καθενα και 3 κτιρια που αξιζουν απο 3000 το καθενα η αντικειμενικη αξια των οικοπεδων θα ειναι 3000 και των κτιριων 9000;)


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: PureForm on November 22, 2013, 13:54:55 pm
Quote
οταν λες διανυσματικα τι εννοεις; (το εμβαδον δεν θα εχει απλα μια τιμη;)
σε τρολλαρει


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: reservoir dog on November 23, 2013, 02:11:01 am
οι μεταβλητες της κλασης ground θα αφορουν και τους 2 constructor?


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: Mr K on November 23, 2013, 12:24:22 pm
οι μεταβλητες της κλασης ground θα αφορουν και τους 2 constructor?

Οχι οι μεταβλητες που θα αφορουν και τους δυο ειναι μονο το εμβαδον

Μετά ο ένας θα έχει τη ζώνη, την αντικειμενική αξια και το συντελεστή φορολόγησης και ο άλλος το συντελεστή για τα σπαρτά (δενδροκαλλιέργειες, ετήσιες καλλιέργειες)

Πρόσεξε οτι όλα αυτά δεν θα τα παίρνεις με ορίσματα. Μόνο αυτά που λέει (εμβαδον, ζωνη και ειδος καλλιέργειας). Για τα υπολοιπα πρέπει να βρείς άλλο τρόπο.


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: vasilis1005 on November 23, 2013, 15:24:43 pm
μηπως μπορει να εξηγησει καποιος τι θα κανει η property ποσους constructor θα εχει,με τι ορισματα κτλ.

(γενικα καμια παραπανω πληροφορια;)


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: απλυτος on November 23, 2013, 20:39:02 pm
Quote
Ο φόρος για τα οικόπεδα υπολογίζεται ως το γινόμενο του εμβαδού του οικοπέδου επί την αντικειμενική τιμή της ζώνης που έχει οριστεί για τα οικόπεδα επί τον αντίστοιχο συντελεστή φορολόγησης.

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

Quote
Ο φόρος για τις αποθήκες υπολογίζεται ως το γινόμενο του εμβαδού της αποθήκης επί την αντικειμενική τιμή της ζώνης για τα κτήρια επί τον αντίστοιχο συντελεστή φορολόγησης.


όλοι αυτοί οι αντίστοιχοι συντελεστές φορολόγησης, να υποθέσω ότι είναι ίδιοι;


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: vasilis1005 on November 23, 2013, 21:33:18 pm
Quote
Ο φόρος για τα οικόπεδα υπολογίζεται ως το γινόμενο του εμβαδού του οικοπέδου επί την αντικειμενική τιμή της ζώνης που έχει οριστεί για τα οικόπεδα επί τον αντίστοιχο συντελεστή φορολόγησης.

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

Quote
Ο φόρος για τις αποθήκες υπολογίζεται ως το γινόμενο του εμβαδού της αποθήκης επί την αντικειμενική τιμή της ζώνης για τα κτήρια επί τον αντίστοιχο συντελεστή φορολόγησης.


όλοι αυτοί οι αντίστοιχοι συντελεστές φορολόγησης, να υποθέσω ότι είναι ίδιοι;

απο οτι καταλαβα ο συντελεστης φορολογησης για τα κτηρια (κατοικια,αποθηκη) θα ειναι ο ιδιος ενω για τα οικοπεδα ξεχωριστος.


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: vasilis1005 on November 23, 2013, 22:13:43 pm
πως μπορω να χρησιμοποιησω τα στοιχεια που εχω ορισει μεσα στην data μεσα στην ground μιας και δεν μπορω να αλλαξω τα ορισματα της;

(ειδα οτι καποιος απο πανω ειπε για global μεταβλητη αλλα πως γινεται μεσα στην data να βαλω global;)
(μηπως γινεται να κανω ολη την κλαση global;)


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: Bazir on November 23, 2013, 23:57:40 pm
πως μπορω να χρησιμοποιησω τα στοιχεια που εχω ορισει μεσα στην data μεσα στην ground μιας και δεν μπορω να αλλαξω τα ορισματα της;

(ειδα οτι καποιος απο πανω ειπε για global μεταβλητη αλλα πως γινεται μεσα στην data να βαλω global;)
(μηπως γινεται να κανω ολη την κλαση global;)

Προσθεσε το αντικειμενο της data σαν ορισμα στον constructor της ground και ετσι θα μπορεις να διαχειριζεσαι τα public στοιχεια της data


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: vasilis94 on November 24, 2013, 14:44:00 pm
πως μπορω να χρησιμοποιησω τα στοιχεια που εχω ορισει μεσα στην data μεσα στην ground μιας και δεν μπορω να αλλαξω τα ορισματα της;

(ειδα οτι καποιος απο πανω ειπε για global μεταβλητη αλλα πως γινεται μεσα στην data να βαλω global;)
(μηπως γινεται να κανω ολη την κλαση global;)

Προσθεσε το αντικειμενο της data σαν ορισμα στον constructor της ground και ετσι θα μπορεις να διαχειριζεσαι τα public στοιχεια της data

Όσο για την global (αν το θες έτσι) απλώς ορίζεις αντικείμενο (αυτό είναι local ή global) έξω από την main. Μπορείς και κατευθείαν, πχ.:
class data{
...
}d;


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: vasilis1005 on November 24, 2013, 15:00:56 pm
πως μπορω να χρησιμοποιησω τα στοιχεια που εχω ορισει μεσα στην data μεσα στην ground μιας και δεν μπορω να αλλαξω τα ορισματα της;

(ειδα οτι καποιος απο πανω ειπε για global μεταβλητη αλλα πως γινεται μεσα στην data να βαλω global;)
(μηπως γινεται να κανω ολη την κλαση global;)

Προσθεσε το αντικειμενο της data σαν ορισμα στον constructor της ground και ετσι θα μπορεις να διαχειριζεσαι τα public στοιχεια της data

Όσο για την global (αν το θες έτσι) απλώς ορίζεις αντικείμενο (αυτό είναι local ή global) έξω από την main. Μπορείς και κατευθείαν, πχ.:
class data{
...
}d;

οκ θενξ, τελικα το εβαλα σαν ορισμα στον constructor.

(την getdate() για dev πως την χρησιμοποιουμε (εψαξα αλλα δεν εβγαλα ακρη); )


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: L on November 24, 2013, 15:04:52 pm
Θα δημιουργησεις γενικη μεταβλητη στον τυπο της data !!
Στο δομημένο απαγορευόταν οι γενικές μεταβλητές έξω απο την main.Είπε ξεκάθαρα οτι επιτρέπεται στην c++;

Νομίζω πρέπει κάποιος να γράψει ένα guide με το τι επιτρέπει ο Κορτέσης  ::)


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: PureForm on November 24, 2013, 17:08:06 pm
Θα δημιουργησεις γενικη μεταβλητη στον τυπο της data !!
Στο δομημένο απαγορευόταν οι γενικές μεταβλητές έξω απο την main.Είπε ξεκάθαρα οτι επιτρέπεται στην c++;

Νομίζω πρέπει κάποιος να γράψει ένα guide με το τι επιτρέπει ο Κορτέσης  ::)
ενα guide για καθε εκφωνηση επισης


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: giorgos4934 on November 24, 2013, 17:10:15 pm
εχει κανεις καμια ιδεα για το πως δουλευουμε τις ημερομηνιες? υποθετω οτι πρεπει να δωσουμε σε μια μεταβλητη την τιμη μιας ημερομηνιας και μετα σε καθε επαναληψη να συγκρινουμε με την τωρινη ημερομηνια αλλα πως το κανουμε αυτο? επισης,εγω  δημιουργησα το αντικειμενο data σαν γενικη μεταβλητη και μετα στις κλασεις το χρησιμοποιησα με το ονομα του και δεν το εδωσα στους constructor γιατι ο Κορτεσης οριζει αυστηρα τα ορισματα των constructor. Μου φαινεται λιγο fail να δουλευουν οι κλασεις μονο με αυτο το ονομα αντικειμενου αλλα δεν νομιζω πως γινοταν αλλιως. Και κατι τελευταιο, μεσα στην main εχουμε 4 περιπτωσεις δημιουργιας αντικειμενου property.Φυσικα τις εβαλα σε 4 If. Αλλα αφου βγαινω απο τις if και παω να χρησιμοποιησω το αντικειμενο μου χτυπαει error γιατι λεει οτι δεν το εχω ορισει(λογω της περιπτωσης να μην μπει σε καμια if). Το ελυσα με δηλωση pointer. εχει κανεις καμια καλυτερη ιδεα?


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: L on November 24, 2013, 17:23:13 pm
εγω  δημιουργησα το αντικειμενο data σαν γενικη μεταβλητη και μετα στις κλασεις το χρησιμοποιησα με το ονομα του και δεν το εδωσα στους constructor γιατι ο Κορτεσης οριζει αυστηρα τα ορισματα των constructor. Μου φαινεται λιγο fail να δουλευουν οι κλασεις μονο με αυτο το ονομα αντικειμενου αλλα δεν νομιζω πως γινοταν αλλιως.

Έτσι το σκέφτηκα κι εγώ.
Στα άλλα θα απαντήσω λίγο αργότερα, αν δε με προλάβει κάποιος (πριν λίγο ξεκίνησα).


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: L on November 24, 2013, 18:00:53 pm
εχει κανεις καμια ιδεα για το πως δουλευουμε τις ημερομηνιες? υποθετω οτι πρεπει να δωσουμε σε μια μεταβλητη την τιμη μιας ημερομηνιας και μετα σε καθε επαναληψη να συγκρινουμε με την τωρινη ημερομηνια αλλα πως το κανουμε αυτο?

Καλά το πας. Θα βρεις εδώ (http://www.tutorialspoint.com/cplusplus/cpp_date_time.htm) ό,τι χρειαστείς. Είναι σχετικά απλό.

(Sorry για το double post  :P)


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: giorgos4934 on November 24, 2013, 18:14:22 pm
εχει κανεις καμια ιδεα για το πως δουλευουμε τις ημερομηνιες? υποθετω οτι πρεπει να δωσουμε σε μια μεταβλητη την τιμη μιας ημερομηνιας και μετα σε καθε επαναληψη να συγκρινουμε με την τωρινη ημερομηνια αλλα πως το κανουμε αυτο?

Καλά το πας. Θα βρεις εδώ (http://www.tutorialspoint.com/cplusplus/cpp_date_time.htm) ό,τι χρειαστείς. Είναι σχετικά απλό.

(Sorry για το double post  :P)


το βρηκα και εγω αλλα αυτο ειναι μια απλη εκτυπωση της ημερομηνιας και ωρας..εγω πως θα βαλω την συγκρινομενη ημερομηνια και ωρα σε μια αλλη μεταβλητη για να συγκρινω? να την εκτυπωσω βρηκα τροπους..για συγκριση δεν βρηκα.


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: L on November 24, 2013, 18:21:32 pm
εχει κανεις καμια ιδεα για το πως δουλευουμε τις ημερομηνιες? υποθετω οτι πρεπει να δωσουμε σε μια μεταβλητη την τιμη μιας ημερομηνιας και μετα σε καθε επαναληψη να συγκρινουμε με την τωρινη ημερομηνια αλλα πως το κανουμε αυτο?

Καλά το πας. Θα βρεις εδώ (http://www.tutorialspoint.com/cplusplus/cpp_date_time.htm) ό,τι χρειαστείς. Είναι σχετικά απλό.

(Sorry για το double post  :P)


το βρηκα και εγω αλλα αυτο ειναι μια απλη εκτυπωση της ημερομηνιας και ωρας..εγω πως θα βαλω την συγκρινομενη ημερομηνια και ωρα σε μια αλλη μεταβλητη για να συγκρινω? να την εκτυπωσω βρηκα τροπους..για συγκριση δεν βρηκα.

Δε λέει συγκεκριμένα για σύγκριση. Όμως μπορείς να κάνεις μια δομή tm με την ημερομηνία προθεσμίας (να πειράξεις τις μεταβλητές της, μία - μία) και μετά να κάνεις convert σε time_t με αυτήν (http://www.cplusplus.com/reference/ctime/mktime/) τη συνάρτηση. Μετά οι ποσότητες θα είναι συγκρίσιμες.


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: giorgos4934 on November 24, 2013, 18:28:37 pm
εχει κανεις καμια ιδεα για το πως δουλευουμε τις ημερομηνιες? υποθετω οτι πρεπει να δωσουμε σε μια μεταβλητη την τιμη μιας ημερομηνιας και μετα σε καθε επαναληψη να συγκρινουμε με την τωρινη ημερομηνια αλλα πως το κανουμε αυτο?

Καλά το πας. Θα βρεις εδώ (http://www.tutorialspoint.com/cplusplus/cpp_date_time.htm) ό,τι χρειαστείς. Είναι σχετικά απλό.

(Sorry για το double post  :P)


το βρηκα και εγω αλλα αυτο ειναι μια απλη εκτυπωση της ημερομηνιας και ωρας..εγω πως θα βαλω την συγκρινομενη ημερομηνια και ωρα σε μια αλλη μεταβλητη για να συγκρινω? να την εκτυπωσω βρηκα τροπους..για συγκριση δεν βρηκα.

Δε λέει συγκεκριμένα για σύγκριση. Όμως μπορείς να κάνεις μια δομή tm με την ημερομηνία προθεσμίας (να πειράξεις τις μεταβλητές της, μία - μία) και μετά να κάνεις convert σε time_t με αυτήν (http://www.cplusplus.com/reference/ctime/mktime/) τη συνάρτηση. Μετά οι ποσότητες θα είναι συγκρίσιμες.
ναι τωρα που ειδα το κατω καλυτερα ετσι γινεται.. αλλα σκεφτηκα να παρω τη δομη της τωρινης ωρας και να συγκρινω μια μια τις μεταβλητες με τιμες που θα δωσει ο χρηστης αρχικα..anyway εισαι ωραιος..καλη συνεχεια.


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: reservoir dog on November 24, 2013, 19:08:01 pm
πως μπορω να χρησιμοποιησω τα στοιχεια που εχω ορισει μεσα στην data μεσα στην ground μιας και δεν μπορω να αλλαξω τα ορισματα της;

(ειδα οτι καποιος απο πανω ειπε για global μεταβλητη αλλα πως γινεται μεσα στην data να βαλω global;)
(μηπως γινεται να κανω ολη την κλαση global;)

Προσθεσε το αντικειμενο της data σαν ορισμα στον constructor της ground και ετσι θα μπορεις να διαχειριζεσαι τα public στοιχεια της data

ναι αλλα αυτα που θελουμε να διαχειριστουμε εμεις μεσω της ground δεν πρεπει να ειναι private στοιχεια της data?


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: L on November 24, 2013, 19:26:39 pm
πως μπορω να χρησιμοποιησω τα στοιχεια που εχω ορισει μεσα στην data μεσα στην ground μιας και δεν μπορω να αλλαξω τα ορισματα της;

(ειδα οτι καποιος απο πανω ειπε για global μεταβλητη αλλα πως γινεται μεσα στην data να βαλω global;)
(μηπως γινεται να κανω ολη την κλαση global;)

Προσθεσε το αντικειμενο της data σαν ορισμα στον constructor της ground και ετσι θα μπορεις να διαχειριζεσαι τα public στοιχεια της data

ναι αλλα αυτα που θελουμε να διαχειριστουμε εμεις μεσω της ground δεν πρεπει να ειναι private στοιχεια της data?

Θα κάνεις getters. 8))

εδιτ: Και αυτό είτε με το αντικείμενο της data ως όρισμα, είτε ως global (για το αν πρέπει να είναι global ή όχι, συμφωνώ με τον giorgos4934, όπως είπα παραπάνω).


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: reservoir dog on November 24, 2013, 19:29:06 pm
το φοβομουν.


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: L on November 24, 2013, 19:34:57 pm
Γενικά, πρέπει

Το πρόγραμμα να ακολουθεί την αρχή της ενσωμάτωσης.

;)


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: Mr K on November 24, 2013, 20:05:17 pm

εδιτ: Και αυτό είτε με το αντικείμενο της data ως όρισμα, είτε ως global (για το αν πρέπει να είναι global ή όχι, συμφωνώ με τον giorgos4934, όπως είπα παραπάνω).

Ως όρισμα απαγορεύεται, λέει ξεκάθαρα τα ορίσματα στην εκφώνηση.

Ως global απαγορεύεται, οι global μεταβλητές ειναι σημείο που απαγορεύει και κόβει ο κορτέσης.

Γ Τρόπος:
Αφου καλεις εναν κονστρακτορ της property στην main και περάσεις με ορισματα οτι σου λέει μετά καλείς (στη main) setter της property και περνας τιμες απο το αντικειμενο της data. Αυτοί οι setters με την σειρά τους καλούν νέους setters για τις μεταβλητες των ground και building. Έτσι περνας αντικειμενικες αξιες και συντελεστες φορολογησης, μειωσης, σπαρτων κλπ

Κύριε L είσαι γαμάτος αλλά αν δεν προσαρμοστείς θα πας για πτυχίο με c++  :P :P


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: L on November 24, 2013, 20:14:19 pm
Παράνοια :D
Βασικά, για όσους παρακολουθούν, ισχύει αυτό που λέει ο Δον Κιχώτης για τις global; Δια ροπάλου απαγόρευση;


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: L on November 24, 2013, 20:52:21 pm
Sorry για το double post, όμως τελειώνει η διορία και καλό είναι να το δείτε. Ο τρόπος που είπε ο Δον Κιχώτης δεν είναι σωστός, γιατί αν διαβάσετε την εκφώνηση, λέει ότι η συνάρτηση αρχικών συνθηκών είναι αυτή πρέπει να καταχωρεί και τα στοιχεία που δεν είναι ορίσματα. Οπότε καλή σκέψη οι setters, αλλά πρακτικά στους απαγορεύει κι αυτούς.


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: reservoir dog on November 24, 2013, 21:11:50 pm
ελα μωρε με τον τρελο, αντε κουρασε. Εχει ανεβει μονο η πρωτη εργασια λυμενη.


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: PureForm on November 24, 2013, 21:20:52 pm
δεν ξερω αν το απαγορευει ο κορτεσης παντωσ ο συμεωνιδης το εχει κανει σε ασκηση που εκανε μεσα στην ταξη και εχει ανεβασει στο ετημμυ αυτο με το να ορισεις την data ως global και μαλιστα το ειχε θεωρησει και ως εξυπνο τρικ


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: Mr K on November 24, 2013, 21:30:42 pm
Sorry για το double post, όμως τελειώνει η διορία και καλό είναι να το δείτε. Ο τρόπος που είπε ο Δον Κιχώτης δεν είναι σωστός, γιατί αν διαβάσετε την εκφώνηση, λέει ότι η συνάρτηση αρχικών συνθηκών είναι αυτή πρέπει να καταχωρεί και τα στοιχεία που δεν είναι ορίσματα. Οπότε καλή σκέψη οι setters, αλλά πρακτικά στους απαγορεύει κι αυτούς.

Σωστό, άρα το αντικείμενο global. Δεν μένει άλλη λύση

δεν ξερω αν το απαγορευει ο κορτεσης παντωσ ο συμεωνιδης το εχει κανει σε ασκηση που εκανε μεσα στην ταξη και εχει ανεβασει στο ετημμυ αυτο με το να ορισεις την data ως global και μαλιστα το ειχε θεωρησει και ως εξυπνο τρικ

Κάποιος που παρακολουθεί θα έκανε μεγάλη χάρη αν πήγαινε και ρωτούσε τον Κορτέση (καλος ο συμεωνίδης αλλα δεν μας κόβει αυτός) αν επιτρέπονται οι global μεταβλητές. Μπορει να το αναλάβει κάποιος;


Title: Re: [C++] Άσκηση Γ - 2013/2014 - Προθεσμία 24/11
Post by: L on November 24, 2013, 21:50:12 pm
Ισχύει. Βασικά Flamingo ψήσου να κάνουμε το guide που είπα  :P

Κυρίως τα προβλήματα είναι στο ότι
Quote from: Kortesis
Το πρότυπο της γλώσσας που χρησιμοποιήθηκε είναι αυτό που υποστηρίζει ο μεταγλωττιστής της εταιρίας Borland.
!= standard C++ και, γενικά, στη χρήση outdated πραγμάτων / μη χρήση νέων πραγμάτων. Αν, και, αυτά τα προβλήματα τα έχουν περισσότερο όσοι βλέπουν παραπάνω πράγματα από το μάθημα (βιβλία, internet).