Küsimustele vastamise süsteem
Kirjutage programm, mis suudab esitada failina ettevalmistatud küsimusi ja küsida ning kontrollida neile antud vastuseid.
Programm peab toetama
- valikvastusega küsimus;
- lühivastusega küsimusi (küsimuse vastuseks kirjutatakse üks rida teksti);
- jah/ei küsimusi.
Küsimuste faili formaat
Programm peab (muuhulgas) toetama küsimuste lugemist etteantud failiformaadist. Vaatame kõigepealt küsimuste faili näidet:
Mis on Eesti pealinn? ; Tallinn/Tartu/Pärnu ; 1 Mis on Läti pealinn? ; Jelgava/Daugavpils/Riia ; 3 Kes on Toomas Hendrik Ilves? ; Eesti president Kas eesti rahvuslill on rukkilill? ; ; jah Mis on Leedu pealinn? ; Kaunas/Vilnius/Klaipeda ; 2 Mitu mulli on mullivees? ; 453 Kas eesti rahvuslind on leevike? ; ; jah
Valikvastusega küsimuse andmed failis on küsimuse tekst, vastuse variandid (alati 3 tükki, eraldajaks on kaldkriips), õige variandi järjekorra number. Jah/ei küsimuste andmed on sarnased valikvastusega küsimusega, ainult et vastuste variante pole kirjas. Lühivastusega küsimuste jaoks on kirjas küsimuse tekst ja õige vastus. Eraldajaks on semikoolon.
HTML väljund
Lisaks interaktiivsele konsoolipõhisele kasutajaliidesele, peaks programm pakkuma ka võimalust moodustada etteantud küsimustefaili põhjal HTML fail. Õiget vastust pole siin vaja kusagil kajastada.
Eespool toodud näiteküsimuste puhul peaks programm genereerima järgmise sisuga HTML faili:
<html> <head> <meta charset="UTF-8"> <title>Küsimused</title> </head> <body> <h1>Küsimused</h1> <form action="mailto:someone@example.com" method="post" enctype="text/plain"> <h2>Mis on Eesti pealinn?</h2> <select name="kysimus1"> <option></option> <option>Tallinn</option> <option>Tartu</option> <option>Pärnu</option> </select> <h2>Mis on Läti pealinn?</h2> <select name="kysimus2"> <option></option> <option>Jelgava</option> <option>Daugavpils</option> <option>Riia</option> </select> <h2>Kes on Toomas Hendrik Ilves?</h2> <input name="kysimus3"/> <h2>Kas Eesti rahvuslill on rukkilill?</h2> <input type="radio" name="kysimus4" value="jah">jah <input type="radio" name="kysimus4" value="ei">ei <h2>Mis on Leedu pealinn?</h2> <select name="kysimus5"> <option></option> <option>Kaunas</option> <option>Vilnius</option> <option>Klaipeda</option> </select> <h2>Mitu mulli on mullivees?</h2> <input name="kysimus6"/> <h2>Kas Eesti rahvuslind on leevike?</h2> <input type="radio" name="kysimus7" value="jah">jah <input type="radio" name="kysimus7" value="ei">ei <br/> <input type="submit" value="Saada vastused" /> </form> </body> </html>
Taoline tekst tuleks salvestada hariliku tekstifailina, mille laiend on ".html". NB! jälgi, et salvestamisel kasutatud kodeering on sama, mis on näidatud HTML-i <head> osas (https://www.google.ee/search?q=java+save+text+with+given+encoding)
Kui te selle faili (topeltklõpsuga) brauseris avate, siis peaks teil olema võimalik vastused saata sellele e-mailile, mis <form> elemendi juures on näidatud.
Programmi kasutamise viis
Programmi peaks olema võimalik kahel moel:
- Kui see käivitatakse ainult ühe parameetriga (nt.
java Quiz kysimused.txt
), siis töötab programm interaktiivselt, st. kasutajalt küsitakse konsooli kaudu näidatud failis olevaid küsimusi. - Kui see käivitatakse kahe parameetriga (nt.
java Quiz kysimused.txt valjund.html
), siis on programmi ülesandeks genereerida HTML väljund teise parameetriga näidatud faili.
Lahenduse esitamine
Esitage lahendus Moodle'isse. Automaattestide tarvis (mida praegu veel pole) peaks peaklass asuma vaikepaketis ja olema nimega Quiz
.
Üks võimalik lähenemine
OOPi kontrolltööna antud juhised selle ülesande osaliseks lahendamiseks Δ