Υλοποιήστε την κλάση αυτή, με όνομα MultipleChoiceQuestion, που θα περιλαμβάνει για κάθε στιγμιότυπο:
• το κείμενο της ερώτησης (ως μια σειρά χαρακτήρων),
• το πλήθος των απαντήσεων (ακέραιος αριθμός, λογικά μεγαλύτερος από το 1 για να έχει νόημα η επιλογή ορθής απάντησης) και
• ένα πίνακα (που θα έχει μέγεθος ίσο το πλήθος των απαντήσεων) με τα κείμενα των απαντήσεων
Μέσα στην κλάση αυτή θα πρέπει να υλοποιήσετε τους παρακάτω δημιουργούς:
• public MultipleChoiceQuestion(), που αρχικοποιεί ένα στιγμιότυπο με κενή ερώτηση (δηλαδή σειρά χαρακτήρων που δεν περιλαμβάνει τίποτα, ήτοι την "") και δύο (2) απαντήσεις: "Σωστό" και "Λάθος"
• public MultipleChoiceQuestion(String question, int noOfAnswers), που αρχικοποιεί ένα στιγμιότυπο με την ερώτηση question, τον αριθμό απαντήσεων με το noOfAnswers και τον πίνακα των απαντήσεων με ένα πίνακα μεγέθους noOfAnswers που περιέχει κενές απαντήσεις
Επίσης μέσα στην κλάση θα πρέπει να υλοποιήσετε τις μεθόδους:
• public String getQuestion(), που επιστρέφει το κείμενο της ερώτησης
• public String getAnswer(int noOfAnswer), που επιστρέφει το κείμενο της απάντησης με αριθμό noOfAnswer
• public void setQuestion(String question), που θέτει την ερώτηση στην παράμετρο question
• public void setAnswer(int noOfAnswer, String answer), που θέτει την απάντηση με αριθμό noOfAnswer στην απάντηση answer (εάν ο αριθμός noOfAnswer είναι εκτός ορίων, τότε η μέθοδος δεν κάνει τίποτα)
• public void pose(), που θέτει την ερώτηση, δηλαδή τυπώνει στην οθόνη την ερώτηση και τις απαντήσεις αριθμημένες (δηλαδή, με τον αριθμό τους να προηγείται του κειμένου), σε χωριστές γραμμές την κάθε μία.
Κυρίως πρόγραμμα
Προκειμένου να δοκιμάσετε την κλάση σας υλοποιήστε μια άλλη κλάση με όνομα QuestionTester που περιέχει μόνο την μέθοδο main() η οποία:
• διαβάζει από το χρήστη το κείμενο μιας ερώτησης τύπου σωστό ή λάθος, δημιουργεί ένα κατάλληλο στιγμιότυπο ερώτησης πολλαπλών απαντήσεων και θέτει την ερώτηση σε αυτή που έδωσε ο χρήστης
• διαβάζει από το χρήστη το κείμενο μιας ερώτησης πολλαπλών απαντήσεων και το πλήθος των απαντήσεων, δημιουργεί ένα κατάλληλο στιγμιότυπο ερώτησης πολλαπλών απαντήσεων και στη συνέχεια διαβάζει και θέτει τα κείμενα των απαντήσεων
• θέτει τις δύο ερωτήσεις (δηλαδή, τα τυπώνει στην οθόνη τις δύο ερωτήσεις, μαζί με τις απαντήσεις τους)
Εκτελέστε το πρόγραμμά σας, τουλάχιστον δύο φορές και δώστε ενδεικτικές ερωτήσεις και απαντήσεις (με τουλάχιστον 4 απαντήσεις για την δεύτερη ερώτηση). Αντιγράψτε σε ένα αρχείο κειμένου (με copy&paste) τα αποτελέσματα της εκτέλεσης του προγράμματος (για όλες τις δοκιμές).
Κλάση για ερωτήσεις πολλαπλών απαντήσεων με ένδειξη της ορθής απάντησης
Υλοποιήστε την κλάση, με όνομα MultipleChoiceQuestionWithCorrectAnswer, που κληρονομεί από την MultipleChoiceQuestion, και επιπλέον περιλαμβάνει τον αριθμό της ορθής απάντησης.
Μέσα στην κλάση αυτή θα πρέπει να υλοποιήσετε τους παρακάτω δημιουργούς:
• public MultipleChoiceQuestionWithCorrectAnswer (), που αρχικοποιεί ένα στιγμιότυπο όπως και η αντίστοιχη της κλάσης MultipleChoiceQuestion, και θέτει τον αριθμό της ορθής απάντησης στο ένα (1)
• public MultipleChoiceQuestionWithCorrectAnswer (String question, int noOfAnswers), που και αυτή αρχικοποιεί ένα στιγμιότυπο όπως και η αντίστοιχη της κλάσης MultipleChoiceQuestion, και θέτει τον αριθμό της ορθής απάντησης στο ένα (1)
Εννοείται πως ο αριθμός ένα (1) ως ορθή απάντηση, θα τροποποιηθεί αργότερα ώστε να περιέχει τον αριθμό που πραγματικά αντιστοιχεί στην ορθή απάντηση. Στους παραπάνω δημιουργούς δεν είναι γνωστή η ορθή απάντηση (καθώς λείπει η ερώτηση ή οι απαντήσεις) και έτσι επιλέγεται αυθαίρετα η αρχικοποίηση της ορθής απάντησης στο ένα(1).
Επίσης μέσα στην κλάση αυτή υλοποιήστε τις επιπλέον μεθόδους:
• public int getCorrectAnswer(), που επιστρέφει τον αριθμό της ορθής απάντησης
• public void setCorrectAnswer (int correctAnswer), που θέτει τον αριθμό της ορθής απάντησης στην τιμή correctAnswer
• public boolean checkAnswer(int answer), που ελέγχει εάν η απάντηση με αριθμό answer είναι ορθή ή όχι, τυπώνει σχετικό μήνυμα και αν είναι λάθος τυπώνει και τη σωστή απάντηση (προσοχή μήπως ο αριθμός της ορθής απάντησης είναι, λανθασμένα βέβαια, εκτός ορίων και δεν υπάρχει κείμενο απάντησης για να τυπωθεί), και επιστρέφει true εάν η απάντηση είναι ορθή ή false αν είναι λάθος
Τροποποιημένο κυρίως πρόγραμμα
Τροποποιήστε την μέθοδο main() της κλάσης QuestionTester, ώστε μετά από την ανάγνωση των στοιχείων της κάθε ερώτησης να διαβάζει τον αριθμό της ορθής απάντησης, και μετά την εκτύπωση της κάθε ερώτησης να διαβάζει την επιλογή του χρήστη και να τυπώνει τα αποτελέσματα του ελέγχου της επιλογής αυτής. Έτσι το κυρίως πρόγραμμα θα πρέπει να:
• διαβάζει από το χρήστη το κείμενο μιας ερώτησης τύπου σωστό ή λάθος, δημιουργεί ένα κατάλληλο στιγμιότυπο ερώτησης πολλαπλών απαντήσεων με ένδειξη της ορθής απάντησης και θέτει την ερώτηση σε αυτή που έδωσε ο χρήστης
• διαβάζει από το χρήστη τον αριθμό της ορθής απάντησης (1 για σωστό και 2 για λάθος) και θέτει ανάλογα την αντίστοιχη μεταβλητή της ερώτησης
• διαβάζει από το χρήστη το κείμενο μιας ερώτησης πολλαπλών απαντήσεων και το πλήθος των απαντήσεων, δημιουργεί ένα κατάλληλο στιγμιότυπο ερώτησης πολλαπλών απαντήσεων με ένδειξη της ορθής και στη συνέχεια διαβάζει και θέτει τα κείμενα των απαντήσεων
• διαβάζει από το χρήστη τον αριθμό της ορθής απάντησης (1 για σωστό και 2 για λάθος) και θέτει ανάλογα την αντίστοιχη μεταβλητή της ερώτησης
• θέτει την πρώτη ερώτηση (δηλαδή, τα τυπώνει στην οθόνη την ερώτηση, μαζί με τις απαντήσεις της)
• διαβάζει από το χρήστη τον αριθμό της επιλογής του, και ελέγχει την απάντησή του
• θέτει την δεύτερη (δηλαδή, τα τυπώνει στην οθόνη την ερώτηση, μαζί με τις απαντήσεις της)
• διαβάζει από το χρήστη τον αριθμό της επιλογής του, και ελέγχει την απάντησή του
• τυπώνει το πλήθος των ορθών επιλογών
Παραπάνω οι ενέργειες που είναι με πλάγια γράμματα υπάρχουν ήδη από το προηγούμενο κυρίως πρόγραμμα. Προσοχή όμως καθώς, σε κάποια από αυτά τα τμήματα θα πρέπει να τροποποιηθεί η δημιουργία των στιγμιότυπων των δύο ερωτήσεων, ώστε να δημιουργούνται στιγμιότυπα της κλάσης για τις ερωτήσεις με ένδειξη της ορθής απάντησης.
Εκτελέστε το πρόγραμμά σας, τουλάχιστον τέσσερις φορές και δώστε ενδεικτικές ερωτήσεις και απαντήσεις (με τουλάχιστον 4 απαντήσεις για την δεύτερη ερώτηση και επιλογές που είναι άλλες φορές ορθές και άλλες λάθος). Αντιγράψτε σε ένα αρχείο κειμένου (με copy&paste) τα αποτελέσματα της εκτέλεσης του προγράμματος (για όλες τις δοκιμές).
απλα εχω χαθει ισως καποιος εμπειρος με βοηθουσε.....