Vaan (Normal User)
Newbie
Messaggi: 1
Iscritto: 14/01/2009
|
salve, mi servirebbe un grossissimo aiuto per creare un programma java con i file di record, questo programma è per la scuola e io per dire non so praticamente niente...(merito dei prof) questa è la traccia
Costruire una Applicazione Java che gestisce un archivio che contiene dati riguardanti
cittadini.
Per gestione s’intende le seguenti operazioni:
1. Inserimento record1
2. Ricerca e visualizzazione record per campo Codice
3. Modifica record per campo Codice
4. Visualizza intero archivio
5. Cancellazione record per campo Codice
e questo è il codice che fino ad ora ho svolto:
classe main
Codice sorgente - presumibilmente Java |
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package cittadinanza; import java.io.RandomAccessFile; import java.util.logging.Level; import java.util.logging.Logger; import java.io.*; import java.util.Scanner; /** * * @author Vaan */ public class Main { /** * @param args the command line arguments */ Scanner s =new Scanner (System. in); gestcitt gest=new gestcitt(); int flag; do{ System. out. println("*******************************"); System. out. println("1. Inserimento record"); System. out. println("2. ricerca e visualizzazione"); System. out. println("3. modifica"); System. out. println("4. visualizza archivio"); System. out. println("5. cancella"); System. out. println("6. esci"); System. out. println("********************************"); System. out. println("seleziona una opzione"); flag=s.nextInt(); switch(flag){ case 1: do{ System. out. println("inserire il codice"); gest.cod=s.next(); System. out. println("inserire il cognome"); gest.cogn=s.next(); gest.cogn=gest.cogn+z; gest.cogn.substring(0,50); System. out. println("inserire il nome"); gest.nom=s.next(); gest.nom=gest.nom+z; gest.nom.substring(0,50); System. out. println("inserire il sesso"); gest.sex=s.next(); if(gest.sex.equals("m")){ gest.ses=true; } else{ gest.ses=false; } System. out. println("inserire la data di nascita"); gest.dat=s.next(); gest.dat=gest.dat+z; System. out. println("inserire l'altezza"); gest.alt=s.nextInt(); gest.Scrivi(fr, flag); System. out. println("vuoi inserire un'altro cittadino?"); risp=s.next(); }while(risp.equals("si")); break; case 2: System. out. println("inserire il codice da ricercare"); gest.zx=s.next(); gest.leggi(fr, flag); } }while(flag!=6); } }
|
classe secondaria
Codice sorgente - presumibilmente Java |
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package cittadinanza; import java.io.EOFException; import java.io.IOException; import java.io.RandomAccessFile; /** * * @author santostasi5844 */ public class gestcitt { boolean ses; int alt; num=(fr.length()/126)+1; fr.seek((num-1)*126); fr.writeUTF(cod); fr.writeUTF(cogn); fr.writeUTF(nom); fr.writeBoolean(ses); fr.writeUTF(dat); fr.writeInt(alt); } fr.seek(0); while(true){ try{ System. out. print("il codice è: "); cod=fr.readUTF(); System. out. print("il cognome è: "); cogn=fr.readUTF(); System. out. print("il nome è: "); nom=fr.readUTF(); System. out. print("il sesso è: "); ses=fr.readBoolean(); System. out. print("la data di nascita è: "); dat=fr.readUTF(); System. out. print("l'altezza è: "); alt=fr.readInt(); System. out. println("codice non trovato"); } break; } } }
|
il problema che ho riscontrato nel punto uno è che nel momento in cui vado a scrivere un secondo record questo va a sostituirsi a parte del primo e nel secondo che qualsiasi cosa io ricerca mi visualizza il primo (quel che rimane del primo record), se mi potete dare una mano a correggerlo e a ultimarlo per sabato ve ne sarei molto grato |