读取txt文件,拆分字符串然后写入txt文件

时间:2016-10-25 06:53:41

标签: c# c#-2.0

我有一个文本文件叫杂货。其中包含类似于以下内容的文本:

regular,cereal,4.00,1;
fresh,rump steak,11.99,0.8;

下面的代码是尝试读取文本文件,拆分字符串然后写入名为invoice的文本文件。 发票文本文件应该读取杂货文件中的读取行,列出它是否是" fresh"或"常规"杂货。如果应用常规GST,则不应用新鲜GST。计算新鲜重量和常规数量的成本,然后显示列出的项目的总成本。 任何帮助将不胜感激。

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");
            File.WriteAllLines("Invoice.txt", invoices.ToArray());

            List<string> invoices = new List<string>();
            FreshGrocery freshGrocery = new FreshGrocery();
            freshGrocery.Name = "fresh";
            freshGrocery.Price = 30;
            freshGrocery.Weight = 0.5;
            Grocery grocery = new Grocery();
            grocery.Name = "regular";
            grocery.Price = 50;
            grocery.Quantity = 2;

            double price = price.Calculate();

            int counter = 0;
             foreach (var grocery2 in groceries)
             {
                counter++;
                invoices.Add(counter + "," + grocery + price+Quantity+"," + DateTime.Now.Date);
             }
                 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;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

尝试类似的东西

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

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 + "," + DateTime.Now.Date);
                }
                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 + "," + DateTime.Now.Date);
                }
            }

            File.WriteAllLines("Invoice.txt", invoices.ToArray());
        }

        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;
            }
        }
    }
}