2017-07-16 2 views
0

ここで新しい人は私の問題を支援する必要があります!ループから以前のユーザー入力データを印刷する必要があるのは、ユーザーが最後に入力したデータが印刷されるということです。私の心が暗くなっていく光をあてにしてください。皆さん、お返事いただきありがとうございます。ありがとうございました! 私のプログラム:(申し訳ありませんが、それはだ場合は嫌なAF)援助が必要です!ループから以前のユーザー入力データを印刷する

package activity2; 

import java.util.Scanner; 
public class Activity2 { 


    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     String[] name = {"Milk","Juice","Energy drink","Water","Softdrink","Beer","Wine","Coffee"}; 
     int[] pnum = {0,1,2,3,4,5,6,7}; 
     double[] price = {300,100,220,120,200,350,400,130}; 
     String[] list = {"Enter product #: ","Enter quantity: ","Sub-total: "}; 
     double sum=0,q=0,v,s; 
     int sum2=0, w; 
     String z = ""; 
     int x,c = 0; 
     System.out.println("   Product Information"); 
     System.out.println("------------------------------------------"); 
     System.out.println("Name      Price"); 
     System.out.println("------------------------------------------"); 
     System.out.println(pnum[0]+"."+name[0]+"       "+price[0]); 
     System.out.println(pnum[1]+"."+name[1]+"      "+price[1]); 
     System.out.println(pnum[2]+"."+name[2]+"     "+price[2]); 
     System.out.println(pnum[3]+"."+name[3]+"      "+price[3]); 
     System.out.println(pnum[4]+"."+name[4]+"     "+price[4]); 
     System.out.println(pnum[5]+"."+name[5]+"       "+price[5]); 
     System.out.println(pnum[6]+"."+name[6]+"       "+price[6]); 
     System.out.println(pnum[7]+"."+name[7]+"      "+price[7]); 
     System.out.println("------------------------------------------"); 
     do{ 
     System.out.print("Enter number of products: "); 
     int a = sc.nextInt(); 

     for (x=0;x<a;x++){ 

      System.out.print(list[0]); 
      w = sc.nextInt(); 
      sum2 =w; 
      System.out.print(list[1]); 
      s = sc.nextDouble(); 
      q = s * price[w]; 
      System.out.println(list[2]+q); 
      sum +=q; 

     } 
     System.out.println("Total: " + sum); 
     System.out.print("Do you want another transaction?(y/n):"); 
     z = sc.next(); 
     x = a; 
     v = q; 
     System.out.println("Transaction Details"); 
     for(int t=0; t<x; t++){ 
     System.out.println(pnum[sum2]+"."+name[sum2]+"---------"+v); 
       } 
     System.out.println("TOTAL: " + sum); 
     System.out.print("Enter cash amount: "); 
     double i = sc.nextDouble(); 
     if(sum>i){ 
      System.out.println("Cash is insuffecient! Please try again:"); 
      System.out.print("Enter cash amount: "); 
      i = sc.nextDouble(); 
     } 
     double tc = i - sum; 
     System.out.print("Cash change"+tc); 
     } 
     while(z.equals("y")); 


    } 
} 

答えて

0

一つのアプローチは、StringBuilderを使用することです。

(リンクから以下の直接の引用)

「のStringBuilderオブジェクトは内部的には、これらのオブジェクトが文字の配列を含む可変長配列のように扱われている。それらは変更可能であることを除いて、文字列オブジェクトのようです。どの時点でも、シーケンスの長さと内容はメソッドの呼び出しによって変更できます。

StringBuilderを使用してデータを保存し、すべてを一度にすべて印刷できます。これで人生も少し楽になります;-)

public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 
     String[] name = {"Milk","Juice","Energy drink","Water","Softdrink","Beer","Wine","Coffee"}; 
     int[] pnum = {0,1,2,3,4,5,6,7}; 
     double[] price = {300,100,220,120,200,350,400,130}; 
     String[] list = {"Enter product #: ","Enter quantity: ","Sub-total: "}; 
     double sum=0,q=0,v,s; 
     int sum2=0, w; 
     String z = ""; 
     int x,c = 0; 
     System.out.println("   Product Information"); 
     System.out.println("------------------------------------------"); 
     System.out.println("Name      Price"); 
     System.out.println("------------------------------------------"); 
     System.out.println(pnum[0]+"."+name[0]+"       "+price[0]); 
     System.out.println(pnum[1]+"."+name[1]+"      "+price[1]); 
     System.out.println(pnum[2]+"."+name[2]+"     "+price[2]); 
     System.out.println(pnum[3]+"."+name[3]+"      "+price[3]); 
     System.out.println(pnum[4]+"."+name[4]+"     "+price[4]); 
     System.out.println(pnum[5]+"."+name[5]+"       "+price[5]); 
     System.out.println(pnum[6]+"."+name[6]+"       "+price[6]); 
     System.out.println(pnum[7]+"."+name[7]+"      "+price[7]); 
     System.out.println("------------------------------------------"); 
     do{ 
     System.out.print("Enter number of products: "); 
     int a = sc.nextInt(); 

     StringBuilder sb = new StringBuilder(); 
     for (x=0;x<a;x++) { 

      System.out.print(list[0]); 
      w = sc.nextInt(); 
      sum2 =w; 
      System.out.print(list[1]); 
      s = sc.nextDouble(); 
      q = s * price[w]; 
      System.out.println(list[2]+q); 
      sb.append(pnum[sum2]+"."+name[sum2]+"---------"+q + "\n"); 
      sum +=q; 

     } 
     System.out.println("Total: " + sum); 
     System.out.print("Do you want another transaction?(y/n):"); 
     z = sc.next(); 
     x = a; 
     v = q; 
     System.out.println("Transaction Details"); 
     System.out.println(sb); 
     System.out.println("TOTAL: " + sum); 
     System.out.print("Enter cash amount: "); 
     double i = sc.nextDouble(); 
     if(sum>i){ 
      System.out.println("Cash is insuffecient! Please try again:"); 
      System.out.print("Enter cash amount: "); 
      i = sc.nextDouble(); 
     } 
     double tc = i - sum; 
     System.out.print("Cash change"+tc); 
     } 
     while(z.equals("y")); 


    } 

これはあなたが探している出力を提供します。

+0

ありがとう。出来た!私はstringbuilderにまだ取り組んでいないので、私はそれを読むでしょう。ありがとうございました。 :) – JustaUser69

+0

@ JustaUser69この回答があなたに最も便利だったら受け入れてください。チェックマークを付けて承認します。お役に立てて嬉しいです! – CodingNinja

0

問題は、各エントリを保存していないということです。最後に印刷したい場合は、これを行う必要があります。私はあなたが何をしようとしているのか正確には分かっていませんが、トランザクションの詳細を印刷できるようにするためには、少なくともあなたに何をする必要があるのか​​を知る必要があります。また、変数の名前をもっと良くする必要があります。

import java.util.Scanner; 

public class Activity2 { 
public static void main(String[] args) { 
    Scanner sc = new Scanner(System.in); 
    String[] name = {"Milk","Juice","Energy drink","Water","Softdrink","Beer","Wine","Coffee"}; 
    int[] pnum = {0,1,2,3,4,5,6,7}; 
    double[] price = {300,100,220,120,200,350,400,130}; 
    String[] list = {"Enter product #: ","Enter quantity: ","Sub-total: "}; 
    double sum=0,q=0,v,s; 
    int sum2=0, w; 
    String z = ""; 
    int x,c = 0; 
    System.out.println("   Product Information"); 
    System.out.println("------------------------------------------"); 
    System.out.println("Name      Price"); 
    System.out.println("------------------------------------------"); 
    System.out.println(pnum[0]+"."+name[0]+"       "+price[0]); 
    System.out.println(pnum[1]+"."+name[1]+"      "+price[1]); 
    System.out.println(pnum[2]+"."+name[2]+"     "+price[2]); 
    System.out.println(pnum[3]+"."+name[3]+"      "+price[3]); 
    System.out.println(pnum[4]+"."+name[4]+"     "+price[4]); 
    System.out.println(pnum[5]+"."+name[5]+"       "+price[5]); 
    System.out.println(pnum[6]+"."+name[6]+"       "+price[6]); 
    System.out.println(pnum[7]+"."+name[7]+"      "+price[7]); 
    System.out.println("------------------------------------------"); 
    do{ 
    System.out.print("Enter number of products: "); 
    int a = sc.nextInt(); 
    int[] productNum = new int[a]; 
    String[] products = new String[a]; 
    double[] prices = new double[a]; 
    for (x=0;x<a;x++){ 

     System.out.print(list[0]); 
     w = sc.nextInt(); 
     sum2 =w; 
     System.out.print(list[1]); 
     s = sc.nextDouble(); 
     q = s * price[w]; 
     System.out.println(list[2]+q); 
     sum +=q; 
     productNum[x] = w; 
     products[x] = name[w]; 
     prices[x] = q; 

    } 
    System.out.println("Total: " + sum); 
    System.out.print("Do you want another transaction?(y/n):"); 
    z = sc.next(); 
    x = a; 
    v = q; 
    System.out.println("Transaction Details"); 
    for(int t=0; t<x; t++){ 
    System.out.println(productNum[t]+"."+products[t]+"---------"+prices[t]); 
      } 
    System.out.println("TOTAL: " + sum); 
    System.out.print("Enter cash amount: "); 
    double i = sc.nextDouble(); 
    if(sum>i){ 
     System.out.println("Cash is insuffecient! Please try again:"); 
     System.out.print("Enter cash amount: "); 
     i = sc.nextDouble(); 
    } 
    double tc = i - sum; 
    System.out.print("Cash change"+tc); 
    } 
    while(z.equals("y")); 


    } 
} 
+0

ええ私は実際にこれをしました。私の変数名はうんざりしています。私は完全に間違った印刷の変数をたくさん持っていました。私はこのメソッドを破棄しました。 xDに感謝の男。 – JustaUser69

関連する問題