|
A ver, no suelo resolver problemas enteros sino que prefiero ayudar con problemas concretos y que la gente intente antes hacer las cosas, pero haré una excepción ya que estás bastante perdido.
Lo principal es que intentes entender cómo se hace, antes de preguntar. Te he comentado el código para ayudarte. Lo he hecho completo (una clase interna, colecciones, etc...), para que veas las posibilidades, aunque podía haberse hecho más sencillo, pero ya lo dejo a tu elección.
Repito, intenta entender cómo funciona antes de pedir más explicaciones.
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.Scanner;
public class catalogoCompras {
// Clase para los articulos. Debería ir fuera, pero así queda solo un archivo
public class Articulo{
private String nombre=null;
private float costo=0;
private int Cantidad=0;
public int getCantidad() {
return Cantidad;
}
public void setCantidad(int cantidad) {
Cantidad = cantidad;
}
public float getCosto() {
return costo;
}
public void setCosto(float costo) {
this.costo = costo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
//Metodo que pide los datos y devuelve un Articulo
private static Articulo pedirArticulo(Scanner scanner){
catalogoCompras compras = new catalogoCompras();
Articulo articulo = compras.new Articulo();
System.out.println("Ingrese Nombre del Articulo: ");
String nombre = scanner.next();
System.out.println("Ingrese Costo: ");
int costo = scanner.nextInt();
System.out.println("Ingrese Cantidad: ");
int cantidad = scanner.nextInt();
articulo.setCantidad(cantidad);
articulo.setCosto(costo);
articulo.setNombre(nombre);
return articulo;
}
//Metodo principal
public static void main( String[] args) {
Scanner scanner;
scanner = new Scanner(System.in);
int articulosNumero=1;
//Coleccion donde metermos los articulos
Collection<Articulo> articulos = new ArrayList<Articulo>();
//Siempre pedimos el primero
Articulo articulo = pedirArticulo(scanner);
//Se añade a la coleccion
articulos.add(articulo);
//Pedimos otro
System.out.println("Desea Agregar Mas Articulos: ");
String sn = scanner.next();
// Si la respuesta contiene una "S" o "s" es SI
if (sn.toLowerCase().indexOf("s")!=-1 ) {
articulosNumero++;
articulos.add(pedirArticulo(scanner));
//Pedimos el tercero
System.out.println("Desea Agregar Mas Articulos: ");
sn = scanner.next();
if (sn.toLowerCase().indexOf("s")!=-1 ) {
articulosNumero++;
articulos.add(pedirArticulo(scanner));
}
}
System.out.println("Articulos introducidos: "+articulosNumero);
// Iteramos la coleccion
Iterator<Articulo> iterator= articulos.iterator();
float costoTotal=0;
// No podemos usar bucles. Pero sabemos que el máximo son 3
if (iterator.hasNext()){
Articulo articulo2 = (Articulo)iterator.next();
costoTotal+=articulo2.getCantidad()*articulo2.getCosto();
}
if (iterator.hasNext()){
Articulo articulo2 = (Articulo)iterator.next();
costoTotal+=articulo2.getCantidad()*articulo2.getCosto();
}
if (iterator.hasNext()){
Articulo articulo2 = (Articulo)iterator.next();
costoTotal+=articulo2.getCantidad()*articulo2.getCosto();
}
System.out.println("Costo total: "+costoTotal);
}
}
Que no sirva de precedente, no voy a resolver problemas completos.
Saludos
|