Проблема с C# и передачей методов в массивы
Я беру введение в программирование, которое так ново для него. Я изучаю C# и пишу программу, которая использует массивы и методы, и у меня есть проблема.
Предполагается, что программа запрашивает меню, которое создает нового пользователя, а затем запрашивает номер(продажи), удаляет пользователя, очищает массив, перечисляет пользователя. Существует также ставка комиссии, которая при вводе определенного числа (продажи) умножается на процент и отображает это число как комиссию. В списке он также должен объединить все продажи в Объединенное число, а также комиссию рядом с ним. Вот что у меня есть до сих пор. У меня возникли проблемы с передачей метода массива, как видно в ближайшем нижнем углу.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CPSC1012_CP3_FarkasdiJonah { class Program { static void Main(string[] args) { double placeholder1 = 0, placeholder2 = 0; char menuchoice; const int max_salepersons = 11; int salespersons = 0; string[] salespersonsName = new string[max_salepersons]; double[] sales = new double[max_salepersons]; double[] salepersonsCom = new double[max_salepersons]; do { Console.WriteLine("Sales Commissions Calculator - Main Menu\n"); Console.WriteLine("Select an option:" + "\n 1 - Add Sales" + "\n 2 - Remove Sales" + "\n 3 - Clear Data" + "\n 4 - Display Sales and Commissions" + "\n 5 - Exit"); Console.Write("Option: "); menuchoice = char.Parse(Console.ReadLine()); switch (menuchoice) { case '1': { if (salespersons < max_salepersons) { salespersonsName[salespersons] = GetValidName("Enter the player name: "); if (salespersonsName[salespersons].Equals(salespersonsName)) { Console.WriteLine("That name is already registered"); } else { sales[salespersons] = GetSafeDecimal("Enter their sales: "); Console.WriteLine("PlayerName: {0}, PlayerNumber: {1} was added", salespersonsName[salespersons], sales[salespersons]); salespersons++; } } else { Console.WriteLine("The list is full"); } Console.Clear(); break; } case '2': { Console.Clear(); break; } case '3': { Console.Clear(); break; } case '4': { Console.WriteLine("------------------- Sales & Commissions Data -------------------\n"); Console.WriteLine("Sales Person Sales Commission"); Console.WriteLine("----------------------------------------------------------------"); DisplayData(salespersonsName, sales, salepersonsCom, ref salespersons); Console.WriteLine("----------------------------------------------------------------"); Console.WriteLine("{0,30}{1,14:c}{2,12:c}", "Totals:", placeholder1, placeholder2); Console.Write(""); ConsoleKeyInfo key = Console.ReadKey(); if (key.Key.Equals(ConsoleKey.Enter)) { Console.Clear(); } else { Console.Clear(); } break; } case '5': { Console.WriteLine("\nThanks for using the Sales Commissions Calculator ... come again soon"); Console.Write(""); ConsoleKeyInfo key = Console.ReadKey(); Environment.Exit(0); break; } } } while (menuchoice != 5); Console.ReadLine(); } static string GetValidName(string prompt) { string validname; Console.WriteLine(prompt); validname = Console.ReadLine(); while (string.IsNullOrEmpty(validname)) { Console.WriteLine("ERROR: Please enter a valid name", prompt); validname = Console.ReadLine(); } return validname; } static double GetSafeDecimal(string prompt) { string checkifsafedecimal; double validdecimal; Console.WriteLine(prompt); checkifsafedecimal = Console.ReadLine(); while (!double.TryParse(checkifsafedecimal, out validdecimal) || validdecimal < 0) { Console.WriteLine("ERROR: Please enter a valid sales number {0}", prompt); checkifsafedecimal = Console.ReadLine(); } return validdecimal; } static double CalculateCommission(double sales, ref int salespersons, double[] salepersonsCom) { if (sales > 200000) { salepersonsCom[salespersons] = 0.07; } else if(sales > 125000) { salepersonsCom[salespersons] = 0.06; } else if(sales > 50000) { salepersonsCom[salespersons] = 0.05; } else if(sales < 50000) { salepersonsCom[salespersons] = 0.04; } else if(sales == 0) { salepersonsCom[salespersons] = 0; } salepersonsCom[salespersons] = (salepersonsCom[salespersons] * sales); return salepersonsCom[salespersons]; } //static double CalculateTotalSales(params…) //{ //} //static double CalculateTotalCommissions(params…) //{ //} static void DisplayData(string[] salespersonsName, double[] sales, double[] salepersonsCom, ref int salespersons) { Console.Clear(); if (salespersons > 0) { for (int index = 0; index < salespersons; index++) { Console.WriteLine("------------------- Sales & Commissions Data -------------------\n"); Console.WriteLine("Sales Person Sales Commission"); Console.WriteLine("----------------------------------------------------------------"); Console.WriteLine("{0,0}{1,14:c}{2,12:c}", salespersonsName[index], sales[index], CalculateCommission(salepersonsCom[salespersons])[index]); Console.WriteLine("----------------------------------------------------------------"); Console.WriteLine("{0,30}", "Totals:"); } } else { Console.WriteLine("------------------- Sales & Commissions Data -------------------\n"); Console.WriteLine("Sales Person Sales Commission"); Console.WriteLine("----------------------------------------------------------------"); } } } }
Что я уже пробовал:
угадывание, видео на youtube, веб-сайты
David_Wimbley
Вы должны конкретно указать, где находится ваша проблема и каков ваш ожидаемый результат. Прямо сейчас вы просите людей угадать, где находится ваша проблема и какой вы ожидаете результат.
Gerry Schmitz
Вам не нужно печатать все эти "-" и пробелы. Вы можете "прокладывать влево / вправо" с определенным символом до определенной длины; например
"".PadRight( 40, '-' );
"Продажи".Навесной руль( 30 );