Mostrando las entradas con la etiqueta Evaluaciones. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Evaluaciones. Mostrar todas las entradas

29 mayo, 2021

Octava Evaluación Java Avanzado

Buen día, coders! El día de hoy vamos a resolver un caso propuesto que nos envió un seguidor de la página. Nos pide implementar un programa cliente-servidor usando Datagram Sockets. Para ello, vamos a ayudarnos del protocolo UDP


CASO PRÁCTICO


Implemente un programa cliente servidor usando sockets en java.

Observación:

Emplee el protocolo UDP

El Servidor UDP debe estar escuchando en un puerto determinado

Cree un cliente UDP para enviar los mensajes.

Recuerda que la conexión UDP no es orientada a conexión, es decir, el servidor en principio no sabe de dónde viene el mensaje, aunque lo puede saber mirando el datagrama que le llega. En otras palabras y comparando con la conexión TCP, UDP no necesita saber quién se conecta a él.




Séptima Evaluación Java Avanzado

¡Buen día, coders! El día de hoy vamos a resolver un caso propuesto que nos envió un seguidor de la página. Nos pide crear un bloc de notas similar al que trae Windows con todas las funcionalidades. Para resolver este caso, debemos tener conocimiento sobre Manejo de Archivos de textos y haber utilizado estas clases del paquete java.io de Java: File, FileWriter, BufferedWriter, PrintWriter, FileReader, BufferedReader.


CASO PRÁCTICO – BLOC DE NOTAS

Se pide crear un bloc de notas similar al que trae el sistema operativo Windows. 

El programa debe permitir cambiar el tamaño de la fuente. 

El programa debe tener las opciones en el menú para crear nuevo archivo, abrir archivo y guardar archivos de texto. 

El programa debe tener las opciones para copiar, cortar, pegar y borrar texto. 

Emplee menús y barra de herramientas

27 mayo, 2021

Sexta Evaluación Java Avanzado

¡Buen día, coders! El día de hoy vamos a resolver una examen que nos envió un seguidor de la página. Es un examen final que trata sobre Manejo de Archivos de textos, Clases y Arreglo de Objetos. Les dejaré la solución a este examen y cualquier duda que tengan en la sección de comentarios.


PROBLEMA

Cree un programa que permita registrar cuentas y realizar movimientos bancarios (consulta de movimientos, realizar depósito y retiro). Para la creación de la cuenta se deberá ingresar el código o número de DNI, el apellido y el nombre. El usuario debe poder realizar depósitos y retiros. Para ello, se le pedirá antes su número de cuenta y posteriormente el monto si fuese a depositar o retirar. El usuario también debe poder consultar todos sus movimientos. Guarde la información en dos archivos. cuentas.txt y movimientos.txt.

Se muestra un ejemplo de cómo podría ser el programa.

Cuentas.txt

Movimiento.txt





25 mayo, 2021

Quinta Evaluación Continua Java Avanzado

¡Buen día, coders! En esta oportunidad vamos a resolver una examen que nos envió un seguidor de la página. El examen trata sobre Manejo de Archivos, Uso de las clases File, FileReader, BufferedReader y PrintWriter, Les dejaré la solución a este examen y cualquier duda que tengan en la sección de comentarios.


PROBLEMA

Cree un bloc de notas similar a lo que se muestra en imagen, que permita leer y escribir archivos de textos. El usuario debe poder abrir y guardar el archivo en el directorio.



Cuarta Evaluación Continua Java Avanzado

¡Buen día, coders! En esta oportunidad vamos a resolver una evaluación continua que nos envió un seguidor de la página. Consta de 1 parte sobre Manejo de Archivos y Clases, Les dejaré la solución a este examen y cualquier duda que tengan en la sección de comentarios.

Problema 1. 

Se tiene la base de datos cibercole. Realizar una aplicación que controle el ingreso de sus usuarios mediante una consulta a la tabla usuarios de su base de datos ventas, la cual se puede definir mediante el siguiente Script:

create database cibercole;

use cibercole;

create table usuarios(

usuario char(4) unique primary key,

password varchar(15) );

insert into usuarios values('U001','123456');

insert into usuarios values('U002','654321');

Para su validación se debe realizar una GUI como el modelo o emplear JOPtionPane.:



El botón Ingresar mostrará un mensaje de error en el caso de no encontrase el usuario en la tabla. La correcta validación mostrará un mensaje de Bienvenida.

Tercera Evaluación Continua Java Avanzado

¡Buen día, coders! En esta oportunidad vamos a resolver una evaluación continua que nos envió un seguidor de la página. Consta de 1 parte sobre Manejo de Archivos y Clases, Les dejaré la solución a este examen y cualquier duda que tengan en la sección de comentarios.


Problema 1. Archivos y Clases

Se tiene la clase EC4 con la siguiente clase interna:


Y como atributo un ArrayList de nombre p de la clase mencionada.

Se pide implementar una aplicación que permita registrar los datos de los alumnos a través de una GUI como la siguiente: 


Consideraciones:

• Al terminar de ingresar los datos, se debe guardar la información en un archivo de texto de nombre notas.dat. 

• Al ingresar se debe cargar la información existente del mencionado archivo (si no existe sólo se debe crear).

• Hay que considerar que no se puede ingresar códigos duplicados y eliminar más de las personas contenidas en la lista.

Para la GUI puede tomar como referencia el siguiente modelo. 

Public class Ec3 extends Jframe{ // Clase principal (contenedora)
ArrayList<Alumno> p = new ArrayList<Alumno>(); // Este es un Collections
public Ec3(){
Container c = getContentPane();
c.setLayout(new FlowLayout());
final JtextField campoTexto = new JtextField(20) ;
c.add (new Jlabel (“Nombre”)) ;
c.add (campoTexto);
final JtextArea area = new JtextArea(8,30);
c.add(area);
Jbutton boton1 = new Jbutton(“Agregar”);
Jbutton boton2 = new Jbutton(“Quitar”);
c.add(boton1);
c.add(boton2);
setSize(350,250);
setTitle(“Gestion de Pila”);
setVisible(true);
boton1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
p.agregar(campoTexto.getText());
rea.setText( ---OJO --- p.muestra());
// OJO --- Realizar un proceso que permita mostrar la información del ArrayList 
campoTexto.setText(“”);
}
});
}
public static void main(String[] args){
new Ec3();
}
}

Pregunta

Puntaje

Criterios de evaluación

1

20 puntos

Lógica

2

Funcionamiento

2

Empleo de Clase Interna y Anónimas

4

Empleo de Lectura y Escritura de Archivo

4

Uso del StringTokenizer para separar información

2

Control de Duplicados

2

Control de Eliminación del ArrayList

2

Uso de GUI

2

24 mayo, 2021

Segunda Evaluación Continua Java Avanzado

¡Buen día, coders! En esta oportunidad vamos a resolver una evaluación continua que nos envió un seguidor de la página. Consta de 3 problemas, Manejo de Patrones, Manejo de archivos y Patrones, Archivos y formatos,. Les dejaré la solución a este examen y cualquier duda que tengan en la sección de comentarios.


SEGUNDA EVALUACIÓN CONTINUA JAVA AVANZADO


Problema 1. Manejo de Patrones

Se pide validar mediante el empleo de patrones una cadena que supuestamente contiene un email, lo hace con cuatro comprobaciones, con un patrón cada una, la primera que no contenga como primer carácter una @, la segunda que no comience por www. , que contenga una y solo una @ y la cuarta que no contenga caracteres ilegales: 


Solución:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Problema1 {

	public static void main(String[] args) {
		System.out.print("Ingresar correo: ");
		Scanner scanner = new Scanner(System.in);
		String source = scanner.next();

		// 1ra comprobación: que no contenga como primer carácter una @
		Pattern p = Pattern.compile("@|\\."); // Patrón de búsqueda
		Matcher m = p.matcher(source); // Fuente de datos
		if (m.find() && (m.start() == 0)) { // Si lo encontró en la 1ra posición
			System.out.println("ERROR: No puede comenzar con @ o punto");
		}
		
		// o podemos hacerlo de esta forma
		/*p = Pattern.compile("^\\.|^\\@"); 
		m = p.matcher(source);
		if (m.find()) {
			System.out.println("ERROR: No puede comenzar con @ o punto");
		}*/

		// 2da comprobación: que no comience por www.
		p = Pattern.compile("^www\\.");
		Matcher m2 = p.matcher(source);
		if (m2.find()) {
			System.out.println("ERROR: No puede comenzar con www. ");
		}

		// 3ra comprobación: que contenga solo un arroba
		p = Pattern.compile("@");
		m = p.matcher(source);
		int cont = 0;
		while (m.find()) {
			cont++;
		}
		if (cont > 1)
			System.out.println("ERROR: Solo puede haber un @: " + cont);
		
		// 4ta comprobación: que contenga arroba
		p = Pattern.compile("@");
		m = p.matcher(source);
		if (!m.find()) {
			System.out.println("ERROR: No se ha encontrado el @");
		}
		
		// 5ta comprobación: que no contenga caracteres ilegales
		/*p = Pattern.compile("\\¿+|\\?+|\\°+|\\¬+|\\|+|\\!+|\\#+|\\$+|"
				+ "\\%+|\\&+|\\+|\\=+|\\’+|\\¡+|\\++|\\*+|\\~+|\\[+|\\]" 
				+ "+|\\{+|\\}+|\\^+|\\<+|\\>+|\\\"+ ");
		m = p.matcher(source);
		cont = 0;
		while (m.find()) {
			System.out.println("Se encontró el caracter '" + m.group() + 
					"' en la posición " + m.start());
			cont++;
		}
		if (cont > 0)
			System.out.println("ERROR: Se hallaron " + cont + 
					" caracteres ilegales: " + cont);*/
			
		
		// o podemos hacerlo de esta forma
		p = Pattern.compile("[^A-Za-z0-9\\.@_\\-]");
		m = p.matcher(source);
		cont = 0;
		while (m.find()) {
			System.out.println("Se encontró el caracter '" + m.group() + 
					"' en la posición " + m.start());
			cont++;
		}
		if (cont > 0)
			System.out.println("ERROR: Se hallaron " + cont + 
					" caracteres ilegales: " + cont);
		
	}
}

Resultado:

Ingresar correo: @www.jose#10%5/?@gmail.com

ERROR: No puede comenzar con @ o punto

ERROR: Solo puede haber un @: 2

Se encontró el caracter '#' en la posición 9

Se encontró el caracter '%' en la posición 12

Se encontró el caracter '/' en la posición 14

Se encontró el caracter '?' en la posición 15

ERROR: Se hallaron 4 caracteres ilegales: 4


Problema 2. Manejo de Archivos y Patrones

Realizar un motor de búsqueda que permita primero: mostrar el contenido del archivo “texto.txt” y mostrar las veces que aparecen las palabras que coincidan con el modelo ingresado por teclado en el documento. Ej. 

texto.txt

LOS DEBERES
###########
Mucho hemos escuchado sobre los derechos, sin embargo, poco escuchamos sobre nuestros deberes.
Básicamente los deberes son lo que debemos hacer para cumplir y respetar los derechos propios y de los demás (¡Yo debo hacer!). Así los derechos de nosotros terminan donde comienzan los de los demás.
La frase, trata a los demás como quieres que te traten, es un ejemplo de deber y derecho.
&&&&&&&&&&&
www.google.com
www.youtube.com
www.facebook.com
%%%%%%%%%%%
hola@gmail.com
amigos@gmail.com
dia@gmail.com
@@@@@@@@@@@
147852369


Solución:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.JOptionPane;

public class Problema2 {

	public static void main(String[] args) {
		File file = new File("texto.txt");
		String ingresar = JOptionPane.showInputDialog("Patrón de texto a buscar");
		String lineaTot = "";
		
		try {
			// Lee el archivo y guarda el contenido en un String
			FileReader fr = new FileReader(file);
			BufferedReader br = new BufferedReader(fr);
			String linea;
			System.out.println("Contenido del archivo:");
			while ((linea = br.readLine()) != null) {
				System.out.println(linea);
				lineaTot += linea;
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

		System.out.println("+---------------------------+");
		System.out.println("|     Búsqueda de Texto     |");
		System.out.println("+---------------------------+");
		
		System.out.println("Patrón de texto a buscar: " + ingresar);
		Pattern p = Pattern.compile(ingresar); // el patrón (expresión)
		Matcher m = p.matcher(lineaTot); // la fuente de datos
		boolean b = false;
		int cont = 0;
		while (m.find()) { // si lo encuentra
			// imprimo
			System.out.println("Encontrado en la posición " + m.start() + ": " 
			+ m.group());
			cont++;
		}
		System.out.println("Encontrado: \"" + cont + "\" veces"); // total
	}

}

Resultado:


Contenido del archivo:
LOS DEBERES
###########
Mucho hemos escuchado sobre los derechos, sin embargo, poco escuchamos sobre nuestros deberes.
Básicamente los deberes son lo que debemos hacer para cumplir y respetar los derechos propios y de los demás (¡Yo debo hacer!). Así los derechos de nosotros terminan donde comienzan los de los demás.
La frase, trata a los demás como quieres que te traten, es un ejemplo de deber y derecho.
&&&&&&&&&&&
www.google.com
www.youtube.com
www.facebook.com
%%%%%%%%%%%
hola@gmail.com
amigos@gmail.com
dia@gmail.com
@@@@@@@@@@@
147852369
+---------------------------+
|     Búsqueda de Texto     |
+---------------------------+
Patrón de texto a buscar: [0-9]
Encontrado en la posición 525: 1
Encontrado en la posición 526: 4
Encontrado en la posición 527: 7
Encontrado en la posición 528: 8
Encontrado en la posición 529: 5
Encontrado en la posición 530: 2
Encontrado en la posición 531: 3
Encontrado en la posición 532: 6
Encontrado en la posición 533: 9
Encontrado: "9" veces


Problema 3. Archivos y Formatos

Se pide recuperar la información de la base de datos “cursos.txt” y almacenar el contenido en una matriz (Arreglo Bidimensional) de tamaño [10] [4]. Mostrar el contenido de la Matriz empleando el método Ventana. 

Considerar que la información original de los campos 2 y 3 de la matriz está en configuración regional de Perú, se pide que la información a mostrar se personalice con  el Local de Estados unidos (en, US), tanto para el Formato de Fecha (DateFormat.getDateInstance(…) ), como para el Formato de Moneda (NumberFormat.getCurrencyInstance(región)). De manera que la ventana muestre una tabla de la siguiente manera:

curso.txt

1,MySQL,12/07/2020,20
2,MySQL,13/07/2020,40
3,JDBC,14/07/2020,20
4,GUI,15/07/2020,20
5,Proyecto,16/07/2020,30


Resultado:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Font;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.StringTokenizer;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class Problema3 {

	public static void main(String[] args) {
		File file = new File("cursos.txt");
		String[][] matriz = new String[10][4];

		try {
			// Leemos el contenido del archivo .txt
			FileReader fr = new FileReader(file);
			BufferedReader br = new BufferedReader(fr);
			String linea = "";
			int i = 0;

			while ((linea = br.readLine()) != null) {
				// Delimitamos la fila por ','
				StringTokenizer st = new StringTokenizer(linea, ",");
				// Guardamos los tokens en el arreglo
				matriz[i][0] = st.nextToken(); // Sesión
				matriz[i][1] = st.nextToken(); // Tema
				matriz[i][2] = cambiarFormatoDeFecha(st.nextToken()); // Fecha
				matriz[i][3] = cambiarFormatoDeMoneda(st.nextToken()); // Costo
				i++;
			}
			br.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

		ventana(matriz);
	}

	public static String cambiarFormatoDeFecha(String fecha) {
		// String a Date
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		Date fechaDate = null;
		try {
			fechaDate = sdf.parse(fecha);
			System.out.println("Fecha Date: " + fechaDate);
		} catch (ParseException ex) {
			System.out.println(ex);
		}

		// Date a String
		Locale locales2[] = { new Locale("en", "US") };
		DateFormat df = DateFormat.getDateInstance(DateFormat.DEFAULT, locales2[0]);
		String fechaUSA = df.format(fechaDate);
		System.out.println("Formato de fecha EE.UU: " + fechaUSA);

		return fechaUSA;
	}

	public static String cambiarFormatoDeMoneda(String costo) {
		Locale locale[] = { new Locale("en", "US") };
		NumberFormat nf = NumberFormat.getCurrencyInstance(locale[0]);
		String moneda = nf.format(Double.parseDouble(costo));
		System.out.println("formato de moneda EE.UU: " + moneda);
		return moneda;
	}

	private static void ventana(String[][] datos) {
		final String[] nombreCol = { "Sesion", "Tema", "Fecha", "Costo" };

		JTable tabla = new JTable(datos, nombreCol);
		tabla.setFont(new Font("Arial", Font.BOLD, 18));
		tabla.setRowHeight(24);
		JScrollPane jsp = new JScrollPane(tabla);

		JFrame frame = new JFrame();
		Container c = frame.getContentPane();
		c.setLayout(new BorderLayout());
		c.add(jsp, BorderLayout.CENTER);
		frame.setSize(500, 300);
		frame.setVisible(true);
	}

}


DESARROLLO TUS ALGORITMOS 🔥🔥


✅ 1. Envía tu algoritmo.
✅ 2. Indica en qué lenguaje de Programación lo deseas.
✅ 3. Para qué fecha lo quieres.
✅ 4. De que país eres (para tu forma de pago)
✅ 5. También se desarrollan al momento.
✅ 6. Los 3 primeros ejercicios son gratis.
🔸 Explico cada ejercicio que desarrollo en el código.