Sequence diagram

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



Grazie in anticipo ☺️

Risposte
vict85
Linguaggio? Comunque che idee hai? Per esempio, quante classi ci sono?

xoaurixo
"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);
}

faby99s
"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.

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).

faby99s
"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
  }
}







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();
}

faby99s
"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

xoaurixo
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);
}

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.