Proyecto Java 2
Proyecto Java 2
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();
}
//---------------------------------------------------------
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.