Está en la página 1de 9

Introducción

El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun


Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un
componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva
mucho de C y C++, pero tiene menos facilidades de bajo nivel que cualquiera de ellos. Las
aplicaciones de Java son generalmente compiladas a bytecode (claseJava) que puede
ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura de
la computadora subyacente.
OBJETIVO
Para demostrar el uso de Java se creó un programa que tiene por objetivo organizar CD"s
y DVD"s con los siguientes datos:
Orden numéricoTituloDetalleContenidoGenero

Programa
import java.io.*;
class PPP
{
public static class disco
{
String Titulo;
String Contenido;
String Detalle;
String Genero;
int num;
}
static int ta=0;
public static void main(String []arg)throws IOException
{ disco x=new disco();
disco [] vector;
int opcion=0;
BufferedReader w= new BufferedReader(new InputStreamReader(System.in));
do{
System.out.println("--------------------------------------------------------");
System.out.println("CD/DVD\n 1:Registrar\n 2:Listado\n 3:Ordenar por titulo\n
4:Ordenar por Numero\n 5:Borrar todo\n 6:Buscar por titulo\n 7:Buscar por numero\n
8:Salir");
System.out.println("--------------------------------------------------------");
opcion=Integer.parseInt(w.readLine());
switch(opcion){
case 1:
try{
System.out.println("Escriba el titulo ");
x.Titulo=w.readLine();
System.out.println("Escriba el contenido ");
x.Contenido=w.readLine();
System.out.println("Escriba algun detalle");
x.Detalle=w.readLine();
System.out.println("Escriba el genero ");
x.Genero=w.readLine();
System.out.println("Escriba el numero ");
x.num=Integer.parseInt(w.readLine());
archivar(x);
}
catch(NumberFormatException ex){
System.out.println("Error!! nota es entero!!"); }
break;
case 2: lista_todo();
break;
case 3: vector=copia_archivo_a_vector();
vector=ordena(vector);
borrar_todo();
copia_del_vector_al_archivo(vector);
lista_todo();
break;
case 4: vector=copia_archivo_a_vector();
vector=ordenanum(vector);
borrar_todo();
copia_del_vector_al_archivo(vector);
lista_todo();
break;
case 5: Borrar();
break;
case 6:vector=copia_archivo_a_vector();
vector=buscartit(vector);
break;
case 7:vector=copia_archivo_a_vector();
vector=buscarnum(vector);
break;
}
}while(opcion!=8);
System.out.println("GRACIAS\nPROGRAMA DESARROLLADO POR MAURICIO
JIMENEZ");
}
//--------------------------------------
public static void archivar(disco z)throws IOException
{
FileOutputStream archivo_logico = new FileOutputStream("PPP.TXT",true);
DataOutputStream data=new DataOutputStream(archivo_logico);
data.writeUTF(z.Titulo);
data.writeUTF(z.Contenido);
data.writeUTF(z.Detalle);
data.writeUTF(z.Genero);
data.writeInt(z.num);
archivo_logico.close();
}
//-----------------------------------------------------------------
public static void lista_todo(){
disco z=new disco();
try
{
FileInputStream fi=new FileInputStream("PPP.TXT");
System.out.println("LISTADO DEL ARCHIVO");
DataInputStream data=new DataInputStream(fi);
System.out.println("\t\tNUMERO\t\tTITULO\t\tDETALLE\t\tGENERO\t\tCONTENIDO
");
while(true)
{
z.Titulo=data.readUTF();
z.Contenido=data.readUTF();
z.Detalle=data.readUTF();
z.Genero=data.readUTF();
z.num=data.readInt();
System.out.println("\t\t"+z.num+"\t\t"+z.Titulo+"\t\t"+z.Detalle+"\t\t"+z.Genero+"\t\t"
+z.Contenido);
}
} catch (FileNotFoundException e) {
System.out.println("+++ El archivo no existe!!!!!");
}
catch (EOFException e)
{
System.out.println("termino la lectura");
} catch (IOException e) {
System.out.println("error en ioexception");
}
}
//------------------------------------------------------
public static void borrar_todo()throws IOException
{ FileOutputStream archivo_logico;
archivo_logico = new FileOutputStream("PPP.TXT");
archivo_logico.close();
}
//--------------------------------------------------------
public static disco [] copia_archivo_a_vector(){
disco []z=new disco [20];
ta=0;
try
{
FileInputStream fi=new FileInputStream("PPP.TXT");
DataInputStream data=new DataInputStream(fi);
while(true)
{ z[ta]=new disco();
z[ta].Titulo=data.readUTF();
z[ta].Contenido=data.readUTF();
z[ta].Detalle=data.readUTF();
z[ta].Genero=data.readUTF();
z[ta].num=data.readInt();
ta++;
}
} catch (FileNotFoundException e) {
System.out.println("+++ El archivo no existe!!!!!");
}
catch (EOFException e)
{
} catch (IOException e) {
System.out.println("error en ioexception");
}
return (z);
}
//--------------------------------------------------------
public static void copia_del_vector_al_archivo(disco z[])throws IOException
{
FileOutputStream archivo_logico = new FileOutputStream("PPP.TXT",true);
DataOutputStream data=new DataOutputStream(archivo_logico);
for(int i=0;i<<em>ta;i++){
data.writeUTF(z[i].Titulo);
data.writeUTF(z[i].Contenido);
data.writeUTF(z[i].Detalle);
data.writeUTF(z[i].Genero);
data.writeInt(z[i].num);
}
archivo_logico.close();
}
//---------------------------------------------------------
public static disco [] ordena(disco z[])
{
disco aux=new disco();
for(int i=0;i<<em>ta;i++){
for(int j=i;j<<em>ta;j++){
if(z[i].Titulo.compareTo(z[j].Titulo)>0){
aux=z[i];
z[i]=z[j];
z[j]=aux;
}
}
}
return (z);
}
public static disco [] buscarnum(disco z[])throws IOException
{
disco aux=new disco();
int b;
BufferedReader w= new BufferedReader(new InputStreamReader(System.in));
System.out.println("Que numero desea buscar?");
b=Integer.parseInt(w.readLine());
for(int i=0;i<<em>ta;i++){
if(z[i].num==b){
System.out.println("\t\t"+z[i].num+"\t\t"+z[i].Titulo+"\t\t"+z[i].Detalle+"\t\t"+z[i].Gene
ro+"\t\t"+z[i].Contenido);
}
}
return (z);
}
public static disco [] buscartit(disco z[])throws IOException
{
disco aux=new disco();
String b;
BufferedReader w= new BufferedReader(new InputStreamReader(System.in));
System.out.println("Que titulo desea buscar?");
b=w.readLine();
for(int i=0;i<<em>ta;i++){
if(z[i].Titulo.compareTo("b")==0){
System.out.println("\t\t"+z[i].num+"\t\t"+z[i].Titulo+"\t\t"+z[i].Detalle+"\t\t"+z[i].Gene
ro+"\t\t"+z[i].Contenido);
}
}
return (z);
}
public static disco [] ordenanum(disco z[])
{
disco aux=new disco();
for(int i=0;i<<em>ta;i++){
for(int j=i;j<<em>ta;j++){
if(z[i].num>z[j].num){
aux=z[i];
z[i]=z[j];
z[j]=aux;
}
}
}
return (z);
}
public static void Borrar()throws IOException
{ FileOutputStream archivo_logico;
archivo_logico = new FileOutputStream("PPP.TXT");
archivo_logico.close();
}
//---------------------------------------------------------

Explicación del programa


El programa está hecho a base de Archivos, es decir que todo lo guarda en la memoria del
disco duro y cada vez que se vuelva a abrir el programa los datos estarán guardados sin la
necesidad de un base de datos.
El programa principal desplega un menú que es el siguiente:
System.out.println("--------------------------------------------------------");
System.out.println("CD/DVD\n 1:Registrar\n 2:Listado\n 3:Ordenar por titulo\n
4:Ordenar por Numero\n 5:Borrar todo\n 6:Buscar por titulo\n 7:Buscar por numero\n
8:Salir");
System.out.println("--------------------------------------------------------");
opcion=Integer.parseInt(w.readLine());
switch(opcion)
Pide al usuario una acción que será realizada por el programa, cada opción se encuentra en
una función diferente
Para archivar el programa se usara la siguiente función
public static void archivar(disco z)throws IOException
{
FileOutputStream archivo_logico = new FileOutputStream("PPP.TXT",true);
DataOutputStream data=new DataOutputStream(archivo_logico);
data.writeUTF(z.Titulo);
data.writeUTF(z.Contenido);
data.writeUTF(z.Detalle);
data.writeUTF(z.Genero);
data.writeInt(z.num);
archivo_logico.close();
}
Para desplegar un listado usaremos esta función
public static void lista_todo(){
disco z=new disco();
try
{
FileInputStream fi=new FileInputStream("PPP.TXT");
System.out.println("LISTADO DEL ARCHIVO");
DataInputStream data=new DataInputStream(fi);
System.out.println("\t\tNUMERO\t\tTITULO\t\tDETALLE\t\tGENERO\t\tCONTENIDO
");
while(true)
{
z.Titulo=data.readUTF();
z.Contenido=data.readUTF();
z.Detalle=data.readUTF();
z.Genero=data.readUTF();
z.num=data.readInt();
System.out.println("\t\t"+z.num+"\t\t"+z.Titulo+"\t\t"+z.Detalle+"\t\t"+z.Genero+"\t\t"
+z.Contenido);
}
} catch (FileNotFoundException e) {
System.out.println("+++ El archivo no existe!!!!!");
}
catch (EOFException e)
{
System.out.println("termino la lectura");
} catch (IOException e) {
System.out.println("error en ioexception");
}
}
Ya para el resto de las opciones las funciones son mas pequeñas y fáciles de entender

Programa Corriendo
A continuación veremos capturas de pantalla para demostrar el funcionamiento del
programa
En este listado podemos observar un pequeño error debido a la doble tabulación que existe,
cuando un String es muy largo la doble tabulación se alarga más de lo debido.

Conclusión
Este programa demuestra todo lo aprendido en la materia de programación I y como se
puede llegar a usar los diferentes temas como ser, funciones, matrices, vectores, vector de
objetos y archivos en un solo programa, cabe destacar que no se usaron base de datos todos
los archivos fueron guardados en un documento de texto creado desde el mismo programa.

También podría gustarte