• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 16, 2025, 19:07:21 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 16, 2025, 19:07:21 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[Today at 16:56:56]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by nmpampal
[Today at 16:30:35]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[Today at 15:55:08]

[Αρχές Οικονομίας] Να επι...
by _Trob
[Today at 13:28:21]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[Today at 12:13:45]

Αποτελέσματα Εξεταστικής ...
by Nikos_313
[Today at 12:01:53]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by George_RT
[Today at 10:22:18]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[Today at 01:56:37]

Ισραήλ - Ιράν: Πόλεμος στ...
by Katarameno
[June 15, 2025, 20:08:49 pm]

Αντικατάστασης πυκνωτή σε...
by nmpampal
[June 15, 2025, 16:25:56 pm]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Πότε θα βγει το μάθημα; -...
by Nikos_313
[June 14, 2025, 10:00:55 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]

Αλέξης Τσίπρας, η επιστρο...
by Yamal
[June 14, 2025, 04:42:23 am]

Έναρξη Δηλώσεων Συμμετοχή...
by IEEE SB
[June 14, 2025, 00:10:19 am]

[Δυναμική Συμπεριφορά ΣΗΕ...
by soko_freta
[June 13, 2025, 01:05:36 am]
Στατιστικά
Members
Total Members: 9959
Latest: valco08
Stats
Total Posts: 1426674
Total Topics: 31711
Online Today: 208
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 84
Guests: 98
Total: 182
angelos
BCosT
Carot1456
Captain
stavros0201
chondrosp
kzmekos
lina_zs
DimKaratzas
George15
apal
kraxtopoulos
papajohnn06
thegreekbaron
Giorgos2222
La
Tasaris
PurpleWitch
Annapar
Petros Ts
almpandr
A-TheITGuy
chryssana
kevangelo
despoina15
Soto Gonzalez
thomasdt
tzortzis
Saint_GR
george14
tasos gourd
themis01
Chrisapostol
pipitsenko
lelenia
Giannis_Kako
marnas
Ntinomanolo123
EvanTsir
ntinara
andreaspaper
stloukas
mmikelo
Konstantina Karamani
christi
smantzaa
myrto
smoul
Paparouna
mavropan
kostas.de
anstaik
unreasonable
Konstantinoy
trelogauros7
Angelagfb
vajim
Nikos.Ts
AristeidisM
panagiwt1s
Nekt
vasilis saitis
AcDimitri
sofiastrataki
bigmort
jkara
valantis
gkougeor
maestros
dimitris kiziridis
theodoridoueu
ArsenD
etsilika
Νικη
kourkou
chris_p30
Alex Kosmas
dmoral
kst
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Επίσημη ενημέρωση για Αντιστοίχηση Μαθημάτων ΝΠΣ με ΠΠΣ και η συζήτηση στο forum.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) > [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 3 ... 8 Go Down Print
Author Topic: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11  (Read 13534 times)
megali mpougatsa
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1377



View Profile
[C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« on: November 15, 2012, 19:44:18 pm »

Συζήτηση και απορίες για τη δεύτερη εργασία. Τα άσχετα σχόλια θα διαγράφονται (εκτός και αν είναι αστεία). Εκ του συντονισμού.

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

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

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

Τα προϊόντα της κατηγορίας 3 πωλούνται με το βάρος και για κάθε ένα από αυτά είναι γνωστός ένας κωδικός, το απόθεμα που υπάρχει στην αποθήκη και η τιμή ενός κιλού.

Όταν ένας πελάτης φτάνει στο ταμείο του καταστήματος εισάγεται ο κωδικός και η ποσότητα των προϊόντων που αγόρασε και εκτυπώνεται το ποσό που πρέπει να πληρώσει. Για κάθε προϊόν που πέρασε από το ταμείο πρέπει να εκτυπώνεται και το απόθεμα που έμεινε στην αποθήκη.

Να σχεδιαστεί και να γραφεί το λογισμικό που να διαχειρίζεται την πιο πάνω διαδικασία.

Στο λογισμικό να ορίζεται η κλάση product τα αντικείμενα της οποίας να υλοποιούν  τα διαφορετικά προϊόντα που υπάρχουν στο κατάστημα. Η κλάση να είναι κοινή και για τις τρεις κατηγορίες προϊόντων. Τα αντικείμενα της κλάσης να διαφοροποιούνται ως προς τις κατηγορίες των προϊόντων με τη βοήθεια διαφορετικών συναρτήσεων αρχικών συνθηκών.

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

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

Σημείωση: Οι μεταβλητές της κλάσης product να δηλωθούν στην private περιοχή.


εδιτ: κοντεμνεδ
« Last Edit: November 15, 2012, 19:51:38 pm by κοντεμνεδ » Logged
thanospr
Καταξιωμένος/Καταξιωμένη
***
Posts: 115


View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #1 on: November 17, 2012, 15:42:14 pm »

Αν καταλαβα καλα θα ρωταμε στην main ποσα προιοντα τυπου 1,2,3 υπαρχουν στο καταστημα και θα τρεχουμε αναλογως τον τυπο την αντιστοιχη σ.α.σ;
« Last Edit: November 17, 2012, 15:46:29 pm by thanospr » Logged
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #2 on: November 17, 2012, 16:48:27 pm »

Quote from: thanospr on November 17, 2012, 15:42:14 pm
Αν καταλαβα καλα θα ρωταμε στην main ποσα προιοντα τυπου 1,2,3 υπαρχουν στο καταστημα και θα τρεχουμε αναλογως τον τυπο την αντιστοιχη σ.α.σ;

Για κάθε ένα από τα προϊόντα του καταστήματος (τον αριθμό των οποίων θα εισάγει ο χρήστης):
  • Θα εισάγει ο χρήστης σε ποια κατηγορία ανήκει το εκάστοτε προϊόν (1, 2 ή 3)
  • Θα εισάγει ο χρήστης όλα τα υπόλοιπα στοιχεία που χρειάζονται για ένα προϊόν της κατηγορίας που επέλεξε
  • Θα καλείται ο κατάλληλος constructor (ανάλογα με την κατηγορία του προϊόντος), που θα έχει ως ορίσματα τα στοιχεία του προϊόντος που έδωσε ο χρήστης
Logged

thanospr
Καταξιωμένος/Καταξιωμένη
***
Posts: 115


View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #3 on: November 17, 2012, 17:10:51 pm »

Οκ.Ευχαριστω πολυ.
Logged
Panos_Kanel
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 196



View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #4 on: November 19, 2012, 17:25:27 pm »

Οποιος μπορει να βοηθήσει σχετικά με την αρχικοποιηση...
έχω τα εξής

product *prodarray;
malloc...
for(i=0;i<number;i++){
if type bla bla bla{
product prodarray[ i ] (a,b,c);
}
}
Είναι λάθος φαντάζομαι η αρχικοποίηση των αντικειμένων του πινακα με αυτον τον τρόπο γιατί ο compiler χτυπαει..ξέρει κανείς πως το κάνουμε ;
« Last Edit: November 19, 2012, 17:29:46 pm by Panos_Kanel » Logged

http://www.youtube.com/watch?v=96mMMzgo0ok
johnnykost
Καταξιωμένος/Καταξιωμένη
***
Posts: 282


View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #5 on: November 19, 2012, 18:02:47 pm »

Quote from: Panos_Kanel on November 19, 2012, 17:25:27 pm
Οποιος μπορει να βοηθήσει σχετικά με την αρχικοποιηση...
έχω τα εξής

product *prodarray;
malloc...
for(i=0;i<number;i++){
if type bla bla bla{
product prodarray[ i ] (a,b,c);
}
}
Είναι λάθος φαντάζομαι η αρχικοποίηση των αντικειμένων του πινακα με αυτον τον τρόπο γιατί ο compiler χτυπαει..ξέρει κανείς πως το κάνουμε ;
Κάνε αυτό:
product temp(a,b,c);
prodarray(i)=temp;
Logged
Panos_Kanel
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 196



View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #6 on: November 19, 2012, 18:05:54 pm »

σοβαρά τώρα ..έχασα 2-3 ώρες γι αυτό   Grin
ευχαριστώ! Cheesy
Logged

http://www.youtube.com/watch?v=96mMMzgo0ok
bakeneko
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 7702


?


View Profile WWW
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #7 on: November 19, 2012, 18:14:56 pm »

Υπάρχει κάποιος λόγος να κάνουμε 3 διαφορετικούς κονστράκτορς; Αφού ουσιαστικά το μόνο που υπάρχει διαφορετικό είναι ότι η κατηγορία 2 απλά έχει τη δυνατότητα προσφοράς ενώ τα άλλα όχι, κάτι που "επιλύεται" απλά με ένα if... ανέφερε ότι πρέπει και κάποια άλλη μεταβλητή πρέπει να είναι διαφορετική;
Logged

Infinite Loop
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 706


We are the Harbinger of your perfection.


View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #8 on: November 19, 2012, 18:16:06 pm »

Quote from: johnnykost on November 19, 2012, 18:02:47 pm
Quote from: Panos_Kanel on November 19, 2012, 17:25:27 pm
Οποιος μπορει να βοηθήσει σχετικά με την αρχικοποιηση...
έχω τα εξής

product *prodarray;
malloc...
for(i=0;i<number;i++){
if type bla bla bla{
product prodarray[ i ] (a,b,c);
}
}
Είναι λάθος φαντάζομαι η αρχικοποίηση των αντικειμένων του πινακα με αυτον τον τρόπο γιατί ο compiler χτυπαει..ξέρει κανείς πως το κάνουμε ;
Κάνε αυτό:
product temp(a,b,c);
prodarray(i)=temp;

Ουτε καν:

Code:
prodarray[i] = product(a,b,c);
Logged

This one doesn't have time for your solid waste excretions.
Infinite Loop
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Posts: 706


We are the Harbinger of your perfection.


View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #9 on: November 19, 2012, 18:16:59 pm »

Quote from: bakeneko on November 19, 2012, 18:14:56 pm
Υπάρχει κάποιος λόγος να κάνουμε 3 διαφορετικούς κονστράκτορς; Αφού ουσιαστικά το μόνο που υπάρχει διαφορετικό είναι ότι η κατηγορία 2 απλά έχει τη δυνατότητα προσφοράς ενώ τα άλλα όχι, κάτι που "επιλύεται" απλά με ένα if... ανέφερε ότι πρέπει και κάποια άλλη μεταβλητή πρέπει να είναι διαφορετική;

Υποθετω οτι θελει να το κανουμε ετσι για να μας μυησει στα αποκρυφα μυστηρια της υπερφορτωσης... Roll Eyes
Logged

This one doesn't have time for your solid waste excretions.
bakeneko
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 7702


?


View Profile WWW
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #10 on: November 19, 2012, 18:18:15 pm »

Α οκ, έτσι βγάζει νόημα Tongue
Logged

dimi93gr
Καταξιωμένος/Καταξιωμένη
***
Posts: 115



View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #11 on: November 19, 2012, 22:44:24 pm »

Δεν χρειάζεται παραγόμενες κλάσσεις;
Logged
Exomag
Veteran
Διεστραμμένος
******
Gender: Male
Posts: 22045


unfortunate...


View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #12 on: November 20, 2012, 00:35:31 am »

Quote from: dimi93gr on November 19, 2012, 22:44:24 pm
Δεν χρειάζεται παραγόμενες κλάσσεις;

Απ' ότι λέει η εκφώνηση εγώ καταλαβαίνω πως όχι, δεν χρειάζεται παραγόμενες κλάσεις...
Logged

Luffy
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 636



View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #13 on: November 20, 2012, 15:52:27 pm »

απο οτι καταλαβα ο κωδικος καθε προιοντος δηλωνει σε ποια κατηγορια ανηκει, σωστα?
Δηλαδη θα ειναι 1,2 η 3.
Logged
varvoutis
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 746


http://www.nietzsche-quotes.com/


View Profile
Re: [C++] Άσκηση B - 2012/2013 - Προθεσμία 25/11
« Reply #14 on: November 20, 2012, 16:26:59 pm »

Quote from: Luffy on November 20, 2012, 15:52:27 pm
απο οτι καταλαβα ο κωδικος καθε προιοντος δηλωνει σε ποια κατηγορια ανηκει, σωστα?
Δηλαδη θα ειναι 1,2 η 3.

Δε νομίζω. Tουλάχιστον εγώ το υλοποίησα διαφορετικά. Ο κωδικός του κάθε προϊόντος, υποθέτω, ότι είναι ένα barcode σαν αυτά στο super market. Δηλαδή, μπορεί ένα απορρυπαντικό ρούχων να ανήκει στην κατηγορία 1 (να έχει id=1) και να έχει και barcode=12345, ενώ άλλης μάρκας απορρυπαντικό ρούχων να ανήκει επίσης στην κατηγορία 1 (id προϊόντος 1) αλλά να έχει barcode=67890.

Εγώ έχω μια απορία στο όρισμα της συνάρτησης sale(). Λέει ότι αυτό θα είναι ένα αντικείμενο τύπου product. Έτσι όμως αυτό που θα επεξεργάζεται η sale() θα είναι ένα αντίγραφο του αντικειμένου που υπάρχει στον πίνακα αντικειμένων και όχι το ίδιο το αντικείμενο. Επομένως πώς θα αλλάζουμε το απόθεμα; Μάλλον σαν όρισμα θέλει έναν pointer τύπου product, ή τώρα που το ξανασκέφτομαι το όρισμα πρέπει να είναι μια αναφορική παράμετρος.
Logged

Τι θα γίνει Μπόκολη;
Pages: [1] 2 3 ... 8 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...