Sequence diagram
Buon pomeriggio mi potete aiutare a determinare tutto il codice che si può desumere da questo sequence diagram

Grazie in anticipo ☺️

Grazie in anticipo ☺️
Risposte
Linguaggio? Comunque che idee hai? Per esempio, quante classi ci sono?
"vict85":
Linguaggio? Comunque che idee hai? Per esempio, quante classi ci sono?
Linguaggio java
SubmittedExam è un metodo o una classe?
Ciò che non riesco a capire è se q è un oggetto della classe Question così come ans con Answer
E se ciò è corretto, come posso ragionare?
Come rappresento il loop su più classi?
public int?(restituisce mark)SubmittedExam(){
public void getMark();
for(Question q:lista){
}
public class Question{
Question q = new Question();
q.getCorrectAnswer();
if(...){
q.getPoints();
}
public class Answer{
Answer ans = new Answer();
ans.equals(studentAnsert);
}
"vict85":
Linguaggio? Comunque che idee hai? Per esempio, quante classi ci sono?
Si scusa in Java e penso che ci siamo 3 classi una con il for e l’if e le altre con riferimenti ad essi.
Comincia con lo scrivere le classi e le funzioni (solo dichiarazioni). Solo una funzione è definita (e neanche completamente in quanto non si sa cosa contengono le classi). Suppongo sia sensato nascondere questo aspetto utilizzando dei getter come getQuestions( ), getSubmittedAnswer( Question ) e cose così (ovviamente devi scrivere che li hai aggiunti per comodità e che quelle parti non sono esplicitate dal diagramma).
"vict85":
Comincia con lo scrivere le classi e le funzioni (solo dichiarazioni). Solo una funzione è definita (e neanche completamente in quanto non si sa cosa contengono le classi). Suppongo sia sensato nascondere questo aspetto utilizzando dei getter come getQuestions( ), getSubmittedAnswer( Question ) e cose così (ovviamente devi scrivere che li hai aggiunti per comodità e che quelle parti non sono esplicitate dal diagramma).
Io avevo fatto così ma non so se è corretto
Public class submittedExem{ Public void getMark(){ Return theMark; } For(q in question){ // } If(eval){ // } Class Question{ getConnectAnswer(){ Return ans; } GetPoints(){ Return eval; } } Class Answer{ Equals(StudentAnswer) Return points } }
Se devi scrivere in Java allora devi scrivere un codice Java corretto, quello è corretto? Io non conosco Java, ma dalle mia competenze di C++ direi di no.
Premesso che non conosco Java, le funzioni sono le seguenti. Il for e l'if sono dentro la funzione getMark.
Premesso che non conosco Java, le funzioni sono le seguenti. Il for e l'if sono dentro la funzione getMark.
// Qual'è il tipo di theMark? Qual'è il tipo di Points? È lo stesso? class Mark; class Points; class Answer { public Bool equals(Answer studentAnswer); } class Question { public Answer getCorrectAnswer(); public Points getPoints(); } class SubmittedExam { public Mark getMark(); }
"vict85":
Se devi scrivere in Java allora devi scrivere un codice Java corretto, quello è corretto? Io non conosco Java, ma dalle mia competenze di C++ direi di no.
Premesso che non conosco Java, le funzioni sono le seguenti. Il for e l'if sono dentro la funzione getMark.
// Qual'è il tipo di theMark? Qual'è il tipo di Points? È lo stesso? class Mark; class Points; class Answer { public Bool equals(Answer studentAnswer); } class Question { public Answer getCorrectAnswer(); public Points getPoints(); } class SubmittedExam { public Mark getMark(); }
Ma io devo mettere solo il codice che posso capire dal sequence il resto va lasciato vuoto. Poi la sintassi di get e questa:
Public void getNomeMetodo(){
Retur nomeMetodo;
}
E il set che al suo interno ha il corpo del metodo e quindi è possibile inserire il for, come hai fatto te il for e l’if dove lo metto? Poi il getMark ha ritorno e la classi Marica e point non ci sono
Una cosa del genere non andrebbe bene?
Premetto che mi sto esercitando anche io su questi esercizi
public class SubmittedExam{
public void getMark();
for(Question q:lista)
{
return ans(?)
return eval(?)
if(eval)
{
return points
}
return theMark;
}
public class Question{
(Non riesco a capire quella q prima di Question cosa mi indica, potrebbe dire un oggetto istanza di classe Question?)
Question q = new Question();
public (ritorna ans) getCorrectAnswer();
public (ritorna points) getPoints();
}
public class Answer{
(Stessa questione ans?)
Answer ans = new Answer();
public (ritorna eval) equals(studentAnswer);
}
Premetto che mi sto esercitando anche io su questi esercizi
public class SubmittedExam{
public void getMark();
for(Question q:lista)
{
return ans(?)
return eval(?)
if(eval)
{
return points
}
return theMark;
}
public class Question{
(Non riesco a capire quella q prima di Question cosa mi indica, potrebbe dire un oggetto istanza di classe Question?)
Question q = new Question();
public (ritorna ans) getCorrectAnswer();
public (ritorna points) getPoints();
}
public class Answer{
(Stessa questione ans?)
Answer ans = new Answer();
public (ritorna eval) equals(studentAnswer);
}