2016-06-27 11 views
-1

私はクラスのためのJavaプロジェクトをやっているので、私はこれに固執しています。私は別の製品を購入するための2つのオプション、カートに商品を追加するための1つのオプション、テキストファイルにカートを保存するための最後のメニューを持つショッピングカートをシミュレートするプログラムを実行する必要がありました。プログラムはテキストファイルを作成しています。 (また、何らかの理由で、私はオプション2に行くと、それは重複を書き込み、アレイに保存するときに)固定、まだjavaのファイルにarraylistを書き込む

package pack; 
import java.util.*; 
import java.io.*; 
public class Main { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     int op=0,codigo,garantia,tipo=0; 
     double precio; 
     String nombre,fecha; 
     Alimento ali=null; 
     Electronicos ele=null; 
     Changuito cmp = new Changuito(); 
     FileWriter archivo=null; 

     Scanner obj =new Scanner(System.in); 
     System.out.println("Ingrese Que desea hacer"); 
     System.out.println("======================="); 
     System.out.println("1-Tomar Producto Alimento"); 
     System.out.println("2-Tomar Producto Electronico");; 
     System.out.println("4-Grabar en Archivo"); 
     op=obj.nextInt(); 
     while (op!=0){ 

       switch (op){ 

        case 1: 
         ali=null; 
         System.out.println("Ingrece Precio: "); 
         precio=obj.nextDouble(); 
         System.out.println("Ingrese Codigo"); 
         codigo=obj.nextInt(); 
         System.out.println("Ingrese Nombre"); 
         nombre=obj.next(); 
         System.out.println("Ingrese Fecha:"); 
         fecha=obj.next(); 
         ali = new Alimento(codigo,precio,nombre,fecha); 
         tipo=1; 
        break; 
        case 2: 
         ele=null; 
         System.out.println("Ingrece Precio: "); 
         precio=obj.nextDouble(); 
         System.out.println("Ingrese Codigo"); 
         codigo=obj.nextInt(); 
         System.out.println("Ingrese Nombre"); 
         nombre=obj.next(); 
         System.out.println("Ingrese Garantia:"); 
         garantia=obj.nextInt(); 
         ele = new Electronicos(codigo,precio,nombre,garantia); 
         tipo=2; 
         break; 
        case 3: 
         if (tipo==1){ 
          cmp.cargararray(ali); 

         } 
         if (tipo==2){ 
          cmp.cargararray(ele); 


         } 
         break; 
        case 4: 
         Changuito c = new Changuito(); 
         c.grabararchivo(); 
         break; 
         default: 
         break; 
       } 

       System.out.println("Ingrese Que desea hacer"); 
       System.out.println("======================="); 
       System.out.println("1-Tomar Producto Alimento"); 
       System.out.println("2-Tomar Producto Electronico"); 
       System.out.println("3-Agregar El ultimo Producto que Ingreso Al changuito"); 
       System.out.println("4-Grabar en Archivo"); 
       op=obj.nextInt(); 

     } 
     cmp.mostrararray(); 

    } 

} 

を書いていないし、私はこれでカートのクラスがあります。

package pack; 
import java.io.*; 
import java.util.*; 

public class Changuito { 
    FileWriter archivo=null; 
    PrintWriter pw=null; 
    private ArrayList <Productos> vec; 

    public Changuito() { 
     super(); 
     vec = new ArrayList<Productos>(); 
    } 

    public ArrayList<Productos> getVec() { 
     return vec; 
    } 

    public void setVec(ArrayList<Productos> vec) { 
     this.vec = vec; 
    } 
    public void cargararray(Productos obj){ 
     vec.add(obj); 
    } 
    public void mostrararray(){ 
     for (Productos cmp:vec){ 
       System.out.println("Nombre: " +cmp.nombre); 
       System.out.println("Codigo: " +cmp.codigo); 
       System.out.println("Precio: " +cmp.precio); 
       if (cmp instanceof Alimento){ 
        System.out.println("Fecha: " +((Alimento) cmp).fecha); 
       } 
       if (cmp instanceof Electronicos){ 
        System.out.println("Garantia: " +((Electronicos)cmp).garantia); 
       } 
      } 
     } 
    public void grabararchivo(){ 
     try{ 
      archivo = new FileWriter("D:\\archivo.txt"); 
      pw= new PrintWriter (archivo); 
      for (Productos cmp:vec){ 
       pw.println(cmp.nombre); 
       pw.println(cmp.codigo); 
       pw.println(cmp.precio); 
       } 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 
     finally{ 
      try{ 
       if (archivo !=null) 
        archivo.close(); 
      } 
      catch(Exception e2){ 
       e2.printStackTrace(); 
      } 
     } 
    } 
} 
+2

ヒント: 'break' ... –

答えて

1

をあなたは休憩していません。あなたの2番目と3番目のケースの終わりに

   case 2: 
        ele=null; 
        System.out.println("Ingrece Precio: "); 
        precio=obj.nextDouble(); 
        System.out.println("Ingrese Codigo"); 
        codigo=obj.nextInt(); 
        System.out.println("Ingrese Nombre"); 
        nombre=obj.next(); 
        System.out.println("Ingrese Garantia:"); 
        garantia=obj.nextInt(); 
        ele = new Electronicos(codigo,precio,nombre,garantia); 
        tipo=2; 
        break; //missing this 
       case 3: 
+0

はまだそれは重複を書き込み、またはまったく書き込みません – Nycoh

+0

を書いていない配列内の重複を固定? – AWT

+0

txtファイル内のdosentの書き込みはすべて重複が解決されます – Nycoh

関連する問題