1. package musica;
import java.io.*;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
public class Aplicacion {
public static String leerCadena() {
try {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader buf = new BufferedReader(isr);
String cadena = buf.readLine();
return cadena;
} catch(Exception ex) {
return "";
}
}
private static BufferedReader stdIn = new BufferedReader(new
InputStreamReader(System.in));
public static void main(String[] args) throws IOException{
String n0, n1, n11, n12, n13, n14, n15,
n21, n22, n23, n24, n25,
n31, n32, n33, n34, n35,
n41, n42, n43, n44, n45,
n51, n52, n53, n54, n55,
n2, n3, b1, b2, e1, e2,
x1, x2, x3, x4, x5;
CargaDatos guarda = new CargaDatos();
ArrayList<Musica> lista = guarda.LoadDatos("C:POOdatos.txt");
Manejador manejador = new Manejador();
for (Musica item : lista) {
manejador.addMusica(item);
}
do {
try {
n0 = JOptionPane.showInputDialog
(null,"**********************************n" +
"** Administrador de MUSICA **n" +
"***********************************n" +
"tttntt1. INGRESAR UNA CANCIONn" +
"tt2. BUSCAR UNA CANCIONn" +
"tt3. ELIMINAR CANCIONn" +
"tt4. IMPRIMIR CANCIONESn" +
"tt5. GUARDAR CAMBIOSn" +
"tt6. SALIRnn" +
"Elija una opcion:");
int opcion=Integer.parseInt(n0);
switch(opcion) {
2. case 1:
try {
n1 = JOptionPane.showInputDialog
(null,"ntttTIPOS DE CANCIONESn"+
"tt---------------------------------------n"+
"1. BAILABLEn"+
"2. CLASICAn"+
"3. NACIONALn"+
"4. PESADAn"+
"5. ROMANTICAnn"+
"n Elija la clase de musica a ingresar:");
int x = Integer.parseInt(n1);
switch(x) {
case 1:
n11 = JOptionPane.showInputDialog
(null,"ntMusica Bailablenn"+
"Ingrese el codigo de la Cancion:
");
Matcher mat1=null;
Pattern
pat1=Pattern.compile("^([M]{1}[B]{1}[0-9]{1}[0-9]{1}[0-9]{1})$");
String codigo1= n11;
mat1=pat1.matcher(codigo1);
if(!mat1.find()){
System.out.println(codigo1);
JOptionPane.showMessageDialog(null,"nCodigo Incorrecto");
break;
}
n12 =
JOptionPane.showInputDialog
(null,"Ingrese el Nombre de la
Cancion: ");
String nombre1 = n12;
n13 =
JOptionPane.showInputDialog
(null,"Ingrese el Autor de la
Cancion: ");
String autor1 = n13;
x1 =
JOptionPane.showInputDialog
(null,"Ingrese el año de
lanzamiento de la Cancion:");
int año1 = Integer.parseInt(x1);
if(año1<=1900){
JOptionPane.showMessageDialog(null,"nAño incorrecto");
break;
3. }
if(año1>=2010){
JOptionPane.showMessageDialog(null,"nAño incorrecto");
break;
}
n14 = JOptionPane.showInputDialog
(null,"Ingrese el Tipo de
Cancion ");
String tipo1 = n14;
n15 =
JOptionPane.showInputDialog
(null,"Ingrese el tiempo de
duracion de la cancion: ");
double duracion1 =
Double.parseDouble(n15);
Bailable B1 = new
Bailable(codigo1,nombre1,autor1,año1,tipo1,duracion1);
manejador.addMusica(B1);
break;
case 2:
n21 = JOptionPane.showInputDialog
(null,"nMusica Clasicann"+
"Ingrese el codigo de la
Cancion: ");
Matcher mat2=null;
Pattern pat2=Pattern.compile("^([M]{1}[C]{1}
[0-9]{1}[0-9]{1}[0-9]{1})$");
String codigo2= n21;
mat2=pat2.matcher(codigo2);
if(!mat2.find()){
System.out.println(codigo2);
JOptionPane.showMessageDialog(null,"nCodigo Incorrecto");
break;
}
n22 = JOptionPane.showInputDialog
(null,"Ingrese el Nombre de la
Cancion: ");
String nombre2 = n22;
n23 = JOptionPane.showInputDialog
(null,"Ingrese el Autor de la
Cancion: ");
String autor2 = n23;
x2 = JOptionPane.showInputDialog
(null,"Ingrese el año de lanzamiento
de la Cancion:");
int año2 = Integer.parseInt(x2);
if(año2<=1900){
JOptionPane.showMessageDialog(null,"nAño incorrecto");
4. break;
}
if(año2>=2010){
JOptionPane.showMessageDialog(null,"nAño incorrecto");
break;
}
n24 = JOptionPane.showInputDialog
(null,"Ingrese el Tipo de Cancion
");
String tipo2 = n24;
n25 = JOptionPane.showInputDialog
(null,"Ingrese el tiempo de duracion
de la cancion: ");
double duracion2 =
Double.parseDouble(n25);
Clasica C2 = new
Clasica(codigo2,nombre2,autor2,año2,tipo2,duracion2);
manejador.addMusica(C2);
break;
case 3:
n31 = JOptionPane.showInputDialog
(null,"ntMusica Nacionalnn"+
"Ingrese el codigo de la
Cancion: ");
Matcher mat3=null;
Pattern pat3=Pattern.compile("^([M]{1}[N]{1}
[0-9]{1}[0-9]{1}[0-9]{1})$");
String codigo3= n31;
mat3=pat3.matcher(codigo3);
if(!mat3.find()){
System.out.println(codigo3);
JOptionPane.showMessageDialog(null,"nCodigo Incorrecto");
break;
}
n32 = JOptionPane.showInputDialog
(null,"Ingrese el Nombre de la
Cancion: ");
String nombre3 = n32;
n33 = JOptionPane.showInputDialog
(null,"Ingrese el Autor de la
Cancion: ");
String autor3 = n33;
x3 = JOptionPane.showInputDialog
(null,"Ingrese el año de lanzamiento
de la Cancion:");
int año3 = Integer.parseInt(x3);
if(año3<=1900){
5. JOptionPane.showMessageDialog(null,"nAño incorrecto");
break;
}
if(año3>=2010){
JOptionPane.showMessageDialog(null,"nAño incorrecto");
break;
}
n34 = JOptionPane.showInputDialog
(null,"Ingrese el Tipo de Cancion
");
String tipo3 = n34;
n35 = JOptionPane.showInputDialog
(null,"Ingrese el tiempo de duracion
de la cancion: ");
double duracion3 =
Double.parseDouble(n35);
Nacional N3 = new
Nacional(codigo3,nombre3,autor3,año3,tipo3,duracion3);
manejador.addMusica(N3);
break;
case 4:
n41 = JOptionPane.showInputDialog
(null,"ntMusica Pesadann"+
"Ingrese el codigo de la
Cancion: ");
Matcher mat4=null;
Pattern pat4=Pattern.compile("^([M]{1}[P]{1}
[0-9]{1}[0-9]{1}[0-9]{1})$");
String codigo4= n41;
mat4=pat4.matcher(codigo4);
if(!mat4.find()){
System.out.println(codigo4);
JOptionPane.showMessageDialog(null,"nCodigo Incorrecto");
break;
}
n42 = JOptionPane.showInputDialog
(null,"Ingrese el Nombre de la
Cancion: ");
String nombre4 = n42;
n43 = JOptionPane.showInputDialog
(null,"Ingrese el Autor de la
Cancion: ");
String autor4 = n43;
x4 = JOptionPane.showInputDialog
6. (null,"Ingrese el año de lanzamiento
de la Cancion:");
int año4 = Integer.parseInt(x4);
if(año4<=1900){
JOptionPane.showMessageDialog(null,"nAño incorrecto");
break;
}
if(año4>=2010){
JOptionPane.showMessageDialog(null,"nAño incorrecto");
break;
}
n44 = JOptionPane.showInputDialog
(null,"Ingrese el Tipo de Cancion
");
String tipo4 = n44;
n45 = JOptionPane.showInputDialog
(null,"Ingrese el tiempo de duracion
de la cancion: ");
double duracion4 =
Double.parseDouble(n45);
Pesada P4 = new
Pesada(codigo4,nombre4,autor4,año4,tipo4,duracion4);
manejador.addMusica(P4);
break;
case 5:
n51 = JOptionPane.showInputDialog
(null,"ntMusica Romanticann"+
"Ingrese el codigo de la
Cancion: ");
Matcher mat5=null;
Pattern pat5=Pattern.compile("^([M]{1}[R]{1}
[0-9]{1}[0-9]{1}[0-9]{1})$");
String codigo5= n51;
mat5=pat5.matcher(codigo5);
if(!mat5.find()){
System.out.println(codigo5);
JOptionPane.showMessageDialog(null,"nCodigo Incorrecto");
break;
}
n52 = JOptionPane.showInputDialog
(null,"Ingrese el Nombre de la
Cancion: ");
String nombre5 = n52;
n53 = JOptionPane.showInputDialog
(null,"Ingrese el Autor de la
Cancion: ");
7. String autor5 = n53;
x5 = JOptionPane.showInputDialog
(null,"Ingrese el año de lanzamiento
de la Cancion:");
int año5 = Integer.parseInt(x5);
if(año5<=1900){
JOptionPane.showMessageDialog(null,"nAño incorrecto");
break;
}
if(año5>=2010){
JOptionPane.showMessageDialog(null,"nAño incorrecto");
break;
}
n54 = JOptionPane.showInputDialog
(null,"Ingrese el Tipo de Cancion
");
String tipo5 = n54;
n55 = JOptionPane.showInputDialog
(null,"Ingrese el tiempo de duracion
de la cancion: ");
double duracion5 =
Double.parseDouble(n55);
Romantica R5 = new Romantica
(codigo5,nombre5,autor5,año5,tipo5,duracion5);
manejador.addMusica(R5);
break;
default:
JOptionPane.showMessageDialog(null,"nOPCION INCORRECTA");
break;
}
} catch(NumberFormatException e) {
JOptionPane.showMessageDialog(null,"nINGRESE UN NUMERO POR FAVOR");
}
break;
case 2: {
try {
n2 = JOptionPane.showInputDialog
(null,"tttBUSQUEDA DE CANCIONESn"+
"tt--------------------n"+
"1. BUSCAR POR CÓDIGOn"+
"2. BUSCAR POR NOMBREn"+
"nELIJA LA FORMA EN LA QUE DESEA BUSCAR:n");
8. int tipoBusq = Integer.parseInt(n2);
switch(tipoBusq) {
case 1:
b1 = JOptionPane.showInputDialog
(null,"nINGRESE EL CÓDIGO DE LA CANCION:
");
String codigo = b1;
manejador.buscarCod(codigo);
break;
case 2:
b2 = JOptionPane.showInputDialog
(null,"nINGRESE EL NOMBRE DE LA CANCION:
");
String nombre = b2;
manejador.buscarName(nombre);
break;
default:
JOptionPane.showMessageDialog(null,"nOPCION INCORRECTA");
break;
}
} catch(NumberFormatException e) {
JOptionPane.showMessageDialog(null,"nINGRESO
LETRA, ELIJA UN NUMERO POR FAVOR");
}
break;
}
case 3:{
try {
n3 = JOptionPane.showInputDialog
(null,"ntttELIMINAR CANCIONESn"+
"tt-----------------------------------------n
"+
"1. ELIMINAR POR CÓDIGOn"+
"2. ELIMINAR POR NOMBREn"+
"nELIJA UNA OPCION:n");
int tipoElimin = Integer.parseInt(n3);
switch(tipoElimin) {
case 1:
e1 = JOptionPane.showInputDialog
(null,"nINGRESE EL CÓDIGO DE LA CANCION:
");
String codigo = e1;
manejador.eliminarCod(codigo);
break;
case 2:
e2 = JOptionPane.showInputDialog
9. (null,"nINGRESE EL NOMBRE DE LA CANCION:
");
String nombre = e2;
manejador.eliminarName(nombre);
break;
default:
{
JOptionPane.showMessageDialog(null,"n OPCION INCORRECTA");
break;
}
}
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"nINGRESE UN
NUMERO POR FAVOR");
}
break;
}
case 4:{
JOptionPane.showMessageDialog(null,"nttCANCIONES
EXISTENTES"+
"tn-----------------------------------n");
manejador.verManejador();
break;
}
////
case 5: {
manejador.Guardar();
JOptionPane.showMessageDialog(null,"ntDatos
Guardados Exitosamente");
break;
}
case 6: {
JOptionPane.showMessageDialog(null,"ntGRACIAS POR
VISITAR NUESTRO PROGRAMA" +
"ntQUE TENGAS UN BUEN DIA");
System.exit(1);
break;
}
default:
JOptionPane.showMessageDialog(null,"nOPCION
INCORRECTA");
break;
}
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"nINGRESE UN NUMERO POR
FAVOR");
}
} while(true);