POO - Laboratorio de Java
POO - Laboratorio de Java
EJERCICIO
Ejemplo básico en JAVA usando println
EJERCICIO
Operaciones básicas Suma y Resta
EJERCICIO
Operaciones aritméticas fundamentales
EJERCICIO
Operaciones aritméticas fundamentales
EJERCICIO
Generacion de Numeros Aleatorios
EJERCICIO
SINTAXIS JAVA
Los 5 bucles hacen lo mismo
i=1;
while(i<=10) {
[Link](i);
i++;
}
[Link]("-----------------------");
i=0;
while(i<10) {
i++;
[Link](i);
}
[Link]("-----------------------");
i=0;
do {
i++;
[Link](i);
} while(i<10);
[Link]("-----------------------");
i=1;
do {
[Link](i);
i++;
} while(i<=10);
[Link]("-----------------------");
}
}
public class Demo {
for(int i=1;i<=N;i++) {
[Link](i);
}
[Link]("-----------------------");
i=1;
while(i<=N) {
[Link](i);
i++;
}
[Link]("-----------------------");
i=0;
while(i<N) {
i++;
[Link](i);
}
[Link]("-----------------------");
i=0;
do {
i++;
[Link](i);
} while(i<N);
[Link]("-----------------------");
i=1;
do {
[Link](i);
i++;
} while(i<=N);
[Link]("-----------------------");
Modo Consola
EJERCICIO
Generar una tabla de 20 números aleatorios A y B con
las operaciones básicas Suma, Resta y Producto
Modo Netbeans
Netbeans es un Entorno de Desarrollo Integrado (IDE: Integrated
Development Environment ) para desarrollar aplicaciones en Java
Lista de Ejercicios
EJERCICIO
import [Link].*;
import [Link].*;
//-------------------------------------------------------
//-------------------------------------------------------
public static String fff(String SS, int Mode) {
String CLAVE1 = "
!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂";
String CLAVE2 = "Q_$Ef32ln9AcD/M&yj`x[J#r
Sz)FL0(q!k1w%+m\\,>R6BvYI*VN8K;=eH:4oG@}\"|as^XptCg7'{?]Pd⌂O5T<hW-ZU~bui.";
String TT;
int k,P,L;
char E;
L = [Link]();
TT = "";
for(int i=0;i<=L-1;i++) {
E = [Link](i);
//- - - - - - - - - - - - - - - - -
P = -1;
k = 0;
while((k<=(Mode==1?[Link]():[Link]()))&&(P==-1)) {
if((Mode==1?[Link](k):[Link](k))==E) {
P = k;
}
k++;
}
//- - - - - - - - - - - - - - - - -
if(P>=0) {
TT = TT + (Mode==1?[Link](P):[Link](P));
}
}
return TT;
}
//-------------------------------------------------------
public static void main(String[] args) {
String SS,C1,C2;
SS = "abcd1234";
C1 = fff(SS,1);
C2 = fff(C1,-1);
[Link](SS);
[Link](C1); //Cadena Encriptada
[Link](C2); //Cadena Desencriptada
}
//-------------------------------------------------------
}
EJERCICIO
SOLUCIÓN
Versión 1
[Link]
import [Link];
Versión 2
[Link]
import [Link];
else {
[Link](A + " es mayor que " + B);
}
}
}
Versión 3
[Link]
import [Link];
Versión 4
[Link]
import [Link];
//---------------------------------------------------
private static float LeerNumeroReal(String Texto) {
Scanner OBJ = new Scanner([Link]);
float X;
[Link](Texto);
X = [Link]();
return X;
}
//---------------------------------------------------
private static String ResultadoComparacion(float A, float B) {
String Cadena;
if(A==B) {
Cadena = A + " es igual a " + B;
}
else if(A<B) {
Cadena = A + " es menor que " + B;
}
else {
Cadena = A + " es mayor que " + B;
}
return Cadena;
}
//---------------------------------------------------
public static void main(String[] args) {
float A,B;
A = LeerNumeroReal("Ingrese 1er Numero: ");
B = LeerNumeroReal("Ingrese 2do Numero: ");
[Link](ResultadoComparacion(A,B));
}
//---------------------------------------------------
}
Versión 5
[Link]
public class EJERCICIO5 {
[Link]
import [Link];
//---------------------------------------------------
// CONSTRUCTOR
//---------------------------------------------------
public Clase5() {
}
//---------------------------------------------------
public float LeerNumeroReal(String Texto) {
Scanner OBJ = new Scanner([Link]);
float X;
[Link](Texto);
X = [Link]();
return X;
}
//---------------------------------------------------
public String ResultadoComparacion(float A, float B) {
String Cadena;
if(A==B) {
Cadena = A + " es igual a " + B;
}
else if(A<B) {
Cadena = A + " es menor que " + B;
}
else {
Cadena = A + " es mayor que " + B;
}
return Cadena;
}
//---------------------------------------------------
}
EJERCICIO
SOLUCIÓN
Versión 1
[Link]
public class EJERCICIO1 {
} //class
}
===================================
COMPARACION DE 2 NUMEROS ENTEROS
===================================
Ingrese Numero A: 25
Ingrese Numero B: 25
Valores Iguales
===================================
COMPARACION DE 2 NUMEROS ENTEROS
===================================
Ingrese Numero A: 78
Ingrese Numero B: 123
Valores Diferentes
EJERCICIO
Dados dos números A y B, determinar si A<B o A=B o
A>B
SOLUCIÓN
[Link]
import [Link];
usando la estructura if…else if…else se tiene una nueva
versión modificada
[Link]
import [Link];
[Link]
import [Link];
int A,B;
String S;
[Link]("===================================");
[Link](" COMPARACION DE 2 NUMEROS ENTEROS ");
[Link]("===================================");
[Link]("");
[Link] ("Ingrese el valor de A: ");
A = [Link]();
[Link] ("Ingrese el valor de B: ");
B = [Link]();
[Link]();
S = (A==B?"igual a":(A<B?"menor que":"mayor que"));
[Link](A + " es " + S + " " + B);
}
===================================
COMPARACION DE 2 NUMEROS ENTEROS
===================================
Ingrese el valor de A: 48
Ingrese el valor de B: 120
===================================
COMPARACION DE 2 NUMEROS ENTEROS
===================================
Ingrese el valor de A: 48
Ingrese el valor de B: 48
48 es es igual a 48
===================================
COMPARACION DE 2 NUMEROS ENTEROS
===================================
Ingrese el valor de A: 120
Ingrese el valor de B: 48
EJERCICIO
import [Link];
import [Link];
//------------------------------------------
public static int LeerNumero() {
Scanner Keyboard = new Scanner([Link]);
int T;
[Link]("DIVISORES DE UN NUMERO");
[Link]("======================");
[Link]("Ingrese un entero positivo: ");
T=[Link]();
return T;
}
//------------------------------------------
public static void CalcularDivisores(int N) {
for(int k=1;k<=N;k++) {
if((N%k)==0) {
[Link](k);
}
}
}
//------------------------------------------
public static void main(String args[]) {
int N;
N =LeerNumero();
CalcularDivisores(N);
}
//------------------------------------------
}
Generando la salida
DIVISORES DE UN NUMERO
======================
Ingrese un entero positivo: 120
1
2
3
4
5
6
8
10
12
15
20
24
30
40
60
120
//------------------------------------------
public static int LeerNumero() {
Scanner Keyboard = new Scanner([Link]);
int T;
[Link]("DIVISORES DE UN NUMERO");
[Link]("======================");
[Link]("Ingrese un entero positivo: ");
T=[Link]();
return T;
}
//------------------------------------------
public static void CalcularDivisores(int N) {
int n;
long S;
double P;
n=0;
S=0;
for(int k=1;k<=N;k++) {
if((N%k)==0) {
n++;
S=S+k;
[Link](k);
}
}
P=1.0*S/n;
[Link]("El Total de Divisores es: " + n);
[Link]("La Suma de Divisores es: " + S);
[Link]("El Promedio es: " + P);
}
//------------------------------------------
public static void main(String args[]) {
int N;
N = LeerNumero();
CalcularDivisores(N);
}
//------------------------------------------
}
DIVISORES DE UN NUMERO
======================
Ingrese un entero positivo: 72
1
2
3
4
6
8
9
12
18
24
36
72
El Total de Divisores es: 12
La Suma de Divisores es: 195
El Promedio es: 16.25
Al revisar el código de los 3 programas anteriores, se observa
que adoptan un criterio común en la lógica conducente a la
solución del problema.
La instrucción iterativa
for(int k=1;k<=N;k++) {
establece un recorrido de k: 1,2,3,....,N-2,N-1,N.
Por lo tanto, para un valor muy grande de N, tal como
N=100000000 (cien millones) se realizarán exactamente N
iteraciones incrementando de manera evidente el tiempo de
procesamiento computacional.
Una alternativa para minimizar el costo de procesamiento
sería tomar en consideración que
𝑁
Si k es divisor de N, entonces 𝑘
también es un divisor de N.
El siguiente programa genera los mismos resultados que las
versiones anteriores; no obstante, representa una solución
más optimizada.
import [Link];
//------------------------------------------
public static int LeerNumero() {
Scanner Keyboard = new Scanner([Link]);
int T;
[Link]("DIVISORES DE UN NUMERO");
[Link]("======================");
[Link]("Ingrese un entero positivo: ");
T=[Link]();
return T;
}
//------------------------------------------
public static void CalcularDivisores(int N) {
int n,T;
long S;
double P;
String R1="",R2="";
n = 0;
S = 0;
T = (int)[Link](N);
for(int k=1;k<=T;k++) {
if((N%k)==0) {
n=n+2;
S=S+k+(N/k);
R1 = R1 + k + "\n";
R2 = (N/k) + "\n" + R2;
}
}
P=1.0*S/n;
[Link](R1+R2);
[Link]("El Total de Divisores es: " + n);
[Link]("La Suma de Divisores es: " + S);
[Link]("El Promedio es: " + P);
}
//------------------------------------------
public static void main(String args[]) {
int N;
N = LeerNumero();
CalcularDivisores(N);
}
//------------------------------------------
}
EJERCICIO
Dado un entero no negativo, generar el Triángulo
de Pascal.
El triángulo de Pascal se forma a partir de los coeficientes de
la potencia del binomio (a+b)n
𝑛
(𝑎 + 𝑏)
los cuales representan una sucesión de n+1 números
combinatorios
{ }𝑛
𝐶𝑘
𝑛 𝑛 𝑛 𝑛
= 𝐶0 , 𝐶1 , 𝐶2 , 𝐶3 , . . . , 𝐶𝑛−2 , 𝐶𝑛−1 , 𝐶𝑛
𝑛 𝑛 𝑛
donde
𝑛 𝑛!
𝐶𝑘 = 𝑘!(𝑛−𝑘)!
1 , 5 , 10 , 10 , 5 , 1
El siguiente programa genera el triángulo de Pascal a partir de
un entero no negativo
import [Link];
public class A {
for(int n=0;n<=N;n++) {
F1 = 1;
for(int i=1;i<=n;i++) {
F1 = F1 * i;
}
for(int k=0;k<=n;k++) {
F2 = 1;
for(int i=1;i<=k;i++) {
F2 = F2 * i;
}
F3 = 1;
for(int i=1;i<=n-k;i++) {
F3 = F3 * i;
}
C = (int)(F1/(F2*F3));
[Link]("%5d",C);
}
[Link]("\n");
}
}//main
} //class
import [Link];
public class A {
//----------------------------------------------
private static int LeerNumero() {
Scanner SCN = new Scanner([Link]);
int T;
[Link]("TRIANGULO DE PASCAL\n");
[Link]("===================\n");
[Link]("Ingrese un entero no negativo: ");
T = [Link]();
return T;
}
//----------------------------------------------
private static double Factorial(int N) {
double P;
P = 1;
for(int i=1;i<=N;i++) {
P = P * i;
}
return P;
}
//----------------------------------------------
private static void TrianguloPascal(int N) {
int C;
double F;
for(int n=0;n<=N;n++) {
F = Factorial(n);
for(int k=0;k<=n;k++) {
C = (int)(F/(Factorial(k)*Factorial(n-k)));
[Link]("%5d",C);
}
[Link]("\n");
}
}
//----------------------------------------------
// MODULO PRINCIPAL
//----------------------------------------------
public static void main(String args[]) {
int N;
N=LeerNumero();
TrianguloPascal(N);
}
//----------------------------------------------
}
import [Link];
public class A {
} //class
import [Link];
public class A {
//----------------------------------------------
private static int LeerNumero() {
Scanner SCN = new Scanner([Link]);
int T;
[Link]("TRIANGULO DE PASCAL\n");
[Link]("===================\n");
[Link]("Ingrese un entero no negativo: ");
T = [Link]();
return T;
}
//----------------------------------------------
private static void TrianguloPascal(int N) {
int C;
for(int i=0;i<=N;i++) {
C=1;
[Link]("%5d",C);
for(int k=1;k<=i;k++) {
C = C*(i-k+1)/k;
[Link]("%5d",C);
}
[Link]("\n");
}
}
//----------------------------------------------
// MODULO PRINCIPAL
//----------------------------------------------
public static void main(String args[]) {
int N;
N=LeerNumero();
TrianguloPascal(N);
}
//----------------------------------------------
}
La ejecución es
TRIANGULO DE PASCAL
===================
Ingrese un entero no negativo: 12
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
EJERCICIO
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * * * *
* * * * * * * * *
SOLUCIÓN
Se observa que cada línea del triángulo contiene asteriscos separados
por un espacio.
El k-ésimo patrón de impresión contiene k-1 veces un * y un espacio en
blanco.
[Link]
public class GeneraTriangulo {
[Link]
import [Link];
//---------------------------------------------------
public Clase() {
}
//---------------------------------------------------
public int LeerNumeroEntero(String Texto) {
Scanner OBJ = new Scanner([Link]);
int NUM;
[Link](Texto);
NUM = [Link]();
return NUM;
}
//---------------------------------------------------
private String Replicate(String S, int T) {
String CAD;
CAD = "";
for(int i=1;i<=T;i++) {
CAD = CAD + S;
}
return CAD;
}
//---------------------------------------------------
public void DibujarTriangulo(int N) {
String LINEA;
int n;
for(int k=1;k<=N;k++) {
//- - - - - - - - - - - - - - - - -
LINEA = Replicate(" ",N-k) +
Replicate("* ",k-1) + "*" +
Replicate(" ",N-k);
[Link](LINEA);
}
}
//---------------------------------------------------
}
EJERCICIO
y = 1 + x - x2/3
[Link]
public class EJERCICIO {
while(X<=B) {
Y = 1 + X - [Link](X,3);
[Link](X + "\t" + Y);
X = X + E;
}
[Link]("------------------------------");
}
}
[Link]
import [Link];
//---------------------------------------------------
public Clase() {
}
//---------------------------------------------------
public double LeerNumeroReal(String Texto) {
Scanner OBJ = new Scanner([Link]);
double X;
[Link](Texto);
X = [Link]();
return X;
}
//---------------------------------------------------
public int LeerNumeroEntero(String Texto) {
Scanner OBJ = new Scanner([Link]);
int NUM;
[Link](Texto);
NUM = [Link]();
return NUM;
}
//---------------------------------------------------
private String Replicate(String S, int T) {
String CAD;
CAD = "";
for(int i=1;i<=T;i++) {
CAD = CAD + S;
}
return CAD;
}
//---------------------------------------------------
}
EJERCICIO
Determinar:
[Link]
public class PROGRAMA {
double DISTANCIA[];
int N,A,B,C,D;
[Link]("Puntos Aleatorios (x,y) en el Plano XY");
[Link]("--------------------------------");
[Link]("PUNTOS ALEATORIOS");
N = [Link](" - Ingrese Cantidad a Generar: ");
[Link]("EJE HORIZONTAL X DE ABSCISAS");
A = [Link](" - Ingrese Limite Inferior : ");
B = [Link](" - Ingrese Limite Superior : ");
[Link]("EJE VERTICAL Y DE ORDENADAS");
C = [Link](" - Ingrese Limite Inferior : ");
D = [Link](" - Ingrese Limite Superior : ");
[Link]();
X = [Link](N,A,B);
Y = [Link](N,C,D);
[Link](X,Y);
[Link](X,Y);
}
//---------------------------------------------
}
[Link]
import [Link];
[Link]( (i+1) + "\t" + X[i] + "\t" + Y[i] + "\t" +
DIST);
}
[Link]("-----------------------------------------");
[Link]("La Distncia Promedio es: " + SUM/N);
}
//---------------------------------------------
public static void DistribucionPorCuadrantes(int[] X, int[] Y) {
int N,n1,n2,n3,n4;
N = [Link];
n1 = 0;
n2 = 0;
n3 = 0;
n4 = 0;
for(int i=0;i<=N-1;i++) {
if(Y[i]>0) {
if(X[i]>0) {
n1 = n1 + 1;
}
else {
n2 = n2 + 1;
}
}
else {
if(X[i]>0) {
n4 = n4 + 1;
}
else {
n3 = n3 + 1;
}
}
}
[Link]();
[Link]("DISTRIBUCION DE PUNTOS");
[Link]("----------------------");
[Link](" CUADRANTE TOTAL ");
[Link]("----------------------");
[Link](" 1 " + n1);
[Link](" 2 " + n2);
[Link](" 3 " + n3);
[Link](" 4 " + n4);
[Link]("----------------------");
}
//---------------------------------------------
public int ReadInteger(String Texto) {
Scanner OBJ = new Scanner([Link]);
int N;
[Link](Texto);
N = [Link]();
return N;
}
//---------------------------------------------
}
EJERCICIO
[Link]
public class Global {
public static int N=100;
public static int A=0;
public static int B=9;
public static int X[];
//---------------------------------------------
public Global() {
}
//---------------------------------------------
}
[Link]
import [Link];
import [Link];
Global.B = [Link]();
}
//------------------------------------------------------------------
public void ImprimirDatos() {
for(int i=0;i<=Global.N-1;i++) {
[Link](Global.X[i] + "\t");
}
[Link]("\n");
}
//------------------------------------------------------------------
public void CargarDatos() {
for(int i=0;i<=Global.N-1;i++) {
Global.X[i] = Global.A +
(int)([Link]()*(Global.B-Global.A+1));
}
}
//------------------------------------------------------------------
}
[Link]
public class Estadistica {
//---------------------------------------------
public Estadistica() {
}
//---------------------------------------------
public int Minimo() {
int MIN;
MIN = Global.X[0];
for(int i=0;i<=Global.N-1;i++) {
if(Global.X[i]<MIN) {
MIN = Global.X[i];
}
}
return MIN;
}
//---------------------------------------------
public int Maximo() {
int MAX;
MAX = Global.X[0];
for(int i=0;i<=Global.N-1;i++) {
if(MAX<Global.X[i]) {
MAX = Global.X[i];
}
}
return MAX;
}
//---------------------------------------------
public double Media() {
double SUM;
SUM = 0;
for(int i=0;i<=Global.N-1;i++) {
SUM = SUM + Global.X[i];
}
return SUM/Global.N;
}
//---------------------------------------------
public double Varianza() {
double SUM,MEDIA;
MEDIA = Media();
SUM = 0;
for(int i=0;i<=Global.N-1;i++) {
SUM = SUM + [Link](Global.X[i]-MEDIA,2);
}
return SUM/Global.N;
}
//---------------------------------------------
public void Ordenar() {
int TMP;
for(int k=1;k<=Global.N-1;k++) {
for(int i=0;i<=Global.N-k-1;i++) {
if(Global.X[i]>Global.X[i+1]) {
TMP = Global.X[i];
Global.X[i] = Global.X[i+1];
Global.X[i+1] = TMP;
}
}
}
}
//---------------------------------------------
public int Mediana() {
int MEDIANA;
Ordenar();
if(Global.N%2==0) {
MEDIANA = (Global.X[(Global.N/2)-1] + Global.X[Global.N/2])/2;
}
else {
MEDIANA = Global.X[(Global.N-1)/2];
}
return MEDIANA;
}
//---------------------------------------------
}
[Link]
public class MuestraAleatoria {
//---------------------------------------------
public static void main(String[] args) {
Global GLB = new Global();
Herramientas TLS = new Herramientas();
Estadistica EST = new Estadistica();
[Link]();
[Link]();
[Link]();
[Link]("El Minimo es : " + [Link]());
[Link]("El Maximo es : " + [Link]());
[Link]("La Media es : " + [Link]());
[Link]("La Varianza es : " + [Link]());
[Link]("La Mediana es : " + [Link]());
[Link]("\n");
}
//---------------------------------------------
}
EJERCICIO
Dado un conjunto de datos de N elementos aleatorios [Link],
elaborar un programa orientado a objetos que determine la frecuencia
máxima y mínima de elementos, agrupe los elementos en cuartiles
C1,C2,C3,C4 y determine los promedios correspondientes U1,U2,U3,U4.
import [Link];
//============================================
public static void PrintVector() {
[Link]("ELEMENTOS DE LA MUESTRA");
[Link]("-------------------------------------------------------
----------");
for(int k=0;k<=N-1;k++) {
[Link](V[k] + " ");
}
[Link]();
[Link]("-------------------------------------------------------
----------");
}
//============================================
public static void PrintFrecuencias() {
[Link]();
[Link]("FRECUENCIA DE ELEMENTOS");
[Link]("-----------------------");
[Link](" ITEM\t\tFREQ");
[Link]("-----------------------");
for(int k=0;k<=n-1;k++) {
[Link](" " + ITEM[k] + "\t\t" + FREQ[k]);
}
[Link]("-----------------------");
int PosMin = FrecuenciaMinima();
int PosMax = FrecuenciaMaxima();
[Link]("Frecuencia Minima:");
[Link](" ITEM: " + ITEM[PosMin]);
[Link](" FREQ: " + FREQ[PosMin]);
[Link]("Frecuencia Maxima:");
[Link](" ITEM: " + ITEM[PosMax]);
[Link](" FREQ: " + FREQ[PosMax]);
}
//============================================
public static void PrintCuartil(String TITLE, int A, int B) {
double M;
int T;
T = B-A+1;
M = 0;
[Link](TITLE);
[Link]("------------");
for(int k=A;k<=B; k++) {
[Link](V[k] + " ");
M = M + V[k]/T;
}
[Link]();
[Link]("Promedio: " + M);
[Link]();
}
//============================================
public static void GenerarCuartiles() {
int P1,P2,P3;
P1 = (int)(N/4)-1;
P2 = (int)(N/2)-1;
P3 = (int)(3*N/4)-1;
[Link]();
[Link]("CUARTILES DE LA MUESTRA");
PrintCuartil("CUARTIL 1",0,P1);
PrintCuartil("CUARTIL 2",P1+1,P2);
PrintCuartil("CUARTIL 3",P2+1,P3);
PrintCuartil("CUARTIL 4",P3+1,N-1);
}
//============================================
public static void SortVector() {
int TMP;
for(int k=1;k<=N-1;k++) {
for(int i=0;i<=N-k-1;i++) {
if(V[i]>V[i+1]) {
TMP = V[i];
V[i] = V[i+1];
V[i+1] = TMP;
}
}
}
}
//============================================
public static void LoadVector() {
int A,B;
Scanner TECLADO = new Scanner([Link]);
[Link]();
[Link]("LECTURA DE DATOS");
[Link](" - Cantidad de Datos: ");
N = [Link]();
[Link](" - Limite Inferior : ");
A = [Link]();
[Link](" - Limite Superior : ");
B = [Link]();
[Link]();
V = new int[N];
R = new int[N];
ITEM = new int[N];
FREQ = new int[N];
for(int k=0;k<=N-1;k++) {
V[k] = A + (int)([Link]()*(B-A+1));
R[k] = 0;
}
}
//============================================
public static int FrecuenciaMinima() {
int P;
P = 0;
for(int k=0;k<=n-1;k++) {
if(FREQ[k]<FREQ[P]) {
P = k;
}
}
return P;
}
//============================================
public static int FrecuenciaMaxima() {
int P;
P = 0;
for(int k=0;k<=n-1;k++) {
if(FREQ[P]<FREQ[k]) {
P = k;
}
}
return P;
}
//============================================
public static void CalcularFrecuencias() {
int C;
n = -1;
for(int k=0;k<=N-1;k++) {
if(R[k]==0) {
n++;
ITEM[n] = V[k];
C = 0;
for(int i=k;i<=N-1;i++) {
if((R[i]==0)&&(V[i]==V[k])) {
R[i] = 1;
C++;
}
}
FREQ[n] = C;
}
}
n++;
}
//============================================
public static void main(String args[]) {
LoadVector();
PrintVector();
CalcularFrecuencias();
PrintFrecuencias();
SortVector();
GenerarCuartiles();
}
//============================================
}
import [Link];
[Link]();
[Link]("LECTURA DE DATOS");
[Link](" - Cantidad de Datos: ");
N = [Link]();
[Link](" - Limite Inferior : ");
A = [Link]();
[Link](" - Limite Superior : ");
B = [Link]();
[Link]();
V = new int[N];
R = new int[N];
ITEM = new int[N];
FREQ = new int[N];
[Link](V,R,ITEM,FREQ,N,A,B);
[Link](V);
n = [Link](V,R,ITEM,FREQ);
[Link](ITEM,FREQ,n);
[Link](V);
[Link](V);
}
//--------------------------------------------
}
class TLib {
//--------------------------------------------
public TLib() {
}
//--------------------------------------------
public void PrintVector(int V[]) {
int N = [Link];
[Link]("ELEMENTOS DE LA MUESTRA");
[Link]("-------------------------------------------------------
----------");
for(int k=0;k<=N-1;k++) {
[Link](V[k] + " ");
}
[Link]();
[Link]("-------------------------------------------------------
----------");
}
//--------------------------------------------
public void PrintFrecuencias(int[] ITEM, int[] FREQ, int n) {
[Link]();
[Link]("FRECUENCIA DE ELEMENTOS");
[Link]("-----------------------");
[Link](" ITEM\t\tFREQ");
[Link]("-----------------------");
for(int k=0;k<=n-1;k++) {
[Link](" " + ITEM[k] + "\t\t" + FREQ[k]);
}
[Link]("-----------------------");
int PosMin = FrecuenciaMinima(FREQ,n);
int PosMax = FrecuenciaMaxima(FREQ,n);
[Link]("Frecuencia Minima:");
[Link](" ITEM: " + ITEM[PosMin]);
[Link](" FREQ: " + FREQ[PosMin]);
[Link]("Frecuencia Maxima:");
[Link](" ITEM: " + ITEM[PosMax]);
[Link](" FREQ: " + FREQ[PosMax]);
}
//--------------------------------------------
public void PrintCuartil(int V[], String TITLE, int A, int B) {
double M;
int T;
T = B-A+1;
M = 0;
[Link](TITLE);
[Link]("------------");
for(int k=A;k<=B; k++) {
[Link](V[k] + " ");
M = M + V[k]/T;
}
[Link]();
[Link]("Promedio: " + M);
[Link]();
}
//--------------------------------------------
public void GenerarCuartiles(int V[]) {
int P1,P2,P3;
int N = [Link];
P1 = (int)(N/4)-1;
P2 = (int)(N/2)-1;
P3 = (int)(3*N/4)-1;
[Link]();
[Link]("CUARTILES DE LA MUESTRA");
PrintCuartil(V,"CUARTIL 1",0,P1);
PrintCuartil(V,"CUARTIL 2",P1+1,P2);
PrintCuartil(V,"CUARTIL 3",P2+1,P3);
PrintCuartil(V,"CUARTIL 4",P3+1,N-1);
}
//--------------------------------------------
public void SortVector(int V[]) {
int TMP;
int N = [Link];
for(int k=1;k<=N-1;k++) {
for(int i=0;i<=N-k-1;i++) {
if(V[i]>V[i+1]) {
TMP = V[i];
V[i] = V[i+1];
V[i+1] = TMP;
}
}
}
}
//--------------------------------------------
public void LoadVector(int[] V, int[] R, int[] ITEM, int[] FREQ, int N, int
A, int B) {
for(int k=0;k<=N-1;k++) {
V[k] = A + (int)([Link]()*(B-A+1));
R[k] = 0;
}
//return V;
}
//--------------------------------------------
public int FrecuenciaMinima(int FREQ[], int n) {
int P;
P = 0;
for(int k=0;k<=n-1;k++) {
if(FREQ[k]<FREQ[P]) {
P = k;
}
}
return P;
}
//--------------------------------------------
public int FrecuenciaMaxima(int FREQ[], int n) {
int P;
P = 0;
for(int k=0;k<=n-1;k++) {
if(FREQ[P]<FREQ[k]) {
P = k;
}
}
return P;
}
//--------------------------------------------
public int CalcularFrecuencias(int[] V, int[] R, int[] ITEM, int[] FREQ) {
int C,n,N = [Link];
n = -1;
for(int k=0;k<=N-1;k++) {
if(R[k]==0) {
n++;
ITEM[n] = V[k];
C = 0;
for(int i=k;i<=N-1;i++) {
if((R[i]==0)&&(V[i]==V[k])) {
R[i] = 1;
C++;
}
}
FREQ[n] = C;
}
}
return n+1;
}
//--------------------------------------------
}
EJERCICIO
Test_Fecha.java
import [Link];
if([Link](FECHA,2000,2024)) {
[Link]("La Fecha es Correcta");
[Link](null,"La Fecha es Correcta");
}
}
//---------------------------------------------
}
Lib_Fecha.java
import [Link];
int P,T,L,YEAR,MONTH,DAY,TOTAL=0;
L = [Link]();
Sw = false;
if((8<=L)&&(L<=10)) {
T = TotalOcurrencias(FECHA,'/');
P = PosicionIzquierda(FECHA,'/');
if((T==2)&&(0<P)&&(P<L-6)&&([Link](L-5)=='/')) {
DD = [Link](0,P);
MM = [Link](P+1,L-5);
YYYY = [Link](L-4,L);
if((EsNumerico(DD)==true)&&
(EsNumerico(MM)==true)&&
(EsNumerico(YYYY)==true)) {
YEAR = [Link](YYYY);
if((MinYear<=YEAR)&&(YEAR<=MaxYear)) {
MONTH = [Link](MM);
if((1<=MONTH)&&(MONTH<=12)) {
DAY = [Link](DD);
if((MONTH==1)||(MONTH==3)||(MONTH==5)||(MONTH==7)||(MONTH==8)||(MONTH==10)||(MONTH==12)) {
TOTAL = 31;
}
else {
if((MONTH==4)||(MONTH==6)||(MONTH==9)||(MONTH==11)) {
TOTAL = 30;
}
else {
TOTAL =(((YEAR%4==0)&&(YEAR%100!=0))||((YEAR%400==0)&&(YEAR%100==0))?29:28);
}
}
Sw = ((1<=DAY)&&(DAY<=TOTAL));
if(!Sw) {
[Link]("ERROR: El Dia es Incorrecto!!!");
}
}
else {
[Link]("ERROR: El Mes es Incorrecto!!!");
}
}
else {
[Link]("ERROR: El Año es Incorrecto!!!");
}
}
else {
[Link]("ERROR: Existen Caracteres No Numericos");
}
}
else {
[Link]("ERROR: Los Delimitadores de Fecha son incorrectos!!!");
}
}
else {
[Link]("ERROR: Longitud/Tamaño de Fecha es Incorrecta!!!");
}
return Sw;
}
//---------------------------------------------
public String ReadString(String Texto) {
Scanner OBJ = new Scanner([Link]);
String CAD;
[Link](Texto);
CAD = [Link]();
return CAD;
}
//---------------------------------------------
}
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
[Link] [Link]
--------------------------------------
Empresa Monto Total
--------------------------------------
Compañía ABC 13,564.40
Inversiones XYZ 29,105.20
Manufacturas Alfa 1,485.70
Inka Soft 21,734.70
Ferreteria Beta 9,010.40
--------------------------------------
Total General 74,900.40
SOLUCIÓN
[Link]
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
}
catch(IOException e) {
}
}
//------------------------------------------------
public static void main(String[] args) throws IOException, InterruptedException {
[Link]();
ProcesarArchivo();
}
//------------------------------------------------
}
[Link]
import [Link];
//-----------------------------------------------
public TLib() {
}
//-----------------------------------------------
public void ClearScreen() throws IOException, InterruptedException {
new ProcessBuilder("cmd","/c","cls").inheritIO().start().waitFor();
}
//-----------------------------------------------
public String Replicate(char E, int N) {
String CAD;
CAD = "";
for(int i=1;i<=N;i++) {
CAD = CAD + E;
}
return CAD;
}
//-----------------------------------------------
} //class
2. Dado el siguiente archivo de datos
[Link] [Link]
-------------------------------------------------------
COMPROBANTE DE PAGO
-------------------------------------------------------
CLIENTE: Pedro Fernandez
MONTO: 98,440.30 (Noventa y ocho mil Cuatrocientos
cuarenta y 30/100)
MONEDA : Dólares
-------------------------------------------------------
SOLUCIÓN
[Link]
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
[Link]("-------------------------------------------------------");
[Link](" COMPROBANTE DE PAGO - Nro. " + n);
[Link]("-------------------------------------------------------");
Cliente = [Link](0,20);
Importe = [Link]([Link](21,30));
IdMoneda = [Link](30);
CAD = [Link]([Link](Importe));
[Link](" CLIENTE: " + Cliente);
[Link](" MONTO: " + CAD + " " +
"(" + [Link](Importe) + ")"
);
[Link](" MONEDA: " + MONEDA[(int)(IdMoneda)-48][1]
);
[Link]("-------------------------------------------------------");
[Link]();
}
[Link]();
}
catch(IOException e) {
}
}
//------------------------------------------------
public static void main(String[] args) throws IOException,
InterruptedException {
[Link]();
LeerMonedas();
GenerarComprobante();
}
//------------------------------------------------
}
[Link]
import [Link];
//-----------------------------------------------
public TLib() {
}
//-----------------------------------------------
public void ClearScreen() throws IOException, InterruptedException {
new ProcessBuilder("cmd","/c","cls").inheritIO().start().waitFor();
}
//-----------------------------------------------
public String Replicate(char E, int N) {
String CAD;
CAD = "";
for(int i=1;i<=N;i++) {
CAD = CAD + E;
}
return CAD;
}
//-----------------------------------------------
public String ObtenerCentena(int CC, int DDUU) {
String TMP;
TMP = "";
switch(CC) {
case 1: TMP = (DDUU==0?"Cien":"Ciento"); break;
case 2: TMP = "Doscientos"; break;
case 3: TMP = "Trescientos"; break;
case 4: TMP = "Cuatrocientos"; break;
case 5: TMP = "Quinientos"; break;
case 6: TMP = "Seiscientos"; break;
case 7: TMP = "Setecientos"; break;
case 8: TMP = "Ochocientos"; break;
case 9: TMP = "Novecientos"; break;
default: //0
}
return TMP;
}
//------------------------------------------------
public String ObtenerDecenaUnidad(int DD, int UU) {
String AUX="",TMP="";
int DDUU;
TMP = "";
DDUU = 10*DD + UU;
//---------------------------------
if((10<=DDUU)&&(DDUU<=15)) {
switch(DDUU) {
case 10: TMP = "Diez"; break;
case 11: TMP = "Once"; break;
case 12: TMP = "Doce"; break;
case 13: TMP = "Trece"; break;
case 14: TMP = "Catorce"; break;
case 15: TMP = "Quince"; break;
default: //0
}
}
else {
switch(DD) {
case 1: TMP = "Dieci"; break;
case 2: TMP = (UU==0?"Veinte":"Veinti"); break;
case 3: TMP = "Treinta"; break;
case 4: TMP = "Cuarenta"; break;
case 5: TMP = "Cincuenta"; break;
case 6: TMP = "Sesenta"; break;
case 7: TMP = "Setenta"; break;
case 8: TMP = "Ochenta"; break;
case 9: TMP = "Noventa"; break;
default: //0
}
//---------------------------------
if((DD>2)&&(UU>0)) {
TMP = TMP + " y ";
}
//---------------------------------
switch(UU) {
case 1: AUX = "Un"; break;
case 2: AUX = "Dos"; break;
case 3: AUX = "Tres"; break;
case 4: AUX = "Cuatro"; break;
case 5: AUX = "Cinco"; break;
case 6: AUX = "Seis"; break;
case 7: AUX = "Siete"; break;
case 8: AUX = "Ocho"; break;
case 9: AUX = "Nueve"; break;
default: //0
}
TMP = TMP + AUX;
}
return TMP;
}
//------------------------------------------------
public String ConversionNumeroTexto(double Importe) {
String CADENA,CAD1,CAD2;
int TT,XX,YY;
int N654,N54,N6,N5,N4,N321,N21,N3,N2,N1;
XX = (int)Importe;
YY = (int)([Link]((Importe - XX)*100));
TT = XX;
CADENA = "";
CAD1 = "";
CAD2 = "";
if((0<=XX)&&(XX<=999999)) { //Hasta 6 digitos
//------------------------------------
N1 = XX%10; XX = (int)(XX/10);
N2 = XX%10; XX = (int)(XX/10);
N3 = XX%10; XX = (int)(XX/10);
N4 = XX%10; XX = (int)(XX/10);
N5 = XX%10; XX = (int)(XX/10);
N6 = XX%10; XX = (int)(XX/10);
//------------------------------------
N654 = 100*N6 + 10*N5 + N4;
N321 = 100*N3 + 10*N2 + N1;
N54 = 10*N5 + N4;
N21 = 10*N2 + N1;;
//------------------------------------
if(N654>0) {
CAD2 = ObtenerCentena(N6,N54);
CAD1 = ObtenerDecenaUnidad(N5,N4);
CADENA = CAD2 + (N6>0?(N54>0?" ":""):"") + (N654==1?"":CAD1 + " ") +
"Mil" + (N321==0?"":" ");
}
//---------------------------------
if(N321>0) {
CAD2 = ObtenerCentena(N3,N21);
CAD1 = ObtenerDecenaUnidad(N2,N1);
CADENA = CADENA + CAD2 + (N3>0?(N21>0?" ":""):"") + CAD1;
}
//---------------------------------
if(YY>0) {
if(TT>0) {
CADENA = CADENA + " y " + YY + "/100";
}
else {
CADENA = YY + "/100";
}
}
//else { }
}
//else { }
return CADENA;
}
//-----------------------------------------------
} //class
3. Dado el archivo de datos con estructura tabular
[Link]
73 40 87 96 56 90 82 51 76 10 38 49 52 79 28
12 35 57 51 43 13 16 75 95 23 25 92 88 91 41
43 16 14 70 83 25 49 85 11 13 33 51 98 52 58
17 74 78 33 39 44 28 51 50 37 16 36 76 77 12
96 96 93 76 40 41 63 76 97 21 72 47 72 22 35
30 34 63 49 62 67 59 54 72 58 69 75 33 24 51
37 23 85 52 58 77 90 24 35 25 86 83 61 63 66
25 69 22 56 52 27 97 16 52 62 29 68 84 90 55
26 52 15 46 77 22 27 27 19 17 72 12 74 35 60
81 52 38 75 70 61 68 82 70 91 86 22 69 32 38
80 41 85 68 65 57 65 27 13 61 73 82 88 68 44
38 32 16 22 43 96 21 67 18 37 38 20 50 57 25
28 99 63 82 56 42 29 21 22 40 95 65 52 26 17
71 84 76 82 15 23 22 49 21 96 18 61 63 85 12
21 37 52 11 12 10 76 72 93 37 42 65 35 33 71
[Link]
import [Link];
import [Link];
import [Link];
int[][] B = new int[T][T];
for(int i=0;i<=M-T;i++) {
for(int j=0;j<=N-T;j++) {
B[0][0] = A[i ][j ];
B[0][1] = A[i ][j+1];
B[0][2] = A[i ][j+2];
B[1][0] = A[i+1][j ];
B[1][1] = A[i+1][j+1];
B[1][2] = A[i+1][j+2];
B[2][0] = A[i+2][j ];
B[2][1] = A[i+2][j+1];
B[2][2] = A[i+2][j+2];
Determinante = A[0][0]*A[1][1]*A[2][2] +
A[0][1]*A[1][2]*A[2][0] +
A[0][2]*A[1][0]*A[2][1] +
A[0][2]*A[1][1]*A[2][0] -
A[0][0]*A[1][2]*A[2][1] -
A[0][1]*A[1][0]*A[2][2];
}
[Link]
import [Link];
import [Link];
import [Link];
import [Link];
//-----------------------------------------------
public TLib() {
}
//-----------------------------------------------
public void ClearScreen() throws IOException, InterruptedException {
new ProcessBuilder("cmd","/c","cls").inheritIO().start().waitFor();
}
//-----------------------------------------------
public String Replicate(char E, int N) {
String CAD;
CAD = "";
for(int i=1;i<=N;i++) {
CAD = CAD + E;
}
return CAD;
}
//-----------------------------------------------
public int[][] ReadMatrixFromLine(String LINE,int M,int N) {
int[][] MTX = new int[M][N];
int L,T,W;
String ITEM;
L = [Link]();
T = (int)(L/M); //Longitud de Registro
W = (int)(T/N); //Longitud del Dato
//Leer desde MTX desde LINEA
for(int i=0;i<=M-1;i++) {
for(int j=0;j<=N-1;j++) {
ITEM = [Link](i*T+j*W,i*T+j*W+3).trim();
MTX[i][j] = [Link](ITEM);
}
}
return MTX;
}
//--------------------------------------------------------
public String ReadDataFromFile(String FILENAME) {
String LINE="",CADENA="";
try {
File FILE = new File(FILENAME);
BufferedReader BR = new BufferedReader(new FileReader(FILE));
while ((LINE = [Link]()) != null) {
CADENA = CADENA + LINE;
}
}
catch(IOException e) {
}
return CADENA;
}
//-----------------------------------------------
} //class
EJERCICIO
Se desea registrar datos del personal que labora en un
hospital.
● Personal Administrativo
● Personal de Salud
- DNI
- Apellidos y Nombres
- Fecha de Nacimiento
- Teléfono
- Dirección
- Sexo
- Salario
- OFICINA:
● Administración
● Contabilidad
● Almacén
● Operaciones
● Marketing
- RÉGIMEN LABORAL:
● PLN: Planilla
● CAS: Contratacion Administrativa de Servicios
● OS: Orden de Servicio
- SERVICIO:
● Medicina
● Odontología
● Psicología,
● Laboratorio
● Radiología
- PROCEDENCIA:
● UNI
● UNMSM
● UPSMP
● UPCH
● UPC. . . .
DEMO_TPERSONA.java
import [Link];
import [Link];
if(TIPO=='1') {
LINEA = TIPO + " | " + OBJ1.Registro_PersonalAdministrativo();
}
else {
LINEA = TIPO + " | " + OBJ2.Registro_PersonalSalud();
}
DATA = DATA + LINEA + "\n";
[Link]("----------------------------------------------------");
[Link]();
[Link]("Desea Continuar? [S/N]: ");
CAD = [Link]();
OPCION = [Link](0);
} while(OPCION!='N');
if([Link](FILENAME)) {
[Link](DATA,FILENAME);
}
else {
[Link](DATA,FILENAME);
}
}
//-----------------------------------------------
}
[Link]
import [Link];
[Link] = [Link](CAD);
}
//----------------------------------
//METODOS GET
//----------------------------------
public String Obtener_DNI() {
return [Link];
}
public String Obtener_APENOM() {
return [Link];
}
public String Obtener_FECNAC() {
return [Link];
}
public String Obtener_TELEFONO() {
return [Link];
}
public String Obtener_DIRECCION() {
return [Link];
}
public char Obtener_SEXO() {
return [Link];
}
public double Obtener_SALARIO() {
return [Link];
}
//----------------------------------
//----------------------------------
//----------------------------------
public String Registro_DatosGenerales() {
Scanner OBJ = new Scanner([Link]);
TLib LIB = new TLib();
String CAD;
do {
[Link](" - DNI : ");
CAD = [Link]();
} while();
Establecer_DNI(CAD);
do {
[Link](" - Apellidos y Nombres: ");
CAD = [Link]();
}
while(164 + (char)165));
Establecer_APENOM(CAD);
do {
[Link](" - Fecha de Nacimiento: ");
CAD = [Link]();
} while();
Establecer_FECNAC(CAD);
do {
[Link](" - Telefono : ");
CAD = [Link]();
} while();
Establecer_TELEFONO(CAD);
do {
[Link](" - Direccion : ");
CAD = [Link]();
}
while();
Establecer_DIRECCION(CAD);
do {
[Link](" - Sexo : ");
CAD = [Link]();
} while();
Establecer_SEXO(CAD);
do {
[Link](" - Salario : ");
CAD = [Link]();
} while();
Establecer_SALARIO(CAD);
[Link]("----------------------------------------------------");
}
//----------------------------------
} //class
[Link]
import [Link];
//----------------------------------
//METODO CONSTRUCTOR
//----------------------------------
public TADMINISTRATIVO() {
super();
}
//----------------------------------
//METODOS SET
//----------------------------------
public void Establecer_OFICINA(String oficina) {
[Link] = oficina;
}
//----------------------------------
//METODOS GET
//----------------------------------
public String Obtener_OFICINA() {
return [Link];
}
//----------------------------------
//----------------------------------
public String Registro_PersonalAdministrativo() {
Scanner OBJ = new Scanner([Link]);
TLib LIB = new TLib();
String CAD,LINEA;
LINEA = Registro_DatosGenerales();
do {
[Link](" - Oficina : ");
CAD = [Link]();
}
while();
Establecer_OFICINA(CAD);
return LINEA + " | " +
OFICINA + [Link](' ',20 - [Link]());
}
//----------------------------------
} //class
[Link]
import [Link];
//----------------------------------
//METODO CONSTRUCTOR
//----------------------------------
public TSALUD() {
super();
}
//----------------------------------
//METODOS SET
//----------------------------------
public void Establecer_SERVICIO(String servicio) {
[Link] = servicio;
}
public void Establecer_PROCEDENCIA(String procedencia) {
[Link] = procedencia;
}
//----------------------------------
//METODOS GET
//----------------------------------
public String Obtener_SERVICIO() {
return [Link];
}
public String Obtener_PROCEDENCIA() {
return [Link];
}
//----------------------------------
public String Registro_PersonalSalud() {
Scanner OBJ = new Scanner([Link]);
TLib LIB = new TLib();
String CAD,LINEA;
LINEA = Registro_DatosGenerales();
do {
[Link](" - Servicio : ");
CAD = [Link]();
}
while();
Establecer_SERVICIO(CAD);
do {
[Link](" - Procedencia : ");
CAD = [Link]();
}
while();
Establecer_PROCEDENCIA(CAD);
//----------------------------------
//----------------------------------
} //class
[Link]
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].*;
//-----------------------------------------------
public TLib() {
}
//-----------------------------------------------
public void ClearScreen() throws IOException, InterruptedException {
new ProcessBuilder("cmd","/c","cls").inheritIO().start().waitFor();
}
//-----------------------------------------------
public String Replicate(char E, int N) {
String T;
T = "";
for(int i=1;i<=N;i++) {
T = T + E;
}
return T;
}
//-----------------------------------------------
public boolean InRange(String CADENA, String RANGO){
int L,N,k,i;
char E;
boolean Sw,Hk;
L = [Link]();
N = [Link]();
Sw = true;
k = 0;
while((k<=L-1)&&(Sw==true)){
E = [Link](k);
Hk = false;
i = 0;
while((i<=N-1)&&(Hk==false)){
if([Link](i)==E){
Hk = true;
}
i++;
}
Sw = Hk;
k++;
}
return Sw;
}
//-----------------------------------------------
public boolean EsCadenaNumerica(String CAD) {
/*int i,L;
char E;
boolean Sw;
L = [Link]();
Sw = true;
i = 0;
while((i<=L-1)&&(Sw==true)) {
E = [Link](i);
if(!(('0'<=E)&&(E<='9'))) {
Sw = false;
}
i++;
}
return Sw;*/
return InRange(CAD,"0123456789");
}
//-----------------------------------------------
public boolean EsCadenaAlfabetica(String CAD) {
/*int i,L;
char E;
boolean Sw;
L = [Link]();
Sw = true;
i = 0;
while((i<=L-1)&&(Sw==true)) {
E = [Link](i);
if(!((('a'<=E)&&(E<='z'))||
(('A'<=E)&&(E<='Z'))
)) {
Sw = false;
}
i++;
}
return Sw;*/
return
InRange(CAD,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
}
//---------------------------------------------
public int PosicionIzquierda(String CADENA, char E) {
int i,P,L;
L = [Link]();
P = -1;
i = 0;
while((i<=L-1)&&(P==-1)) {
if([Link](i)==E) {
P = i;
}
i++;
}
return P;
}
//---------------------------------------------
public int TotalOcurrencias(String CADENA, char E) {
int C,L;
L = [Link]();
C = 0;
for(int i=0;i<=L-1;i++) {
if([Link](i)==E) {
C = C + 1;
}
}
return C;
}
//-----------------------------------------------
public boolean FechaOK(String FECHA, int MinYear, int MaxYear) {
boolean Sw;
String DD,MM,YYYY;
int P,T,L,YEAR,MONTH,DAY,TOTAL=0;
L = [Link]();
Sw = false;
if((8<=L)&&(L<=10)) {
T = TotalOcurrencias(FECHA,'/');
P = PosicionIzquierda(FECHA,'/');
if((T==2)&&(0<P)&&(P<L-6)&&([Link](L-5)=='/')) {
DD = [Link](0,P);
MM = [Link](P+1,L-5);
YYYY = [Link](L-4,L);
if((EsCadenaNumerica(DD)==true)&&
(EsCadenaNumerica(MM)==true)&&
(EsCadenaNumerica(YYYY)==true)) {
YEAR = [Link](YYYY);
if((MinYear<=YEAR)&&(YEAR<=MaxYear)) {
MONTH = [Link](MM);
if((1<=MONTH)&&(MONTH<=12)) {
DAY = [Link](DD);
if((MONTH==1)||(MONTH==3)||(MONTH==5)||(MONTH==7)||(MONTH==8)||(MONTH==10)|
|(MONTH==12)) {
TOTAL = 31;
}
else {
if((MONTH==4)||(MONTH==6)||(MONTH==9)||(MONTH==11)) {
TOTAL = 30;
}
else {
TOTAL
=(((YEAR%4==0)&&(YEAR%100!=0))||((YEAR%400==0)&&(YEAR%100==0))?29:28);
}
}
Sw = ((1<=DAY)&&(DAY<=TOTAL));
if(!Sw) {
[Link]("ERROR: El Dia es
Incorrecto!!!");
}
}
else {
[Link]("ERROR: El Mes es
Incorrecto!!!");
}
}
else {
[Link]("ERROR: El Año es Incorrecto!!!");
}
}
else {
[Link]("ERROR: Existen Caracteres No
Numericos");
}
}
else {
[Link]("ERROR: Los Delimitadores de Fecha son
incorrectos!!!");
}
}
else {
[Link]("ERROR: Longitud/Tamaño de Fecha es
Incorrecta!!!");
}
return Sw;
}
//-----------------------------------------------
public boolean ValidacionOK(String CADENA, String HKGZ,int SIZE1, int
SIZE2, String RANGO) {
int L;
boolean Sw;
Sw = false;
L = [Link]();
if(L>0) {
if((SIZE1<=L)&&(L<=SIZE2)) {
if(InRange(CADENA,RANGO)==true) {
Sw = true;
}
else {
if([Link]()>0) {
[Link]("ERROR: " + HKGZ + " contiene
caracteres incorrectos!!!");
}
}
}
else {
if([Link]()>0) {
[Link]("ERROR: " + HKGZ + " tiene Longitud
Incorrecta!!!");
}
}
}
else {
if([Link]()>0) {
[Link]("ERROR: " + HKGZ + " tiene Longitud 0!!!");
}
}
return Sw;
}
//-----------------------------------------------
public boolean ExistDataFile(String FILENAME) {
File F = new File(FILENAME);
boolean Sw;
Sw = false;
if([Link]()) {
Sw = true;
}
return Sw;
}
//-----------------------------------------------
/*
public void WriteDataFile(String CAD, String FILENAME) {
double X;
long num;
try {
FileWriter FW = new FileWriter(FILENAME);
[Link](CAD);
[Link]();
}
catch (IOException E) {
[Link]([Link]());
}
}*/
public void WriteDataFile(String TEXT, String FILENAME) {
File FF;
FF = new File(FILENAME);
try {
FileWriter FW = new FileWriter(FF);
BufferedWriter BW = new BufferedWriter(FW);
PrintWriter PW = new PrintWriter(BW);
[Link](TEXT);
[Link]();
[Link]();
}
catch(IOException e) {
};
}
//-----------------------------------------------
public void AppendDataFile(String TEXT, String FILENAME) {
File FF;
FF = new File(FILENAME);
try {
FileWriter FW = new FileWriter(FF);
BufferedWriter BW = new BufferedWriter(FW);
PrintWriter PW = new PrintWriter(BW);
[Link](TEXT);
[Link]();
[Link]();
}
catch(IOException e) {
};
}
//-----------------------------------------------
public String ReadDataFile(String FILENAME) {
String LINE="",CADENA="";
try {
File FILE = new File(FILENAME);
BufferedReader BR = new BufferedReader(new FileReader(FILE));
while ((LINE = [Link]()) != null) {
CADENA = CADENA + LINE;
}
}
catch(IOException e) {
}
return CADENA;
}
//-----------------------------------------------
//-----------------------------------------------
//-----------------------------------------------
}
TAREA: (Fecha de Presentación 10/04/2025)
Adaptar la solución anterior para el caso de una
Universidad que admite dos tipos de entidades o
clases: TAlumno y TDocente.
Implementar una solución visual usando controles
SWING
IMPORTANTE:
La solución anterior ÚNICAMENTE permite el
ingreso (registro) de personas.
Sin embargo, NO ES POSIBLE realizar operaciones
de modificación, eliminación y ordenación de
registros debido a que el tipo de archivo utilizado
es SECUENCIAL.
Si se desea realizar operaciones de mantenimiento
(ingreso, eliminación, modificación, ordenación,
consulta) de registros al archivo se debe utilizar
otra clase que permita el acceso directo:
RandomAccessFile lo cual es explicado en el
siguiente programa.
EJERCICIO
Tomando como base el problema anterior (registro de
personal), realizar un programa que realice el
mantenimiento del personal del hospital.
SOLUCIONARIO
...............
...............
...............
● El k-ésimo Registro comienza en la posición
(k-1)*W
[Link]
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].*;
//-----------------------------------------------
public TLib() {
}
//-----------------------------------------------
public void ClearScreen() throws IOException, InterruptedException {
new ProcessBuilder("cmd","/c","cls").inheritIO().start().waitFor();
}
//-----------------------------------------------
public String Replicate(char E, int N) {
String T;
T = "";
for(int i=1;i<=N;i++) {
T = T + E;
}
return T;
}
//-----------------------------------------------
public boolean InRange(String CADENA, String RANGO){
int L,N,k,i;
char E;
boolean Sw,Hk;
L = [Link]();
N = [Link]();
Sw = true;
k = 0;
while((k<=L-1)&&(Sw==true)){
E = [Link](k);
Hk = false;
i = 0;
while((i<=N-1)&&(Hk==false)){
if([Link](i)==E){
Hk = true;
}
i++;
}
Sw = Hk;
k++;
}
return Sw;
}
//-----------------------------------------------
public boolean EsCadenaNumerica(String CAD) {
/*int i,L;
char E;
boolean Sw;
L = [Link]();
Sw = true;
i = 0;
while((i<=L-1)&&(Sw==true)) {
E = [Link](i);
if(!(('0'<=E)&&(E<='9'))) {
Sw = false;
}
i++;
}
return Sw;*/
return InRange(CAD,"0123456789");
}
//-----------------------------------------------
public boolean EsCadenaAlfabetica(String CAD) {
/*int i,L;
char E;
boolean Sw;
L = [Link]();
Sw = true;
i = 0;
while((i<=L-1)&&(Sw==true)) {
E = [Link](i);
if(!((('a'<=E)&&(E<='z'))||
(('A'<=E)&&(E<='Z'))
)) {
Sw = false;
}
i++;
}
return Sw;*/
return
InRange(CAD,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
}
//---------------------------------------------
public int PosicionIzquierda(String CADENA, char E) {
int i,P,L;
L = [Link]();
P = -1;
i = 0;
while((i<=L-1)&&(P==-1)) {
if([Link](i)==E) {
P = i;
}
i++;
}
return P;
}
//---------------------------------------------
public int TotalOcurrencias(String CADENA, char E) {
int C,L;
L = [Link]();
C = 0;
for(int i=0;i<=L-1;i++) {
if([Link](i)==E) {
C = C + 1;
}
}
return C;
}
//-----------------------------------------------
public boolean FechaOK(String FECHA, int MinYear, int MaxYear) {
boolean Sw;
String DD,MM,YYYY;
int P,T,L,YEAR,MONTH,DAY,TOTAL=0;
L = [Link]();
Sw = false;
if((8<=L)&&(L<=10)) {
T = TotalOcurrencias(FECHA,'/');
P = PosicionIzquierda(FECHA,'/');
if((T==2)&&(0<P)&&(P<L-6)&&([Link](L-5)=='/')) {
DD = [Link](0,P);
MM = [Link](P+1,L-5);
YYYY = [Link](L-4,L);
if((EsCadenaNumerica(DD)==true)&&
(EsCadenaNumerica(MM)==true)&&
(EsCadenaNumerica(YYYY)==true)) {
YEAR = [Link](YYYY);
if((MinYear<=YEAR)&&(YEAR<=MaxYear)) {
MONTH = [Link](MM);
if((1<=MONTH)&&(MONTH<=12)) {
DAY = [Link](DD);
if((MONTH==1)||(MONTH==3)||(MONTH==5)||(MONTH==7)||(MONTH==8)||(MONTH==10)|
|(MONTH==12)) {
TOTAL = 31;
}
else {
if((MONTH==4)||(MONTH==6)||(MONTH==9)||(MONTH==11)) {
TOTAL = 30;
}
else {
TOTAL
=(((YEAR%4==0)&&(YEAR%100!=0))||((YEAR%400==0)&&(YEAR%100==0))?29:28);
}
}
Sw = ((1<=DAY)&&(DAY<=TOTAL));
if(!Sw) {
[Link]("ERROR: El Dia es
Incorrecto!!!");
}
}
else {
[Link]("ERROR: El Mes es
Incorrecto!!!");
}
}
else {
[Link]("ERROR: El Año es Incorrecto!!!");
}
}
else {
[Link]("ERROR: Existen Caracteres No
Numericos");
}
}
else {
[Link]("ERROR: Los Delimitadores de Fecha son
incorrectos!!!");
}
}
else {
[Link]("ERROR: Longitud/Tamaño de Fecha es
Incorrecta!!!");
}
return Sw;
}
//-----------------------------------------------
public boolean ValidacionOK(String CADENA, String HKGZ,int SIZE1, int
SIZE2, String RANGO) {
int L;
boolean Sw;
Sw = false;
L = [Link]();
if(L>0) {
if((SIZE1<=L)&&(L<=SIZE2)) {
if(InRange(CADENA,RANGO)==true) {
Sw = true;
}
else {
if([Link]()>0) {
[Link]("ERROR: " + HKGZ + " contiene
caracteres incorrectos!!!");
}
}
}
else {
if([Link]()>0) {
[Link]("ERROR: " + HKGZ + " tiene Longitud
Incorrecta!!!");
}
}
}
else {
if([Link]()>0) {
[Link]("ERROR: " + HKGZ + " tiene Longitud 0!!!");
}
}
return Sw;
}
//-----------------------------------------------
public boolean ExistDataFile(String FILENAME) {
File F = new File(FILENAME);
boolean Sw;
Sw = false;
if([Link]()) {
Sw = true;
}
return Sw;
}
//-----------------------------------------------
/*
public void WriteTextFile(String FILENAME, String CAD) {
double X;
long num;
try {
FileWriter FW = new FileWriter(FILENAME);
[Link](CAD);
[Link]();
}
catch (IOException E) {
[Link]([Link]());
}
}*/
public void WriteTextFile(String FILENAME, String TEXT) {
File FF;
FF = new File(FILENAME);
try {
FileWriter FW = new FileWriter(FF);
BufferedWriter BW = new BufferedWriter(FW);
PrintWriter PW = new PrintWriter(BW);
[Link](TEXT);
[Link]();
[Link]();
}
catch(IOException e) {
};
}
//-----------------------------------------------
public void AppendTextFile(String FILENAME, String TEXT) {
File FF;
FF = new File(FILENAME);
try {
FileWriter FW = new FileWriter(FF);
BufferedWriter BW = new BufferedWriter(FW);
PrintWriter PW = new PrintWriter(BW);
[Link](TEXT);
[Link]();
[Link]();
}
catch(IOException e) {
};
}
//-----------------------------------------------
public String ReadTextFile(String FILENAME) {
String LINE="",CADENA="";
try {
File FILE = new File(FILENAME);
BufferedReader BR = new BufferedReader(new FileReader(FILE));
while ((LINE = [Link]()) != null) {
CADENA = CADENA + LINE;
}
}
catch(IOException e) {
}
return CADENA;
}
//-----------------------------------------------
public byte[] StringToBuffer(String CADENA) {
byte[] BUFFER = new byte[W];
int L = [Link]();
for(int i=0;i<=L-1;i++) {
BUFFER[i] = (byte)[Link](i);
}
return BUFFER;
}
//-----------------------------------------------
public String BufferToString(byte[] BUFFER) {
String CADENA="";
int L = [Link];
for(int i=0;i<=L-1;i++) {
CADENA = CADENA + (char)BUFFER[i];
}
return CADENA;
}
//-----------------------------------------------
public void WriteDataFile(String FILENAME, String DATA) {
long T,N;
byte[] BUFFER = StringToBuffer(DATA);
try {
RandomAccessFile RAF = new RandomAccessFile(FILENAME,"rw");
T = [Link]();
N = T/W;
[Link](N*W);
[Link](BUFFER);
[Link]();
}
catch(IOException e) {
[Link](null,FILENAME + '\n' +
DATA + '\n' +
BufferToString(BUFFER));
}
}
//-----------------------------------------------
public void ReadDataFile(String FILENAME) {
String CADENA;
long T,N;
byte[] BUFFER = new byte[W];
try {
RandomAccessFile RAF = new RandomAccessFile(FILENAME,"r");
T = [Link]();
N = T/W;
for(int k=1;k<=N;k++) {
[Link]((k-1)*W);
[Link](BUFFER);
CADENA = BufferToString(BUFFER);
[Link](CADENA);
}
[Link]("-----------------------------");
[Link]();
}
catch(IOException e) {
}
}
//-----------------------------------------------
public void ListDataFile(String FILENAME, char TIPO, String TITULO) throws
IOException, InterruptedException {
String CADENA;
long T,N;
byte[] BUFFER = new byte[W];
try {
RandomAccessFile RAF = new RandomAccessFile(FILENAME,"r");
T = [Link]();
N = T/W;
[Link]();
[Link](" " + TITULO);
[Link]("-------------------------------------------------------
-----");
[Link]("DNI Apellidos/Nombres Fecha Nac.
Telefono ");
[Link]("-------------------------------------------------------
-----");
for(int k=1;k<=N;k++) {
[Link]((k-1)*W);
[Link](BUFFER);
CADENA = BufferToString(BUFFER);
if([Link](0)==TIPO) {
[Link]( [Link](1,9) + " " +
[Link](9,39) + " " +
[Link](39,49) + " " +
[Link](49,58) );
}
}
[Link]("-------------------------------------------------------
-----");
[Link]();
}
catch(IOException e) {
}
}
//-----------------------------------------------
} //class
GESTION_PERSONAL.java
import [Link];
import [Link];
}
else {
LINEA = TIPO + OBJ2.Registro_PersonalSalud();
}
[Link](FILENAME, LINEA + [Link](' ',W -
[Link]()));
[Link]("--------------------------------------------");
[Link]();
do {
[Link]("Desea Continuar? [S/N]: ");
CAD = [Link]();
} while();
OPCION = [Link](0);
} while((OPCION!='N')&&(OPCION!='n'));
}
//-----------------------------------------------
public static void ModificacionPersonal() throws IOException,
InterruptedException {
Scanner TECLADO = new Scanner([Link]);
[Link]();
[Link]("ModificacionPersonal");
[Link]("Pulse una Tecla!!!..."); [Link]();
}
//-----------------------------------------------
public static void EliminacionPersonal() throws IOException,
InterruptedException {
Scanner TECLADO = new Scanner([Link]);
[Link]();
[Link]("EliminacionPersonal");
[Link]("Pulse una Tecla!!!..."); [Link]();
}
//-----------------------------------------------
public static void BusquedaPorDNI() throws IOException,
InterruptedException {
Scanner TECLADO = new Scanner([Link]);
[Link]();
[Link]("BusquedaPorDNI");
[Link]("Pulse una Tecla!!!..."); [Link]();
}
//-----------------------------------------------
public static void BusquedaPorApeNom() throws IOException,
InterruptedException {
Scanner TECLADO = new Scanner([Link]);
[Link]();
[Link]("BusquedaPorApeNom");
[Link]("Pulse una Tecla!!!..."); [Link]();
}
//-----------------------------------------------
public static void ListadoPersonal() throws IOException,
InterruptedException {
Scanner TECLADO = new Scanner([Link]);
[Link]();
[Link]("=======================================================
=====");
[Link](" LISTADO DE REGISTROS DE PERSONAL ");
[Link]("=======================================================
=====");
[Link](FILENAME,'1',"PERSONAL ADMINISTRATIVO");
[Link](FILENAME,'2',"PERSONAL DE SALUD");
[Link]("\nPulse una Tecla!!!..."); [Link]();
}
//-----------------------------------------------
public static char MenuPrincipal() throws IOException, InterruptedException
{
Scanner TECLADO = new Scanner([Link]);
String CAD;
[Link]();
//[Link]("=================================================");
[Link](" HOSPITAL NACIONAL UNIVERSITARIO
");
[Link](" MODULO DE REGISTRO DE PERSONAL
");
[Link]("=================================================");
[Link]();
[Link](" -----------------------------------");
[Link](" MENU PRINCIPAL ");
[Link](" -----------------------------------");
[Link](" 1. Ingreso de Personal");
[Link](" 2. Modificacion de Personal");
[Link](" 3. Eliminacion de Personal");
[Link](" 4. Busqueda por DNI");
[Link](" 5. Busqueda por Apellido/Nombre");
[Link](" 6. Listado de Personal");
[Link](" 7. Finalizar Ejecucion");
[Link](" -----------------------------------");
do {
[Link] (" SELECCIONE OPCION: ");
CAD = [Link]();
} while();
return [Link](0);
}
//-----------------------------------------------
public static void main(String[] args) throws IOException,
InterruptedException {
int nn;
char OPCION='?';
String CAD;
do {
OPCION = MenuPrincipal();
switch(OPCION) {
case '1': IngresoPersonal(); break;
case '2': ModificacionPersonal(); break;
case '3': EliminacionPersonal(); break;
case '4': BusquedaPorDNI(); break;
case '5': BusquedaPorApeNom(); break;
case '6': ListadoPersonal(); break;
default: [Link](); [Link](0);
}
} while(OPCION!='7');
}
//-----------------------------------------------
} //class
[Link]
import [Link];
}
//----------------------------------
//METODOS GET
//----------------------------------
public String Obtener_DNI() {
return [Link];
}
public String Obtener_APENOM() {
return [Link];
}
public String Obtener_FECNAC() {
return [Link];
}
public String Obtener_TELEFONO() {
return [Link];
}
public String Obtener_DIRECCION() {
return [Link];
}
public char Obtener_SEXO() {
return [Link];
}
public double Obtener_SALARIO() {
return [Link];
}
//----------------------------------
//----------------------------------
//----------------------------------
public String Registro_DatosGenerales() {
Scanner OBJ = new Scanner([Link]);
TLib LIB = new TLib();
String CAD;
do {
[Link](" - DNI : ");
CAD = [Link]();
} while();
Establecer_DNI(CAD);
do {
[Link](" - Apellidos y Nombres: ");
CAD = [Link]();
}
while(164 + (char)165));
Establecer_APENOM(CAD);
do {
[Link](" - Fecha de Nacimiento: ");
CAD = [Link]();
} while();
Establecer_FECNAC(CAD);
do {
[Link](" - Telefono : ");
CAD = [Link]();
} while();
Establecer_TELEFONO(CAD);
do {
[Link](" - Direccion : ");
CAD = [Link]();
}
while();
Establecer_DIRECCION(CAD);
do {
[Link](" - Sexo : ");
CAD = [Link]();
} while();
Establecer_SEXO(CAD);
do {
[Link](" - Salario : ");
CAD = [Link]();
} while();
Establecer_SALARIO(CAD);
[Link]("--------------------------------------------");
}
//----------------------------------
} //class
[Link]
import [Link];
//----------------------------------
//METODOS SET
//----------------------------------
public void Establecer_OFICINA(String oficina) {
[Link] = oficina;
}
//----------------------------------
//METODOS GET
//----------------------------------
public String Obtener_OFICINA() {
return [Link];
}
//----------------------------------
//----------------------------------
public String Registro_PersonalAdministrativo() {
Scanner OBJ = new Scanner([Link]);
TLib LIB = new TLib();
String CAD,LINEA;
LINEA = Registro_DatosGenerales();
do {
[Link](" - Oficina : ");
CAD = [Link]();
}
while();
Establecer_OFICINA(CAD);
return LINEA +
OFICINA + [Link](' ',20 - [Link]());
}
//----------------------------------
} //class
[Link]
import [Link];
//METODOS SET
//----------------------------------
public void Establecer_SERVICIO(String servicio) {
[Link] = servicio;
}
public void Establecer_PROCEDENCIA(String procedencia) {
[Link] = procedencia;
}
//----------------------------------
//METODOS GET
//----------------------------------
public String Obtener_SERVICIO() {
return [Link];
}
public String Obtener_PROCEDENCIA() {
return [Link];
}
//----------------------------------
public String Registro_PersonalSalud() {
Scanner OBJ = new Scanner([Link]);
TLib LIB = new TLib();
String CAD,LINEA;
LINEA = Registro_DatosGenerales();
do {
[Link](" - Servicio : ");
CAD = [Link]();
}
while();
Establecer_SERVICIO(CAD);
do {
[Link](" - Procedencia : ");
CAD = [Link]();
}
while();
Establecer_PROCEDENCIA(CAD);
return LINEA +
SERVICIO + [Link](' ',20 - [Link]()) +
PROCEDENCIA + [Link](' ',10 - [Link]());
}
//----------------------------------
} //class
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■■■
EJERCICIO
Implementar un POO en Java que realice el
registro de datos de las personas de una
determinada institución o empresa. Los datos
deben de almacenarse en el archivo
[Link] .
De manera general, la información requerida para
registrar el personal es
[Link]
import [Link].*;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
private JButton btnSALIR = new JButton("Salir");
//--------------------------------------------------
private JComboBox<String> cbxDEPARTAMENTO_ACADEMICO = new JComboBox<>();
private JComboBox<String> cbxCONDICION = new JComboBox<>();
private JComboBox<String> cbxAREA_CONOCIMIENTO = new JComboBox<>();
private JComboBox<String> cbxGRADO_ACADEMICO = new JComboBox<>();
//--------------------------------------------------
private JRadioButton rbFEMENINO = new JRadioButton("Femenino");
private JRadioButton rbMASCULINO = new JRadioButton("Masculino");
private ButtonGroup bgSEXO = new ButtonGroup();
//--------------------------------------------------
private JLabel jLabel1 = new JLabel("UNIVERSIDAD NACIONAL PERUANA");
private JLabel jLabel10 = new JLabel("Departamento Academico");
private JLabel jLabel11 = new JLabel("Area del Conocimiento");
private JLabel jLabel12 = new JLabel("Fecha de Ingreso");
private JLabel jLabel13 = new JLabel("Condicion");
private JLabel jLabel14 = new JLabel("Grado Academico");
private JLabel jLabel15 = new JLabel("Titulo Profesional");
private JLabel jLabel2 = new JLabel("Registro de Personal");
private JLabel jLabel3 = new JLabel("DNI");
private JLabel jLabel4 = new JLabel("Nombres y Apellidos");
private JLabel jLabel5 = new JLabel("Telefono");
private JLabel jLabel6 = new JLabel("Fecha de Nacimiento");
private JLabel jLabel7 = new JLabel("Direccion");
private JLabel jLabel8 = new JLabel("Salario");
private JLabel jLabel9 = new JLabel("Sexo");
//--------------------------------------------------
private JTextField txtDNI = new JTextField();
private JTextField txtNOMBRE_APELLIDO = new JTextField();
private JTextField txtFECHA_NACIMIENTO = new JTextField();
private JTextField txtDIRECCION = new JTextField();
private JTextField txtTELEFONO = new JTextField();
private JTextField txtSALARIO = new JTextField();
private JTextField txtFECHA_INGRESO = new JTextField();
private JTextField txtTITULO_PROFESIONAL = new JTextField();
//--------------------------------------------
public Ventana() {
initComponents();
}
cbxAREA_CONOCIMIENTO.addItem("NO ESPECIFICADO");
cbxAREA_CONOCIMIENTO.addItem("BASE DE DATOS");
cbxAREA_CONOCIMIENTO.addItem("DESARROLLO DE SISTEMAS");
cbxAREA_CONOCIMIENTO.addItem("INTELIGENCIA ARTIFICIAL");
cbxAREA_CONOCIMIENTO.addItem("COMPUTACION CUANTICA");
cbxAREA_CONOCIMIENTO.addItem("INGENIERIA WEB");
cbxAREA_CONOCIMIENTO.addItem("PLANEMAINTO Y CONTROL DE LA PRODUCCION");
cbxAREA_CONOCIMIENTO.addItem("INVESTIGACION DE OPERACIONES");
cbxAREA_CONOCIMIENTO.addItem("TEORIA DE COLAS Y MODELO DE INVENTARIOS");
cbxAREA_CONOCIMIENTO.addItem("CIENCIAS DE LA COMPUTACION");
cbxAREA_CONOCIMIENTO.addItem("TEORIA ECONOMICA");
cbxAREA_CONOCIMIENTO.addItem("ALGEBRA Y TEORIA DE GRUPOS");
cbxAREA_CONOCIMIENTO.addItem("CALCULO Y ECUACIONES DIFERENCIALES");
cbxAREA_CONOCIMIENTO.addItem("OPTICA");
cbxAREA_CONOCIMIENTO.addItem("QUIMICA ANALITICA");
cbxAREA_CONOCIMIENTO.addItem("REDES Y TELEPROCESO");
cbxAREA_CONOCIMIENTO.addItem("Nombrado");
cbxAREA_CONOCIMIENTO.addItem("Contratado");
[Link](rbMASCULINO);
[Link](rbFEMENINO);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
Establecer_TipoLetra();
Establecer_Color();
Cargar_Controles();
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
[Link](new [Link]() {
public void actionPerformed([Link] evt) {
btnLIMPIARActionPerformed(evt);
}
});
[Link](new [Link]() {
public void actionPerformed([Link] evt) {
btnSALIRActionPerformed(evt);
}
});
[Link](new [Link]() {
public void actionPerformed([Link] evt) {
btnREGISTRARActionPerformed(evt);
}
});
.addGroup([Link]([Link])
.addGroup([Link]()
.addGap(132, 132, 132)
.addComponent(jLabel1))
.addGroup([Link]()
.addGap(297, 297, 297)
.addComponent(jLabel2))
.addGroup([Link]()
.addGap(25, 25, 25)
.addComponent(jLabel5)
.addGap(164, 164, 164)
.addComponent(txtTELEFONO, GroupLayout.PREFERRED_SIZE,
135, GroupLayout.PREFERRED_SIZE))
.addGroup([Link]()
.addGap(25, 25, 25)
.addComponent(jLabel7)
.addGap(160, 160, 160)
.addComponent(txtDIRECCION, GroupLayout.PREFERRED_SIZE,
487, GroupLayout.PREFERRED_SIZE))
.addGroup([Link]()
.addGap(25, 25, 25)
.addComponent(jLabel9)
.addGap(199, 199, 199)
.addComponent(rbMASCULINO)
.addGap(18, 18, 18)
.addComponent(rbFEMENINO))
.addGroup([Link]()
.addGap(25, 25, 25)
.addComponent(jLabel8)
.addGap(182, 182, 182)
.addComponent(txtSALARIO, GroupLayout.PREFERRED_SIZE,
135, GroupLayout.PREFERRED_SIZE))
.addGroup([Link]()
.addGap(25, 25, 25)
.addComponent(jLabel10)
.addGap(18, 18, 18)
.addComponent(cbxDEPARTAMENTO_ACADEMICO,
GroupLayout.PREFERRED_SIZE, 336, GroupLayout.PREFERRED_SIZE))
.addGroup([Link]()
.addGap(20, 20, 20)
.addComponent(jLabel12)
.addGap(96, 96, 96)
.addComponent(txtFECHA_INGRESO,
GroupLayout.PREFERRED_SIZE, 135, GroupLayout.PREFERRED_SIZE))
.addGroup([Link]()
.addGap(20, 20, 20)
.addComponent(jLabel11)
.addGap(46, 46, 46)
.addComponent(cbxAREA_CONOCIMIENTO,
GroupLayout.PREFERRED_SIZE, 336, GroupLayout.PREFERRED_SIZE))
.addGroup([Link]()
.addGap(20, 20, 20)
.addGroup([Link]([Link])
.addGroup([Link]()
.addComponent(jLabel14)
.addGap(89, 89, 89)
.addComponent(cbxGRADO_ACADEMICO,
GroupLayout.PREFERRED_SIZE, 336, GroupLayout.PREFERRED_SIZE))
.addGroup([Link]()
.addComponent(jLabel13)
.addGap(155, 155, 155)
.addComponent(cbxCONDICION,
GroupLayout.PREFERRED_SIZE, 336, GroupLayout.PREFERRED_SIZE))
.addGroup([Link]()
.addComponent(jLabel15)
.addGap(89, 89, 89)
.addComponent(txtTITULO_PROFESIONAL,
GroupLayout.PREFERRED_SIZE, 420, GroupLayout.PREFERRED_SIZE))))
.addGroup([Link]()
.addGap(25, 25, 25)
.addGroup([Link]([Link])
.addComponent(jLabel6)
.addComponent(jLabel4)
.addComponent(jLabel3))
.addGap(62, 62, 62)
.addGroup([Link]([Link])
.addComponent(txtDNI, GroupLayout.PREFERRED_SIZE,
135, GroupLayout.PREFERRED_SIZE)
.addComponent(txtNOMBRE_APELLIDO,
GroupLayout.PREFERRED_SIZE, 590, GroupLayout.PREFERRED_SIZE)
.addComponent(txtFECHA_NACIMIENTO,
GroupLayout.PREFERRED_SIZE, 135, GroupLayout.PREFERRED_SIZE)))
.addGroup([Link]()
.addGap(454, 454, 454)
.addComponent(btnREGISTRAR, GroupLayout.PREFERRED_SIZE,
119, GroupLayout.PREFERRED_SIZE)
.addGap(27, 27, 27)
.addComponent(btnLIMPIAR, GroupLayout.PREFERRED_SIZE,
119, GroupLayout.PREFERRED_SIZE)
.addGap(34, 34, 34)
.addComponent(btnSALIR, GroupLayout.PREFERRED_SIZE, 119,
GroupLayout.PREFERRED_SIZE)))
.addContainerGap(114, Short.MAX_VALUE))
);
[Link](
[Link]([Link])
.addGroup([Link]()
.addGap(27, 27, 27)
.addComponent(jLabel1)
.addGap(6, 6, 6)
.addComponent(jLabel2)
.addGap(30, 30, 30)
.addGroup([Link]([Link])
.addComponent(jLabel3)
.addComponent(txtDNI, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
.addGroup([Link]([Link])
.addComponent(jLabel4)
.addComponent(txtNOMBRE_APELLIDO, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
.addGroup([Link]([Link])
.addGroup([Link]()
.addGap(3, 3, 3)
.addComponent(jLabel6))
.addComponent(txtFECHA_NACIMIENTO,
GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
.addGroup([Link]([Link])
.addGroup([Link]()
.addGap(3, 3, 3)
.addComponent(jLabel5))
.addComponent(txtTELEFONO, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
.addGroup([Link]([Link])
.addGroup([Link]()
.addGap(3, 3, 3)
.addComponent(jLabel7))
.addComponent(txtDIRECCION, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
.addGroup([Link]([Link])
.addGroup([Link]()
.addGap(2, 2, 2)
.addComponent(jLabel9))
.addComponent(rbMASCULINO)
.addComponent(rbFEMENINO))
.addGap(6, 6, 6)
.addGroup([Link]([Link])
.addGroup([Link]()
.addGap(3, 3, 3)
.addComponent(jLabel8))
.addComponent(txtSALARIO, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(6, 6, 6)
.addGroup([Link]([Link])
.addGroup([Link]()
.addGap(3, 3, 3)
.addComponent(jLabel10))
.addComponent(cbxDEPARTAMENTO_ACADEMICO,
GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGap(12, 12, 12)
.addGroup([Link]([Link])
.addComponent(jLabel12)
.addComponent(txtFECHA_INGRESO, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(9, 9, 9)
.addGroup([Link]([Link])
.addComponent(jLabel11)
.addComponent(cbxAREA_CONOCIMIENTO,
GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup([Link]([Link])
.addGroup([Link]()
.addComponent(jLabel13)
.addGap(18, 18, 18)
.addComponent(jLabel14))
.addGroup([Link]()
.addComponent(cbxCONDICION, GroupLayout.PREFERRED_SIZE,
GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap([Link])
.addComponent(cbxGRADO_ACADEMICO,
GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE)))
.addPreferredGap([Link])
.addGroup([Link]([Link])
.addComponent(jLabel15)
.addComponent(txtTITULO_PROFESIONAL,
GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup([Link]([Link])
.addComponent(btnLIMPIAR)
.addComponent(btnSALIR)
.addComponent(btnREGISTRAR))
.addContainerGap(56, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
[Link]("");
txtFECHA_INGRESO.setText("");
txtTITULO_PROFESIONAL.setText("");
}
if([Link](CAD,"Apellidos/Nombres",3,30,"ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz" + (char)164 + (char)165,2)) {
PSN.Establecer_APENOM(CAD);
CAD = txtFECHA_NACIMIENTO.getText().trim();
if([Link](CAD,1960,2006,2)) {
PSN.Establecer_FECNAC(CAD);
CAD = [Link]().trim();
if([Link](CAD,"Telefono",9,9,"0123456789",2)) {
PSN.Establecer_TELEFONO(CAD);
CAD = [Link]().trim();
if([Link](CAD,"Direccion",5,30,"ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz.0123456789",2)) {
PSN.Establecer_DIRECCION(CAD);
if([Link]() ) {
PSN.Establecer_SEXO("M");
}
if([Link]() ) {
PSN.Establecer_SEXO("F");
}
}
}
}
}
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
try {
for ([Link] info :
[Link]()) {
if ("Nimbus".equals([Link]())) {
[Link]([Link]());
break;
}
}
} catch (ClassNotFoundException ex) {
[Link]([Link]()).log([Link]
.[Link], null, ex);
} catch (InstantiationException ex) {
[Link]([Link]()).log([Link]
.[Link], null, ex);
} catch (IllegalAccessException ex) {
[Link]([Link]()).log([Link]
.[Link], null, ex);
} catch (UnsupportedLookAndFeelException ex) {
[Link]([Link]()).log([Link]
.[Link], null, ex);
}
[Link](new Runnable() {
public void run() {
new Ventana().setVisible(true);
}
});
}
[Link]
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].*;
//-----------------------------------------------
public TLib() {
}
//-----------------------------------------------
public void ClearScreen() throws IOException, InterruptedException {
new ProcessBuilder("cmd","/c","cls").inheritIO().start().waitFor();
}
//-----------------------------------------------
public String Replicate(char E, int N) {
String T;
T = "";
for(int i=1;i<=N;i++) {
T = T + E;
}
return T;
}
//-----------------------------------------------
public boolean InRange(String CADENA, String RANGO){
int L,N,k,i;
char E;
boolean Sw,Hk;
L = [Link]();
N = [Link]();
Sw = true;
k = 0;
while((k<=L-1)&&(Sw==true)){
E = [Link](k);
Hk = false;
i = 0;
while((i<=N-1)&&(Hk==false)){
if([Link](i)==E){
Hk = true;
}
i++;
}
Sw = Hk;
k++;
}
return Sw;
}
//-----------------------------------------------
public boolean EsCadenaNumerica(String CAD) {
/*int i,L;
char E;
boolean Sw;
L = [Link]();
Sw = true;
i = 0;
while((i<=L-1)&&(Sw==true)) {
E = [Link](i);
if(!(('0'<=E)&&(E<='9'))) {
Sw = false;
}
i++;
}
return Sw;*/
return InRange(CAD,"0123456789");
}
//-----------------------------------------------
public boolean EsCadenaAlfabetica(String CAD) {
/*int i,L;
char E;
boolean Sw;
L = [Link]();
Sw = true;
i = 0;
while((i<=L-1)&&(Sw==true)) {
E = [Link](i);
if(!((('a'<=E)&&(E<='z'))||
(('A'<=E)&&(E<='Z'))
)) {
Sw = false;
}
i++;
}
return Sw;*/
return InRange(CAD,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
}
//---------------------------------------------
public int PosicionIzquierda(String CADENA, char E) {
int i,P,L;
L = [Link]();
P = -1;
i = 0;
while((i<=L-1)&&(P==-1)) {
if([Link](i)==E) {
P = i;
}
i++;
}
return P;
}
//---------------------------------------------
public int TotalOcurrencias(String CADENA, char E) {
int C,L;
L = [Link]();
C = 0;
for(int i=0;i<=L-1;i++) {
if([Link](i)==E) {
C = C + 1;
}
}
return C;
}
//-----------------------------------------------
public boolean FechaOK(String FECHA, int MinYear, int MaxYear) {
boolean Sw;
String DD,MM,YYYY;
int P,T,L,YEAR,MONTH,DAY,TOTAL=0;
L = [Link]();
Sw = false;
if((8<=L)&&(L<=10)) {
T = TotalOcurrencias(FECHA,'/');
P = PosicionIzquierda(FECHA,'/');
if((T==2)&&(0<P)&&(P<L-6)&&([Link](L-5)=='/')) {
DD = [Link](0,P);
MM = [Link](P+1,L-5);
YYYY = [Link](L-4,L);
if((EsCadenaNumerica(DD)==true)&&
(EsCadenaNumerica(MM)==true)&&
(EsCadenaNumerica(YYYY)==true)) {
YEAR = [Link](YYYY);
if((MinYear<=YEAR)&&(YEAR<=MaxYear)) {
MONTH = [Link](MM);
if((1<=MONTH)&&(MONTH<=12)) {
DAY = [Link](DD);
if((MONTH==1)||(MONTH==3)||(MONTH==5)||(MONTH==7)||(MONTH==8)||(MONTH==10)||(MONT
H==12)) {
TOTAL = 31;
}
else {
if((MONTH==4)||(MONTH==6)||(MONTH==9)||(MONTH==11)) {
TOTAL = 30;
}
else {
TOTAL
=(((YEAR%4==0)&&(YEAR%100!=0))||((YEAR%400==0)&&(YEAR%100==0))?29:28);
}
}
Sw = ((1<=DAY)&&(DAY<=TOTAL));
if(!Sw) {
[Link]("ERROR: El Dia es Incorrecto!!!");
}
}
else {
[Link]("ERROR: El Mes es Incorrecto!!!");
}
}
else {
[Link]("ERROR: El Año es Incorrecto!!!");
}
}
else {
[Link]("ERROR: Existen Caracteres No Numericos");
}
}
else {
[Link]("ERROR: Los Delimitadores de Fecha son
incorrectos!!!");
}
}
else {
[Link]("ERROR: Longitud/Tamaño de Fecha es Incorrecta!!!");
}
return Sw;
}
//-----------------------------------------------
public boolean ValidacionOK(String CADENA, String HKGZ,int SIZE1, int SIZE2,
String RANGO, int MODE) {
int L;
boolean Sw;
String MessageError;
Sw = false;
L = [Link]();
if(L>0) {
if((SIZE1<=L)&&(L<=SIZE2)) {
if(InRange(CADENA,RANGO)==true) {
Sw = true;
}
else {
MessageError = "ERROR: " + HKGZ + " contiene caracteres
incorrectos!!!";
if([Link]()>0) {
if(MODE==1) {
[Link](MessageError);
}
else if(MODE==2) {
[Link](null,MessageError);
}
else {
}
}
}
}
else {
MessageError = "ERROR: " + HKGZ + " tiene Longitud Incorrecta!!!";
if([Link]()>0) {
if(MODE==1) {
[Link](MessageError);
}
else if(MODE==2) {
[Link](null,MessageError);
}
else {
}
}
}
}
else {
MessageError = "ERROR: " + HKGZ + " tiene Longitud 0!!!";
if([Link]()>0) {
if(MODE==1) {
[Link](MessageError);
}
else if(MODE==2) {
[Link](null,MessageError);
}
else {
}
}
}
return Sw;
}
//-----------------------------------------------
public boolean ExistDataFile(String FILENAME) {
File F = new File(FILENAME);
boolean Sw;
Sw = false;
if([Link]()) {
Sw = true;
}
return Sw;
}
//-----------------------------------------------
/*
public void WriteDataFile(String CAD, String FILENAME) {
double X;
long num;
try {
FileWriter FW = new FileWriter(FILENAME);
[Link](CAD);
[Link]();
}
catch (IOException E) {
[Link]([Link]());
}
}*/
public void WriteDataFile(String TEXT, String FILENAME) {
File FF;
FF = new File(FILENAME);
try {
FileWriter FW = new FileWriter(FF);
BufferedWriter BW = new BufferedWriter(FW);
PrintWriter PW = new PrintWriter(BW);
[Link](TEXT);
[Link]();
[Link]();
}
catch(IOException e) {
};
}
//-----------------------------------------------
public void AppendDataFile(String TEXT, String FILENAME) {
File FF;
FF = new File(FILENAME);
try {
FileWriter FW = new FileWriter(FF);
BufferedWriter BW = new BufferedWriter(FW);
PrintWriter PW = new PrintWriter(BW);
[Link](TEXT);
[Link]();
[Link]();
}
catch(IOException e) {
};
}
//-----------------------------------------------
public String ReadDataFile(String FILENAME) {
String LINE="",CADENA="";
try {
File FILE = new File(FILENAME);
BufferedReader BR = new BufferedReader(new FileReader(FILE));
while ((LINE = [Link]()) != null) {
CADENA = CADENA + LINE;
}
}
catch(IOException e) {
}
return CADENA;
}
//-----------------------------------------------
//-----------------------------------------------
//-----------------------------------------------
}
[Link]
import [Link];
}
//----------------------------------
//METODOS GET
//----------------------------------
public String Obtener_DNI() {
return [Link];
}
public String Obtener_APENOM() {
return [Link];
}
public String Obtener_FECNAC() {
return [Link];
}
public String Obtener_TELEFONO() {
return [Link];
}
public String Obtener_DIRECCION() {
return [Link];
}
public char Obtener_SEXO() {
return [Link];
}
public double Obtener_SALARIO() {
return [Link];
}
//----------------------------------
//----------------------------------
//----------------------------------
public String Registro_DatosGenerales() {
Scanner OBJ = new Scanner([Link]);
TLib LIB = new TLib();
String CAD;
do {
[Link](" - DNI : ");
CAD = [Link]();
} while();
Establecer_DNI(CAD);
do {
[Link](" - Apellidos y Nombres : ");
CAD = [Link]();
}
while(164 + (char)165,2));
Establecer_APENOM(CAD);
do {
[Link](" - Fecha de Nacimiento : ");
CAD = [Link]();
} while();
Establecer_FECNAC(CAD);
do {
[Link](" - Telefono : ");
CAD = [Link]();
} while();
Establecer_TELEFONO(CAD);
do {
[Link](" - Direccion : ");
CAD = [Link]();
} while();
Establecer_DIRECCION(CAD);
do {
[Link](" - Sexo : ");
CAD = [Link]();
} while();
Establecer_SEXO(CAD);
do {
[Link](" - Salario : ");
CAD = [Link]();
} while();
Establecer_SALARIO(CAD);
[Link]("----------------------------------------------------");
}
//----------------------------------
} //class
[Link]
import [Link];
}
//----------------------------------
public void Establecer_FECHA_INGRESO(String fecha_ingreso) {
this.FECHA_INGRESO = fecha_ingreso;
}
//----------------------------------
public void Establecer_AREA_CONOCIMIENTO(String area_conocimiento) {
this.AREA_CONOCIMIENTO = area_conocimiento;
}
//----------------------------------
public void Establecer_CONDICION(String condicion) {
[Link]= condicion;
}
//----------------------------------
public void Establecer_GRADO_ACADEMICO(String grado_academico) {
this.GRADO_ACADEMICO = grado_academico;
}
//----------------------------------
public void Establecer_TITULO_PROFESIONAL(String titulo_profesional) {
this.TITULO_PROFESIONAL = titulo_profesional;
}
//----------------------------------
//METODOS GET
//----------------------------------
public String Obtener_DEPARTAMENTO_ACADEMICO() {
return this.DEPARTAMENTO_ACADEMICO;
}
//----------------------------------
public String Obtener_FECHA_INGRESO() {
return this.FECHA_INGRESO;
}
//----------------------------------
public String Obtener_AREA_CONOCIMIENTO() {
return this.AREA_CONOCIMIENTO;
}
//----------------------------------
public String Obtener_CONDICION() {
return [Link];
}
//----------------------------------
public String Obtener_GRADO_ACADEMICO() {
return this.GRADO_ACADEMICO;
}
//----------------------------------
public String Obtener_TITULO_PROFESIONAL() {
return this.TITULO_PROFESIONAL;
}
//----------------------------------
//----------------------------------
//----------------------------------
public String Registro_PersonalDocente() {
Scanner OBJ = new Scanner([Link]);
TLib LIB = new TLib();
String CAD,LINEA;
LINEA = Registro_DatosGenerales();
do {
[Link](" - Departamento Academico : ");
CAD = [Link]();
} while();
Establecer_DEPARTAMENTO_ACADEMICO(CAD);
do {
[Link](" - Fecha de Ingreso : ");
CAD = [Link]();
} while();
Establecer_FECHA_INGRESO(CAD);
do {
[Link](" - Area del Conocimiento : ");
CAD = [Link]();
} while();
Establecer_AREA_CONOCIMIENTO(CAD);
do {
[Link](" - CONDICION : ");
CAD = [Link]();
}
while();
Establecer_CONDICION(CAD);
do {
[Link](" - Grado Academico : ");
CAD = [Link]();
} while();
Establecer_GRADO_ACADEMICO(CAD);
do {
[Link](" - Titulo Profesional : ");
CAD = [Link]();
} while();
Establecer_TITULO_PROFESIONAL(CAD);
return LINEA + " | " +
DEPARTAMENTO_ACADEMICO + [Link](' ',32 -
DEPARTAMENTO_ACADEMICO.length() ) +
FECHA_INGRESO + [Link](' ',12 - FECHA_INGRESO.length()
) +
AREA_CONOCIMIENTO + [Link](' ',32 -
AREA_CONOCIMIENTO.length() ) +
CONDICION + [Link](' ',12 - [Link]()
) +
GRADO_ACADEMICO + [Link](' ',32 -
GRADO_ACADEMICO.length() ) +
TITULO_PROFESIONAL + [Link](' ',32 -
TITULO_PROFESIONAL.length() );
}
//----------------------------------
} //class
Vamos analizar un ejemplo básico usando archivos
secuenciales y archivos de acceso directo
EJERCICIO
SOLUCIÓN
//import [Link].*;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
//-----------------------------------------------
private static String FILENAME1 = "[Link]";
private static String FILENAME2 = "[Link]";
private static int W = 15;
private static long N;
//-----------------------------------------------
//-----------------------------------------------
public static String Replicate(char E, int N) {
String T;
T = "";
for(int i=1;i<=N;i++) {
T = T + E;
}
return T;
}
//-----------------------------------------------
//-----------------------------------------------
//-----------------------------------------------
//-----------------------------------------------
public static void ReadRandomFile(String LINEA) {
}
//-----------------------------------------------
public static void WriteRandomFile(String LINEA) {
}
//-----------------------------------------------
public static String GetLine(int k) {
int SUELDO=0,GASTO=0;
String LINEA,AUX,CODIGO;
AUX = "" + k + "";
CODIGO = "E" + Replicate('0',[Link]()) + AUX;
SUELDO = 1000 + 500*(int)([Link]()*18);
GASTO = (int)(0.60*SUELDO);
LINEA = " " + CODIGO;
AUX = "" + SUELDO + "";
LINEA = LINEA + " " + Replicate(' ',[Link]()) + AUX;
AUX = "" + GASTO + "";
LINEA = LINEA + " " + Replicate(' ',[Link]()) + AUX;
return LINEA;
}
//-----------------------------------------------
public static byte[] StringToBuffer(String LINEA) {
byte[] BUFFER = new byte[W];
for(int i=0;i<=W-1;i++) {
BUFFER[i] = (byte)[Link](i);
}
return BUFFER;
}
//-----------------------------------------------
public static String BufferToString(byte[] BUFFER) {
String LINEA="";
for(int i=0;i<=W-1;i++) {
LINEA = LINEA + (char)BUFFER[i];
}
return LINEA;
}
//-----------------------------------------------
public static void VisualizarDatos() {
Scanner SCN = new Scanner([Link]);
String LINEA;
byte[] BUFFER = new byte[W];
long T;
int i;
try {
[Link]("---------------------------------");
[Link]("i\tCODIGO\tSUELDO\tGASTO");
[Link]("---------------------------------");
File FILE = new File("[Link]");
BufferedReader BR = new BufferedReader(new FileReader(FILE));
i = 1;
while ((LINEA = [Link]()) != null) {
[Link](i + "\t" + LINEA);
i++;
}
[Link]("---------------------------------");
[Link]("i\tCODIGO\tSUELDO\tGASTO");
[Link]("---------------------------------");
RandomAccessFile RAF = new RandomAccessFile("[Link]","rw");
T = [Link]();
N = T/W;
for(long k=N;1<=k;k--) {
[Link]((k-1)*W);
[Link](BUFFER);
LINEA = BufferToString(BUFFER);
[Link](k + "\t" + LINEA);
}
[Link]("---------------------------------");
[Link]();
[Link]();
}
catch (IOException E) {
[Link]([Link]());
}
}
//-----------------------------------------------
public static void GenerarDatos() {
Scanner SCN = new Scanner([Link]);
String LINEA;
byte[] BUFFER;
long T;
try {
FileWriter FW = new FileWriter ("[Link]");
RandomAccessFile RAF = new RandomAccessFile("[Link]","rw");
[Link]("REGISTRO DE DATOS\n");
[Link]("-----------------------\n");
[Link]("Ingrese Total de Registros: ");
N = [Link]();
//[Link]("---------------------------------");
//[Link]("i\tCODIGO\tSUELDO\tGASTO");
//[Link]("---------------------------------");
for(int k=1;k<=N;k++) {
LINEA = GetLine(k);
BUFFER = StringToBuffer(LINEA);
//N = T/W;
[Link](T); // [Link](N*W);
[Link](BUFFER);
EJERCICIO
RAF_Demo.java
import [Link];
import [Link];
import [Link];
T = [Link]();
N = T/W;
P = 0;
i = 1;
while((i<=N)&&(P==0)) {
[Link]((i-1)*W);
[Link](BUFFER);
RECORD = [Link](BUFFER);
LoadFields();
if([Link](CODIGO)==true) {
P = i;
}
i++;
}
[Link]();
return P;
}
//-----------------------------------------------
private static String RegistrarID() throws IOException,
InterruptedException {
String TMP;
do {
[Link]("Id : ");
TMP = [Link]().trim();
}
while((BuscarCodigo(TMP)>0)||([Link](TMP,"",3,3,"0123456789")==fa
lse));
return TMP;
}
//-----------------------------------------------
//-----------------------------------------------
private static String RegistrarNOMBRE() {
String TMP;
do {
[Link]("Nombre : ");
TMP = [Link]().trim();
}
while();
TMP = TMP + [Link](' ',[Link]());
return TMP;
}
//-----------------------------------------------
//-----------------------------------------------
private static String RegistrarCANTIDAD() {
String TMP;
do {
[Link]("Cantidad : ");
TMP = [Link]().trim();
} while();
TMP = [Link](' ',[Link]()) + TMP;
return TMP;
}
//-----------------------------------------------
//-----------------------------------------------
private static char RegistrarUMEDIDA() {
String TMP;
do {
[Link]("Unidad de Medida : ");
TMP = [Link]();
} while();
return [Link](0);
}
//-----------------------------------------------
//-----------------------------------------------
private static String RegistrarPRECIO() {
String TMP;
int L,P;
long T;
boolean Sw;
do {
[Link]("Precio : ");
TMP = [Link]().trim();
L = [Link]();
Sw = [Link](TMP,"",1,6,"0.123456789");
T = [Link](TMP,'.');
P = [Link](TMP,'.');
} while( (Sw==false) || (T!=1) || (P<=0) || (P!=L-3) );
TMP = [Link](' ',[Link]()) + TMP;
return TMP;
}
//-----------------------------------------------
//-----------------------------------------------
private static String RegistrarFECHA() {
String TMP;
do {
[Link]("Fecha de Vencimiento: ");
TMP = [Link]();
} while();
return [Link](6,10) + [Link](3,5) + [Link](0,2);
}
//-----------------------------------------------
//-----------------------------------------------
private static char RegistrarESTADO() {
String TMP;
do {
[Link]("Activo : ");
TMP = [Link]();
} while();
return [Link](0);
}
//-----------------------------------------------
//-----------------------------------------------
//-----------------------------------------------
//-----------------------------------------------
public static void Ingreso() throws IOException, InterruptedException {
String TMP,LINEA;
int L,P;
long T,N;
boolean Sw;
[Link]();
[Link]("INGRESO DE PRODUCTOS");
[Link]("====================================================");
//.........................................................................
...........
FLAG = ' ';
//.........................................................................
...........
ID = RegistrarID();
NOMBRE = RegistrarNOMBRE();
CANTIDAD = RegistrarCANTIDAD();
UMEDIDA = RegistrarUMEDIDA();
PRECIO = RegistrarPRECIO();
FECHA = RegistrarFECHA();
ESTADO = RegistrarESTADO();
//.........................................................................
...........
//.........................................................................
...........
BuildRecord();
//.........................................................................
...........
RAF = new RandomAccessFile(ARCHIVO,"rw");
T = [Link]();
[Link](T);
BUFFER = [Link](RECORD,W);
[Link](BUFFER);
[Link]();
[Link]("\n\nPulse [ENTER] para Salir!!!");
TMP = [Link]();
}
//-----------------------------------------------
public static void Modificacion() throws IOException, InterruptedException
{
String TMP;
long P;
[Link]();
[Link]("MODIFICACION DE PRODUCTOS");
[Link]("====================================================");
//.........................................................................
...........
do {
[Link]("Id : ");
TMP = [Link]().trim();
} while();
[Link]("----------------------------------------------------");
//.........................................................................
...........
P = BuscarCodigo(TMP);
if(P>0) {
RAF = new RandomAccessFile(ARCHIVO,"rw");
[Link]((P-1)*W);
[Link](BUFFER);
RECORD = [Link](BUFFER);
LoadFields();
ViewFields();
[Link]("----------------------------------------------------");
do {
[Link] ("Desea Modificar el Registro? [S/N]: ");
TMP = [Link]().trim();
} while();
if(([Link](0)=='S')||
([Link](0)=='s')) {
//.........................................................................
...........
FLAG = ' ';
NOMBRE = RegistrarNOMBRE();
CANTIDAD = RegistrarCANTIDAD();
UMEDIDA = RegistrarUMEDIDA();
PRECIO = RegistrarPRECIO();
FECHA = RegistrarFECHA();
ESTADO = RegistrarESTADO();
//.........................................................................
...........
BuildRecord();
//.........................................................................
...........
RAF = new RandomAccessFile(ARCHIVO,"rw");
[Link]((P-1)*W);
BUFFER = [Link](RECORD,W);
[Link](BUFFER);
[Link]();
}
}
else {
[Link]("ERROR: El codigo especificado No Existe");
}
[Link]("\n\nPulse [ENTER] para Salir!!!");
[Link]();
}
//-----------------------------------------------
public static void Eliminacion() throws IOException, InterruptedException {
String TMP;
long P;
[Link]();
[Link]("ELIMINACION DE PRODUCTOS");
[Link]("====================================================");
//.........................................................................
...........
do {
[Link]("Id : ");
TMP = [Link]().trim();
} while();
[Link]("----------------------------------------------------");
//.........................................................................
...........
P = BuscarCodigo(TMP);
if(P>0) {
RAF = new RandomAccessFile(ARCHIVO,"rw");
[Link]((P-1)*W);
[Link](BUFFER);
RECORD = [Link](BUFFER);
LoadFields();
ViewFields();
[Link]("----------------------------------------------------");
do {
[Link] ("Desea Eliminar el Registro? [S/N]: ");
TMP = [Link]().trim();
} while();
if(([Link](0)=='S')||
([Link](0)=='s')) {
FLAG = '*';
BuildRecord();
BUFFER = [Link](RECORD,W);
[Link]((P-1)*W);
[Link](BUFFER);
[Link]();
[Link]("El Registro ha sido Eliminado!!!");
}
}
else {
[Link]("ERROR: El codigo especificado No Existe");
}
[Link]("\n\nPulse [ENTER] para Salir!!!");
[Link]();
}
//-----------------------------------------------
public static void Busqueda() throws IOException, InterruptedException {
String TMP;
long P;
[Link]();
[Link]("BUSQUEDA DE PRODUCTOS");
[Link]("====================================================");
//.........................................................................
...........
do {
[Link]("Id : ");
TMP = [Link]().trim();
} while();
[Link]("----------------------------------------------------");
//.........................................................................
...........
P = BuscarCodigo(TMP);
if(P>0) {
RAF = new RandomAccessFile(ARCHIVO,"rw");
[Link]((P-1)*W);
[Link](BUFFER);
RECORD = [Link](BUFFER);
LoadFields();
if(FLAG!='*') {
ViewFields();
}
else {
[Link]("ERROR: El Registro ha sido Eliminado");
}
[Link]("----------------------------------------------------");
}
else {
[Link]("ERROR: El codigo especificado No Existe");
}
[Link]("\n\nPulse [ENTER] para Salir!!!");
[Link]();
}
//-----------------------------------------------
public static void Listado() throws IOException, InterruptedException {
String TMP;
long T,N;
[Link]();
[Link]("LISTADO DE PRODUCTOS");
[Link]("====================================================");
//.........................................................................
...........
RAF = new RandomAccessFile(ARCHIVO,"r");
T = [Link]();
N = T/W;
for(int i=1;i<=N;i++) {
[Link]((i-1)*W);
[Link](BUFFER);
RECORD = [Link](BUFFER);
LoadFields();
if(FLAG==' ') {
TMP = UnidadMedida[(int)(UMEDIDA)-48];
[Link](ID + ' ' +
NOMBRE + ' ' +
CANTIDAD + ' ' +
TMP + [Link](' ',[Link]()) +
PRECIO + ' ' +
[Link](6,8) + '/' +
[Link](4,6) + '/' + [Link](0,4) + ' ' +
(ESTADO=='1'?"Activo":"Inactivo"));
}
}
[Link]();
[Link]("\n\nPulse [ENTER] para Salir!!!");
TMP = [Link]();
}
//-----------------------------------------------
public static char MenuPrincipal() throws IOException, InterruptedException
{
String CAD;
do {
[Link]();
[Link](" G E S T I O N D E P R O D U C T O S ");
[Link]("=========================================");
[Link]();
[Link](" -----------------------------------");
[Link](" MENU PRINCIPAL");
[Link](" -----------------------------------");
[Link](" 1. Ingreso de Productos");
[Link](" 2. Modificacion de Productos");
[Link](" 3. Eliminacion de Productos");
[Link](" 4. Busqueda por Codigo/Nombre");
[Link](" 5. Listado de Productos");
[Link](" 6. Salir");
[Link](" -----------------------------------");
[Link] (" SELECCIONE OPCION: ");
CAD = [Link]();
} while();
return [Link](0);
}
//-----------------------------------------------
public static void main(String[] args) throws IOException,
InterruptedException {
char OPCION;
do {
OPCION = MenuPrincipal();
switch(OPCION) {
case '1': Ingreso(); break;
case '2': Modificacion(); break;
case '3': Eliminacion(); break;
case '4': Busqueda(); break;
case '5': Listado(); break;
//case '6': [Link](0);
}
} while(OPCION!='6');
[Link]();
}
//-----------------------------------------------
} //class
RAF_Library.java
import [Link];
//-----------------------------------------------
public boolean EsCadenaNumerica(String CAD) {
/*int i,L;
char E;
boolean Sw;
L = [Link]();
Sw = true;
i = 0;
while((i<=L-1)&&(Sw==true)) {
E = [Link](i);
if(!(('0'<=E)&&(E<='9'))) {
Sw = false;
}
i++;
}
return Sw;*/
return InRange(CAD,"0123456789");
}
}
Sw = Hk;
k++;
}
return Sw;
}
//-----------------------------------------------
public boolean ValidacionOK(String CADENA, String HKGZ,int SIZE1, int
SIZE2, String RANGO) {
int L;
boolean Sw;
Sw = false;
L = [Link]();
if(L>0) {
if((SIZE1<=L)&&(L<=SIZE2)) {
if(InRange(CADENA,RANGO)==true) {
Sw = true;
}
else {
if([Link]()>0) {
[Link]("ERROR: " + HKGZ + " contiene
caracteres incorrectos!!!");
}
}
}
else {
if([Link]()>0) {
[Link]("ERROR: " + HKGZ + " tiene Longitud
Incorrecta!!!");
}
}
}
else {
if([Link]()>0) {
[Link]("ERROR: " + HKGZ + " tiene Longitud 0!!!");
}
}
return Sw;
}
//-----------------------------------------------
public boolean FechaOK(String FECHA, int MinYear, int MaxYear, boolean HK)
{
boolean Sw;
String DD,MM,YYYY;
int P,T,L,YEAR,MONTH,DAY,TOTAL=0;
L = [Link]();
Sw = false;
if((8<=L)&&(L<=10)) {
T = TotalOcurrencias(FECHA,'/');
P = PosicionIzquierda(FECHA,'/');
if((T==2)&&(0<P)&&(P<L-6)&&([Link](L-5)=='/')) {
DD = [Link](0,P);
MM = [Link](P+1,L-5);
YYYY = [Link](L-4,L);
if((EsCadenaNumerica(DD)==true)&&
(EsCadenaNumerica(MM)==true)&&
(EsCadenaNumerica(YYYY)==true)) {
YEAR = [Link](YYYY);
if((MinYear<=YEAR)&&(YEAR<=MaxYear)) {
MONTH = [Link](MM);
if((1<=MONTH)&&(MONTH<=12)) {
DAY = [Link](DD);
if((MONTH==1)||(MONTH==3)||(MONTH==5)||(MONTH==7)||(MONTH==8)||(MONTH==10)|
|(MONTH==12)) {
TOTAL = 31;
}
else {
if((MONTH==4)||(MONTH==6)||(MONTH==9)||(MONTH==11)) {
TOTAL = 30;
}
else {
TOTAL
=(((YEAR%4==0)&&(YEAR%100!=0))||((YEAR%400==0)&&(YEAR%100==0))?29:28);
}
}
Sw = ((1<=DAY)&&(DAY<=TOTAL));
if(!Sw&&HK) {
[Link]("ERROR: El Dia es
Incorrecto!!!");
}
}
else {
if(HK==true) {
[Link]("ERROR: El Mes es
Incorrecto!!!");
}
}
}
else {
if(HK==true) {
[Link]("ERROR: El Año es Incorrecto!!!");
}
}
}
else {
if(HK==true) {
[Link]("ERROR: Existen Caracteres No
Numericos");
}
}
}
else {
if(HK==true) {
[Link]("ERROR: Los Delimitadores de Fecha son
incorrectos!!!");
}
}
}
else {
if(HK==true) {
[Link]("ERROR: Longitud/Tamaño de Fecha es
Incorrecta!!!");
}
}
return Sw;
}
//-----------------------------------------------
public byte[] StringToBuffer(String CADENA, int W) {
byte[] BUFFER = new byte[W];
int L = [Link]();
for(int i=0;i<=L-1;i++) {
BUFFER[i] = (byte)[Link](i);
}
return BUFFER;
}
//-----------------------------------------------
public String BufferToString(byte[] BUFFER) {
String CADENA="";
int L = [Link];
for(int i=0;i<=L-1;i++) {
CADENA = CADENA + (char)BUFFER[i];
}
return CADENA;
}
//-----------------------------------------------
} //class
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
■■■■■■■■■■■■■■■■■■■■■■■
Desarrollo Web
—---------------
TAREA
Crear una funcion que realice el tratamiento de cadenas
organizadas en secuencia jerarquica en 2 niveles
//----------------------------------------
public static int Count(String S, char E) {
int C,A,B,N;
N = [Link]();
A = 0;
B = 0;
C = 0;
while((A<=B)&&(B<=N-1)) {
if([Link](B)==E) {
C++;
A = B + 1;
B = A - 1;
}
B++;
}
C++;
return C;
}
//----------------------------------------
public static String[] List(String S, char E) { //SPLIT
int k,A,B,N;
String T;
String[] V = new String[Count(S,E)];
N = [Link]();
A = 0;
B = 0;
k = -1;
while((A<=B)&&(B<=N-1)) {
if([Link](B)==E) {
T = [Link](A,B);
k++;
V[k] = T;
[Link]("|" + T + "|");
A = B + 1;
B = A - 1;
}
B++;
}
T = [Link](A,N);
k++;
V[k] = T;
[Link]("|" + T + "|");
[Link]();
return V;
}
//----------------------------------------
public static void main(String args[]) {
String[] W;
/* List("111;222;333;444;555",';');
List(";222;333;444;555",';');
List("111;222;333;444;",';');
List("111;;;;555",';');
List(";;;;",';');
*/
W = List("111;222;333;444;555",';');
for(int i=0;i<=[Link]-1;i++) {
[Link](i + " ==> |" + W[i] + "|");
}
}
//----------------------------------------
//----------------------------------------
//----------------------------------------
}