0% au considerat acest document util (0 voturi)
12 vizualizări6 pagini

Proiect Inginerie Software

Documentul descrie implementarea unui sistem pentru generarea de chestionare de examen auto. Sunt prezentate clasele principale (Questions, Test, Results) care stochează întrebările, generează chestionare aleatoriu și calculează scorul. Diagramele UML și codul sursă ilustrează funcționarea sistemului.

Încărcat de

namelessx
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
12 vizualizări6 pagini

Proiect Inginerie Software

Documentul descrie implementarea unui sistem pentru generarea de chestionare de examen auto. Sunt prezentate clasele principale (Questions, Test, Results) care stochează întrebările, generează chestionare aleatoriu și calculează scorul. Diagramele UML și codul sursă ilustrează funcționarea sistemului.

Încărcat de

namelessx
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 6

Proiect Inginerie Software

Descrierea cerintelor problemei

Generari de chestionare examen de carnet auto

Pentru generarea unor chestionare de examen de carnet auto, sunt generate aleator
liste care includ intrebarea, cele 3 raspunsuri, si indexul care contine raspunsul corect.
Mai intai se genereaza aleatoriu o secventa de numere intregi, care determina ordinea
intrebarilor stocate in clasa Questions, care vor fi folosite mai tarziu in clasa Test, iar clasa
Results va tine cont de numarul de intrebari raspunse corect, utilizatorul fiind admis daca a
raspuns corect la minim 75% de intrebari.

Diagramele UML

 Use Case
 Secventa

 Colaborare
 Clase
Prezentarea delaliata a modalitatii de implementare

 Clasa Questions
O clasa care stocheaza toate intrebarile, variantele de raspuns si index-urile pentru
generarea chestionarelor.

 Clasa Test
Sunt intitializate parametrii pentru numarul de intrebari din chestionar, si liste pentru
stocarea intrebarilor.
Metoda setQuestionOrder():
public void setQuestionOrder() {
Random rng = new Random();
while (gen.size() < test_size){
Integer next = rng.nextInt(questions_size) + 1;
gen.add(next);
}
}

Clasa Random genereaza numere aleatoare in lista gen, fara a se repeta, deoarece lista
este de tip LinkedHashSet, care accepta doar valori unice, deci se adauga valori pana cand
lista are marimea setata de test_size;
Metoda setQuestions():
public void setQuestions(){
Iterator<Integer> itr = gen.iterator();
int i = 0;
while(itr.hasNext()){
int temp = itr.next();

questionList.add(questions.questions[temp]);
choicesList.add(new ArrayList<String>());
choicesList.get(i).add(questions.choices[temp][0]);
choicesList.get(i).add(questions.choices[temp][1]);
choicesList.get(i).add(questions.choices[temp][2]);
correctList.add(questions.correct[temp]);

i++;
}
}
Se foloseste un iterator pentru a se parcurge prin Set-ul de numere intregi, si se adauga
in listele de intrebari, alegeri, si index-uri aleatoare.
Metoda getQuestionIndex():
public String getQuestionIndex(int i){
String str;

str = (
"Intrebarea " + (i + 1) + ":\n " +
questionList.get(i) +
"\nRaspunsuri:\n" +
" A) " + choicesList.get(i).get(0) +
"\n B) " + choicesList.get(i).get(1) +
"\n C) " + choicesList.get(i).get(2)
);

return str;
}

O metoda pentru a afisa intrebarile intr-un format usor de citit.

 Clasa Result
Metodele pentru incrementarea scorului:
public void setScore(int score) {
this.score = score;
}

public int incrementScore(){


return score + 1;
}

Metoda getFinalScoreString():
public void getFinalScoreString(){
float percentage = (float) score / max_score;
System.out.println(
"Scor final: " + score + " din " + max_score +
"\nProcentaj: " + (percentage * 100)
);
if(percentage > 0.75) System.out.println("Admis!");
else System.out.println("Respins");
}
Afisarea scorului final, cu un if-statement pentru a arata daca utilizatorul a trecut de
pragul de 75%.

 Clasa Main
public static void main(String[] args){
Test t = new Test();
Result r = new Result();
Scanner cin = new Scanner(System.in);
String[] choices = {"a", "b", "c"};

int test_size = t.getTestSize();

for(int i = 0; i < test_size; i++){


System.out.println(t.getQuestionIndex(i));

System.out.print("Introduce un raspuns: ");

String ch = cin.next();

clearScreen();

if(ch.toLowerCase().equals(choices[t.getCorrectIndex(i)])){
System.out.println("Corect!\n");
r.setScore(r.incrementScore());
} else {
System.out.println("Incorect!\n");
}
}

r.getFinalScoreString();
}

Bucla principala pentru a lua examenul auto.

S-ar putea să vă placă și