Member 13769336 Ответов: 1

Как я могу изменить свою программу C#, чтобы использовать массивы для хранения фамилий, разрешенных инициалов и накопленной стоимости продаж?


Я новичок в работе с массивами и не понимаю, как изменить мою текущую программу, чтобы использовать массивы для хранения фамилий, разрешенных инициалов и накопленных значений продаж. Цель программы-рассчитать стоимость ежегодной гаражной распродажи каждой семьи. Это то, что у меня есть до сих пор.

static void Main(string[] args)
        {
            double familyA = 0;
            double familyB = 0;
            double familyC = 0;
            double grandTotal = 0;
            double saleAmount = 0;
            string familyInitial;
            double inputSale;
            Console.Write("Enter your family initial A, B, or C: ");
            familyInitial = Console.ReadLine();
            Console.Write("Enter sale amount $");
            inputSale = Convert.ToDouble(Console.ReadLine());
            saleAmount = Convert.ToDouble(inputSale);

            while (true)
            {

                if (familyInitial == "A" || familyInitial == "a")
                {
                    familyA += saleAmount;

                }
                else if (familyInitial == "B" || familyInitial == "b")
                {
                    familyB += saleAmount;

                }
                else if (familyInitial == "C" || familyInitial == "c")
                {
                    familyC += saleAmount;
                }

                grandTotal = grandTotal + inputSale;
                Console.Write("Enter your family initial A, B, or C(Z to exit): ");
                familyInitial = Console.ReadLine();

                if (familyInitial == "Z" || familyInitial == "z")
                {
                    break;
                }
                Console.Write("Enter sale amount $");
                inputSale = Convert.ToDouble(Console.ReadLine());
                saleAmount = Convert.ToDouble(inputSale);
            }

            Console.WriteLine("Family A: {0}", familyA);
            Console.WriteLine("Family B: {0}", familyB);
            Console.WriteLine("Family C: {0}", familyC);
            Console.WriteLine("Your Grand Total: {0} ", grandTotal);
        }

    }
}


Что я уже пробовал:

В основном то, что я перечислил выше. Извините, если это глупый вопрос. Я действительно не понимаю, что делаю.

1 Ответов

Рейтинг:
6

OriginalGriff

Начните с изменения вопроса. Вместо этого подумайте: "как я могу хранить семью и связанную с ней информацию, и как я могу хранить кратные им?"

Когда вы задаете вопрос таким образом, он перестает быть о деталях реализации и становится о данных и о том, как вы манипулируете ими - вот где блистают языки OOPs, такие как C#.

Вместо того чтобы хранить каждый бит информации отдельно в нескольких массивах, сгруппируйте его вместе в класс:

public class Family
   {
   public string Name { get; set; }
   public string Initials { get; set; }
   public double Sales { get; set; }
   public Family (string name, string initials, double sales)
      {
      Name = name;
      Initials = initials;
      Sales = sales;
      }
   }
И тогда вы можете использовать массив семейных объектов:
Family[] families = new Family[100];
...
families[0] = new Family("Jones", "M", 1024.67);
families[1] = new Family("Smith", "J", 2048.00);
Он чище, с ним легче работать и гораздо больше соответствует концепциям OOPs.