EJERCICIO TIENDA DE MÚSICA
Buenas,
estoy realizando el siguiente ejercicio pero estoy algo atascada:
"Se pide una aplicación en modo consola que nos servirá para gestionar nuestra tienda. En la tienda se vende música, que podemos tener en varios formatos CD, vinilo, casete. Podremos asignar nuestra venta a un determinado cliente, con lo que pedimos un sistema para eliminar/añadir/listar clientes, elimi- nar/añadir/listar música y vender música a un determinado cliente; dicha venta será almacenada en un fichero de texto y también se podrá listar. El resto de entidades (clientes y música) serán almacenadas en memoria, así que cuando termine la ejecución de la aplicación, desaparecerán.
Como toda aplicación de consola, se manejará usando parámetros y su uso es así"
El código que he realizado es:
CLASE MUSICA(clase padre de cd,vinilo y cassette)
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
public class Musica {
protected String grupo;
protected int capacidad;
protected int anyo;
protected int codigo;
public ArrayList musicas;
/**
* Constructor
*/
Musica(String grupo,int capacidad,int cod,int anyo){
this.setGrupo(grupo);
this.setCapacidad(capacidad);
this.setCodigo(cod);
this.setAnyo(anyo);
}
/**
*
* @param grupo es el grupo de música
*/
public void setGrupo(String grupo) {
this.grupo = grupo;
}
/**
*
* @return devuelve el nombre del grupo
*/
public String getGrupo() {
return grupo;
}
/**
*
* @param capacidad es la capacidad que se le pasa
*/
public void setCapacidad(int capacidad) {
this.capacidad = capacidad;
}
/**
*
* @return devuelve la capacidad es decir 590 mb,1gbyte,etc...
*/
public int getCapacidad() {
return capacidad;
}
/**
*
* @param anyo es el año en el que se creó la música
*/
public void setAnyo(int anyo) {
this.anyo = anyo;
}
/**
*
* @return devuelve el año en el se creó la música
*/
public int getAnyo() {
return anyo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public int getCodigo() {
return codigo;
}
/**
* MÈtodo que usaremos para leer el nombre de la musica que
* existen en el fichero "musica.dat"
*/
public void leerMusica(){
File music = new File("musica.dat");
String nombreMusica = null;
try {
FileInputStream fis = new FileInputStream(music);
try {
DataInputStream ois = new DataInputStream(fis);
boolean siFinLec = false;
try {
while(true) {
nombreMusica = ois.readUTF();
if (siFinLec) break;
musicas.add(new Musica(grupo,capacidad,codigo,anyo));
estoy realizando el siguiente ejercicio pero estoy algo atascada:
"Se pide una aplicación en modo consola que nos servirá para gestionar nuestra tienda. En la tienda se vende música, que podemos tener en varios formatos CD, vinilo, casete. Podremos asignar nuestra venta a un determinado cliente, con lo que pedimos un sistema para eliminar/añadir/listar clientes, elimi- nar/añadir/listar música y vender música a un determinado cliente; dicha venta será almacenada en un fichero de texto y también se podrá listar. El resto de entidades (clientes y música) serán almacenadas en memoria, así que cuando termine la ejecución de la aplicación, desaparecerán.
Como toda aplicación de consola, se manejará usando parámetros y su uso es así"
El código que he realizado es:
CLASE MUSICA(clase padre de cd,vinilo y cassette)
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
public class Musica {
protected String grupo;
protected int capacidad;
protected int anyo;
protected int codigo;
public ArrayList musicas;
/**
* Constructor
*/
Musica(String grupo,int capacidad,int cod,int anyo){
this.setGrupo(grupo);
this.setCapacidad(capacidad);
this.setCodigo(cod);
this.setAnyo(anyo);
}
/**
*
* @param grupo es el grupo de música
*/
public void setGrupo(String grupo) {
this.grupo = grupo;
}
/**
*
* @return devuelve el nombre del grupo
*/
public String getGrupo() {
return grupo;
}
/**
*
* @param capacidad es la capacidad que se le pasa
*/
public void setCapacidad(int capacidad) {
this.capacidad = capacidad;
}
/**
*
* @return devuelve la capacidad es decir 590 mb,1gbyte,etc...
*/
public int getCapacidad() {
return capacidad;
}
/**
*
* @param anyo es el año en el que se creó la música
*/
public void setAnyo(int anyo) {
this.anyo = anyo;
}
/**
*
* @return devuelve el año en el se creó la música
*/
public int getAnyo() {
return anyo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public int getCodigo() {
return codigo;
}
/**
* MÈtodo que usaremos para leer el nombre de la musica que
* existen en el fichero "musica.dat"
*/
public void leerMusica(){
File music = new File("musica.dat");
String nombreMusica = null;
try {
FileInputStream fis = new FileInputStream(music);
try {
DataInputStream ois = new DataInputStream(fis);
boolean siFinLec = false;
try {
while(true) {
nombreMusica = ois.readUTF();
if (siFinLec) break;
musicas.add(new Musica(grupo,capacidad,codigo,anyo));
veo que no se ha copiado completamente.Copio los dos últimos metodos de leer y escribir ^^
/**
* MÈtodo que usaremos para leer el nombre de la musica que
* existen en el fichero "musica.dat"
*/
public void leerMusica(){
File music = new File("musica.dat");
String nombreMusica = null;
try {
FileInputStream fis = new FileInputStream(music);
try {
DataInputStream ois = new DataInputStream(fis);
boolean siFinLec = false;
try {
while(true) {
nombreMusica = ois.readUTF();
if (siFinLec) break;
musicas.add(new Musica(grupo,capacidad,codigo,anyo));
}//while
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (EOFException e) {
siFinLec = true;
} finally {
ois.close();
fis.close();
System.out.println("Lectura completada con Èxito: " +
music.length() + " bytes.");
}//finally
} catch(IOException e) {
System.out.println("ERROR de lecutra "+e.getMessage());
}//try
} catch(FileNotFoundException e) {
System.out.println("ERROR: Fichero no encontrado "+e.getMessage());
}//try
}//leerMusica
/**
* MÈtodo con el cual guardaremos el nombre de todos las músicas generados
* en el fichero "musica.dat"
*/
public static void grabarMusica() {
File music = new File("musica.dat");
if (music.exists())
System.out.println("Has sobreescrito el fichero.");
try {
music.createNewFile();
FileOutputStream foseqF = new FileOutputStream(music);
DataOutputStream ooseqF = new DataOutputStream(foseqF);
for (Iterator it = musicas.iterator(); it.hasNext();) {
Musica music1 = (Musica) it.next();
ooseqF.writeUTF(music1.getGrupo());
}//for
ooseqF.close();
foseqF.close();
System.out.println("Escritura completada con Èxito");
System.out.println("musica.dat " +music.length() +
" bytes.");
} catch(IOException e) {
System.out.println("ERROR al intentar escribir en el fichero ... " +
e.getMessage());
}//try
System.out.print("n");
}//grabarEquipos
}
/**
* MÈtodo que usaremos para leer el nombre de la musica que
* existen en el fichero "musica.dat"
*/
public void leerMusica(){
File music = new File("musica.dat");
String nombreMusica = null;
try {
FileInputStream fis = new FileInputStream(music);
try {
DataInputStream ois = new DataInputStream(fis);
boolean siFinLec = false;
try {
while(true) {
nombreMusica = ois.readUTF();
if (siFinLec) break;
musicas.add(new Musica(grupo,capacidad,codigo,anyo));
}//while
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (EOFException e) {
siFinLec = true;
} finally {
ois.close();
fis.close();
System.out.println("Lectura completada con Èxito: " +
music.length() + " bytes.");
}//finally
} catch(IOException e) {
System.out.println("ERROR de lecutra "+e.getMessage());
}//try
} catch(FileNotFoundException e) {
System.out.println("ERROR: Fichero no encontrado "+e.getMessage());
}//try
}//leerMusica
/**
* MÈtodo con el cual guardaremos el nombre de todos las músicas generados
* en el fichero "musica.dat"
*/
public static void grabarMusica() {
File music = new File("musica.dat");
if (music.exists())
System.out.println("Has sobreescrito el fichero.");
try {
music.createNewFile();
FileOutputStream foseqF = new FileOutputStream(music);
DataOutputStream ooseqF = new DataOutputStream(foseqF);
for (Iterator it = musicas.iterator(); it.hasNext();) {
Musica music1 = (Musica) it.next();
ooseqF.writeUTF(music1.getGrupo());
}//for
ooseqF.close();
foseqF.close();
System.out.println("Escritura completada con Èxito");
System.out.println("musica.dat " +music.length() +
" bytes.");
} catch(IOException e) {
System.out.println("ERROR al intentar escribir en el fichero ... " +
e.getMessage());
}//try
System.out.print("n");
}//grabarEquipos
}
Hola Laura...
Tengo que hacer el mismo ejercicio veo que estas muy avanzada en el desarrollo del mismo..
Copié el código en eclipse y me dio varios errores el principal y que no deja correr el programa es:
public static void main(String[] args){
el cual creo que no está...
Tengo que hacer el mismo ejercicio veo que estas muy avanzada en el desarrollo del mismo..
Copié el código en eclipse y me dio varios errores el principal y que no deja correr el programa es:
public static void main(String[] args){
el cual creo que no está...