Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15
  1. #11
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Grazie per la disponibilità!
    Guarda, l'esercizio è quel che è... l'ho trovato su un libro mentre sto cercando di imparare a programmare in java quindi lo scopo di del tutto è semplicemente funzionale al mio apprendimento e non ci sono ulteriori specifiche o altro.

    Quote Originariamente inviata da andbin Visualizza il messaggio

    Ci sono però cose dubbie o perlomeno da valutare/stabilire.

    Dice: ricevere numero di giudici
    1) Il numero va tenuto nello "stato" degli oggetti? Perché non lo dice quando parla degli attributi
    2) Il numero di giudici è uguale per tutte le tipologie di punteggi? Oppure no?

    Credo che l'esercizio in se voglia soltanto che ogni giudice, facendo partire il programma, possa valutare un determinato progetto. Sarebbe carino avere un main generale che permettesse di avere statici nomestudente, nomeprogetto e creasse istanze diverse di Punteggio per ogni giudice ma mi pare di capire sia un pò troppo complicato al mio livello quindi ipotizziamo il caso base e cioè che vi è UN giudice che valuta UN progetto.

    Quote Originariamente inviata da andbin Visualizza il messaggio
    Dice: ricevere tutti punteggi per un particolare progetto
    Come? Con più metodi? C'è liberta nella scelta del modo di assegnare i punteggi?

    Quando negli attributi parla dei punteggi dice "un punteggio". Quindi il punteggio è già cumulativo di tutti quelli dei giudici per quella tipologia di punteggio?
    Ho carta bianca nell'attuazione del programma... io pensavo ad un metodo Punteggio che veniva richiamato dalla classe Giudice che veniva richiamato dalla classe ValutaProgetto al cui interno vi erano le info statiche di nomeprogetto, nomestudente e che richiamava ValutaProgetto per ogni giudice. Come la vedi?

    Ma ipotizzando comunque un solo giudice, e quindi bastano due classi "Punteggio" e "ValutaProgetto", non ho capito come faccio a gestire e richiamare i campi creati in un modulo d'istanza in un altro?
    Guarda la parte in rosso del codice:

    codice:
    import java.util.Scanner;
    
    
    public class ProgettoDemo {
        
        private static String nomeprogetto;
        private static String idprogetto;
        private static String nomestudente;
        
            
        public void assegnaVoti(){
            Scanner tastiera = new Scanner(System.in);
            Punteggio creativita = new Punteggio();
            creativita.setPunteggioMax(30);
            System.out.println("Creatività:");
            creativita.setPunteggio();
            
            
            Punteggio valorescientifico = new Punteggio();
            valorescientifico.setPunteggioMax(30);
            System.out.println("Valore scientifico:");
            valorescientifico.setPunteggio();
            
            
            Punteggio completezza = new Punteggio();
            completezza.setPunteggioMax(15);
            System.out.println("Completezza:");
            completezza.setPunteggio();
            
            
            Punteggio tecnica = new Punteggio();
            tecnica.setPunteggioMax(15);
            System.out.println("Tecnica:");
            tecnica.setPunteggio();
            
            
            Punteggio chiarezza = new Punteggio();
            chiarezza.setPunteggioMax(10);
            System.out.println("Chiarezza:");
            chiarezza.setPunteggio();
            
        }
        
        public void stampaProgetto(){
            System.out.println("Nome progetto: " + nomeprogetto);
            System.out.println("ID progetto: " + idprogetto);
            System.out.println("Nome Studente: " + nomestudente);
            System.out.println("Voto Creatività: " + creativita.stampaPunteggio());
            
        }
    
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            Scanner tastiera = new Scanner(System.in);
            System.out.println("Inserisci nome progetto:");
            nomeprogetto = tastiera.next();
            
            System.out.println("Inserisci id progetto:");
            idprogetto = tastiera.next();
            
            System.out.println("Inserisci nome studente:");
            nomestudente = tastiera.next();
    
    
            ProgettoDemo giudiceuno = new ProgettoDemo();
            
            giudiceuno.assegnaVoti();
        }
    
    
    }

  2. #12
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Scusa ma continuo a vedere lo stesso codice di prima, che è solo concentrato sull'input ed è comunque non buono su svariati punti.
    Innanzitutto campi "static" no. Servono solo in determinati scenari e per certi "design" specifici. Nel tuo caso non credo proprio che servano.
    Poi fare un setPunteggio() che richiede dell'input già questo non è buono come design.
    E vedo che fai new Scanner(System.in) almeno 2 volte, una volta in main e una in assegnaVoti(). La creazione di uno Scanner agganciato a System.in va fatta UNA volta sola all'interno della applicazione .... perché lo standard-input è appunto uno solo.

    E poi scusa, se stampaPunteggio() in Punteggio ha come tipo di ritorno void, come puoi pensare di inserirlo in una espressione tipo "Voto Creatività: " + creativita.stampaPunteggio() ?
    Appunto ... non va.

    C'è molto da rivedere ....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #13
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Ok per quel che riguarda su... alcune cose non le sapevo, il setPunteggio con input da inserire era solo per avere un check step by step ma sicuramente evitabile...

    Quote Originariamente inviata da andbin Visualizza il messaggio

    E poi scusa, se stampaPunteggio() in Punteggio ha come tipo di ritorno void, come puoi pensare di inserirlo in una espressione tipo "Voto Creatività: " + creativita.stampaPunteggio() ?
    Appunto ... non va.

    C'è molto da rivedere ....
    Vero, non me ne ero accorto ma cambiando "creativita.stampaPunteggio()" con "creativita.getPunteggio" che restituisce un int, il risultato non cambia... mi esce "creativita cannot be solved" Questo perché "creativita" è stata istanziata in un altro metodo?

  4. #14
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Sevenis Visualizza il messaggio
    Questo perché "creativita" è stata istanziata in un altro metodo?
    Certo, oltre a tutto il resto già indicato, c'è anche questa questione. In stampaProgetto non c'è alcuna variabile reference ad un Punteggio in "scope" (nell'ambito di visibilità di stampaProgetto). Le variabili Punteggio che si vedono sono solo LOCALI in assegnaVoti(). E non inziare a pensare di metterle "static" da qualche parte es. nella classe ....

    Ma come ti ripeto: c'è molto da rivedere. E quindi lo dico ancora una volta, davvero, seriamente: cerca di pensare prima alla modellazione "logica" della applicazione. POI dopo verrà l'input/output verso l'utente tramite Scanner e System.out.
    Ultima modifica di andbin; 27-12-2016 a 19:09
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #15
    Utente di HTML.it
    Registrato dal
    Aug 2016
    Messaggi
    110
    Grazie, ci penso e posto la modellazione logica così poi vediamo il problema di "scope"...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.