OrdersHandling (Σχολιασμός παραδοτέων)
Καταγράφονται παρακάτω σχόλια πάνω σε παραδοτέα που έχουν ήδη κατατεθεί.
1. Η ενότητα 12.2 δίνει τα ελάχιστα στοιχεία που πρέπει να έχει μια παραγγελία.
2. Η δήλωση char arxeio[100]; είναι προτιμότερο να γίνει onomaArxeiou ή filename.
3. Το function prototype
int TakeOrders(parageleia parageleies[],int plithos);
δεν ικανοποιεί τις απαιτήσεις της άσκησης. Η ενότητα 12.6.2 εξηγεί αναλυτικά το πως πρέπει να υλοποιηθεί η λειτουργικότητα «Καταχώρηση Παραγγελίας». Και είναι σαφές ότι «Καταχώρηση Παραγγελίας» σημαίνει καταχώρηση μιας παραγγελίας.
Ο πίνακας (ή οι πίνακες παραγγελιών αν έχετε επιλέξει αυτή την τεχνική υλοποίησης) είναι ορατός από όλες τις συναρτήσεις που υλοποιούν τις επιλογές του μενού επομένως προτιμάται η δήλωση του ως καθολικής μεταβλητής.
Η ίδια ενότητα αναφέρεται στην μεταβλητή lastOrder. H χρήση μεταβλητής int plithos=0; Για την αποθήκευση του συνόλου των παραγγελιών είναι λάθος.
Το ίδιο ισχύει και για τις επιλογές Εκτέλεση και Εξόφληση παραγγελίας. Δρουν πάνω σε μία παραγγελία με βάση το μοντέλο εξυπηρέτησης first come first served (ενότητα 12.5.4).
4. Η χρήση της πρότασης
while(0==0){
δηλώνει ότι δεν έχουμε κατανοήσει την πρόταση ελέγχου ροής προγράμματος while και ότι δεν έχουμε διαβάσει τις οδηγίες δόμησης της main (ενότητα 12.6.1).
5. Η επιλογή «Φόρτωση εκκρεμών παραγγελιών από αρχείο» πρέπει να φορτώνει στην μνήμη (δηλαδή στον πίνακα παραγγελιών) τις παραγγελίες από το αρχείο στο οποίο έχουν καταχωρηθεί και όχι να τις εμφανίζει. Φυσικά θα πρέπει να ενημερώνει και την μεταβλητή lastOrder. Ανάλογη είναι και η λειτουργικότητα όλων των επιλογών που αναφέρονται σε φόρτωση από αρχείο.
6. Το function prototype
int GiveOrders(parageleia parageleies[],int plithos);
για την επιλογή «Εμφάνιση παραγγελιών πελάτη»
είναι λάθος καθώς η συνάρτηση δεν επιστρέφει τίποτε. Άρα είναι void. Επιπλέον ένα όνομα όπως displayClientOrders είναι προτιμότερο καθώς δηλώνει ακριβώς τη λειτουργικότητα που υλοποιεί η συνάρτηση.
7. Ο πηγαίος κώδικας σε αρχείο .c και όχι σε pdf.
8. Δεν δηλώνουμε ποτέ μεταβλητή i ως γενική (Το τονίσαμε στην διάλεξη της 12ης εβδομάδας και δείξαμε ένα δύσκολα εντοπιζόμενο πρόβλημα ).
9. Ο παρακάτω κώδικας που παραδόθηκε σε pdf σε συνδυασμό με την αναφορά που αναφέρει ως πλήρως υλοποιημένες τις αντίστοιχες λειτουργίες οδηγεί σε μηδενισμό του παραδοτέου και αποτελεί ένδειξη προσπάθειας εξαπάτησης.
int main(int argc, char *argv[]) {
int userCommand;
while(userCommand=getUserCommand()!=0){
switch(userCommand){
case 1:
addOrder;
break;
case 2:
displayOrders;
break;
case 3:
displayPendingOrders;
break;
Σχόλια (0)