Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Υλοποιήστε την κλάση αυτή, με όνομα 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() η οποία:

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

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

    • θέτει τις δύο ερωτήσεις (δηλαδή, τα τυπώνει στην οθόνη τις δύο ερωτήσεις, μαζί με τις απαντήσεις τους)

    • Υλοποιήστε την κλάση, με όνομα 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 για λάθος) και θέτει ανάλογα την αντίστοιχη μεταβλητή της ερώτησης

        • θέτει την πρώτη ερώτηση (δηλαδή, τα τυπώνει στην οθόνη την ερώτηση, μαζί με τις απαντήσεις της)

        • διαβάζει από το χρήστη τον αριθμό της επιλογής του, και ελέγχει την απάντησή του

        • θέτει την δεύτερη (δηλαδή, τα τυπώνει στην οθόνη την ερώτηση, μαζί με τις απαντήσεις της)

        • διαβάζει από το χρήστη τον αριθμό της επιλογής του, και ελέγχει την απάντησή του

        • τυπώνει το πλήθος των ορθών επιλογών

    • εχω φτασει σε ενα σημειο! αν ξερει καποιος να βοηθησει τουλαχιστον με καποια βηματα..ευχαριστω εκ τον προτερων

       

  • Moderators
Δημοσ.

Μα σου λέει τι να κάνεις και πολύ αναλυτικά μαλιστα..

 

Ναι αλλά η εκφώνηση είναι μεγάλη και πού να τη διαβάζεις τώρα...

  • Like 3
Δημοσ.

εχετε δικιο...υπαρχουν καποια κενα σε εμενα..μηπως ξερετε πως θετω ερωτηση σε μια παραμετρο?

Δημοσ.

 

Υλοποιήστε την κλάση αυτή, με όνομα MultipleChoiceQuestion, μπλα μπλα μπλα

 

Java... πφφφφ!!

Μια φορά έκανα το λάθος και ασχολήθηκα μαζί της.. Σε ΠΤΥΧΙΑΚΗ!!!!

Μου βγαλε την πίστη αλλά την τελείωσα. 

 

Και ο Δόκτωρ μου λέει τη μέρα της παράδοσης καθώς το πρόγραμμα προσπαθούσε να κάνει εκκίνηση:

Αν αυτό το πρόγραμμα ήταν γραμμένο σε C++ τώρα θα είχαμε τελειώσει......... 

 

-Η άσχετη ιστορία της ημέρας-

  • Like 1
Δημοσ.

Java... πφφφφ!!

Μια φορά έκανα το λάθος και ασχολήθηκα μαζί της.. Σε ΠΤΥΧΙΑΚΗ!!!!

Μου βγαλε την πίστη αλλά την τελείωσα. 

 

Και ο Δόκτωρ μου λέει τη μέρα της παράδοσης καθώς το πρόγραμμα προσπαθούσε να κάνει εκκίνηση:

Αν αυτό το πρόγραμμα ήταν γραμμένο σε C++ τώρα θα είχαμε τελειώσει......... 

 

-Η άσχετη ιστορία της ημέρας-

 

Προφανώς ήταν καρα-άσχετος και ο προγραμματιστής και ο Δόκτωρ...

  • Like 3
Δημοσ.

Java... πφφφφ!!

Μια φορά έκανα το λάθος και ασχολήθηκα μαζί της.. Σε ΠΤΥΧΙΑΚΗ!!!!

Μου βγαλε την πίστη αλλά την τελείωσα. 

 

Και ο Δόκτωρ μου λέει τη μέρα της παράδοσης καθώς το πρόγραμμα προσπαθούσε να κάνει εκκίνηση:

Αν αυτό το πρόγραμμα ήταν γραμμένο σε C++ τώρα θα είχαμε τελειώσει......... 

 

-Η άσχετη ιστορία της ημέρας-

Για πιο λόγο υπάρχει τόσο κράξιμο στη java? όχι μόνο εδώ αλλά και γενικά .. δλδ τι σε κάνει να μισήσεις τόσο αυτή τη γλώσσα?

Νομίζω πάντως πως ίσως κάνεις και λίγο την τρίχα-τριχιά στο παραπάνω παράδειγμα

Δημοσ.

Για πιο λόγο υπάρχει τόσο κράξιμο στη java? όχι μόνο εδώ αλλά και γενικά .. δλδ τι σε κάνει να μισήσεις τόσο αυτή τη γλώσσα?

Νομίζω πάντως πως ίσως κάνεις και λίγο την τρίχα-τριχιά στο παραπάνω παράδειγμα

Απλά έχει πλάκα. Είναι να μη σου βγει το όνομα. Η Java στις μέρες μας είναι πολύ γρήγορη, οι ταμπέλες όμως μένουν.

30€ κ εισαι ετοιμος

 

Post στο οποίο αναφέρεται μόνο η εκφώνηση, σημαίνει απόγνωση. Πάτα του τον κάλο. Ανέβαινε!

 

  • Like 1
Δημοσ.

με 90€ κάτι γίνεται... πιστεύω συμφωνεί και ο gon1332 στην τιμή.

Όλοι αυτοί που θέλουν έτοιμες ασκήσεις γιατί δεν πάνε αμέσως στο freelancer?

Δημοσ.

Όλοι αυτοί που θέλουν έτοιμες ασκήσεις γιατί δεν πάνε αμέσως στο freelancer?

 

Σωστός!

Έχει εκεί κάτι Ινδο-Πακιστανούς που κάνουν παπάδες με ψίχουλα.

Και σε χρόνο dt!

  • Like 3
Δημοσ.

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

 

επίσης το 2ο

διαβάζει από το χρήστη τον αριθμό της ορθής απάντησης (1 για σωστό και 2 για λάθος) και θέτει ανάλογα την αντίστοιχη μεταβλητή της ερώτησης

 είναι λάθος της εκφώνησης νομίζω.

 

MultipleChoiceQuestion.java

 

 

 

public class MultipleChoiceQuestion {
    private String question;
    private int answers;
    protected List<String> theAnswers;
    public MultipleChoiceQuestion() {
        question = "";
        answers = 2;
        theAnswers = new ArrayList<>();
        theAnswers.add("Swsto");
        theAnswers.add("Lathos");
    }
    public MultipleChoiceQuestion(String question, int noOfAnswers) {
        this.question = question;
        this.answers = noOfAnswers;
        theAnswers = new ArrayList<>();
        for (int x = 0;x < noOfAnswers;x++) {
            theAnswers.add("");
        }
    }
    public String getQuestion() {
        return question;
    } 
    public String getAnswer(int i) {
        int size = theAnswers.size();
        return (i > size) ? "error" : theAnswers.get(i);
    }
    public void setQuestion(String question) {
        this.question = question;
    }
    public void setAnswer(int noOfAnswer, String answer) {
        int size = theAnswers.size();
        if (noOfAnswer < size) {
            theAnswers.set(noOfAnswer, answer);
        }
    }
    public void pose() {
        int o=1;
        System.out.println("Question: " + this.question);
        for (String x : theAnswers) {
            System.out.println(o + ": " + x);
            o++;
        }
    }
}

 

 

 

MultipleChoiceWithCorrectAnswer.java

 

 

 

public class MultipleChoiceQuestionWithCorrectAnswer extends MultipleChoiceQuestion {

    private int correctAnswer;

    public MultipleChoiceQuestionWithCorrectAnswer() {
        super();
        correctAnswer = 1;
    }

    public MultipleChoiceQuestionWithCorrectAnswer(String question, int noOfAnswers) {
        super(question, noOfAnswers);
        correctAnswer = 1;
    }

    public int getCorrectAnswer() {
        return correctAnswer;
    }

    public void setCorrectAnswer(int x) {
        correctAnswer = (x < this.theAnswers.size()) ? x : -1;
    }

    public boolean checkAnswer(int x) {
        if (x > this.theAnswers.size()) {
            return false;
        }
        if (correctAnswer != x) {
            System.out.println("Wrong answer, the correct answer is: " + correctAnswer);
        }
        return (correctAnswer == x);
    }
}

 

 

 

QuestionTester.java

 

 

 

public class QuestionTester {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int correctAnswer;
        int noOfAnswers = 0;
        int selectedAnswer;
        int correctAnswers = 0;
        String myQuestion;

        //Erwtisi 1
        System.out.println("Hello, what's your right/wrong question?");
        myQuestion = in.nextLine();
        MultipleChoiceQuestionWithCorrectAnswer mytest1 = new MultipleChoiceQuestionWithCorrectAnswer();
        mytest1.setQuestion(myQuestion);
        mytest1.pose();
        System.out.println("What is the correct answer?");
        correctAnswer = in.nextInt();
        in.nextLine();
        mytest1.setCorrectAnswer(correctAnswer);

        //Erwtisi 2
        System.out.println("Hello, what's your multiple choice question?");
        myQuestion = in.nextLine();
        System.out.println("Hello, how many answers?");
        noOfAnswers = in.nextInt();
        in.nextLine();
        MultipleChoiceQuestionWithCorrectAnswer mytest2 = new MultipleChoiceQuestionWithCorrectAnswer(myQuestion, noOfAnswers);
        System.out.println("Please input all answers");
        for (int x = 0; x < noOfAnswers; x++) {
            System.out.printf("%s %d \n", "Please give answer number:", x + 1);
            String myAnswer = in.nextLine();
            mytest2.setAnswer(x, myAnswer);
        }
        mytest2.pose();
        System.out.println("What is the correct answer?");
        correctAnswer = in.nextInt();
        in.nextLine();
        mytest2.setCorrectAnswer(correctAnswer);

        //Elegxos epilogis
        mytest1.pose();
        System.out.println("Hello user, select answer");
        selectedAnswer = in.nextInt();
        if (mytest1.checkAnswer(selectedAnswer)) {
            System.out.println("You have selected the correct answer: " + selectedAnswer);
            correctAnswers++;
        }
        in.nextLine();
        mytest2.pose();
        System.out.println("Hello user, select answer");
        selectedAnswer = in.nextInt();
        if (mytest2.checkAnswer(selectedAnswer)) {
            System.out.println("You have selected the correct answer: " + selectedAnswer);
            correctAnswers++;
        } 
        in.nextLine();
        System.out.println("Correct Answers: " + correctAnswers);
        in.close();
    }
}

 

 

 

λείπουν τα imports αλλα θα στα βγάλει ο IDE

Δημοσ.

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

 

 

Εγώ θα χρησιμοποιούσα απλό πίνακα String[] για τις απαντήσεις, αφού ξέρουμε πάντα το πλήθος τους.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...