viernes, 15 de diciembre de 2017



APLICACION QUE PERMITA INGRESAR EL NOMBRE DE DIFERENTES MEDICOS Y
SE REQUIERE:
1) INGRESAR DATOS PARA LOS MEDICOS
2) LISTADO GENERAL DE MEDICOS
3) LISTADO ORDENADO ALFABETICAMENTE POR NOMBRE
4) LISTADO ORDENADO ALFABETICAMENTE POR ESPECIALIZACION
5)LISTADO DE SUELDO DECRECIENTE
6)LISTADO DE SUELDO CRECIENTE
7)LISTADO DE MEDICOS HORARIO
8)MOSTRAR MEDICOS DISPONIBLES SEGUN SU HORARIO DE TRABAJO
9)LISTADO DE ANNO DEL DOCTOR(DECRECIENTE)
10)LISTADO DE ANNO DEL DOCTOR(CRECIENTE)


//--- DECLARACION DEL REGISTRO ---
REGISTRO REG_MEDICO
    CADENA[30] NOMBRE
    CADENA[30] ESPECIALIZACION
    ENTERO HORAS , ANNO
    REAL VALORH //EL VALOR QUE SE LE PAGA POR HORA
    REAL SUELDO //ES UN CAMPO CALCULADO
      CADENA[30] HORARIO
FIN REGISTRO
//--- VARIABLES DEL MODULO PRINCIPAL ---
ARREGLO[200] DE REG_MEDICO VMEDICOS
CARACTER OPCION
ENTERO N
//CUADRO
PROCEDIMIENTO RECUADRO(ENTERO X1, ENTERO Y1, ENTERO X2, ENTERO Y2,ENTERO COLOR, CARACTER SIMBOLO, ENTERO TIEMPO)
ENTERO J
INICIO
    LLAMAR COLOR_TEXTO(COLOR)
    //DIBUJANDO LAS LINEAS HORIZONTALES
    PARA J<- X1 HASTA X2 HAGA
      
        LLAMAR POSICIONAR_CURSOR(J, Y1)
        LLAMAR RETRASO(TIEMPO)
        ESCRIBA SIMBOLO
      
        LLAMAR POSICIONAR_CURSOR(J, Y2)
        LLAMAR RETRASO(TIEMPO)
        ESCRIBA SIMBOLO
    FIN PARA
    //DIBUJANDO LAS LINEAS VERTICALES
    PARA J<- Y1 HASTA Y2 HAGA
        LLAMAR POSICIONAR_CURSOR(X1, J)
        LLAMAR RETRASO(TIEMPO)
        ESCRIBA SIMBOLO
      
        LLAMAR POSICIONAR_CURSOR(X2, J)
        LLAMAR RETRASO(TIEMPO)
        ESCRIBA SIMBOLO
    FIN PARA
    LLAMAR COLOR_TEXTO(15)//15 BLANCO
FIN
//----------------------------------------------------
PROCEDIMIENTO RETRASO(ENTERO MILISEG)
ENTERO J, N
REAL S
INICIO
    S <- 0
    N <- MILISEG*5
    PARA J<-1 HASTA N HAGA
        S <- S+J
        S<- S -J
    FIN PARA
FIN

// --- SUBRUTINAS ---
PROCEDIMIENTO MENU(VAR CARACTER OPCION)
INICIO
    LLAMAR RECUADRO(9,1,80,19,14,CAR(219),150)
    LLAMAR COLOR_TEXTO(10)
    LLAMAR POSICIONAR_CURSOR(30,3)
    ESCRIBA "*** APLICACION DE HOSPITAL ***"
    LLAMAR POSICIONAR_CURSOR(23,2)
    ESCRIBA "=============================================="
    LLAMAR POSICIONAR_CURSOR(10,5)
    ESCRIBA "A. INGRESAR MEDICOS"
    LLAMAR POSICIONAR_CURSOR(10,6)
    ESCRIBA "B. LISTADO GENERAL DE MEDICOS"
    LLAMAR POSICIONAR_CURSOR(10,7)
    ESCRIBA "C. LISTADO ORDENADO ALFABETICAMENTE"
    LLAMAR POSICIONAR_CURSOR(10,8)
    ESCRIBA "D. LISTADO ALFABETICO POR ESPECIALIZACION"
    LLAMAR POSICIONAR_CURSOR(10,9)
    ESCRIBA "E. LISTADO DE SUELDO DECRECIENTE"
    LLAMAR POSICIONAR_CURSOR(10,10)
    ESCRIBA "F. LISTADO DE SUELDO CRECIENTE"
    LLAMAR POSICIONAR_CURSOR(10,11)
    ESCRIBA "G. LISTADO DE MEDICOS HORARIO"
    LLAMAR POSICIONAR_CURSOR(10,12)
    ESCRIBA "H. MOSTRAR MEDICOS DISPONIBLES SEGUN SU HORARIO DE TRABAJO"
    LLAMAR POSICIONAR_CURSOR(10,13)
    ESCRIBA "I. LISTADO DE ANNO DEL DOCTOR(DECRECIENTE)"
    LLAMAR POSICIONAR_CURSOR(10,14)
    ESCRIBA "J. LISTADO DE ANNO DEL DOCTOR(CRECIENTE)"
    LLAMAR POSICIONAR_CURSOR(10,14)
   

   

   
   
    LLAMAR POSICIONAR_CURSOR(10,15)
    ESCRIBA "Z. SALIR"
    LLAMAR POSICIONAR_CURSOR(10,16)
    ESCRIBA "POR FAVOR, INGRESE SU OPCION: "
    LEA OPCION
FIN
//-----------------------------------
//----------------------------------------------
PROCEDIMIENTO INGRESAR_MEDICO(VAR ENTERO N, VAR ARREGLO[200] DE REG_MEDICO VMEDICO)
//PERMITE AGREGAR UN NUEVO DOCENTE AL VECTOR "VMEDICO"
INICIO
    N <- N+1
    LLAMAR COLOR_TEXTO(11)
    LLAMAR POSICIONAR_CURSOR(5,5)
    ESCRIBA "NOMBRE: "
    LEA VMEDICOS[N].NOMBRE
   
    LLAMAR POSICIONAR_CURSOR(5,6)
    ESCRIBA "ESPECIALIZACION: "
    LEA VMEDICOS[N].ESPECIALIZACION
   
    LLAMAR POSICIONAR_CURSOR(5,7)
    ESCRIBA "TOTAL HORAS: "
    LEA VMEDICOS[N].HORAS
   
    LLAMAR POSICIONAR_CURSOR(5,8)
    ESCRIBA "VALOR HORA (S/.): "
    LEA VMEDICOS[N].VALORH
    //CALCULANDO EL SUELDO
    VMEDICOS[N].SUELDO <- VMEDICOS[N].HORAS*VMEDICOS[N].VALORH
    //MOSTRANDO EL SUELDO EN PANTALLA
    LLAMAR POSICIONAR_CURSOR(5,9)
    ESCRIBA "SUELDO (S/.): ", VMEDICOS[N].SUELDO
   
    LLAMAR POSICIONAR_CURSOR(5,10)
    ESCRIBA " HORARIO: "
    LEA VMEDICOS[N].HORARIO
   
    LLAMAR POSICIONAR_CURSOR(5,11)
    ESCRIBA " ANNO: "
    LEA VMEDICOS[N].ANNO
   
   
FIN

//-----------------------------------------------
PROCEDIMIENTO LISTADO_GENERAL( ENTERO N, ARREGLO[200] DE REG_MEDICO VMEDICO)
ENTERO K, J
INICIO
    //CABECERA
    LLAMAR COLOR_TEXTO(8)
    LLAMAR POSICIONAR_CURSOR(3,4)
    ESCRIBA "NRO"
    LLAMAR POSICIONAR_CURSOR(7,4)
    ESCRIBA "MEDICO"
    LLAMAR POSICIONAR_CURSOR(30,4)
    ESCRIBA "ESPECIALIZACION"
    LLAMAR POSICIONAR_CURSOR(42,4)
    ESCRIBA "HORAS"
    LLAMAR POSICIONAR_CURSOR(52,4)
    ESCRIBA "VALORH"
    LLAMAR POSICIONAR_CURSOR(62,4)
    ESCRIBA "SUELDO (S/.)"
    LLAMAR POSICIONAR_CURSOR(72,4)
    ESCRIBA " HORARIO "
    LLAMAR POSICIONAR_CURSOR(82,4)
    ESCRIBA " ANNO "
   
    LLAMAR POSICIONAR_CURSOR(3,5)
    escriba "=========================================================================================="
    //imprimiendo los datos
    K<- 1//NRO DE ORDEN
    PARA J<- 1 HASTA N HAGA
        LLAMAR POSICIONAR_CURSOR(3,K+5)
        ESCRIBA K, ".-"
        LLAMAR POSICIONAR_CURSOR(7,K+5)
        ESCRIBA VMEDICOS[J].NOMBRE
        LLAMAR POSICIONAR_CURSOR(30,K+5)
        ESCRIBA VMEDICOS[J].ESPECIALIZACION
        LLAMAR POSICIONAR_CURSOR(42,K+5)
        ESCRIBA VMEDICOS[J].HORAS
        LLAMAR POSICIONAR_CURSOR(52,K+5)
        ESCRIBA VMEDICOS[J].VALORH
        LLAMAR POSICIONAR_CURSOR(62,K+5)
        ESCRIBA VMEDICOS[J].SUELDO
        LLAMAR POSICIONAR_CURSOR(72,K+5)
        ESCRIBA VMEDICOS[J].HORARIO
        LLAMAR POSICIONAR_CURSOR(82,K+5)
        ESCRIBA VMEDICOS[J].ANNO
        K <- K+1
    FIN PARA
FIN
//-------------------------------------------
PROCEDIMIENTO ORDENARMEDICOS_ALFAB(ENTERO N, ARREGLO[200] DE REG_MEDICO VMEDICO)
REG_MEDICO AUXREGISTRO // VARIABLE TEMPORAL
BOOLEANO ORDENADO
ENTERO J
INICIO
   LLAMAR COLOR_TEXTO(7)
   ORDENADO<-FALSO
   MIENTRAS (ORDENADO= FALSO) HAGA
      ORDENADO <- VERDADERO     
      PARA J <- 1 HASTA N-1 HAGA
      SI (VMEDICOS[J].NOMBRE>VMEDICOS[J+1].NOMBRE)ENTONCES
          AUXREGISTRO <-VMEDICOS[J]
          VMEDICOS[J] <-VMEDICOS[J+1]
          VMEDICOS[J+1] <-AUXREGISTRO
          ORDENADO <-FALSO
          FIN SI
        FIN PARA
       FIN MIENTRAS
  FIN
//--------------------------------------------------------------------------------------------------------------
FUNCION MEDICOSXHORA(ARREGLO[200] DE REG_MEDICO VMEDICOS, ENTERO N, CADENA[30] PHORARIO): ENTERO
    ENTERO NUM, J
INICIO
    NUM <- 0
    PARA J <- 1 HASTA N HAGA
        SI (VMEDICOS[J].HORARIO = PHORARIO) ENTONCES
            NUM <- NUM+1 //SE INCREMENTA EL CONTADOR
        FIN SI
    FIN PARA
    RETORNE NUM
FIN
//---------------------------------------------------------------------------------------------------------------------------
PROCEDIMIENTO ORDENARESPECIALIZACION_ALFAB(ENTERO N, ARREGLO[200] DE REG_MEDICO VMEDICO)
REG_MEDICO AUXREGISTRO // VARIABLE TEMPORAL
BOOLEANO ORDENADO
ENTERO J
INICIO
    LLAMAR COLOR_TEXTO(4)
   ORDENADO<-FALSO
   MIENTRAS (ORDENADO= FALSO) HAGA
      ORDENADO <- VERDADERO     
      PARA J <- 1 HASTA N-1 HAGA
      SI (VMEDICOS[J].ESPECIALIZACION>VMEDICOS[J+1].ESPECIALIZACION)ENTONCES
          AUXREGISTRO <-VMEDICOS[J]
          VMEDICOS[J] <-VMEDICOS[J+1]
          VMEDICOS[J+1] <-AUXREGISTRO
          ORDENADO <-FALSO
          FIN SI
        FIN PARA
       FIN MIENTRAS
  FIN
//---------------------------------------------------------------------------------------------------------------------------
PROCEDIMIENTO ORDENARSUELDO_DECRE (ENTERO N, ARREGLO[200] DE REG_MEDICO VMEDICO)
REG_MEDICO AUXREGISTRO // VARIABLE TEMPORAL
BOOLEANO ORDENADO
ENTERO J
INICIO
    LLAMAR COLOR_TEXTO(4)
   ORDENADO<-FALSO
   MIENTRAS (ORDENADO= FALSO) HAGA
      ORDENADO <- VERDADERO     
      PARA J <- 1 HASTA N+1 HAGA
      SI (VMEDICOS[J].SUELDO>VMEDICOS[J-1].SUELDO)ENTONCES
          AUXREGISTRO <-VMEDICOS[J]
          VMEDICOS[J] <-VMEDICOS[J-1]
          VMEDICOS[J-1] <-AUXREGISTRO
          ORDENADO <-FALSO
          FIN SI
        FIN PARA
       FIN MIENTRAS
  FIN
//---------------------------------------------------------------------------------------------------------------------------
PROCEDIMIENTO ORDENARSUELDO_CRECI (ENTERO N, ARREGLO[200] DE REG_MEDICO VMEDICO)
REG_MEDICO AUXREGISTRO // VARIABLE TEMPORAL
BOOLEANO ORDENADO
ENTERO J
INICIO
    LLAMAR COLOR_TEXTO(4)
   ORDENADO<-FALSO
   MIENTRAS (ORDENADO= FALSO) HAGA
      ORDENADO <- VERDADERO     
      PARA J <- 1 HASTA N-1 HAGA
      SI (VMEDICOS[J].SUELDO>VMEDICOS[J+1].SUELDO)ENTONCES
          AUXREGISTRO <-VMEDICOS[J]
          VMEDICOS[J] <-VMEDICOS[J+1]
          VMEDICOS[J+1] <-AUXREGISTRO
          ORDENADO <-FALSO
          FIN SI
        FIN PARA
       FIN MIENTRAS
  FIN
//---ORDENAR AÑOS LISTA DE AÑOS DE MANERA CRECIENTE---
PROCEDIMIENTO ORDENARANNO_CRECI (ENTERO N, ARREGLO[200] DE REG_MEDICO VMEDICO)
REG_MEDICO AUXREGISTRO // VARIABLE TEMPORAL
BOOLEANO ORDENADO
ENTERO J
INICIO
    LLAMAR COLOR_TEXTO(4)
   ORDENADO<-FALSO
   MIENTRAS (ORDENADO= FALSO) HAGA
      ORDENADO <- VERDADERO     
      PARA J <- 1 HASTA N-1 HAGA
      SI (VMEDICOS[J].ANNO>VMEDICOS[J+1].ANNO)ENTONCES
          AUXREGISTRO <-VMEDICOS[J]
          VMEDICOS[J] <-VMEDICOS[J+1]
          VMEDICOS[J+1] <-AUXREGISTRO
          ORDENADO <-FALSO
          FIN SI
        FIN PARA
       FIN MIENTRAS
  FIN
//-----ORDENAR AÑOS LISTA DE AÑOS DE MANERA DECRECIENTE---
PROCEDIMIENTO ORDENARANNO_DECRE (ENTERO N, ARREGLO[200] DE REG_MEDICO VMEDICO)
REG_MEDICO AUXREGISTRO // VARIABLE TEMPORAL
BOOLEANO ORDENADO
ENTERO J
INICIO
    LLAMAR COLOR_TEXTO(4)
   ORDENADO<-FALSO
   MIENTRAS (ORDENADO= FALSO) HAGA
      ORDENADO <- VERDADERO     
      PARA J <- 1 HASTA N+1 HAGA
      SI (VMEDICOS[J].ANNO>VMEDICOS[J-1].ANNO)ENTONCES
          AUXREGISTRO <-VMEDICOS[J]
          VMEDICOS[J] <-VMEDICOS[J-1]
          VMEDICOS[J-1] <-AUXREGISTRO
          ORDENADO <-FALSO
          FIN SI
        FIN PARA
       FIN MIENTRAS
  FIN 
 
//---------------------------------------------------------------------------------------------------------------------------
PROCEDIMIENTO ORDENAR_HORARIO (ENTERO N, ARREGLO[200] DE REG_MEDICO VMEDICO)
REG_MEDICO AUXREGISTRO // VARIABLE TEMPORAL
BOOLEANO ORDENADO
ENTERO J
INICIO
    LLAMAR COLOR_TEXTO(4)
   ORDENADO<-FALSO
   MIENTRAS (ORDENADO= FALSO) HAGA
      ORDENADO <- VERDADERO     
      PARA J <- 1 HASTA N-1 HAGA
      SI (VMEDICOS[J].HORARIO>VMEDICOS[J+1].HORARIO)ENTONCES
          AUXREGISTRO <-VMEDICOS[J]
          VMEDICOS[J] <-VMEDICOS[J+1]
          VMEDICOS[J+1] <-AUXREGISTRO
          ORDENADO <-FALSO
          FIN SI
        FIN PARA
       FIN MIENTRAS
  FIN
//---------------------------------------------------------------------------------------------------------------------------
PROCEDIMIENTO INICIALIZAR(VAR ENTERO N, VAR ARREGLO[200] DE REG_MEDICO VMEDICOS)
//CARGAR DATOS DE EJEMPLO EN EL VECTOR
INICIO
    VMEDICOS[1].NOMBRE <- "CASTRO LOPEZ IVAN"
    VMEDICOS[1].ESPECIALIZACION <- "ESTOMATOLOGIA"
    VMEDICOS[1].HORAS <- 6
    VMEDICOS[1].VALORH <- 400
    VMEDICOS[1].SUELDO <- 40000
    VMEDICOS[1].HORARIO <- " N " // N: NOCHE
    VMEDICOS[1].ANNO <- 34
   
    VMEDICOS[2].NOMBRE <- "ALVA CELI MIRIAN"
    VMEDICOS[2].ESPECIALIZACION<- "PEDIATRIA"
    VMEDICOS[2].HORAS <- 4
    VMEDICOS[2].VALORH <- 200
    VMEDICOS[2].SUELDO <- 45000
    VMEDICOS[2].HORARIO <- " T " // T: TARDE
    VMEDICOS[2].ANNO <- 37
   
   
    VMEDICOS[3].NOMBRE <- "DURAND LOPEZ MARCO"
    VMEDICOS[3].ESPECIALIZACION <- "OBSTETRICIA"
    VMEDICOS[3].HORAS <- 8
    VMEDICOS[3].VALORH <- 450
    VMEDICOS[3].SUELDO <- 35000
    VMEDICOS[3].HORARIO <- " M " // M: MAÑANA
    VMEDICOS[3].ANNO <- 56
   
    VMEDICOS[4].NOMBRE <- "DURAND JUAREZ ANA"
    VMEDICOS[4].ESPECIALIZACION <- "FARMACEUTICO"
    VMEDICOS[4].HORAS <- 2
    VMEDICOS[4].VALORH <- 120
    VMEDICOS[4].SUELDO <- 70000
    VMEDICOS[4].HORARIO <- " T " // TARDE
    VMEDICOS[4].ANNO <- 87
   
   
    VMEDICOS[5].NOMBRE <- "MORE MORE JAIR"
    VMEDICOS[5].ESPECIALIZACION <- "CIRUJANO"
    VMEDICOS[5].HORAS <- 3
    VMEDICOS[5].VALORH <- 140
    VMEDICOS[5].SUELDO <- 13850
    VMEDICOS[5].HORARIO <- " M "
    VMEDICOS[5].ANNO <- 45
   
   
   
    N <- 5 //SE ACTUALIZA N
FIN

//----------- MODULO PRINCIPAL -------------
INICIO
    OPCION <- 'X'
    N <- 0
    LLAMAR INICIALIZAR(N, VMEDICOS)
    LLAMAR LIMPIAR_PANTALLA()
    LLAMAR COLOR_TEXTO(15) //BLANCO COLOR INICIAL
    MIENTRAS (OPCION <> 'Z') Y (OPCION <>'z') HAGA
        LLAMAR LIMPIAR_PANTALLA()
        LLAMAR MENU(OPCION)
        LLAMAR LIMPIAR_PANTALLA()
        CASO OPCION
            'A','a': ESCRIBA "I. INGRESAR NUEVO MEDICO"
                     LLAMAR INGRESAR_MEDICO (N, VMEDICOS)
                      
            'B','b': ESCRIBA "II. LISTADO GENERAL DE DOCENTES"
                     LLAMAR LISTADO_GENERAL(N,VMEDICOS)
                                    
            'C','c': ESCRIBA "III. ORDENAR MEDICOS ALFABETICAMENTE "
                     LLAMAR ORDENARMEDICOS_ALFAB (N,VMEDICOS)
                     LLAMAR LISTADO_GENERAL(N,VMEDICOS)
                             
            'D','d': ESCRIBA "IV. LISTADO ALFABETICO POR ESPECIALIZACION"
                     LLAMAR ORDENARESPECIALIZACION_ALFAB(N, VMEDICOS)
                     LLAMAR LISTADO_GENERAL(N,VMEDICOS)
                    
            'E','e': ESCRIBA "V. LISTADO DE SUELDO DECRECIENTE"
                     LLAMAR ORDENARSUELDO_DECRE (N, VMEDICOS)
                     LLAMAR LISTADO_GENERAL(N,VMEDICOS)
                    
            'F','f': ESCRIBA "VI. LISTADO DE SUELDO CRECIENTE"
                     LLAMAR ORDENARSUELDO_CRECI (N, VMEDICOS)
                     LLAMAR LISTADO_GENERAL(N,VMEDICOS)
                    
            'G','g': ESCRIBA "VII. LISTADO DE MEDICOS HORARIO"
                     LLAMAR LISTADO_GENERAL(N,VMEDICOS)
                    
            'H','h': ESCRIBA "VIII. NUMERO DE MEDICOS POR HORARIO DE SERVICIO"
                     LLAMAR NUEVA_LINEA()
                        ESCRIBA "NRO. MEDICOS SERVICIO MAÑANA: ", MEDICOSXHORA(VMEDICOS,N," M ")
                     LLAMAR NUEVA_LINEA()
                     ESCRIBA "NRO. MEDICOS SERVICIO TARDE: ", MEDICOSXHORA(VMEDICOS,N," T ")
                     LLAMAR NUEVA_LINEA()
                     ESCRIBA "NRO. MEDICOS SERVICIO NOCHE: ", MEDICOSXHORA(VMEDICOS,N," N ")
          
            'I','i': ESCRIBA "IX. LISTADO DE AÑO DEL DOCTOR(DECRECIENTE)"
                     LLAMAR ORDENARANNO_DECRE (N, VMEDICOS)
                     LLAMAR LISTADO_GENERAL(N,VMEDICOS)
          
            'J','j': ESCRIBA "X. LISTADO DE AÑO DEL DOCTOR(CRECIENTE)"
                     LLAMAR ORDENARANNO_CRECI (N, VMEDICOS)
                     LLAMAR LISTADO_GENERAL(N,VMEDICOS)
                  
                    LLAMAR NUEVA_LINEA()                        
        FIN CASO
        LLAMAR POSICIONAR_CURSOR(20,30)
        ESCRIBA "POR FAVOR, PRESIONE CUALQUIER TECLA PARA CONTINUAR ..."
        LLAMAR OBTENER_CARACTER()//PARA UNA PAUSA
    FIN MIENTRAS
    LLAMAR POSICIONAR_CURSOR(32,10)
    ESCRIBA "GRACIAS. HASTA PRONTO!"
FIN


 descarga el formato para lpp AQUI- 

No hay comentarios.:

Publicar un comentario

MENU DE ACCIONES EN JAVA

MENU DE ACCIONES EN JAVA ----------------------------------------------------------------- package menudeacciones; import java.util.S...