ciao! ho bisogno di un aiuto per una applicazione in java fatta con ambiente ide netbeans versione 6.9.1,
per crearla ho usato 4 classi:
2) classe agendina:codice:package agenda; import java.util.GregorianCalendar; public class appuntamento extends Object { private String orario, cosadafare, luogo; private int giornosettimana, gg, mese, anno; public appuntamento(String luogo, int giornosettimana, int gg, int mese, int anno, String orario, String cosadafare) { this.luogo = luogo; this.giornosettimana = giornosettimana; this.gg = gg; this.mese = mese; this.anno = anno; controllaData(); this.orario = orario; this.cosadafare = cosadafare; } public String getCosadafare() { return cosadafare; } public String getLuogo() { return luogo; } public String getOrario() { return orario; } public int getGg() { return gg; } public int getMese() { return mese; } public int getAnno() { return anno; } public int getGiornosettimana() { return giornosettimana; } public void getData(int gg, int mese, int anno) { GregorianCalendar gc = new GregorianCalendar(gg, mese - 1, anno); controllaData(); } public String setGiornosettimana() { String s = ""; if (giornosettimana <= 0 && giornosettimana > 7) { System.err.println("non puoi inserire giorni della settimana minori dello 0 o maggiori del 7"); } else { switch (giornosettimana) { case 1: s = "lunedì"; break; case 2: s = "martedì"; break; case 3: s = "mercoledì"; break; case 4: s = "giovedì"; break; case 5: s = "vernerdì"; break; case 6: s = "sabato"; break; case 7: s = "sabato"; break; } } return s; } public String setMese() { String s = ""; if (mese <= 0 && mese > 12) { System.err.println("non puoi inserire il mese 0 e mesi oltre al 12"); } else { switch (mese) { case 1: s = "gennaio"; break; case 2: s = "febbraio"; break; case 3: s = "marzo"; break; case 4: s = "aprile"; break; case 5: s = "maggio"; break; case 6: s = "giugno"; break; case 7: s = "luglio"; break; case 8: s = "agosto"; break; case 9: s = "settembre"; break; case 10: s = "ottobre"; break; case 11: s = "novembre"; break; case 12: s = "dicembre"; break; } } return s; } public void controllaData() { if (mese <= 0 && mese > 12) { System.err.println("non puoi inserire il mese 0 e mesi oltre al 12"); return; } else { switch (mese) { case 1: if (gg > 31) { System.err.println("non puoi inserire un numero oltre al 31"); return; } break; case 2: if (gg > 29) { System.err.println("non puoi inserire un numero oltre al 29"); return; } break; case 3: if (gg > 31) { System.err.println("non puoi inserire un numero oltre al 31"); return; } break; case 4: if (gg > 30) { System.err.println("non puoi inserire un numero oltre al 30"); return; } break; case 5: if (gg > 31) { System.err.println("non puoi inserire un numero oltre al 31"); return; } break; case 6: if (gg > 30) { System.err.println("non puoi inserire un numero oltre al 30"); return; } break; case 7: if (gg > 31) { System.err.println("non puoi inserire un numero oltre al 31"); return; } break; case 8: if (gg > 31) { System.out.println("non puoi inserire un numero oltre al 31"); return; } break; case 9: if (gg > 30) { System.err.println("non puoi inserire un numero oltre al 30"); return; } break; case 10: if (gg > 31) { System.err.println("non puoi inserire un numero oltre al 31"); return; } break; case 11: if (gg > 30) { System.err.println("non puoi inserire un numero oltre al 30"); return; } break; case 12: if (gg > 31) { System.err.println("non puoi inserire un numero oltre al 31"); return; } break; } } } @Override public String toString() { return getLuogo() + "," + "\t" + setGiornosettimana() + "\t" + getGg() + "\t" + setMese() + "\t" + getAnno() + "\t" + getOrario() + "'" + getCosadafare() + "'" + "\n"; } }
questa classe qui sotto in particolare è una classe che il professore ha detto di chiamare cosi perchè deve fungere da interfaccia tra o il main o la wiew per l'immisione degli input e per crearea parte le operazioni di output che non possono essere assolutamente messe già dentre le classi normali.codice:package agenda; public class angendina { private static final int MAXAPPUNTAMENTI = 20; private int nAppuntamenti; private appuntamento[] a; public angendina() { a = new appuntamento[MAXAPPUNTAMENTI]; nAppuntamenti = 0; } public int getAppuntamenti() { return nAppuntamenti; } public appuntamento getAppuntamenti(int i) { return a[i]; } public void aggiungiAppuntamento(String luogo, int giornosettimana, int gg, int mese, int anno, String orario, String cosadafare) { if (nAppuntamenti < MAXAPPUNTAMENTI - 1) { this.a[nAppuntamenti] = new appuntamento(luogo, giornosettimana, gg, mese, anno, orario, cosadafare); nAppuntamenti++; } else { System.err.println("raggiunto max apputamenti"); } } public void riduciAppuntamento() { for (int i = 0; i < nAppuntamenti; i++) { if (a[i].getCosadafare().equals(a)) { for (int j = 0; j < nAppuntamenti; j++) { a[j] = a[j + 1]; } } nAppuntamenti--; } System.err.println("rag minimo apputamenti"); } public String getParola() { if (getAppuntamenti() <= 0) { return ""; } else { if (getAppuntamenti() == 1) { return "apputamento:"; } else { return "apputamenti:"; } } } @Override public String toString() { String s = "ho:" + "\t" + getAppuntamenti() + "\t" + getParola() + "\n"; for (int i = 0; i < nAppuntamenti; i++) { s += a[i].toString(); } return s; } }
in modo tale che nella classe main o principale ho pocchissime istruzioni.
3 )classe interfaccia:
4) classe main(o classe principale):codice:package agenda; import java.io.PrintStream; import java.util.InputMismatchException; import java.util.Scanner; public class interfaccia { private String luogo,orario, cosadafare; private int giornosettimana,gg, mese, anno; private angendina a = new angendina(); private PrintStream output = new PrintStream(System.out); private Scanner input = new Scanner(System.in); public void Esegui() { output.println("luogo:"); luogo = input.nextLine(); try { output.println("giorno settimana:"); giornosettimana = input.nextInt(); output.println("gg:"); gg = input.nextInt(); output.println("mese:"); mese = input.nextInt(); output.println("anno:"); anno = input.nextInt(); } catch (InputMismatchException e) { System.err.println("inserisci solo numeri"); return; } output.println("orario:"); orario = input.nextLine(); output.println("cosa hai da fare?"); cosadafare = input.nextLine(); a.aggiungiAppuntamento(luogo, giornosettimana, gg, mese, anno, orario, cosadafare); System.out.println(a.toString() + "CopyRight By Grisu"); } }
codice:package agenda; public class Main { private static interfaccia i = new interfaccia(); public static void main(String[] args) { i.Esegui(); } }
solo che ho un piccolo problema che mi causa un bug durante l'esecuzione del programma, in pratica esce fuori la richiesta
di input dell'orario ma non la posso usare perchè neanche il tempo di inserire l'orario mi chiede la cosa da fare come se saltasse
il passaggio dell'orario. infatti escendo questo fatto, nel risultato finale mi appare uno spazio vuoto bianco come mancanse proprio l'input dell'orario. come mai? come risolvo? non mi trovo bene conil debbuger forse sbaglio qualcosa nel controllare il codice
ma non trovo l'errore.infatti se mi indicaste tra le altre cose anche una guida per fare un debug serio sarebbe meglio anche per il futuro.
il programma è per creare un'agenda per la gestione di apputtamenti

Rispondi quotando