2016-10-29 10 views
-1

テキストファイル内のすべてのアイテムの合計を作成するには、以下の太字のアイテムをどのように計算すればよいですか? invoices.Add(counter + "、" + freshGrocery.Name + "、" + freshGrocery.Price + "、" + freshGrocery.Weight); invoices.Add(counter + "、" + grocery.Name + "、" + price "、" + grocery.Quantity);テキストファイルに計算して書き込む方法

以下の完全なコード。あなたがする探しているすべての文字列に変換する場合には異なる文字列

using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.IO; 

    namespace Groceries3 
    { 
class Program 
{ 
    static void Main(string[] args) 
    { 
     string[] groceries = File.ReadAllLines("Groceries.txt"); 
     List<string> invoices = new List<string>(); 

     int counter = 0; 
     foreach (var grocery2 in groceries) 
     { 
      counter++; 
      var list = grocery2.Split(','); 
      if (list[0].Equals("fresh")) 
      { 
       FreshGrocery freshGrocery = new FreshGrocery(); 
       freshGrocery.Name = list[1]; 
       freshGrocery.Price = double.Parse(list[2]); 
       freshGrocery.Weight = double.Parse(list[3].Replace(";", "")); 

       invoices.Add(counter + "," + freshGrocery.Name + "," + freshGrocery.Price + "," + freshGrocery.Weight); 
      } 
      else if (list[0].Equals("regular")) 
      { 
       Grocery grocery = new Grocery(); 
       grocery.Name = list[1]; 
       grocery.Price = double.Parse(list[2]); 
       grocery.Quantity = int.Parse(list[3].Replace(";", "")); 

       double price = grocery.Calculate(); 
       invoices.Add(counter + "," + grocery.Name + "," + price + "," + grocery.Quantity); 
      } 

     } 
     File.WriteAllLines("Invoice.txt", invoices.ToArray()); 
     { 
      File.AppendAllText("Invoice.txt", string.Format("{0}{1}", "Groceries for you" + " " + DateTime.Now, Environment.NewLine)); 
      File.AppendAllText("Invoice.txt", string.Format("{0}{1}", "Total of all groceries = ", Environment.NewLine)); 
     } 
    } 

    abstract class GroceryItem 
    { 
     private string name; 
     private double price = 0; 

     public string Name 
     { 
      get 
      { 
       return name; 
      } 
      set 
      { 
       name = value; 
      } 
     } 
     public double Price 
     { 
      get 
      { 
       return price; 
      } 
      set 
      { 
       price = value; 
      } 
     } 
     public abstract double Calculate(); 
    } 

    class FreshGrocery : GroceryItem 
    { 
     private double weight = 0; 
     public double Weight 
     { 
      get 
      { 
       return weight; 
      } 
      set 
      { 
       weight = value; 
      } 
     } 
     public override double Calculate() 
     { 
      return this.Price * this.weight; 
     } 
    } 

    class Grocery : GroceryItem 
    { 
     private int quantity = 0; 
     private double gst = 10; 

     public int Quantity 
     { 
      get 
      { 
       return quantity; 
      } 
      set 
      { 
       quantity = value; 
      } 
     } 
     public override double Calculate() 
     { 
      double calculatedPrice = this.Price * this.Quantity; 
      if (calculatedPrice < 0) 
      { 
       calculatedPrice += calculatedPrice * (gst/100); 
      } 
      return calculatedPrice; 
     } 
    } 
    class ShoppingCart 
    { 
     private List<GroceryItem> orders; 

     public List<GroceryItem> Orders 
     { 
      get 
      { 
       return orders; 
      } 
      set 
      { 
       orders = value; 
      } 
     } 
     public double Calculate() 
     { 
      double price = 0; 
      if (this.Orders != null) 
      { 
       foreach (GroceryItem order in this.Orders) 
       { 
        price += order.Calculate(); 
       } 
      } 
      return price; 
     } 
    } 
} 

}

+0

をもあなたの問題を再現するために使用することができGroceries.txtのコンテンツを投稿してください。 –

+1

臭い宿題 – Benj

+1

書く前に計算する必要があります – Jim

答えて

0

からint型を追加する方法がわからない場合は、String.Formatの()を使用します。 string.Format()は、文字列がどのように表示されるかを指定する文字列引数を取ります。ここで、角かっこは後続の引数のプレースホルダです。その後、それぞれの引数に対して.ToString()を呼び出します。

invoices.Add(string.Format("{0},{1},{2},{3}", 
    counter, freshGrocery.Name, freshGrocery.Price, freshGrocery.Weight)); 

上記は、以下のものと同じですが、読みやすくするために:

invoices.Add(counter + "," + freshGrocery.Name.ToString() + "," + 
    freshGrocery.Price.ToString() + "," + freshGrocery.Weight.ToString()); 
関連する問題