Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=259)
-- Aiuto esercizio! (http://www.dsy.it/forum/showthread.php?threadid=42631)
Aiuto esercizio!
Vi chiedo un'info su una tipologia che mette sempre delle prove scritte. Faccio riferimento a un esercizio, esattamente al 7 e all'8 della prova del 26 febbraio 2010.
Allora, ecco le classi che ho sviluppato (simili se non identiche alla correzione)
PHP:
public class Corso implements Comparable{
private String nome, docente;
private int crediti;
public Corso(String nm, String cgm, int cfu){
nome = nm;
docente = cgm;
crediti = cfu;
}
public Corso(String nm, String cgm){
this(nm, cgm, 6);
}
public String getNome(){
return nome;
}
public String getTitolare(){
return docente;
}
public int getCrediti(){
return crediti;
}
public String toString(){
return nome + " " + docente + " " + crediti;
}
public boolean haCreditiMaggiori(Corso c){
return docente.equals(c.docente) && crediti > c.crediti;
}
public int compareTo(Object o){
Corso c = (Corso) o;
if(getCrediti() > c.getCrediti())
return 1;
else
if(getCrediti() < c.getCrediti())
return -1;
else
return 0;
}
}
PHP:
class CorsoLab extends Corso{
private String laboratorio;
public CorsoLab(String nm, String cgm, int cfu, String lab){
super(nm, cgm, cfu);
laboratorio = lab;
}
public String getLab(){
return laboratorio;
}
public String toString(){
return super.toString() + " " + laboratorio;
}
}
PHP:
import prog.io.*;
import prog.utili.*;
class CorsoProg{
public static void main(String[] args){
ConsoleInputManager in = new ConsoleInputManager();
ConsoleOutputManager out = new ConsoleOutputManager();
int n = in.readInt("Quanti corsi?");
Corso[] corsi = new Corso[n];
for(int i=0; i<n; i++){
String nome = in.readLine("Nome del corso " + (i+1) + ": ");
String docente = in.readLine("Nome del titolare del corso " + (i+1) + ": ");
int crediti = in.readInt("Numero di crediti del corso " + (i+1) + ": ");
boolean s = in.readSiNo("E' un corso di laboratorio? (s/n) ");
if (!s)
corsi[i] = new Corso(nome, docente, crediti);
else{
String lab = in.readLine("Nome del laboratorio in cui si tiene il corso " + (i+1) + ": ");
corsi[i] = new CorsoLab(nome, docente, crediti, lab);
}
}
for(int i=0; i<n; i++){
if(corsi[i].getTitolare().equals("Rossi"))
out.println(corsi[i].toString());
}
GestioneArray.ordina(corsi);
for(int i=0; i<n; i++){
if(corsi[i] instanceof CorsoLab)
out.println(corsi[i].toString());
}
}
}
PHP:
Note: CorsoProg.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
PHP:
CorsoProg.java:31: warning: [unchecked] unchecked method invocation: <T>ordina(T[]) in prog.utili.GestioneArray is applied to (Corso[])
GestioneArray.ordina(corsi);
^
1 warning
Volendo posso risolvere in questo modo:
PHP:
for(int i=0; i<30; i++){
for(int j=0; j<n; j++){
if(corsi[j] instanceof CorsoLab){
if(corsi[j].getCrediti() == i)
out.println(corsi[j].toString());
}
}
}
Ciao! Domanda: ma nel corso state già lavorando con i generici?
Perché il modo corretto di scrivere l'implementazione sarebbe del tipo:
public class Corso implements Comparable<Corso>{
cosa che implicherebbe il sistemare anche il metodo
compareTo(Corso c)
Bye
Grazie mille, così funziona.
Nella correzione allora il prof ha sbagliato.
Il corso è finito. Premetto che quest'anno non l'ho seguito.
All times are GMT. The time now is 10:39. | Show all 4 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.