Forum - Java
- Errore: impossibile trovare o caricare la classe principale
Pagine: [ 1 2 3 ]
|
Bonnox (Member )
Pro
Messaggi: 85
Iscritto: 23/08/2014
Ok, ammetto di sentirmi veramente #nabboh con questa domana, quasi me ne vergogno...
semplicemente non partono i file class.
Su eclipse invece si. dunque mi perdo qualcosa io. :/
da terminale faccio
Codice sorgente - presumibilmente Plain Text
java nome_file_class_senza_estensione
e non va.
sistema windows 7 home 64 bit ultra buggato, jdk 7.
credo sia qualcosa del path, comunque ecco il mio:
;C:\windows\system32;C:\adt-bundle-windows-x86_64\sdk\platform-tools;C:\Program Files\Java\jdk1.7.0_75\bin;C:\adt-bundle-windows-x86_64-20140702\sdk\sdk\platform-tools;D:\programmazione\PASCAL\PROGETTI\file merger\CORRENTE\bin
GN (Member )
Guru
Messaggi: 772
Iscritto: 30/04/2011
Postato originariamente da Bonnox :
da terminale faccio
Codice sorgente - presumibilmente Plain Text
java nome_file_class_senza_estensione
e non va.
Ciao, potresti specificare cosa intendi per "non va"? Dà qualche errore? Se fosse un problema del path direbbe qualcosa come "java non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch" o qualcosa di simile.
Bonnox (Member )
Pro
Messaggi: 85
Iscritto: 23/08/2014
Postato originariamente da GN :
Ciao, potresti specificare cosa intendi per "non va"? Dà qualche errore? Se fosse un problema del path direbbe qualcosa come "java non è riconosciuto come comando interno o esterno, un programma eseguibile o un file batch" o qualcosa di simile.
ciao, l'errore è quello riportato nel titolo: nessuna classe principale (ovviamente c'è)
Codice sorgente - presumibilmente Java
public static void main
( String [ ] args
) {
if ( DEBUG) myLib.util .Output .debug ( ) ;
benvenuto( ) ;
ciclo( ) ;
fine( ) ;
}
Ultima modifica effettuata da Bonnox il 15/07/2015 alle 12:36
pierotofy (Admin )
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
Posta tutto il sorgente. Grazie.
Bonnox (Member )
Pro
Messaggi: 85
Iscritto: 23/08/2014
Postato originariamente da pierotofy :
Posta tutto il sorgente. Grazie.
mah, secondo me è ancora il computer, oppure io che non sono in grado di configurarlo... dubito sia il sergente..
però vabbè, l'avete voluto voi :p (si fa per scherzare ovviamente
) io volevo risparmiarvi di guardare al sorgente
il progetto è ancora in corso perciò alcuni metodi avranno errori
Codice sorgente - presumibilmente Java
package corso ;
//import java.io.BufferedOutputStream;
//import java.io.File;
//import java.io.FileOutputStream;
import java.io.IOException ;
import java.io.ObjectInputStream ;
import java.io.ObjectOutputStream ;
//import java.lang.reflect.Array;
import java.util.ArrayList ;
//import java.util.Collection;
import java.util.Collections ;
import java.util.GregorianCalendar ;
//import java.util.ArrayList;
//import javax.swing.plaf.basic.BasicInternalFrameTitlePane.MaximizeAction;
import myLib.typedef.Ora ;
import corso.Medico.tipologia_medico ;
import corso.SlotTemporale.Stato_visita_slot ;
import corso.Visita.Stato_visita ;
public class Classemain
{
private static final String NESSUN_RISULTATO_TROVATO_NE_DA_CONSIGLIARE
= "Nessun risultato trovato ne' da consigliare. Si torna indietro. E' necessario aggiungere medici o orari." ; private static final String SARA_MODIFICATO
= "Questo utente sara' modificato:\n " ; private static final String DESIDERA_CONTINUARE
= "si desidera continuare? S/N " ; private static final String ERORE_CLASSCAST
= " ERORE DI classcast " ; private static final String ERRORE_CLASSNOTFOUND
= " ERRORE DI classnotfound " ; /**
* TODO CONTROLLO COERENZA FILE
*
*/
// private static final int INDICI = 0;
// private static final int NUMERI = 1;
private static final String I_O_ERROR
= " ERRORE DI I/O " ;
protected static final boolean DEBUG = true ;
private static final int MEDICO_ID = 0 ;
private static final int GIORNO_VALORE = 1 ;
private static final int ORA_VAALORE = 2 ;
private static final int MEDICO_INDEX = 3 ;
private static final int GIORNO_INDEX = 4 ;
private static final int ORA_INDEX = 5 ;
private static final int DISPONIBILE = 6 ;
private static final int INFORMAZIONI_DIMENSIONE = 7 ;
private static int scelta;
static ArrayList< Utente> clienti_clinica = new ArrayList< Utente> ( ) ;
static ArrayList< Medico> corpo_medici = new ArrayList< Medico> ( ) ;
static ArrayList< Visita> cache_visite = new ArrayList< Visita> ( ) ;
static MiscData dati = new MiscData( ) ;
static boolean firstrun = true ;
static boolean uscita = false ;
static final String INDEX_ERROR
= "errore di indice" ; static final String FILE_MEDICI
= "C:/medici.dat" ; static final String FILE_UTENTI
= "C:/utenti.dat" ; static final String FILE_VISITE
= "C:/visite.dat" ; static final String FILE_DATI
= "C:/miscdata.dat" ;
protected static final String ORA_SCALATA
= "Ora scalata a: " ; static final String ANNULLATO
= "annullato" ; static final String ERR_GENERICO
= "errore " ; static final String PROSSIMA_PAGINA
= "premere invio per passare alla prossima pagina" ; static final String NIENTE
= "niente da visualizzare" ; static final String IO_ERR
= "errore nei file: " ; static final String CERCA_ERR
= "nessun risultato" ;
static final int ESCI_COM = 0 ;
static final int AGG_UTEN_COM = 1 ;
static final int AGG_MED_COM = 2 ;
static final int MOD_ORA_COM = 3 ;
static final int GEST_VISI_COM = 4 ;
static final int VISUAL_E_MOD_COM = 5 ;
static final int SALVA_CARICA_COM = 6 ;
static final int CERCA_MEDICI = 0 ;
static final int CERCA_UTENTI = 1 ;
static final int CERCA_MEDICO_SINGOLO = 2 ;
static final int CERCA_UTENTE_SINGOLO = 3 ;
static final int CERCA_MEDICO_VISITE = 4 ;
static final int CERCA_UTENTE_VISITE = 5 ;
private static final String INS_ID
= "inserire ID per la ricerca " ;
private static final String [ ] TESTI_MENU
= { "esci" ,
"aggiunta utente" ,
"aggiunta medico" ,
"gestione orari visita" ,
"gestione visite" ,
"visualizza e modifica dati" ,
"salva o carica" } ;
private static final int NUMERO_SCELTE = TESTI_MENU.length ;
public static final String SICURO_FILE
= "E' stato creato un file di dettgli (%s) per le visite coinvolte nell'operazione. Questa azione non potra' essere annullata. Le visite saranno chiuse. procedere? (S/N)" ;
// fatto
public static void main
( String [ ] args
) {
if ( DEBUG) myLib.util .Output .debug ( ) ;
benvenuto( ) ;
ciclo( ) ;
fine( ) ;
}
// fatto
private static void benvenuto( )
{
dati = new MiscData( ) ;
final String MESSAGGIO_INIZIO
= "PROGRAMMA GESTIONE CLINICA." ; final String CARICA
= "si desidera caricare da file?" ; System .
out .
println ( MESSAGGIO_INIZIO
) ; boolean risposta
= myLib.
util .
Menu .
yes_no_Box ( CARICA,
true ) ; if ( Classemain.
DEBUG ) System .
out .
println ( risposta
) ; if ( risposta)
{
try
{
leggiFile( ) ;
{
System .
out .
println ( e.
getMessage ( ) ) ; {
System .
out .
println ( e.
getMessage ( ) ) ; {
System .
out .
println ( e.
getMessage ( ) ) ; }
}
}
{
// try
// {
// File f = new File("obj.dat");
archiviodati.writeObject ( dati) ;
archiviodati.close ( ) ;
archiviomedici.writeObject ( corpo_medici) ;
archiviomedici.close ( ) ;
archiviopazienti.writeObject ( clienti_clinica) ;
archiviopazienti.close ( ) ;
archiviovisite.writeObject ( cache_visite) ;
archiviovisite.close ( ) ;
// } catch (IOException e)
// {
// System.out.println(ERR+e.getMessage());
// }
// finally
// {
// }
}
{
// final String FILE_MEDICI
dati = ( MiscData) archiviodati.readObject ( ) ;
archiviodati.close ( ) ;
corpo_medici = ( ArrayList< Medico> ) archiviomedici.readObject ( ) ;
archiviomedici.close ( ) ;
clienti_clinica = ( ArrayList< Utente> ) archiviopazienti.readObject ( ) ;
archiviopazienti.close ( ) ;
cache_visite = ( ArrayList< Visita> ) archiviovisite.readObject ( ) ;
archiviovisite.close ( ) ;
firstrun = false ;
}
private static void ciclo( )
{
// if (DEBUG) corpo_medici.get(0).ordinaGiorni();
while ( ! uscita)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( NUMERO_SCELTE, TESTI_MENU
) ;
switch ( scelta)
{
case ESCI_COM:
esci( ) ;
break ;
case AGG_UTEN_COM:
aggiungiUtente( ) ;
break ;
case AGG_MED_COM:
try
{
aggiungiMedico( ) ;
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
break ;
case MOD_ORA_COM:
try
{
modificaOrariDottoriMain( ) ;
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
break ;
case GEST_VISI_COM:
gestioneVisite( ) ;
break ;
case VISUAL_E_MOD_COM:
visualizzaEModificaDati( ) ;
break ;
case SALVA_CARICA_COM:
gestioneIO( ) ;
break ;
default :
break ;
}
}
}
// fatto
private static void fine( )
{
final String MESSAGGIO_FINE
= "grazie per aver usato il programma, premere invio." ;
System .
out .
println ( MESSAGGIO_FINE
) ; myLib.util .Input .leggi_stringa ( ) ;
myLib.util .Input .close_input ( ) ;
}
// fatto
private static void esci( )
{
uscita = true ;
}
// fatto
private static void aggiungiUtente( )
{
// Utente a=new Utente();
// a=Utente.creaUtenteInterfaccia();
// a.modificaUtenteInterfaccia();
clienti_clinica.add ( Utente.creaUtenteInterfaccia ( dati.getCurrentUtenteID ( ) ) ) ;
dati.setCurrentUtenteID ( dati.getCurrentUtenteID ( ) + 1) ;
// clienti_clinica.get(clienti_clinica.size()-1).modificaUtenteInterfaccia();
// return Utente.creaUtenteInterfaccia();
// clienti_clinica.add(parametro);
// System.out.println(clienti_clinica.toString());
}
// fatto
private static void aggiungiMedico
( ) throws Exception {
final String AGGIUNGI_ORARI
= "definire gli orari del medico? è possibile farlo in seguito, ma nel frattempo non sarà possibile utilizzare il medico. (s/n) " ;
corpo_medici.add ( Medico.creaMedicoInterfaccia ( dati.getCurrentMedicoID ( ) ) ) ;
dati.setCurrentMedicoID ( dati.getCurrentMedicoID ( ) + 1) ;
boolean scelta
= myLib.
util .
Menu .
yes_no_Box ( AGGIUNGI_ORARI,
false ) ;
if ( scelta == true )
{
corpo_medici.get ( corpo_medici.size ( ) - 1) .inizializzaOrari ( false ) ;
;
}
}
private static void modificaOrariDottoriMain
( ) throws Exception {
boolean finito = false ;
int scelta;
final String [ ] MENU_ORARI
= { "indietro" ,
"cerca orari" ,
"modifica orari" } ;
final int IND = 0 ;
final int CER = 1 ;
final int MOD = 2 ;
while ( ! finito)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( MENU_ORARI.
length , MENU_ORARI
) ;
switch ( scelta)
{
case IND:
finito = true ;
break ;
case CER:
cercaorari( ) ;
break ;
case MOD:
{
try
{
final String INTRO
= "inserire l'ID del medico da modificare" ;
Integer id_cerca
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , INTRO
) ; if ( id_cerca == null )
{
System .
out .
println ( ANNULLATO
) ; }
else
{
int index = getIndexMedico( id_cerca) ;
modificaOrari( index, id_cerca) ;
}
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
}
break ;
default :
break ;
}
}
}
public static void modificaOrari
( int index,
int albo
) throws Exception {
final String INTRO
= "operazioni sugli orari" ;
boolean finito = false ;
final String [ ] VOCI_ORARI
= { "indietro" ,
"inizializza" ,
"aggiungi" ,
"elimina" } ; int scelta;
final int INDIETRO = 0 ;
final int AGGIORNA = 1 ;
final int AGGIUNGI = 2 ;
final int ELIMINA = 3 ;
while ( ! finito)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( VOCI_ORARI.
length , VOCI_ORARI
) ;
switch ( scelta)
{
case INDIETRO:
finito = true ;
break ;
case AGGIORNA:
corpo_medici.get ( index) .inizializzaOrari ( false ) ;
break ;
case AGGIUNGI:
corpo_medici.get ( index) .aggiungiGiorno ( ) ;
break ;
case ELIMINA:
final int UNO = 1 ;
final int TUTTI = 2 ;
final String [ ] SCEGLI_ELIMINA
= { "indietro" ,
"elimina un giorno" ,
"elimina tutti i giorni" } ; scelta
= myLib.
util .
Menu .
crea_menu_numero ( SCEGLI_ELIMINA.
length , SCEGLI_ELIMINA
) ;
switch ( scelta)
{
/**
* no indietro perche non ha senso rimanere
* tante volte in queto menu
*
*/
case UNO:
corpo_medici.get ( index) .cancellaGiorno ( ) ;
break ;
case TUTTI:
{
/**
* non elimina gli elementi dalla
* lista ma li setta come non lavoro
*
*
*/
try
{
String nomefile
= corpo_medici.
get ( index
) .
trovaVisiteInteressate ( ) ;
System .
out .
printf ( SICURO_FILE, nomefile
) ;
boolean conferma
= myLib.
util .
Menu .
yes_no_Box ( "" ,
false ) ; if ( conferma == true )
{
corpo_medici.get ( index) .resettaOrari ( ) ;
chiudiVisiteMedico( albo) ;
corpo_medici.get ( index) .aggiungiOrari ( ) ;
}
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
}
break ;
default :
break ;
}
break ;
default :
break ;
}
}
}
private static void chiudiVisiteMedico( int id)
{
for ( int i = 0 ; i < cache_visite.size ( ) ; i++ )
{
if ( cache_visite.get ( i) .getId_medico ( ) == id)
{
cache_visite.get ( i) .setStato_della_visita ( Stato_visita.CONCLUSA ) ;
}
}
}
private static void cercaorari( )
{
boolean finito = false ;
final String [ ] TXT_CERCA
= { "Indietro" ,
"Cerca per Medico" ,
"Cerca per Data & Ora" } ; final int IND = 0 ;
final int MED = 1 ;
final int DAT = 2 ;
while ( ! finito)
{
int scelta
= myLib.
util .
Menu .
crea_menu_numero ( TXT_CERCA.
length , TXT_CERCA
) ;
switch ( scelta)
{
case IND:
finito = true ;
break ;
case MED:
cercaOrariPerMedico( ) ;
break ;
case DAT:
cercaOrariPerData( ) ;
break ;
default :
break ;
}
}
}
private static void cercaOrariPerMedico( )
{
final String NO_RIS
= "se non sono stati visualizzati risultati, probabilmente il medico cercato non esiste." ;
final String INTRO_CERCA
= "inserire il numero d'albo del medico di cui vedere gli orari: " ;
int query
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , INTRO_CERCA
) ;
for ( int i = 0 ; i < corpo_medici.size ( ) ; i++ )
{
if ( corpo_medici.get ( i) .numero_iscrizione_albo == query)
{
corpo_medici.get ( i) .visualizzaOrari ( ) ;
}
}
}
private static void cercaOrariPerData( )
{
final String INTRO
= "inserire la data da cercare" ;
Ora ricercaOra = myLib.typedef .Ora .crea_ora ( ) ;
myLib.typedef .Ora .scala ( ricercaOra, false , 0, 30, 60) ;
for ( int i = 0 ; i < corpo_medici.size ( ) ; i++ )
{
corpo_medici.get ( i) .cercaorariMedico ( ricercaData, ricercaOra) ;
myLib.util .Input .pause ( ) ;
}
boolean ancora
= myLib.
util .
Menu .
yes_no_Box ( "cercare ancora? (S/N) " ,
false ) ;
if ( ancora == true )
{
cercaOrariPerData( ) ;
}
}
// TODO metti medico disponibile
public static void eliminaVisite( )
{
}
private static void gestioneVisite( )
{
try
{
final int INDIETRO = 0 ;
final int CREA_VISITA = 1 ;
final int MODIFICA_VISITA = 2 ;
final int CERCA_VISITA = 3 ;
final String [ ] MENU_VISITE
= { "indietro" ,
"crea visita" ,
"modifica visita" ,
"cerca visita" } ;
int scelta;
boolean finito = false ;
while ( ! finito)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( MENU_VISITE.
length , MENU_VISITE
) ;
switch ( scelta)
{
case INDIETRO:
finito = true ;
break ;
case CREA_VISITA:
creaVisita( ) ;
break ;
case MODIFICA_VISITA:
menuModificaVisita( ) ;
break ;
case CERCA_VISITA:
cercaVisite( ) ;
break ;
default :
break ;
}
}
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
}
private static void creaVisita
( ) throws Exception {
final String SCALE
= "Ora scalata a: %s" ; final String MEDICO_PREFERITO
= "Si ha un medico preferito per la visita? (S/N) " ; final String INSERIRE_ORA
= "Inserire l'ora per la visita. Verra' scalata alla mezz'ora piu' vicina " ; final String INSERIRE_DATA
= "Inserire la data preferita per la visita: " ; final String NON_ESISTE
= "L'utente non esiste. rifare? (S/N)" ; final String INTRO
= "Inserimento nuova visita\n " ; final String ID
= "inserire ora l'ID utente che deve fare la visita: " ; final String INS_MOTIVO
= "Inserire il motivo della visita: " ;
boolean finito = false ;
while ( ! finito)
{
idUtenteScelto
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , ID
) ; indexUtente = getIndexUtente( idUtenteScelto) ;
if ( indexUtente == null )
{
if ( myLib.
util .
Menu .
yes_no_Box ( NON_ESISTE,
false ) )
{
finito = false ;
}
else
{
finito = true ;
}
}
else
{
if ( ! finito)
{
/**
*
* continua immissione utente
*/
if ( DEBUG) tempMotivo = "a" ;
else
tempMotivo = myLib.util .Input .leggi_stringa ( INS_MOTIVO) ;
Ora tempOra = myLib.typedef .Ora .crea_ora ( INSERIRE_ORA) ;
myLib.typedef .Ora .scala ( tempOra, false , 0, 30, 60) ;
System .
out .
println ( ORA_SCALATA
+ tempOra.
toString ( ) ) ;
if ( myLib.
util .
Menu .
yes_no_Box ( MEDICO_PREFERITO,
false ) ) {
/**
* un medico
*/
int medicoRichiesto;
while ( index == null )
{
medicoRichiesto = myLib.util .Input .leggi_int ( ) ;
index = getIndexMedico( medicoRichiesto) ;
if ( index == null )
{
if ( ! myLib.
util .
Menu .
yes_no_Box ( "Nessun medico. Rifare? " ,
false ) ) {
finito = false ;
}
}
}
if ( ! finito)
{
INFORMAZIONI= cercaOrarioUnMedico( index, tempData, tempOra) ;
if ( ( boolean ) INFORMAZIONI[ DISPONIBILE] )
{
aggiungiVisita
( idUtenteScelto, tempMotivo,
( int ) INFORMAZIONI
[ MEDICO_ID
] ,
( int ) INFORMAZIONI
[ MEDICO_INDEX
] ,
( GregorianCalendar ) INFORMAZIONI
[ GIORNO_VALORE
] ,
( Ora
) INFORMAZIONI
[ ORA_VAALORE
] ,
( int ) INFORMAZIONI
[ GIORNO_INDEX
] ,
( int ) INFORMAZIONI
[ ORA_INDEX
] ) ; finito= true ;
}
else
{
INFORMAZIONI= cercaOrarioTraTuttiMedici( tempData, tempOra) ;
if ( proponiMediciEOrari
( ( int ) INFORMAZIONI
[ MEDICO_INDEX
] ,
( GregorianCalendar ) INFORMAZIONI
[ GIORNO_VALORE
] ,
( Ora
) INFORMAZIONI
[ ORA_VAALORE
] ) ) {
aggiungiVisita
( idUtenteScelto, tempMotivo,
( int ) INFORMAZIONI
[ MEDICO_ID
] ,
( int ) INFORMAZIONI
[ MEDICO_INDEX
] ,
( GregorianCalendar ) INFORMAZIONI
[ GIORNO_VALORE
] ,
( Ora
) INFORMAZIONI
[ ORA_VAALORE
] ,
( int ) INFORMAZIONI
[ GIORNO_INDEX
] ,
( int ) INFORMAZIONI
[ ORA_INDEX
] ) ; finito= true ;
}
else
{
/**
* TODO RISCELTA
*
*/
finito = true ;
}
}
}
}
else
{
/**
*
* tutti medici
*
*/
INFORMAZIONI = cercaOrarioTraTuttiMedici( tempData, tempOra) ;
/**
*
* se ha trovato uno slot per la tale
* data ora
*
*/
if ( ( boolean ) INFORMAZIONI[ DISPONIBILE] == true )
{
if ( proponiMediciEOrari
( ( int ) INFORMAZIONI
[ MEDICO_INDEX
] ,
( GregorianCalendar ) INFORMAZIONI
[ GIORNO_VALORE
] ,
( Ora
) INFORMAZIONI
[ ORA_VAALORE
] ) ) aggiungiVisita
( idUtenteScelto, tempMotivo,
( int ) INFORMAZIONI
[ MEDICO_ID
] ,
( int ) INFORMAZIONI
[ MEDICO_INDEX
] ,
( GregorianCalendar ) INFORMAZIONI
[ GIORNO_VALORE
] ,
( Ora
) INFORMAZIONI
[ ORA_VAALORE
] ,
( int ) INFORMAZIONI
[ GIORNO_INDEX
] ,
( int ) INFORMAZIONI
[ ORA_INDEX
] ) ; }
/**
*
* se non ha trovato, propone il primo
*
*/
if ( ( boolean ) INFORMAZIONI[ DISPONIBILE] == false )
{
if ( proponiMediciEOrari
( ( int ) INFORMAZIONI
[ MEDICO_INDEX
] ,
( GregorianCalendar ) INFORMAZIONI
[ GIORNO_VALORE
] ,
( Ora
) INFORMAZIONI
[ ORA_VAALORE
] ) ) {
aggiungiVisita
( idUtenteScelto, tempMotivo,
( int ) INFORMAZIONI
[ MEDICO_ID
] ,
( int ) INFORMAZIONI
[ MEDICO_INDEX
] ,
( GregorianCalendar ) INFORMAZIONI
[ GIORNO_VALORE
] ,
( Ora
) INFORMAZIONI
[ ORA_VAALORE
] ,
( int ) INFORMAZIONI
[ GIORNO_INDEX
] ,
( int ) INFORMAZIONI
[ ORA_INDEX
] ) ; finito = true ;
}
else
{
finito = true ;
}
}
/**
*
* non ha trovato niente
*
*/
if ( INFORMAZIONI[ DISPONIBILE] == null )
{
System .
out .
println ( NESSUN_RISULTATO_TROVATO_NE_DA_CONSIGLIARE
) ;
return ;
}
}
}
}
}
}
private static void aggiungiVisita
( int IDutente,
String motivo,
Integer IDmedico,
int indexMedico,
GregorianCalendar data, Ora ora,
int indexData,
int indexOra
) {
cache_visite.add ( new Visita( IDutente, motivo, IDmedico, data, ora) ) ;
corpo_medici.get ( indexMedico) .orari_visita .get ( indexData) .orari [ indexOra] .setStato_slot ( Stato_visita_slot.PRENOTATA ) ;
corpo_medici.get ( indexMedico) .orari_visita .get ( indexData) .orari [ indexOra] .id_visita = cache_visite.get ( cache_visite.size ( ) - 1) .getId_visita ( ) ;
}
{
}
/**
*
*
* se quello fornito esiste, si ritornano gli stessi valori e true finale
* con indici corretti se non trovato si ritorna false e un consiglio, il
* piu vicino se nessun consiglio ritorna null finale e prima non importa
*
* usare costanti per accedere a campi
*
*
* @return
*/
{
/**
* prima cerca per gli orari selezionati
*
*/
for ( int i = 0 ; i < corpo_medici.size ( ) ; i++ )
{
for ( int j = 0 ; j < corpo_medici.get ( i) .orari_visita .size ( ) ; j++ )
{
for ( int k = 0 ; i < corpo_medici.get ( i) .orari_visita .get ( j) .orari .length ; k++ )
{
if (
( corpo_medici.get ( i) .orari_visita .get ( j) .data .equals ( dataRichiesta) )
&&
( corpo_medici.get ( i) .orari_visita .get ( j) .orari [ k] .getOrario ( ) .equals ( oraRichiesta) )
&&
( corpo_medici.get ( i) .orari_visita .get ( j) .orari [ k] .getStato_slot ( ) .equals ( Stato_visita_slot.PRENOTABILE ) )
)
{
ritorno[ MEDICO_ID] = corpo_medici.get ( i) .numero_iscrizione_albo ;
ritorno
[ MEDICO_INDEX
] = new Integer ( i
) ; ritorno[ GIORNO_VALORE] = myLib.typedef .Data .clonaData ( dataRichiesta) ;
ritorno
[ GIORNO_INDEX
] = new Integer ( j
) ; ritorno[ ORA_VAALORE] = myLib.typedef .Ora .clone ( oraRichiesta) ;
ritorno
[ ORA_INDEX
] = new Integer ( k
) ; ritorno
[ DISPONIBILE
] = new Boolean ( true ) ;
return ritorno;
/**
*
*
* TODO questo cerca solo il primo
* risultato, fare che cerca anche il
* minore
*/
}
}
}
}
/**
* poi cerca tra tutti, il consiglio
*
*/
ritorno
[ DISPONIBILE
] = new Boolean ( false ) ;
/**
* serve per cercare il minore
*
*/
boolean primorisultato = true ;
for ( int i = 0 ; i < corpo_medici.size ( ) ; i++ )
{
for ( int j = 0 ; j < corpo_medici.get ( i) .orari_visita .size ( ) ; j++ )
{
for ( int k = 0 ; i < corpo_medici.get ( i) .orari_visita .get ( j) .orari .length ; k++ )
{
if ( ( corpo_medici.get ( i) .orari_visita .get ( j) .orari [ k] .getStato_slot ( ) .equals ( Stato_visita_slot.PRENOTABILE ) ) && ( primorisultato) )
{
ritorno[ MEDICO_ID] = corpo_medici.get ( i) .numero_iscrizione_albo ;
ritorno
[ MEDICO_INDEX
] = new Integer ( i
) ;
ritorno[ GIORNO_VALORE] = corpo_medici.get ( i) .orari_visita .get ( j) .data ;
ritorno
[ GIORNO_INDEX
] = new Integer ( j
) ;
ritorno[ ORA_VAALORE] = corpo_medici.get ( i) .orari_visita .get ( j) .orari [ k] .getOrario ( ) ;
ritorno
[ ORA_INDEX
] = new Integer ( k
) ; primorisultato = false ;
}
if ( ( corpo_medici.get ( i) .orari_visita .get ( j) .orari [ k] .getStato_slot ( ) .equals ( Stato_visita_slot.PRENOTABILE ) ) && ( ! primorisultato) )
{
if ( corpo_medici.get ( i) .orari_visita .get ( j) .data .before ( ritorno[ GIORNO_VALORE] ) )
{
ritorno[ MEDICO_ID] = corpo_medici.get ( i) .numero_iscrizione_albo ;
ritorno
[ MEDICO_INDEX
] = new Integer ( i
) ;
ritorno[ GIORNO_VALORE] = corpo_medici.get ( i) .orari_visita .get ( j) .data ;
ritorno
[ GIORNO_INDEX
] = new Integer ( j
) ;
ritorno[ ORA_VAALORE] = corpo_medici.get ( i) .orari_visita .get ( j) .orari [ k] .getOrario ( ) ;
ritorno
[ ORA_INDEX
] = new Integer ( k
) ;
}
else
{
if ( corpo_medici.get ( i) .orari_visita .get ( j) .orari [ k] .orario .relazione ( ( Ora) ritorno[ ORA_VAALORE] ) == Ora.CONFRONTA_ORE_ANTECEDENTE )
{
ritorno[ MEDICO_ID] = corpo_medici.get ( i) .numero_iscrizione_albo ;
ritorno
[ MEDICO_INDEX
] = new Integer ( i
) ;
ritorno[ GIORNO_VALORE] = corpo_medici.get ( i) .orari_visita .get ( j) .data ;
ritorno
[ GIORNO_INDEX
] = new Integer ( j
) ;
ritorno[ ORA_VAALORE] = corpo_medici.get ( i) .orari_visita .get ( j) .orari [ k] .getOrario ( ) ;
ritorno
[ ORA_INDEX
] = new Integer ( k
) ;
}
}
}
}
}
}
if ( ! primorisultato)
{
return ritorno;
}
else
{
/**
*
* non c'è niente :(
*
*/
ritorno[ DISPONIBILE] = null ;
return ritorno;
}
}
/**
* propone una stringa col medico
*
* @param indiceMedico
* @param dataProposta
* @param oraProposta
* @return si no
*/
private static boolean proponiMediciEOrari
( int indiceMedico,
GregorianCalendar dataProposta, Ora oraProposta
) {
// for (int i=0; i<corpo_medici.size();i++)
// {
//
// for (int j=0; i<corpo_medici.get(i).orari_visita.size();i++)
// {
// for (int k=0;
// i<corpo_medici.get(i).orari_visita.get(j).orari.length;i++)
// {
//
// if (
// corpo_medici.get(i).orari_visita.get(j).orari[k].getOrario().equals(oraProposta)
//
// &&
//
// corpo_medici.get(i).orari_visita.get(j).data.equals(dataProposta)
//
// &&
//
// corpo_medici.get(i).orari_visita.get(j).orari[k].getStato_slot().equals(Stato_visita_slot.PRENOTABILE)
//
// )
// {
// /**
// *
// * todo
// * NO SE PROPONE DEVE SOLO SCRIVERE
// */
// //return new Integer[]={corpo_medici.get(i).numero_iscrizione_albo,
// corpo_medici.get(i).orari_visita.get(j).data }
//
// // xvsd;3
// System.out.println("Ecco il prossimo risultato trovato:");
// System.out.println("medico: " +
// corpo_medici.get(i).getInfoBase()+"\ngiorno" +
// myLib.util.Output.formatDate(corpo_medici.get(i).orari_visita.get(j).data)
// + "\nora: " +
// corpo_medici.get(i).orari_visita.get(j).orari[k].orario.toString());
// return;
// }
//
// }
//
// }
System .
out .
println ( "medico proposto:" + corpo_medici.
get ( indiceMedico
) .
getInfoBase ( ) + "data proposta: " + myLib.
util .
Output .
formatDate ( dataProposta
) + "ora proposta: " + oraProposta.
toString ( ) ) ; return ( myLib.
util .
Menu .
yes_no_Box ( "accettare? (S/N" ,
true ) ) ;
//
// }
//
//
// System.out.println("nessun risultato");
}
/**
* dato l'id dell'utente, ne ritorna l'indice nella lista, altrimenti null
*
* @return
*/
private static Integer getIndexUtente
( int id
) {
for ( int i = 0 ; i < clienti_clinica.size ( ) ; i++ )
{
if ( clienti_clinica.get ( i) .id_utente == id) return i;
}
return null ;
}
private static void menuModificaVisita( )
{
final String INS_ID
= "inserire ID" ;
boolean finito = false ;
int scelta;
int query;
final int INDIETRO = 0 ;
final int CONCLUDI = 1 ;
final int MODIFICA = 2 ;
final int ELIMINA = 3 ;
final String [ ] MENU_MODIFICA
= { "indietro" ,
"concludi visita" ,
"modifica visita" ,
"elimina visita" } ;
while ( ! finito)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( MENU_MODIFICA.
length , MENU_MODIFICA
) ;
switch ( scelta)
{
case INDIETRO:
finito = true ;
break ;
case CONCLUDI:
query
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , INS_ID
) ;
concludiVisita( query) ;
break ;
case MODIFICA:
query
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , INS_ID
) ;
modificaVisita( query) ;
break ;
case ELIMINA:
query
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , INS_ID
) ; eliminaVisita( query) ;
break ;
default :
break ;
}
}
}
// ok
private static void concludiVisita( int id)
{
try
{
final String AVVISO
= "Sta per essere registrata come conclusa una visita. L'azione non può essere annullata. inserire referto e prescrizione. per annullare inserire entrambi vuoti" ; final String INS_REF
= "inserire ora il referto" ; final String INS_PRESCR
= "inserire ora la prescrizione" ; final String ANNULL
= "inserire ora la prescrizione" ;
temp_referto = myLib.util .Input .leggi_stringa ( INS_REF) ;
temp_prescrizione = myLib.util .Input .leggi_stringa ( INS_PRESCR) ;
if ( ( temp_referto.isEmpty ( ) ) && ( temp_prescrizione.isEmpty ( ) ) )
{
}
else
{
cache_visite.get ( getIndexVisita( id) ) .setStato_della_visita ( Stato_visita.CONCLUSA ) ;
cache_visite.get ( getIndexVisita( id) ) .setReferto ( temp_referto) ;
cache_visite.get ( getIndexVisita( id) ) .setPrescrizione ( temp_prescrizione) ;
}
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
}
// ok
private static void modificaVisita( int id)
{
try
{
final String INTRO
= "quale campo modificare?" ; final String [ ] CAMPI
= { "indietro" ,
"motivo" ,
"referto" ,
"prescrizione" } ;
final int INDIETRO = 0 ;
final int MOTIVO = 1 ;
final int REFERTO = 2 ;
final int PRESCRI = 3 ;
int scelta;
boolean finito = false ;
while ( ! finito)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( CAMPI.
length , CAMPI
) ;
switch ( scelta)
{
case INDIETRO:
finito = true ;
break ;
case MOTIVO:
temp_motivo = myLib.util .Input .leggi_stringa ( "inserire nuovo motivo. vuoto per annullare" ) ;
if ( ! temp_motivo.isEmpty ( ) )
{
cache_visite.get ( getIndexVisita( id) ) .setMotivo ( temp_motivo) ;
}
break ;
case REFERTO:
temp_referto = myLib.util .Input .leggi_stringa ( "inserire nuovo referto. vuoto per annullare" ) ;
if ( ! temp_referto.isEmpty ( ) )
{
cache_visite.get ( getIndexVisita( id) ) .setMotivo ( temp_referto) ;
cache_visite.get ( getIndexVisita( id) ) .setStato_della_visita ( Stato_visita.REFERTATA ) ;
}
break ;
case PRESCRI:
temp_prescriz = myLib.util .Input .leggi_stringa ( "inserire nuova prescrizione. vuoto per annullare" ) ;
if ( ! temp_prescriz.isEmpty ( ) )
{
cache_visite.get ( getIndexVisita( id) ) .setMotivo ( temp_prescriz) ;
}
break ;
default :
break ;
}
}
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
}
// ok
private static void eliminaVisita( int id)
{
try
{
boolean scelta = false ;
final String CONF
= "l'azione non può essere annullata. continuare? (s/n) " ;
scelta
= myLib.
util .
Menu .
yes_no_Box ( CONF,
false ) ;
if ( scelta = true )
{
cache_visite.remove ( getIndexVisita( id) ) ;
}
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
}
/**
* ritorna l'indice nella lista visite, dato un id univoco
*
* @param _id
* @return
* @throws Exception
*/
protected static int getIndexVisita
( int _id
) throws Exception {
for ( int i = 0 ; i < cache_visite.size ( ) ; i++ )
{
if ( cache_visite.get ( i) .matchID ( _id) ) return i;
}
}
/**
* dato il numero albo di un medico, ritorna l'indice nella lista, se non
* trovato null
*
* @param id
* @return
*/
private static Integer getIndexMedico
( int id
) {
final int NUM_ALB = 8 ;
for ( int i = 0 ; i < corpo_medici.size ( ) ; i++ )
{
if ( corpo_medici.get ( i) .matchcampo ( NUM_ALB, id) ) return i;
}
return null ;
}
private static void cercaVisite( )
{
try
{
final String PROMPT_QUERY
= "inserire l'ID da cercare: " ;
boolean finito = false ;
int scelta;
int query;
/**
* TODO RICERCA PER DATA NON RICHIEDE MOLTO
*
*/
final String [ ] MENU_CERCA
= { "indietro" ,
"cerca per utente" ,
"cerca per medico" } ;
final int INDIETRO = 0 ;
final int RICERCA_VISITA_UTENTE = 1 ;
final int RICERCA_VISITA_MEDICO = 2 ;
while ( ! finito)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( MENU_CERCA.
length , MENU_CERCA
) ;
switch ( scelta)
{
case INDIETRO:
finito = true ;
break ;
case RICERCA_VISITA_UTENTE:
query
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , PROMPT_QUERY
) ; visualizzaVisite( cercaVisita( RICERCA_VISITA_UTENTE, query) ) ;
break ;
case RICERCA_VISITA_MEDICO:
query
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , PROMPT_QUERY
) ;
visualizzaVisite( cercaVisita( RICERCA_VISITA_MEDICO, query) ) ;
break ;
default :
break ;
}
}
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ;
}
}
private static ArrayList
< Visita
> cercaVisita
( int tipo_ricerca,
int query
) throws Exception {
final int RICERCA_VISITA_UTENTE = 1 ;
final int RICERCA_VISITA_MEDICO = 2 ;
ArrayList< Visita> ritorno = new ArrayList< Visita> ( ) ;
if ( tipo_ricerca == RICERCA_VISITA_UTENTE)
{
for ( int i = 0 ; i < cache_visite.size ( ) ; i++ )
{
if ( cache_visite.get ( i) .matchUtente ( query) )
{
ritorno.add ( cache_visite.get ( i) ) ;
}
}
return ritorno;
}
if ( tipo_ricerca == RICERCA_VISITA_MEDICO)
{
for ( int i = 0 ; i < cache_visite.size ( ) ; i++ )
{
if ( cache_visite.get ( i) .matchMedico ( query) )
{
ritorno.add ( cache_visite.get ( i) ) ;
}
}
return ritorno;
}
}
private static void visualizzaVisite( ArrayList< Visita> input)
{
final String INTRO_VISITE
= "Visite:\n \t medico\t utente\t stato\t data\n \t " ;
if ( input.size ( ) == 0)
{
}
else
{
for ( int i = 0 ; i < input.size ( ) ; i++ )
{
if ( ( i % myLib.util .Output .MAX_RIGHE ) == 0)
{
myLib.util .Input .pause ( PROSSIMA_PAGINA) ;
}
System .
out .
println ( input.
get ( i
) .
id_medico + "\t " + input.
get ( i
) .
id_utente + "\t " + input.
get ( i
) .
getStato_della_visita ( ) + "\t " + myLib.
util .
Output .
formatDate ( input.
get ( i
) .
getData ( ) ) + "\n \t " ) ; }
}
}
private static void visualizzaEModificaDati( )
{
/**
* TODO VISUALIZZA STATISTICHE VISITE CHE NON E DIFFICILE
*
*
*
*/
final String [ ] TESTI_MENU
= { "indietro" ,
"visualizza utenti" ,
"visualizza medici" ,
"modifica utente" ,
"modifica medico" ,
"cerca utente" ,
"cerca medico" } ; final int COM_INDIETRO = 0 ;
final int COM_VISU_UTENTI = 1 ;
final int COM_VISU_MEDICI = 2 ;
final int COM_MOD_UTENTE = 3 ;
final int COM_MOD_MEDICO = 4 ;
final int COM_CERCA_UTENTE = 5 ;
final int COM_CERCA_MEDICO = 6 ;
boolean uscita = false ;
int scelta;
while ( ! uscita)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( TESTI_MENU.
length , TESTI_MENU
) ;
switch ( scelta)
{
case COM_INDIETRO:
uscita = true ;
break ;
case COM_VISU_UTENTI:
visualizzautenti( ) ; // ok
break ;
case COM_VISU_MEDICI:
visualizzamedici( ) ; // ok
break ;
case COM_MOD_UTENTE:
try
{
modificautenti( ) ; // ok
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
break ;
case COM_MOD_MEDICO:
modificamedici( ) ;
// ok
break ;
case COM_CERCA_UTENTE:
cercautenti( ) ; // ok
break ;
case COM_CERCA_MEDICO:
cercamedici( ) ; // ok
break ;
default :
break ;
}
}
}
private static void visualizzaBase( ArrayList< Visita> in)
{
}
private static void visualizzaUtente( Utente risultato, ArrayList< Visita> elenco)
{
final String INTRO_UTENTE
= "Dati utente:\n \t codice fiscale\t cognome\t nome\n \t " ;
final String INTRO_VISITE
= "visite prenotate e concluse:\n \t data\t medico\t referto\t prescrizione\n \t " ;
System .
out .
println ( INTRO_UTENTE
+ risultato.
codice_fiscale + "\t " + risultato.
cognome + "\t " + risultato.
nome ) ;
myLib.util .Input .pause ( PROSSIMA_PAGINA) ;
if ( elenco.size ( ) == 0)
{
}
else
{
System .
out .
println ( INTRO_VISITE
) ; for ( int i = 0 ; i < elenco.size ( ) ; i++ )
{
/**
* ogni 25 righe si ferma
*
*/
if ( ( i % myLib.util .Output .MAX_RIGHE ) == 0)
{
myLib.util .Input .pause ( PROSSIMA_PAGINA) ;
}
if ( elenco.get ( i) .getStato_della_visita ( ) == Stato_visita.PRENOTATA )
{
System .
out .
println ( myLib.
util .
Output .
formatDate ( elenco.
get ( i
) .
getData ( ) ) + "\t " + elenco.
get ( i
) .
id_medico + "\t " + elenco.
get ( i
) .
getReferto ( ) + "\t " + elenco.
get ( i
) .
getPrescrizione ( ) + "\n \t " ) ; }
}
}
}
/**
* aggiungere filtri di ricerca direttamente nella codifica
*
* @param risultato
* @param elenco
*/
private static void visualizzaMedico( Medico risultato, ArrayList< Visita> elenco)
{
final String INTRO_MEDICO
= "Dati medico:\n \t albo\t cognome\t nome\n \t " ;
final String INTRO_VISITE
= "visite prenotate:\n \t data\t motivo\n \t " ;
System .
out .
println ( risultato.
numero_iscrizione_albo + "\t " + risultato.
cognome + "\t " + risultato.
nome ) ;
myLib.util .Input .pause ( PROSSIMA_PAGINA) ;
if ( elenco.size ( ) == 0)
{
}
else
{
for ( int i = 0 ; i < elenco.size ( ) ; i++ )
{
/**
* ogni 25 righe si ferma
*
*/
if ( ( i % myLib.util .Output .MAX_RIGHE ) == 0)
{
myLib.util .Input .pause ( PROSSIMA_PAGINA) ;
}
if ( elenco.get ( i) .getStato_della_visita ( ) == Stato_visita.PRENOTATA )
{
System .
out .
println ( myLib.
util .
Output .
formatDate ( elenco.
get ( i
) .
getData ( ) ) + "\t " + elenco.
get ( i
) .
getMotivo ( ) + "\n \t " ) ; }
}
}
}
private static void visualizzautenti( )
{
try
{
int ricerca
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , INS_ID
) ; visualizzaUtente( ( Utente) ricercaUnoID( CERCA_UTENTE_SINGOLO, ricerca) , cercaVisite( CERCA_UTENTE_VISITE, ricerca) ) ;
{
System .
err .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
}
private static void visualizzamedici( )
{
try
{
int ricerca
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , INS_ID
) ; visualizzaMedico( ( Medico) ricercaUnoID( CERCA_MEDICO_SINGOLO, ricerca) , cercaVisite( CERCA_MEDICO_VISITE, ricerca) ) ;
{
System .
out .
println ( ERR_GENERICO
+ e.
getMessage ( ) ) ; }
}
private static ArrayList
< Visita
> cercaVisite
( int tipo_ricerca,
int id_da_cercare
) throws Exception {
final String ERR
= "nessun risultato: visite" ;
if ( tipo_ricerca == CERCA_MEDICO_VISITE)
{
ArrayList< Visita> ritorno = new ArrayList< Visita> ( ) ;
for ( int i = 0 ; i < cache_visite.size ( ) ; i++ )
{
if ( cache_visite.get ( i) .matchMedico ( id_da_cercare) )
{
ritorno.add ( cache_visite.get ( i) ) ;
}
}
return ritorno;
}
if ( tipo_ricerca == CERCA_UTENTE_VISITE)
{
ArrayList< Visita> ritorno = new ArrayList< Visita> ( ) ;
for ( int i = 0 ; i < cache_visite.size ( ) ; i++ )
{
if ( cache_visite.get ( i) .matchUtente ( id_da_cercare) )
{
ritorno.add ( cache_visite.get ( i) ) ;
}
}
return ritorno;
}
}
private static Object ricercaUnoID
( int tipo_ricerca,
int id_ricerca
) throws Exception {
final int CERCA_ID = 10 ;
final String ERR
= "nessun risultato: medici/utenti" ;
if ( tipo_ricerca == CERCA_MEDICO_SINGOLO)
{
for ( int i = 0 ; i < corpo_medici.size ( ) ; i++ )
{
if ( corpo_medici.get ( i) .matchcampo ( CERCA_ID, id_ricerca) ) return corpo_medici.get ( i) ;
}
}
;
if ( tipo_ricerca == CERCA_UTENTE_SINGOLO)
{
for ( int i = 0 ; i < clienti_clinica.size ( ) ; i++ )
{
if ( clienti_clinica.get ( i) .matchcampo ( CERCA_ID, id_ricerca) ) return clienti_clinica.get ( i) ;
}
}
}
{
boolean finito = false ;
while ( ! finito)
{
final String INTRO
= "inserire l'id dell'utente da modificare" ; // System.out.println(INTRO);
ricerca
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , INTRO
) ; if ( ricerca == null )
{
finito = true ;
}
else
{
ricerca = getIndexUtente( ricerca) ;
System .
out .
println ( SARA_MODIFICATO
+ clienti_clinica.
get ( ricerca
) .
toString ( ) ) ;
finito
= ! myLib.
util .
Menu .
yes_no_Box ( DESIDERA_CONTINUARE,
false ) ; if ( myLib.
math .
Numeri .
compreso_o_uguale ( ricerca, 0, clienti_clinica.
size ( ) - 1,
false ) ) { throw new IndexOutOfBoundsException ( ) ; }
clienti_clinica.get ( ricerca) .modificaUtenteInterfaccia ( ) ;
}
}
}
private static void modificamedici( )
{
boolean finito
= ! myLib.
util .
Menu .
yes_no_Box ( DESIDERA_CONTINUARE,
false ) ; while ( ! finito)
{
final String INTRO
= "inserire l'id del medico da modificare" ;
ricerca
= myLib.
util .
Input .
leggi_int ( 0,
Integer .
MAX_VALUE , INTRO
) ; ricerca = getIndexMedico( ricerca) ;
if ( ricerca == null )
{
finito = true ;
System .
err .
println ( CERCA_ERR
) ; }
else
{
if ( myLib.
math .
Numeri .
compreso_o_uguale ( ricerca, 0, corpo_medici.
size ( ) - 1,
false ) ) { throw new IndexOutOfBoundsException ( ) ; }
corpo_medici.get ( ricerca) .modificamedicoInterfaccia ( ) ;
}
}
}
private static void cercautenti( )
{
boolean uscita = false ;
int scelta;
final int COM_IND = 0 ;
final int COM_NOME = 1 ;
final int COM_COGNOME_ = 2 ;
final int COM_DATA = 3 ;
final int COM_LUOGO = 4 ;
final int COM_TELEF = 5 ;
final int COM_GEN = 6 ;
final int COM_COD_FIS = 7 ;
final String [ ] TESTI_MENU
= { "indietro" ,
"per nome" ,
"per cognome" ,
"per data nascita" ,
"per luogo di nascita" ,
"per telefono" ,
"per genere" ,
"per codice fiscale" } ;
while ( ! uscita)
{
final String S
= "inserire dato da cercare\n " ; scelta
= myLib.
util .
Menu .
crea_menu_numero ( TESTI_MENU.
length , TESTI_MENU
) ;
switch ( scelta)
{
case COM_IND:
uscita = true ;
break ;
case COM_NOME:
visualizzaListaRisultati( cercaRitornaLista( CERCA_UTENTI, COM_NOME, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
case COM_COGNOME_:
// final String S="inserire cognome da cercare";
visualizzaListaRisultati( cercaRitornaLista( CERCA_UTENTI, COM_COGNOME_, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
case COM_DATA:
visualizzaListaRisultati( cercaRitornaLista( CERCA_UTENTI, COM_DATA, query) ) ;
break ;
case COM_TELEF:
visualizzaListaRisultati( cercaRitornaLista( CERCA_UTENTI, COM_TELEF, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
case COM_GEN:
visualizzaListaRisultati( cercaRitornaLista( CERCA_UTENTI, COM_GEN, myLib.util .Input .scegligenerechar ( ) ) ) ;
break ;
case COM_LUOGO:
visualizzaListaRisultati( cercaRitornaLista( CERCA_UTENTI, COM_LUOGO, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
case COM_COD_FIS:
visualizzaListaRisultati( cercaRitornaLista( CERCA_UTENTI, COM_COD_FIS, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
default :
break ;
}
}
}
private static void cercamedici( )
{
boolean uscita = false ;
int scelta;
final int COM_IND = 0 ;
final int COM_NOME = 1 ;
final int COM_COGNOME_ = 2 ;
final int COM_DATA = 3 ;
final int COM_LUOGO = 4 ;
final int COM_TELEF = 5 ;
final int COM_GEN = 6 ;
final int COM_COD_FIS = 7 ;
final int COM_NUM = 8 ;
final int COM_TIPO = 9 ;
final String [ ] TESTI_MENU
= { "indietro" ,
"per nome" ,
"per cognome" ,
"per data nascita" ,
"per luogo di nascita" ,
"per telefono" ,
"per genere" ,
"per codice fiscale" ,
"per numero iscrizione" } ;
while ( ! uscita)
{
final String S
= "inserire dato da cercare\n " ; scelta
= myLib.
util .
Menu .
crea_menu_numero ( TESTI_MENU.
length , TESTI_MENU
) ;
switch ( scelta)
{
case COM_IND:
uscita = true ;
break ;
case COM_NOME:
visualizzaListaRisultati( cercaRitornaLista( CERCA_MEDICI, COM_NOME, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
case COM_COGNOME_:
// final String S="inserire cognome da cercare";
visualizzaListaRisultati( cercaRitornaLista( CERCA_MEDICI, COM_COGNOME_, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
case COM_DATA:
visualizzaListaRisultati( cercaRitornaLista( CERCA_MEDICI, COM_DATA, query) ) ;
break ;
case COM_TELEF:
visualizzaListaRisultati( cercaRitornaLista( CERCA_MEDICI, COM_TELEF, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
case COM_GEN:
visualizzaListaRisultati( cercaRitornaLista( CERCA_MEDICI, COM_GEN, myLib.util .Input .scegligenerechar ( ) ) ) ;
break ;
case COM_LUOGO:
visualizzaListaRisultati( cercaRitornaLista( CERCA_MEDICI, COM_LUOGO, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
case COM_COD_FIS:
visualizzaListaRisultati( cercaRitornaLista( CERCA_MEDICI, COM_COD_FIS, myLib.util .Input .leggi_stringa ( S) ) ) ;
break ;
case COM_NUM:
visualizzaListaRisultati
( cercaRitornaLista
( CERCA_MEDICI, COM_NUM, myLib.
util .
Input .
leggi_integer ( 0,
Integer .
MAX_VALUE , S
) ) ) ; break ;
case COM_TIPO:
Medico.tipologia_medico query2 = tipologia_medico.sceglitipo ( ) ;
visualizzaListaRisultati( cercaRitornaLista( CERCA_MEDICI, COM_TIPO, query2) ) ;
break ;
default :
break ;
}
}
}
// ok
private static ArrayList
<?> cercaRitornaLista
( int tipo_ricerca,
int campo,
Object query
) {
if ( tipo_ricerca == CERCA_MEDICI)
{
ArrayList< Medico> ritorno = new ArrayList< Medico> ( ) ;
for ( int i = 0 ; i < corpo_medici.size ( ) ; i++ )
{
if ( corpo_medici.get ( i) .matchcampo ( campo, query) )
{
ritorno.add ( corpo_medici.get ( i) ) ;
}
}
return ritorno;
}
if ( tipo_ricerca == CERCA_UTENTI)
{
ArrayList< Utente> ritorno = new ArrayList< Utente> ( ) ;
for ( int i = 0 ; i < clienti_clinica.size ( ) ; i++ )
{
if ( clienti_clinica.get ( i) .matchcampo ( campo, query) )
{
ritorno.add ( clienti_clinica.get ( i) ) ;
}
}
return ritorno;
}
/**
* stratagemma preso da
* http://stackoverflow.com/questions/1274792/is-returning
* -null-bad-design per evitare return null
*/
}
// ok
private static void visualizzaListaRisultati( ArrayList<?> risultatoRicerca)
{
final String VUOTO
= "nessun risultato" ; final String RISULTATI
= "risultati:\n " ; final String CORRENTE
= "elemento corrente: " ;
if ( risultatoRicerca.isEmpty ( ) )
{
myLib.util .Output .stampa_testo ( VUOTO) ;
}
else
{
boolean finito = false ;
int i = 0 ;
int scelta;
final int INDIETRO = 0 ;
final int PRECEDENTE = 1 ;
final int SUCCESSIVO = 2 ;
final String [ ] SCORRI_MENU
= { "indietro" ,
"precedente" ,
"successivo" } ; System .
out .
println ( RISULTATI
) ;
while ( ! finito)
{
System .
out .
println ( CORRENTE
+ i
+ " \n " ) ;
System .
out .
println ( risultatoRicerca.
get ( i
) .
toString ( ) ) ;
scelta
= myLib.
util .
Menu .
crea_menu_numero ( SCORRI_MENU.
length , SCORRI_MENU
) ; switch ( scelta)
{
case INDIETRO:
finito = true ;
break ;
case PRECEDENTE:
if ( ( i - 1) >= 0)
{
i--;
}
break ;
case SUCCESSIVO:
if ( ( i + 1) < risultatoRicerca.size ( ) )
{
i++;
}
break ;
default :
break ;
}
}
}
}
// OK
private static void gestioneIO( )
{
boolean finito = false ;
final String ERR
= "errore. non è stato possibile scrivere i dati: " ; final int INDIETRO = 0 ;
final int CARICA = 1 ;
final int SALVA = 2 ;
final String [ ] MENU_IO
= { "indietro" ,
"carica i dati" ,
"salva i dati" } ;
try
{
int scelta;
while ( ! finito)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( MENU_IO.
length , MENU_IO
) ; switch ( scelta)
{
case INDIETRO:
finito = true ;
break ;
case CARICA:
leggiFile( ) ;
finito = true ;
case SALVA:
scriviFile( ) ;
finito = true ;
break ;
default :
break ;
}
}
{
System .
err .
println ( ERR_GENERICO
+ I_O_ERROR
+ e.
getMessage ( ) ) ; {
System .
err .
println ( ERR_GENERICO
+ ERRORE_CLASSNOTFOUND
+ e.
getMessage ( ) ) ; {
System .
err .
println ( ERR_GENERICO
+ ERORE_CLASSCAST
+ e.
getMessage ( ) ) ; } finally
{
finito = true ;
}
}
protected static Integer cercaIndiceDatoIDVisita
( int search
) {
for ( int i = 0 ; i < cache_visite.size ( ) ; i++ )
{
if ( cache_visite.get ( i) .getId_visita ( ) == search) { return i; }
}
return null ;
}
}
Codice sorgente - presumibilmente Java
package corso ;
import java.io.IOException ;
import java.io.Serializable ;
//import java.lang.reflect.Array;
import java.util.ArrayList ;
import java.util.GregorianCalendar ;
//import javax.script.CompiledScript;
import corso.SlotTemporale.Stato_visita_slot ;
import corso.Visita.Stato_visita ;
import myLib.typedef.Ora ;
import myLib.typedef.Tempo ;
public class Giorno
implements Comparable
< Giorno
> ,
Serializable {
private static final String TRENTA
= "/:30" ;
private static final String STRINGA_SPAZI
= " " ;
private static final long serialVersionUID= 0 ;
/**
* deve essere un nnumero di ore intero
*/
public static final Ora apertura = new Ora( 8, 0, 0) ;
/**
* deve essere un nnumero di ore intero
*/
public static final Ora chiusura = new Ora( 18, 0, 0) ;
public static final int lavorative = ( chiusura.get_ore ( ) - apertura.get_ore ( ) ) ;
public static final int numero_slot_per_ora = 2 ;
public static final int minuti_per_slot = Tempo.MINUTI_PER_ORE / numero_slot_per_ora;
public static final int numero_slot_per_giorno = lavorative * numero_slot_per_ora;
/**
* gli orari di visita
*
*/
protected SlotTemporale[ ] orari = new SlotTemporale[ numero_slot_per_giorno] ;
{
inizializzaTabella( a, b) ;
}
/**
* riempie la tabella degli orari con le varie cose a seconda delle ore
*
* @param apri
* @param chiudi
* @throws Exception
*/
private void inizializzaTabella
( Ora apri, Ora chiudi
) throws Exception {
final String SWAP1
= "Le ore " ; final String SWAP3
= " saranno scambiate. Continuare? (S/N)" ;
final String ERR_ORA
= "ore non corrette" ; if ( apri.
relazione ( apertura
) == Ora.
CONFRONTA_ORE_ANTECEDENTE || ( chiudi.
relazione ( chiusura
) ) == Ora.
CONFRONTA_ORE_SEGUENTE ) throw new Exception ( ERR_ORA
) ;
if ( apri.relazione ( chiudi) == Ora.CONFRONTA_ORE_SEGUENTE )
/**
* perchè non posso swappare oggetti ;( dannata Sole (Sun)
*
*/
{
System .
out .
println ( SWAP1
+ apri.
toString ( ) + SWAP2
+ chiudi.
toString ( ) ) ;
boolean scelta
= myLib.
util .
Menu .
yes_no_Box ( SWAP3,
true ) ;
if ( scelta == true )
{
Ora transito = apri;
apri = chiudi;
chiudi = transito;
}
else
{
}
}
Ora corrente = Ora.clone ( apertura) ;
/**
* riempio il vettore di slot temporali
*
*
*/
for ( int i = 0 ; i < orari.length ; i++ )
{
if ( corrente.compresaDoppia ( true , false , apri, chiudi) )
{
//if (corrente.compresa(true, apri, chiudi))
{ orari[ i] = new SlotTemporale( corrente, 0, Stato_visita_slot.PRENOTABILE ) ; }
// else
// {
// orari[i] = new SlotTemporale(corrente, 0, Stato_visita_slot.NON_PRENOTABILE);
//}
}
else
{
orari[ i] = new SlotTemporale( corrente, 0, Stato_visita_slot.NON_PRENOTABILE ) ;
}
corrente.add ( new Ora( minuti_per_slot * Tempo.MILLISECONDI_PER_MINUTO ) ) ;
}
}
public ArrayList
< String
> aggiungiVisiteInteressate
( ) throws Exception {
ArrayList< String> ritorno= new ArrayList< String> ( ) ;
for ( int i= 0 ; i< orari.length ; i++ )
{
if ( orari[ i] .getStato_slot ( ) == Stato_visita_slot.PRENOTATA )
{
int id= orari[ i] .getId_visita ( ) ;
String daAggiungere
= Classemain.
cache_visite .
get ( Classemain.
cercaIndiceDatoIDVisita ( id
) ) .
toString ( ) ;
ritorno.add ( daAggiungere) ;
}
}
return ritorno;
}
public void unisciOrari( Ora Inizio, Ora Fine)
{
for ( int i= 0 ; i< orari.length ; i++ )
{
if ( ( orari[ i] .getOrario ( ) .compresa ( true , Inizio, Fine) ) && ( orari[ i] .getStato_slot ( ) .equals ( Stato_visita_slot.NON_PRENOTABILE ) ) )
{
orari[ i] .setStato_slot ( Stato_visita_slot.PRENOTABILE ) ;
}
}
}
protected void sostituisciOrari
( Ora inizio, Ora fine
) throws IOException
{
/**
*
* processo ogni singolo slot, ogni singolo caso
*
* NP: dentro: rendi prenotabile
* fuori: N/A
* PA: dentro: N/A
* fuori: aggiungi alla lista da cancellare
* PE: dentro: N/A
* fuori: segna non prenotabile
*
*
*
*
*/
try {
final String INFO
= "E' stato creato un file di dettagli (%s) delle visite eliminate.\n " ;
ArrayList< String> visiteScartate= new ArrayList< String> ( ) ;
for ( int i= 0 ; i< orari.length ; i++ )
{
/**
* NP
*/
if ( orari[ i] .getStato_slot ( ) .equals ( Stato_visita_slot.NON_PRENOTABILE ) )
{
if ( orari[ i] .getOrario ( ) .compresa ( true , inizio, fine) )
{
/**
* DENTRO
*/
orari[ i] .setStato_slot ( Stato_visita_slot.PRENOTABILE ) ;
} else
{
/**
* FUORI
*/
/**
*
* NESSUNA AZIONE
*
*/
}
}
/**
* PE
*/
if ( orari[ i] .getStato_slot ( ) .equals ( Stato_visita_slot.PRENOTABILE ) )
{
if ( orari[ i] .getOrario ( ) .compresa ( true , inizio, fine) )
{
/**
*
* NESSUNA AZIONE
*
*/
} else
{
orari[ i] .setStato_slot ( Stato_visita_slot.NON_PRENOTABILE ) ;
}
}
/**
* PA
*/
if ( orari[ i] .getStato_slot ( ) .equals ( Stato_visita_slot.PRENOTATA ) )
{
if ( orari[ i] .getOrario ( ) .compresa ( true , inizio, fine) )
{
/**
*
* NESSUNA AZIONE
*
*/
} else
{
int ida= orari[ i] .getId_visita ( ) ;
orari[ i] .setStato_slot ( Stato_visita_slot.NON_PRENOTABILE ) ;
int index= Classemain.getIndexVisita ( ida) ;
visiteScartate.add ( Classemain.cache_visite .get ( index) .toString ( ) ) ;
Classemain.cache_visite .get ( index) .setStato_della_visita ( Stato_visita.CONCLUSA ) ;
}
}
}
String nomefile
= Medico.
trovaNomeDaSalvare ( ) ; Medico.salvaVisite ( nomefile, visiteScartate) ;
System .
out .
printf ( INFO, nomefile
) ;
{
System .
out .
println ( Classemain.
ERR_GENERICO + e.
getMessage ( ) ) ; }
}
// public static int primaslot(Ora iniz) throws Exception
// {
// Ora posticipo = Ora.clone(iniz);
// posticipo.sub(apertura);
//
// long temp = Ora.oratomilli(posticipo);
//
// return ((int) temp / minuti_per_slot * Tempo.SECONDI_PER_MINUTI * 1000);
//
// }
//
// public static int contaslot(Ora diff)
// {
// long temp = Ora.oratomilli(diff);
// int dadividere = minuti_per_slot * Tempo.SECONDI_PER_MINUTI * 1000;
//
// return ((int) (temp / dadividere));
//
// }
//
/**
* segna il giorno come di non lavoro, rendendo ogni visita non prenotabile
*
*/
public void noLavoro( )
{
for ( int i = 0 ; i < orari.length ; i++ )
{
orari[ i] .setStato_slot ( Stato_visita_slot.NON_PRENOTABILE ) ;
}
}
/**
*
* ritorna l'header della tabella di un giorno, con tutte le ore e le mezz'ore in cima
*
*
*
*
* @return
*/
/*
* prima era static perchè pensavo che gli orari fossero tutti uguali nella clinica,
* ma poi ho pensato di renderelo dipendente dall'oggetto perchè è possibile implementare
* una miglioria degli orari di apertura diversi nella clinica
*
* poi c'era un errore e ho rimesso static :p
*
*/
public static String getIntestazioneOrari
( ) {
ritorno += STRINGA_SPAZI;
int corrente = apertura.get_ore ( ) ;
for ( int i = 0 ; i < lavorative; i++ , corrente++ )
{
ritorno += " " ;
/**
* aggiunge lo spazio per ore < 10
*/
if ( corrente < 10 )
{
ritorno += "0" ;
}
ritorno += corrente;
ritorno += TRENTA;
}
return ( ritorno) ;
}
/**
* ritorna una stringa con la tabella degli orari di un giorno
*
* @return
*/
public String getTabellaOrari
( ) {
String ritorno
= myLib.
util .
Output .
formatDate ( data
) + " " ; for ( int i = 0 ; i < orari.length ; i++ )
{
switch ( orari[ i] .getStato_slot ( ) )
{
case NON_PRENOTABILE:
ritorno += F;
break ;
case PRENOTABILE:
ritorno += V;
break ;
case PRENOTATA:
ritorno += P;
break ;
default :
break ;
}
ritorno += " " ;
}
return ritorno;
}
public Integer getIndexOra
( Ora query
) {
for ( int i= 0 ; i< orari.length ; i++ )
{
if ( orari[ i] .getOrario ( ) .equals ( query) ) { return i; }
}
return null ;
}
public boolean comprendeOraDisponibile( Ora ricerca)
{
for ( int i= 0 ; i< orari.length ; i++ )
{
if ( orari[ i] .getOrario ( ) .equals ( ricerca) && orari[ i] .getStato_slot ( ) == Stato_visita_slot.PRENOTABILE )
{
return true ;
}
}
return false ;
}
public void setta( Ora query, Stato_visita_slot temp)
{
for ( int i = 0 ; i < orari.length ; i++ )
{
if ( orari[ i] .getOrario ( ) .equals ( query) )
{
orari[ i] .setStato_slot ( temp) ;
i = orari.length ;
}
}
}
{
return getIntestazioneOrari( ) + getTabellaOrari( ) ;
}
public int compareTo( Giorno cfr)
{
long temp = ( ( ( Giorno) cfr) .data .getTimeInMillis ( ) ) / Tempo.MILLISECONDI_PER_GIORNO ;
int comparemillis = ( int ) temp;
long questo = this .data .getTimeInMillis ( ) / Tempo.MILLISECONDI_PER_GIORNO ;
int comparequesto = ( int ) questo;
int ritorno = ( comparequesto - comparemillis) ;
return ritorno;
}
}
Codice sorgente - presumibilmente Java
package corso ;
import java.io.File ;
import java.io.IOException ;
import java.io.PrintWriter ;
import java.util.ArrayList ;
import java.util.Calendar ;
//import java.util.Collection;
import java.util.Collections ;
import java.util.GregorianCalendar ;
//import java.util.InputMismatchException;
//import java.util.Vector;
import javax.swing.DebugGraphics ;
import corso.Visita.Stato_visita ;
import myLib.typedef.Data ;
import myLib.typedef.Ora ;
//import myLib.typedef.Tempo;
public class Medico extends Persona
{
private static final String ORARI_GIA_INIZIALIZZATI
= "Orari gia' inizializzati" ;
private static final long serialVersionUID= 1 ;
private boolean inizializzati_orari= false ;
public enum tipologia_medico
{
NORMALE, SPECIALISTA;
/*
* public boolean equals(tipologia_medico cfr) { if ((this.)||()) return
* true; else return false; }
*/
public static tipologia_medico sceglitipo( )
{
final String STRINGA_TIPO
= "inserire tipologia " ; boolean finito = false ;
tipologia_medico ritorno = NORMALE;
while ( ! finito)
{
temp = myLib.util .Input .leggi_stringa ( STRINGA_TIPO) ;
if ( temp.toLowerCase ( ) .equals ( NORMALE.toString ( ) .toLowerCase ( ) ) )
{
finito = true ;
ritorno = NORMALE;
}
;
if ( temp.toLowerCase ( ) .equals ( SPECIALISTA.toString ( ) .toLowerCase ( ) ) )
{
finito = true ;
ritorno = SPECIALISTA;
}
;
}
return ritorno;
}
{
return super .toString ( ) .toLowerCase ( ) ;
}
}
final static String INS_1
= "inserire data di inizio" ; final static String INS_2
= "inserire data di fine" ; final static String ORA_1
= "inserire l'ora di inizio lavoro" ; final static String ORA_2
= "inserire l'ora di fine lavoro" ;
final String UN_GIORNO
= "inserimento del turno del medico: intervallo data, intervallo ora.\n per inserire un solo giorno, far coincidere gli estremi" ;
static final String ERR_DATE
= "date o ore scorrette" ; static final String ERRORE_ORA
= "errore nelle ore" ;
protected int numero_iscrizione_albo;
protected tipologia_medico tipo_del_medico;
// private int id_medico;
// boolean[][] orari_visita_standard;
protected ArrayList< Giorno> orari_visita = new ArrayList< Giorno> ( ) ;
{
final String INFO_BASE
= "Medico:\t " + this .
numero_iscrizione_albo + " Nome:\t " + this .
nome + " Cognome:\t " + this .
cognome ;
return INFO_BASE;
}
{
super ( _nome, _cognome, _data_nascita, _luogo_nascita, _telefono, _genere, _codice_fiscale) ;
numero_iscrizione_albo = _numero_iscrizione_albo;
tipo_del_medico = _tipologia_del_medico;
// id_medico = _id + 1;
}
public Medico
( String _nome,
String _cognome,
GregorianCalendar _data_nascita,
String _luogo_nascita,
String _telefono,
char _genere,
String _codice_fiscale,
int _numero_iscrizione_albo, tipologia_medico _tipologia_del_medico,
boolean [ ] [ ] _orari_visita
) {
super ( _nome, _cognome, _data_nascita, _luogo_nascita, _telefono, _genere, _codice_fiscale) ;
numero_iscrizione_albo = _numero_iscrizione_albo;
tipo_del_medico = _tipologia_del_medico;
// id_medico = _id + 1;
}
public static Medico creaMedicoInterfaccia( int _id)
{
final String CREA_MEDICO_STRINGA
= "Registrare un medico" ; myLib.util .Output .stampa_testo ( CREA_MEDICO_STRINGA) ;
final String RICAPITOLA
= "ricapitolazione dell'input:\n \n \n " ; final String RIDEFINISCI
= "si desidera modificare il medico? (S/N) " ; final String STRINGA_NOME
= "inserire nome " ; final String STRINGA_COGNOME
= "inserire cognome " ; final String STRINGA_DATA
= "inserire data di nascita " ; final String STRINGA_LUOGO
= "inserire luogo nascita " ; final String STRINGA_TEL
= "inserire telefono " ; // final String STRINGA_ALBO = "inserire numero iscrizione ";
final String STRINGA_TIPO
= "inserire tipo medico " ;
String temp_nome
= myLib.
util .
Input .
leggi_stringa ( STRINGA_NOME
) ; String temp_cognome
= myLib.
util .
Input .
leggi_stringa ( STRINGA_COGNOME
) ;
String temp_luogo_nascita
= myLib.
util .
Input .
leggi_stringa ( STRINGA_LUOGO
) ; String temp_telefono
= myLib.
util .
Input .
leggi_stringa ( STRINGA_TEL
) ;
char temp_genere = myLib.util .Input .scegligenerechar ( ) ;
if ( ! Classemain.DEBUG )
{ temp_codice_fiscale = myLib.util .Input .inserisciCodiceFiscale ( ) ; }
else
{ temp_codice_fiscale= myLib.util .Input .leggi_stringa ( ) ; }
int temp_numero_iscrizione = _id; // myLib.util.Input.leggi_int(0,
// Integer.MAX_VALUE, STRINGA_ALBO);
System .
out .
println ( STRINGA_TIPO
) ; tipologia_medico temp_tipologia = tipologia_medico.sceglitipo ( ) ;
Medico ritorno = new Medico( temp_nome, temp_cognome, temp_data_nascita, temp_luogo_nascita, temp_telefono, temp_genere, temp_codice_fiscale, temp_numero_iscrizione, temp_tipologia) ;
System .
out .
println ( RICAPITOLA
) ;
System .
out .
println ( ritorno.
toString ( ) ) ;
if ( myLib.
util .
Menu .
yes_no_Box ( RIDEFINISCI,
false ) ) ritorno
= creaMedicoInterfaccia
( _id
) ;
return ritorno;
}
{
final String NAL
= "\n \t numero iscrizione albo:\t " ; final String TIPO
= "\n \t tipologia:\t " ; // final String ID = "\n\tid:\t";
String ritorno
= super .
toString ( ) ; ritorno += ( NAL + numero_iscrizione_albo + TIPO + tipo_del_medico.toString ( ) ) ;
return ritorno;
}
/*
* public String toString_extra() { final String NUMALB =
* "\n\tnumero albo:\t"; final String TIPO = "\n\ttipo medico:\t"; String
* ritorno; ritorno = (NUMALB + numero_iscrizione_albo + TIPO +
* tipo_del_medico); return ritorno; }
*/
/**
* inizializza gli orari di un medico.
* l'utilizzo della flag force è riservato al sistema.
*
* @param force
* @throws Exception
*/
protected void inizializzaOrari
( boolean force
) throws Exception {
if ( force) inizializzati_orari= false ;
if ( ! inizializzati_orari)
{
inizializzati_orari= true ;
interfacciaCreazioneGiorni( ) ;
segnafestivi( ) ;
ordinaGiorni( ) ;
}
else throw new Exception ( ORARI_GIA_INIZIALIZZATI
) ; }
private void interfacciaCreazioneGiorni
( ) throws Exception {
System .
out .
println ( UN_GIORNO
) ;
Ora inizio = myLib.typedef .Ora .crea_ora ( ) ;
myLib.typedef .Ora .scala ( inizio, false , 0, 30, 60) ;
System .
out .
println ( Classemain.
ORA_SCALATA + inizio.
toString ( ) ) ;
Ora fine = myLib.typedef .Ora .crea_ora ( ) ;
myLib.typedef .Ora .scala ( fine, false , 0, 30, 60) ;
System .
out .
println ( Classemain.
ORA_SCALATA + fine.
toString ( ) ) ;
if ( ( data_inizio.
after ( data_fine
) ) || ( inizio.
relazione ( fine
) == Ora.
CONFRONTA_ORE_SEGUENTE ) ) throw new Exception ( ERR_DATE
) ;
int differenza = myLib.typedef .Data .differenzaData ( data_inizio, data_fine) ;
for ( int i = 0 ; i <= differenza; i++ )
{
// Giorno temp = ;
corrente = Data.sommagiorni ( corrente, 1) ;
orari_visita.add ( new Giorno( corrente, inizio, fine) ) ;
if ( Classemain.
DEBUG ) { System .
out .
println ( "fatto un giorno ora:" + inizio.
toString ( ) ) ; }
}
}
// ok?
protected void visualizzaOrari( )
{
final String NIENTE
= "Niente da visualizzare. Aggiungere orari adesso?" ; final String FALLO_ORA
= "E' consigliabile aggiungere gli orari quanto prima." ; final String INTRO
= "Orari del medico:\t %d\t %s\t %s\n \n " ;
final String TABELLA
= Giorno.
getIntestazioneOrari ( ) ;
// final String ELEMENTO = "\t%s\t%s\t%s\n";
if ( orari_visita.isEmpty ( ) )
{
boolean scelta
= myLib.
util .
Menu .
yes_no_Box ( NIENTE,
true ) ; if ( scelta == true )
{
try
{
inizializzaOrari( false ) ;
{
System .
out .
println ( e.
getMessage ( ) + "\n \n " + FALLO_ORA
) ; }
}
else
{
System .
out .
println ( FALLO_ORA
) ; }
}
else
{
System .
out .
printf ( INTRO,
this .
numero_iscrizione_albo ,
this .
nome ,
this .
cognome ) ;
ordinaGiorni( ) ;
for ( int i = 0 ; i < orari_visita.size ( ) ; i++ )
{
System .
out .
println ( orari_visita.
get ( i
) .
getTabellaOrari ( ) ) ; if ( ( ( i % 10) == 0) && ( i!= 0) )
{
myLib.util .Input .pause ( ) ;
}
}
}
}
// ok?
protected void ordinaGiorni( )
{
}
{
final String INTRO
= "E' ora possibile modificare un solo giorno alla volta." ;
int scelta;
final String [ ] MENU_GIORNI
= { "indietro" ,
"cancella giorno" ,
"aggiungi/estendi giorno" } ; final int IND = 0 ;
final int CAN = 1 ;
final int AGG = 2 ;
boolean finito = false ;
while ( ! finito)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( MENU_GIORNI.
length , MENU_GIORNI
) ;
switch ( scelta)
{
case IND:
finito = true ;
break ;
case CAN:
cancellaGiorno( ) ;
break ;
case AGG:
aggiungiGiorno( ) ;
break ;
default :
break ;
}
}
}
protected void cancellaGiorno
( ) throws Exception {
final String INTRO
= "inserire il giorno da cancellare: " ;
Integer indiceCerca
= cercaGiornoData
( daCancellare
) ; if ( indiceCerca == null )
{
final String NESSUNO
= "Non trovato. Riprovare? (S/N)" ;
if ( myLib.
util .
Menu .
yes_no_Box ( NESSUNO,
false ) ) cancellaGiorno
( ) ;
}
else
{
int indice = ( int ) indiceCerca;
String nomefile
= trovaNomeDaSalvare
( ) ;
ArrayList< String> registro = orari_visita.get ( indice) .aggiungiVisiteInteressate ( ) ;
salvaVisite( nomefile, registro) ;
System .
out .
printf ( Classemain.
SICURO_FILE , nomefile
) ;
boolean conferma
= myLib.
util .
Menu .
yes_no_Box ( "" ,
false ) ; if ( conferma == true )
{
orari_visita.get ( indice) .noLavoro ( ) ;
chiudiVisitePerData( daCancellare, Classemain.cache_visite ) ;
}
}
}
{
for ( int i = 0 ; i < visite.size ( ) ; i++ )
{
if ( ( visite.get ( i) .getData ( ) .equals ( data) ) && ( visite.get ( i) .getId_medico ( ) == this .numero_iscrizione_albo ) )
{
visite.get ( i) .setStato_della_visita ( Stato_visita.CONCLUSA ) ;
}
}
}
protected void aggiungiGiorno
( ) throws Exception {
final String INTRO
= "inserire il giorno da aggiungere/modificare" ;
if ( ! esisteGiorno( richiesta) )
{
/**
* giorno non esiste
*
*/
final String NON_ES
= "il giorno non esiste. Inserire i nuovi orari." ;
Ora inizio = myLib.typedef .Ora .crea_ora ( ) ;
myLib.typedef .Ora .scala ( inizio, false , 0, 30, 60) ;
System .
out .
println ( Classemain.
ORA_SCALATA + inizio.
toString ( ) ) ;
Ora fine = myLib.typedef .Ora .crea_ora ( ) ;
myLib.typedef .Ora .scala ( fine, false , 0, 30, 60) ;
System .
out .
println ( Classemain.
ORA_SCALATA + fine.
toString ( ) ) ;
if ( ( inizio.
relazione ( fine
) == Ora.
CONFRONTA_ORE_SEGUENTE ) ) throw new Exception ( ERR_DATE
) ;
orari_visita.add ( new Giorno( richiesta, inizio, fine) ) ;
ordinaGiorni( ) ;
}
else
{
/**
* TODO VISUALIZZA GIORNO
*
*/
final String ESISTE
= "Il giorno selezionato esiste gia'. E' necessario specificare se sostituire o unire gli orari.\n Sostituendo gli orari, le relative visite saranno chiuse." ;
boolean finito = false ;
final String [ ] OPZIONI
= { "indietro" ,
"sostituire" ,
"unire" } ; int scelta;
final int IND = 0 ;
final int SOS = 1 ;
final int UNI = 2 ;
while ( ! finito)
{
scelta
= myLib.
util .
Menu .
crea_menu_numero ( OPZIONI.
length , OPZIONI
) ; switch ( scelta)
{
case IND:
finito = true ;
break ;
case SOS:
sostituisciGiorno( richiesta) ;
finito= true ;
break ;
case UNI:
unisciGiorno( richiesta) ;
finito= true ;
break ;
default :
break ;
}
}
}
}
{
for ( int i = 0 ; i < orari_visita.size ( ) ; i++ )
{
if ( orari_visita.get ( i) .data .equals ( a) ) return true ;
}
return false ;
}
{
try
{
Ora nuovaInizio = myLib.typedef .Ora .crea_ora ( ) ;
myLib.typedef .Ora .scala ( nuovaInizio, false , 0, 30, 60) ;
System .
out .
println ( Classemain.
ORA_SCALATA + nuovaInizio.
toString ( ) ) ; Ora nuovaFine = myLib.typedef .Ora .crea_ora ( ) ;
myLib.typedef .Ora .scala ( nuovaFine, false , 0, 30, 60) ;
System .
out .
println ( Classemain.
ORA_SCALATA + nuovaFine.
toString ( ) ) ;
if ( nuovaInizio.
relazione ( nuovaFine
) == Ora.
CONFRONTA_ORE_SEGUENTE ) { throw new Exception ( ERRORE_ORA
) ; }
int indice = cercaGiornoData( a) ;
orari_visita.get ( indice) .sostituisciOrari ( nuovaInizio, nuovaFine) ;
{
System .
out .
println ( e.
getMessage ( ) ) ; sostituisciGiorno( a) ;
}
}
{
try
{
Ora nuovaInizio = myLib.typedef .Ora .crea_ora ( ) ;
myLib.typedef .Ora .scala ( nuovaInizio, false , 0, 30, 60) ;
System .
out .
println ( Classemain.
ORA_SCALATA + nuovaInizio.
toString ( ) ) ; Ora nuovaFine = myLib.typedef .Ora .crea_ora ( ) ;
myLib.typedef .Ora .scala ( nuovaFine, false , 0, 30, 60) ;
System .
out .
println ( Classemain.
ORA_SCALATA + nuovaFine.
toString ( ) ) ;
if ( nuovaInizio.
relazione ( nuovaFine
) == Ora.
CONFRONTA_ORE_SEGUENTE ) { throw new Exception ( ERRORE_ORA
) ; }
int indice = cercaGiornoData( data) ;
orari_visita.get ( indice) .unisciOrari ( nuovaInizio, nuovaFine) ;
{
System .
out .
println ( e.
getMessage ( ) ) ; unisciGiorno( data) ;
}
}
/**
* ritorna l'indice del giorno con tale data. null se non trovata
*
* @param query
* @return
*/
{
ordinaGiorni( ) ;
for ( int i = 0 ; i < orari_visita.size ( ) ; i++ )
{
if ( orari_visita.get ( i) .data .equals ( query) ) { return i; }
}
return null ;
}
// ok
private void segnafestivi( )
{
for ( int i = 0 ; i < orari_visita.size ( ) ; i++ )
{
{
orari_visita.get ( i) .noLavoro ( ) ;
}
}
}
// @SuppressWarnings ("static-access")
{
ordinaGiorni( ) ;
for ( int i = 0 ; i < orari_visita.size ( ) ; i++ )
{
if ( Data.dateUguali ( orari_visita.get ( i) .data , queryData) )
{
if ( orari_visita.get ( i) .comprendeOraDisponibile ( queryOra) )
{
System .
out .
println ( getInfoBase
( ) ) ;
System .
out .
println ( orari_visita.
get ( i
) .
getIntestazioneOrari ( ) ) ; System .
out .
println ( orari_visita.
get ( i
) .
getTabellaOrari ( ) ) ; }
}
}
}
public void resettaOrari( )
{
for ( int i = 0 ; i < orari_visita.size ( ) ; i++ )
{
orari_visita.get ( i) .noLavoro ( ) ;
}
// orari_visita = null;
// inizializzaOrari();
}
{
}
/**
* trova le visite di un medico prima di eliminare i suoi orari
*
*/
{
ArrayList< String> visite = new ArrayList< String> ( ) ;
for ( int i = 0 ; i < orari_visita.size ( ) ; i++ )
{
visite.addAll ( orari_visita.get ( i) .aggiungiVisiteInteressate ( ) ) ;
}
String filename
= trovaNomeDaSalvare
( ) ; salvaVisite( filename, visite) ;
return filename;
}
protected static String trovaNomeDaSalvare
( ) {
int copia = 0 ;
File test
= new File ( NOME
+ copia
+ EXT
) ; boolean finito = false ;
while ( ! finito)
{
test
= new File ( NOME
+ copia
+ EXT
) ; if ( test.exists ( ) )
{
copia++;
}
else
{
finito = true ;
}
}
soluzione = NOME + copia + EXT;
soluzione += EXT;
return soluzione;
}
protected static void salvaVisite
( String nome, ArrayList
< String
> oggetto
) throws IOException {
PrintWriter scrivi
= myLib.
util .
Output .
creaFileTesto ( nome
) ; for ( int i = 0 ; i < oggetto.size ( ) ; i++ )
{
scrivi.write ( oggetto.get ( i) ) ;
}
}
public void modificamedicoInterfaccia( )
{
final String CREA_MEDICO_STRINGA
= "Registrare un medico" ; myLib.util .Output .stampa_testo ( CREA_MEDICO_STRINGA) ;
final String RICAPITOLA
= "ricapitolazione dell'input:\n \n \n " ; final String RIDEFINISCI
= "si desidera modificare il medico? (S/N) " ; final String STRINGA_NOME
= "inserire nome " ; final String STRINGA_COGNOME
= "inserire cognome " ; final String STRINGA_DATA
= "inserire data di nascita " ; final String STRINGA_LUOGO
= "inserire luogo nascita " ; final String STRINGA_TEL
= "inserire telefono " ;
final String STRINGA_TIPO
= "inserire tipo medico " ;
nome = myLib.util .Input .leggi_stringa ( STRINGA_NOME) ;
cognome = myLib.util .Input .leggi_stringa ( STRINGA_COGNOME) ;
data_nascita = myLib.util .Input .leggi_data ( STRINGA_DATA) ;
luogo_nascita = myLib.util .Input .leggi_stringa ( STRINGA_LUOGO) ;
telefono = myLib.util .Input .leggi_stringa ( STRINGA_TEL) ;
genere = myLib.util .Input .scegligenerechar ( ) ;
if ( Classemain.DEBUG )
{
codice_fiscale = myLib.util .Input .leggi_stringa ( ) ;
}
else
{
codice_fiscale = myLib.util .Input .inserisciCodiceFiscale ( ) ;
}
if ( ! Classemain.DEBUG )
{
System .
out .
println ( STRINGA_TIPO
) ; tipo_del_medico = tipologia_medico.sceglitipo ( ) ;
}
// Medico ritorno = new Medico(temp_nome, temp_cognome,
// temp_data_nascita, temp_luogo_nascita, temp_telefono, temp_genere,
// temp_codice_fiscale, temp_numero_iscrizione, temp_tipologia, _id);
System .
out .
println ( RICAPITOLA
) ;
System .
out .
println ( this .
toString ( ) ) ;
if ( myLib.
util .
Menu .
yes_no_Box ( RIDEFINISCI,
false ) ) this .
modificamedicoInterfaccia ( ) ; ;
// return ritorno;
}
/**
* 1 NOME 2 COGNOME 3 DATA 4 LUOGO 5 TELEFONO 6 GENERE 7 CODICE FISCALE 8
* NUMERO ID ALBO 9 TIPO
*
*
*
*/
// fatto
public boolean matchcampo
( int campo,
Object query
) {
final String PARAM_ERR
= "errore nella ricerca. Probabilmente il parametro è scorretto" ; final int NOME = 1 ;
final int COGNOME = 2 ;
final int DATA = 3 ;
final int LUOGO = 4 ;
final int TEL = 5 ;
final int GENERE = 6 ;
final int CODFISC = 7 ;
final int NUM_ALB = 8 ;
final int TIPO = 9 ;
final int ID = 10 ;
switch ( campo)
{
case NOME:
return super .matchcampo ( campo, query) ;
case COGNOME:
return super .matchcampo ( campo, query) ;
case DATA:
return super .matchcampo ( campo, query) ;
case LUOGO:
return super .matchcampo ( campo, query) ;
case TEL:
return super .matchcampo ( campo, query) ;
case GENERE:
return super .matchcampo ( campo, query) ;
case CODFISC:
return super .matchcampo ( campo, query) ;
case NUM_ALB:
case ID:
try
{
int escamotage = ( int ) query;
if ( this .numero_iscrizione_albo == escamotage) return true ;
{
}
break ;
case TIPO:
query = ( tipologia_medico) query;
if ( this .tipo_del_medico .equals ( query) ) return true ;
break ;
// case ID:
//
// if (this.id_medico == (int) query) return true;
//
// break;
default :
break ;
}
return false ;
}
}
Codice sorgente - presumibilmente Java
package corso ;
import java.io.Serializable ;
{
public int currentMedicoID;
public int currentVisitaID;
/**
* @return the currentMedicoID
*/
public int getCurrentMedicoID( )
{
return currentMedicoID;
}
/**
* @param currentMedicoID the currentMedicoID to set
*/
public void setCurrentMedicoID( int currentMedicoID)
{
this .currentMedicoID = currentMedicoID;
}
/**
* @return the currentVisitaID
*/
public int getCurrentVisitaID( )
{
return currentVisitaID;
}
/**
* @param currentVisitaID the currentVisitaID to set
*/
public void setCurrentVisitaID( int currentVisitaID)
{
this .currentVisitaID = currentVisitaID;
}
public int currentUtenteID;
/**
* @return the currentUtenteID
*/
public int getCurrentUtenteID( )
{
return currentUtenteID;
}
/**
* @param currentUtenteID the currentUtenteID to set
*/
public void setCurrentUtenteID( int currentUtenteID)
{
this .currentUtenteID = currentUtenteID;
}
public MiscData( )
{
setCurrentMedicoID( 1) ;
setCurrentUtenteID( 1) ;
setCurrentVisitaID( 1) ;
}
}
Codice sorgente - presumibilmente Java
package corso ;
import java.io.Serializable ;
import java.util.Date ;
import java.util.GregorianCalendar ;
import java.util.InputMismatchException ;
{
protected String luogo_nascita
; protected char genere;
protected String codice_fiscale
;
{
nome = _nome;
cognome = _cognome;
data_nascita = _data_nascita;
luogo_nascita = _luogo_nascita;
telefono = _telefono;
genere = _genere;
codice_fiscale = _codice_fiscale;
}
public Persona( )
{
nome = null ;
cognome = null ;
data_nascita = null ;
luogo_nascita = null ;
telefono = null ;
//genere = null;
codice_fiscale = null ;
}
{
final String INTRO
= "persona:\n \t campo\t valore\n \t " ; final String NOME
= "nome:\t " ; final String COGNOME
= "\n \t cognome:\t " ; final String DATA
= "\n \t data nascita:\t " ; final String LUOGO
= "\n \t luogo di nascita:\t " ; final String TEL
= "\n \t telefono:\t " ; final String GEN
= "\n \t genere:\t " ; final String CODFIS
= "\n \t codice fiscale:\t " ;
return ( INTRO + NOME + nome + COGNOME + cognome + DATA + myLib.util .Output .formatDate ( data_nascita) + LUOGO + luogo_nascita + TEL + telefono + GEN + genere + CODFIS + codice_fiscale) ;
}
public boolean equals( Persona cfr)
{
if ( ( cfr.nome .equals ( this .nome ) ) && ( cfr.cognome .equals ( this .cognome ) ) && ( cfr.data_nascita .equals ( this .data_nascita ) ) && ( cfr.luogo_nascita .equals ( this .luogo_nascita ) ) && ( cfr.telefono .equals ( this .telefono ) ) && ( cfr.genere == this .genere ) && ( cfr.codice_fiscale .equals ( this .codice_fiscale ) ) ) return true ;
else
return false ;
}
/**
* restituisce vero se il campo i corrisponde alla query
*
*
* @param campo
* i : nome=1, cognome, data nascita, luogo nascita, telefono,
* genere, codice fiscale=7
* @param query
* : in caso di numeri usare Integer
* @return true se corrisponde
*/
public boolean matchcampo
( int campo,
Object query
) throws InputMismatchException
{
final String PARAM_ERR
= "errore nella ricerca. Probabilmente il parametro è scorretto" ; final int NOME = 1 ;
final int COGNOME = 2 ;
final int DATA = 3 ;
final int LUOGO = 4 ;
final int TEL = 5 ;
final int GENERE = 6 ;
final int CODFISC = 7 ;
switch ( campo)
{
case NOME:
if ( ! ( query
instanceof String ) ) throw new InputMismatchException
( PARAM_ERR
) ; if ( this .nome .equals ( query) ) return true ;
break ;
case COGNOME:
if ( ! ( query
instanceof String ) ) throw new InputMismatchException
( PARAM_ERR
) ; if ( this .cognome .equals ( query) ) return true ;
break ;
case DATA:
if ( ! ( query
instanceof GregorianCalendar ) ) throw new InputMismatchException
( PARAM_ERR
) ; if ( this .data_nascita .equals ( query) ) return true ;
break ;
case LUOGO:
if ( ! ( query
instanceof String ) ) throw new InputMismatchException
( PARAM_ERR
) ; if ( this .luogo_nascita .equals ( query) ) return true ;
break ;
case TEL:
if ( ! ( query
instanceof String ) ) throw new InputMismatchException
( PARAM_ERR
) ; if ( this .telefono .equals ( query) ) return true ;
break ;
case GENERE:
try
{
//
char escamotage = ( char ) query;
//
if ( this .genere == escamotage) return true ;
{
throw new InputMismatchException( PARAM_ERR) ;
}
break ;
case CODFISC:
if ( ! ( query
instanceof String ) ) throw new InputMismatchException
( PARAM_ERR
) ; if ( this .codice_fiscale .equals ( query) ) return true ;
break ;
default :
break ;
}
return false ;
}
}
Codice sorgente - presumibilmente Java
package corso ;
import java.io.Serializable ;
//import java.util.GregorianCalendar;
import java.util.Vector ;
{
private static final int GIORNI_SETTIMANA = 7 ;
// public int mese;
// public int anno;
// public GregorianCalendar inizio;
// public GregorianCalendar fine;
// private Vector<Giorno> giorni = new Vector<Giorno>();
// public int numero_settimana;
// protected Giorno[] giorni_settimana = new Giorno[GIORNI_SETTIMANA];
public static final int ore_lavorative_al_giorno = 10 ;
public static final int numero_slot_per_ora = 2 ;
public static final int NUMERO_SLOT_PER_GIORNO = ore_lavorative_al_giorno * numero_slot_per_ora;
public boolean [ ] [ ] orari_visita = new boolean [ NUMERO_SLOT_PER_GIORNO] [ GIORNI_SETTIMANA] ;
}
Codice sorgente - presumibilmente Java
package corso ;
import java.io.Serializable ;
import myLib.typedef.Ora ;
{
private static final long serialVersionUID= 0 ;
public enum Stato_visita_slot
{
PRENOTABILE, PRENOTATA, NON_PRENOTABILE;
{
return super .toString ( ) .toLowerCase ( ) ;
}
}
// Ora
public Ora orario;
protected int id_visita;
public Stato_visita_slot stato_slot;
protected SlotTemporale ( Ora _ora, int _id, Stato_visita_slot _stato)
{
setOrario( _ora) ;
setId_visita( _id) ;
setStato_slot( _stato) ;
}
/**
* @return the orario
*/
public Ora getOrario( )
{
return orario;
}
/**
* @param orario
* the orario to set
*/
private void setOrario( Ora orario)
{
Ora nuovo = myLib.typedef .Ora .clone ( orario) ;
this .orario = nuovo;
}
/**
* @return the id_visita
*/
public int getId_visita( )
{
return id_visita;
}
/**
* @param id_visita
* the id_visita to set
*/
private void setId_visita( int id_visita)
{
this .id_visita = id_visita;
}
/**
* @return the stato_slot
*/
public Stato_visita_slot getStato_slot( )
{
return stato_slot;
}
/**
* @param stato_slot
* the stato_slot to set
*/
public void setStato_slot( Stato_visita_slot stato_slot)
{
switch ( stato_slot)
{
case NON_PRENOTABILE:
this .stato_slot = Stato_visita_slot.NON_PRENOTABILE ;
break ;
case PRENOTABILE:
this .stato_slot = Stato_visita_slot.PRENOTABILE ;
break ;
case PRENOTATA:
this .stato_slot = Stato_visita_slot.PRENOTATA ;
break ;
default :
break ;
}
}
}
Codice sorgente - presumibilmente Java
package corso ;
import java.util.GregorianCalendar ;
import java.util.InputMismatchException ;
import java.util.Scanner ;
import corso.Medico.tipologia_medico ;
import myLib.typedef.Enumerations.genere ;
public class Utente extends Persona
{
private static final long serialVersionUID= 0 ;
int id_utente;
/**
* costruttore
*
* @param _nome
* @param _cognome
* @param _data_nascita
* @param _luogo_nascita
* @param _telefono
* @param _genere
* @param _codice_fiscale
*/
String _codice_fiscale,
int _id
) {
super ( _nome, _cognome, _data_nascita, _luogo_nascita, _telefono, _genere, _codice_fiscale) ;
id_utente= _id+ 1 ;
}
public Utente( )
{
super ( ) ;
}
/**
* interfaccia per creare utente
*
* @return variabile utente
*/
public static Utente creaUtenteInterfaccia( int _id)
{
final String RICAPITOLA
= "ricapitolazione dell'input:\n \n \n " ; final String RIDEFINISCI
= "si desidera modificare l'utente? (S/N) " ; final String STRINGA_NOME
= "inserire nome " ; final String STRINGA_COGNOME
= "inserire cognome " ; final String STRINGA_DATA
= "inserire data di nascita " ; final String STRINGA_LUOGO
= "inserire luogo nascita " ; final String STRINGA_TEL
= "inserire telefono " ;
Utente ritorno;
String temp_nome
= myLib.
util .
Input .
leggi_stringa ( STRINGA_NOME
) ; String temp_cognome
= myLib.
util .
Input .
leggi_stringa ( STRINGA_COGNOME
) ;
String temp_luogo_nascita
= myLib.
util .
Input .
leggi_stringa ( STRINGA_LUOGO
) ; String temp_telefono
= myLib.
util .
Input .
leggi_stringa ( STRINGA_TEL
) ;
char temp_genere= myLib.util .Input .scegligenerechar ( ) ;
String temp_codice_fiscale
= myLib.
util .
Input .
inserisciCodiceFiscale ( ) ;
ritorno = new Utente( temp_nome, temp_cognome, temp_data_nascita, temp_luogo_nascita, temp_telefono, temp_genere, temp_codice_fiscale, _id) ;
System .
out .
println ( RICAPITOLA
) ;
System .
out .
println ( ritorno.
toString ( ) ) ;
if ( myLib.
util .
Menu .
yes_no_Box ( RIDEFINISCI,
false ) ) ritorno
= creaUtenteInterfaccia
( _id
) ;
return ritorno;
}
/**
* serve per confrontare uno dei campi
*
*/
public boolean matchcampo
( int campo,
Object query
) {
final String PARAM_ERR
= "errore nella ricerca. Probabilmente il parametro è scorretto" ; final int NOME = 1 ;
final int COGNOME = 2 ;
final int DATA = 3 ;
final int LUOGO = 4 ;
final int TEL = 5 ;
final int GENERE = 6 ;
final int CODFISC = 7 ;
final int ID= 10 ;
switch ( campo)
{
case NOME:
return super .matchcampo ( campo, query) ;
case COGNOME:
return super .matchcampo ( campo, query) ;
case DATA:
return super .matchcampo ( campo, query) ;
case LUOGO:
return super .matchcampo ( campo, query) ;
case TEL:
return super .matchcampo ( campo, query) ;
case GENERE:
return super .matchcampo ( campo, query) ;
case CODFISC:
return super .matchcampo ( campo, query) ;
case ID:
if ( this .id_utente == ( int ) query) return true ;
break ;
default :
break ;
}
return false ;
}
public void modificaUtenteInterfaccia( )
{
final String RICAPITOLA
= "ricapitolazione dell'input:\n \n \n " ; final String RIDEFINISCI
= "si desidera modificare l'utente? (S/N) " ; final String STRINGA_NOME
= "inserire nome. Precedente: " ; final String STRINGA_COGNOME
= "inserire cognome. Precedente: " ; final String STRINGA_DATA
= "inserire data di nascita. Precedente: " ; final String STRINGA_LUOGO
= "inserire luogo nascita. Precedente: " ; final String STRINGA_TEL
= "inserire telefono. Precedente: " ;
nome = myLib.util .Input .leggi_stringa ( STRINGA_NOME+ this .nome ) ;
cognome = myLib.util .Input .leggi_stringa ( STRINGA_COGNOME+ this .cognome ) ;
data_nascita = myLib.util .Input .leggi_data ( STRINGA_DATA+ myLib.util .Output .formatDate ( this .data_nascita ) ) ;
luogo_nascita = myLib.util .Input .leggi_stringa ( STRINGA_LUOGO+ this .luogo_nascita ) ;
telefono = myLib.util .Input .leggi_stringa ( STRINGA_TEL+ this .telefono ) ;
genere= myLib.util .Input .scegligenerechar ( ) ;
System .
out .
println ( "Precedente codice fiscale: " + this .
codice_fiscale ) ; codice_fiscale = myLib.util .Input .inserisciCodiceFiscale ( ) ;
//ritorno = new Utente(temp_nome, temp_cognome, temp_data_nascita, temp_luogo_nascita, temp_telefono, temp_genere, temp_codice_fiscale);
System .
out .
println ( RICAPITOLA
) ;
System .
out .
println ( this .
toString ( ) ) ;
if ( myLib.
util .
Menu .
yes_no_Box ( RIDEFINISCI,
false ) ) modificaUtenteInterfaccia
( ) ;
//return ritorno;
}
{
final String ID
= "\n \t id:\t " ;
String ritorno
= super .
toString ( ) + ID
+ id_utente
; return ritorno;
}
public boolean equals( Utente confronto)
{
if ( confrontapersona( this , confronto) && confrontautente( this , confronto) ) return true ;
else
return false ;
}
private boolean confrontautente( Utente _1, Utente _2)
{
return ( this .id_utente == _2.id_utente ) ;
}
private boolean confrontapersona( Utente _1, Utente _2)
{
Persona confronto1 = ( Persona) _1;
Persona confronto2 = ( Persona) _2;
if ( confronto1.equals ( confronto2) ) return true ;
else
return false ;
}
}
Codice sorgente - presumibilmente Java
package corso ;
//import java.sql.Time;
import java.util.GregorianCalendar ;
import myLib.typedef.Ora ;
public class Visita
{
public enum Stato_visita
{
//NON_PRENOTABILE,
//PRENOTABILE,
PRENOTATA,
CONCLUSA,
REFERTATA;
{
return super .toString ( ) .toLowerCase ( ) ;
}
}
public int id_visita;
{
setId_utente( utente) ;
setMotivo( motivo) ;
setId_medico( medico) ;
data= _data;
ora_visita= _ora;
id_visita= calcolaID( ) ;
}
private int calcolaID( )
{
int ritorno= Classemain.dati .currentVisitaID ;
Classemain.dati .currentVisitaID ++;
return ritorno;
}
/**
*
*
* TODO DA MIGLIORARE
*
*/
{
return ( getId_visita( ) + getId_utente( ) + getId_medico( ) + getMotivo( ) + getPrescrizione( ) + getReferto( ) + getData( ) + getOra( ) + getStato_della_visita( ) ) ;
}
/**
* @return the id_utente
*/
private int getId_utente( )
{
return id_utente;
}
/**
* @param id_utente the id_utente to set
*/
private void setId_utente( int id_utente)
{
this .id_utente = id_utente;
}
/**
* @return the id_medico
*/
public int getId_medico( )
{
return id_medico;
}
/**
* @param id_medico the id_medico to set
*/
private void setId_medico( int id_medico)
{
this .id_medico = id_medico;
}
/**
* @param id_visita the id_visita to set
*/
private void setId_visita( int id_visita)
{
this .id_visita = id_visita;
}
/**
* @return the id_visita
*/
public int getId_visita( )
{
return id_visita;
}
/**
* @param id_visita the id_visita to set
*/
public boolean matchID( int cfr)
{
if ( id_visita== cfr) return true ; else return false ;
}
public int id_utente;
{
return data;
}
private Ora ora_visita;
public Ora getOra( )
{
return ora_visita;
}
public int id_medico;
/**
* @param motivo the motivo to set
*/
public void setMotivo
( String motivo
) {
this .motivo = motivo;
}
{
return motivo;
}
/**
* @return the stato_della_visita
*/
public Stato_visita getStato_della_visita( )
{
return stato_della_visita;
}
/**
* @param stato_della_visita the stato_della_visita to set
*/
public void setStato_della_visita( Stato_visita stato_della_visita)
{
this .stato_della_visita = stato_della_visita;
}
/**
* @return the referto
*/
{
return referto;
}
/**
* @param referto the referto to set
*/
public void setReferto
( String referto
) {
this .referto = referto;
}
/**
* @return the prescrizione
*/
public String getPrescrizione
( ) {
return prescrizione;
}
/**
* @param prescrizione the prescrizione to set
*/
public void setPrescrizione
( String prescrizione
) {
this .prescrizione = prescrizione;
}
private Stato_visita stato_della_visita;
public boolean matchMedico( int query)
{
if ( id_medico== query) return true ; else return false ;
}
public boolean matchUtente( int query)
{
if ( id_utente== query) return true ; else return false ;
}
}
GN (Member )
Guru
Messaggi: 772
Iscritto: 30/04/2011
Postato originariamente da Bonnox :
l'errore è quello riportato nel titolo
Ops non l'avevo visto, dev'essere il caldo che gioca brutti scherzi xD
Non sono sicuro sia questo il problema, ma se non ricordo male il file deve chiamarsi come la classe, hai controllato? Altra cosa, forse devi passare non il nome del file ma quello esatto della classe (con il package), quindi potresti provare con
Codice sorgente - presumibilmente Plain Text
Bonnox (Member )
Pro
Messaggi: 85
Iscritto: 23/08/2014
Postato originariamente da GN :
Postato originariamente da Bonnox :
l'errore è quello riportato nel titolo
Ops non l'avevo visto, dev'essere il caldo che gioca brutti scherzi xD
Non sono sicuro sia questo il problema, ma se non ricordo male il file deve chiamarsi come la classe, hai controllato? Altra cosa, forse devi passare non il nome del file ma quello esatto della classe (con il package), quindi potresti provare con
Codice sorgente - presumibilmente Plain Text
si tranquillo;
no purtroppo non va nemmeno così ;(
ho pure provato ad esportare in jar ma ovviamente è stato inutile
Siccome poi questi file class li devo consegnare, mi puoi confermare che su altri computer andranno? perchè comunque se su eclipse va, il problema sta da me; sicuramente i professori sapranno come configurare il tutto per farlo partire!
ah, lo fa anche con altri progetti. è definitivamente colpa mia/del pc, non del sorgente.
Ultima modifica effettuata da Bonnox il 15/07/2015 alle 16:22
TheDarkJuster (Member )
Guru^2
Messaggi: 1620
Iscritto: 27/09/2013
Il file deve chiamarsi come la classe in cui è presente public static void main(String[] args)
pierotofy (Admin )
Guru^2
Messaggi: 6230
Iscritto: 04/12/2003
Da quale directory stai eseguendo il comando?
La tua classe è dentro il file Classemain.java?
Puoi fare un "ls" oppure "dir" dalla directory?
Dove sono i .class?
Ultima modifica effettuata da pierotofy il 16/07/2015 alle 0:48