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 (clase Java) 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/DVDn 1:Registrarn 2:Listadon 3:Ordenar por titulon 4:Ordenar por Numeron 5:Borrar todon 6:Buscar por titulon 7:Buscar por numeron 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("GRACIASnPROGRAMA 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("ttNUMEROttTITULOttDETALLEttGENEROttCONTENIDO");
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("tt"+z.num+"tt"+z.Titulo+"tt"+z.Detalle+"tt"+z.Genero+"tt"+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("tt"+z[i].num+"tt"+z[i].Titulo+"tt"+z[i].Detalle+"tt"+z[i].Genero+"tt"+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("tt"+z[i].num+"tt"+z[i].Titulo+"tt"+z[i].Detalle+"tt"+z[i].Genero+"tt"+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/DVDn 1:Registrarn 2:Listadon 3:Ordenar por titulon 4:Ordenar por Numeron 5:Borrar todon 6:Buscar por titulon 7:Buscar por numeron 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("ttNUMEROttTITULOttDETALLEttGENEROttCONTENIDO");
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("tt"+z.num+"tt"+z.Titulo+"tt"+z.Detalle+"tt"+z.Genero+"tt"+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.
Autor:
Mauricio Jimenez
DOCENTE: ING IRMA PRADO
PARALELO: I
SEMESTRE: II-2013
PROYECTO FINAL
PROGRAMACION I