Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - programma file record
Forum - Java - programma file record

Avatar
Vaan (Normal User)
Newbie


Messaggi: 1
Iscritto: 14/01/2009

Segnala al moderatore
Postato alle 8:26
Mercoledì, 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

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5.  
  6. package cittadinanza;
  7. import java.io.RandomAccessFile;
  8. import java.util.logging.Level;
  9. import java.util.logging.Logger;
  10. import java.io.*;
  11. import java.util.Scanner;
  12. /**
  13.  *
  14.  * @author Vaan
  15.  */
  16. public class Main {
  17.  
  18.     /**
  19.      * @param args the command line arguments
  20.      */
  21.     public static void main(String[] args)throws IOException {
  22.         Scanner s=new Scanner (System.in);
  23.         gestcitt gest=new gestcitt();
  24.         int flag;
  25.         String risp;
  26.  String z="                                                  ";
  27.             RandomAccessFile fr = new RandomAccessFile("cittadini.dat", "rw");      
  28.         do{
  29.         System.out.println("*******************************");
  30.         System.out.println("");
  31.         System.out.println("1. Inserimento record");
  32.         System.out.println("2. ricerca e visualizzazione");
  33.         System.out.println("3. modifica");
  34.         System.out.println("4. visualizza archivio");
  35.         System.out.println("5. cancella");
  36.         System.out.println("6. esci");
  37.         System.out.println("");
  38.         System.out.println("********************************");
  39.        
  40.         System.out.println("seleziona una opzione");
  41.         flag=s.nextInt();
  42.        
  43.      switch(flag){
  44.          
  45.          case 1:
  46.        
  47.               do{
  48.         System.out.println("inserire il codice");
  49.         gest.cod=s.next();
  50.         System.out.println("inserire il cognome");
  51.         gest.cogn=s.next();
  52.         gest.cogn=gest.cogn+z;
  53.         gest.cogn.substring(0,50);
  54.         System.out.println("inserire il nome");
  55.         gest.nom=s.next();    
  56.         gest.nom=gest.nom+z;
  57.         gest.nom.substring(0,50);
  58.        
  59.         System.out.println("inserire il sesso");
  60.         gest.sex=s.next();
  61.        
  62.         if(gest.sex.equals("m")){
  63.             gest.ses=true;
  64.         }
  65.        
  66.         else{
  67.             gest.ses=false;
  68.         }
  69.        
  70.         System.out.println("inserire la data di nascita");
  71.         gest.dat=s.next();
  72.         gest.dat=gest.dat+z;
  73.        
  74.         System.out.println("inserire l'altezza");
  75.         gest.alt=s.nextInt();
  76.        
  77.        
  78.     gest.Scrivi(fr, flag);
  79.        
  80.        
  81.         System.out.println("vuoi inserire un'altro cittadino?");
  82.         risp=s.next();
  83.   }while(risp.equals("si"));
  84.          
  85.               break;  
  86.              
  87.          case 2:
  88.              System.out.println("inserire il codice da ricercare");
  89. gest.zx=s.next();
  90.     gest.leggi(fr, flag);  
  91.      
  92.      }
  93.      
  94.     }while(flag!=6);
  95.  
  96.     }
  97. }



classe secondaria

Codice sorgente - presumibilmente Java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5.  
  6. package cittadinanza;
  7. import java.io.EOFException;
  8. import java.io.IOException;
  9. import java.io.RandomAccessFile;
  10. /**
  11.  *
  12.  * @author santostasi5844
  13.  */
  14. public class gestcitt {
  15. String cod;
  16. String cogn;
  17. String nom;
  18. boolean ses;
  19. String dat;
  20. int alt;
  21. String codi;
  22. String sex;
  23.  
  24.  
  25.  
  26.  
  27.  
  28. String zx;
  29.  
  30. public void Scrivi(RandomAccessFile fr, long num)throws IOException{
  31.     num=(fr.length()/126)+1;
  32.     fr.seek((num-1)*126);
  33.     fr.writeUTF(cod);
  34.     fr.writeUTF(cogn);
  35.     fr.writeUTF(nom);
  36.     fr.writeBoolean(ses);
  37.     fr.writeUTF(dat);
  38.     fr.writeInt(alt);
  39.      
  40. }
  41.  
  42.    
  43. public void leggi(RandomAccessFile fr, long num)throws IOException{
  44.    fr.seek(0);
  45.    
  46.     while(true){
  47.    
  48.      try{
  49.     System.out.print("il codice è: ");
  50.     cod=fr.readUTF();
  51.     System.out.print(cod);
  52.     System.out.println("");
  53.    
  54.     System.out.print("il cognome è: ");
  55.     cogn=fr.readUTF();
  56.      System.out.print(cogn);
  57.     System.out.println("");
  58.    
  59.     System.out.print("il nome è: ");
  60.     nom=fr.readUTF();
  61.      System.out.print(nom);
  62.     System.out.println("");
  63.    
  64.     System.out.print("il sesso è: ");
  65.     ses=fr.readBoolean();
  66.      System.out.print(ses);
  67.     System.out.println("");
  68.    
  69.     System.out.print("la data di nascita  è: ");
  70.     dat=fr.readUTF();
  71.      System.out.print(dat);
  72.     System.out.println("");
  73.    
  74.     System.out.print("l'altezza è: ");
  75.     alt=fr.readInt();
  76.     System.out.print(alt);
  77.     System.out.println("");
  78.  
  79.    
  80.  
  81.     }catch(EOFException e){
  82.       System.out.println("codice non trovato");
  83.        
  84.     }
  85.      break;
  86.        }
  87. }
  88.  
  89.    
  90.  
  91. }



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

PM Quote