Click here to Skip to main content
15,893,381 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am taking an intro to programming so very new to it. I am learning C# and writing a program that utilizes arrays and methods and I am having an issue with.
The program is supposed to prompt a menu that, creates a new user and then asks for a number(sales), delete a user, clears the array, lists the user. Theres also a commission rate that when a specific number is entered (sales) it times by a percentage and displays that number as commission. In the list it is also to compile all sales into a combined number as well as commission beside it. Heres what i have so far. I am having troubles passing a method an array as seen in the near bottom.

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("----------------------------------------------------------------");
            }
        }
    }
}


What I have tried:

guesstimating, youtube videos, websites
Posted
Updated 25-Mar-19 21:03pm
Comments
David_Wimbley 26-Mar-19 1:07am    
You need to indicate specifically where your issue is and what your expected outcome is. Right now you are asking people to guess where your issue is and what you expect the outcome to be.
[no name] 26-Mar-19 1:20am    
You don't need to type all those "-" and blanks. You can "pad left / right" with a particular character out to a certain length; e.g.

"".PadRight( 40, '-' );
"Sales".PadLeft( 30 );

1 solution

Look at your error messages in the Error Pane. Double clicking on a message takes you to the line that it concerns. They describe the problem pretty well!

"Newline in constant"
salespersonsName[salespersons] = GetValidName("Enter
the player name: ");
Strings can't cross lines unless they are prefixed with '@'. Remove the newline:
salespersonsName[salespersons] = GetValidName("Enter the player name: ");
And the problem goes away.

Fix that, and you get another error:
No overload for method 'CalculateCommission' takes 1 arguments
CalculateCommission(salepersonsCom[salespersons])[index]);
Look at the method itself:
static double CalculateCommission(double sales, ref int salespersons, double[] salepersonsCom)
{
...
}
That needs three parameters.
Supply the parameters!
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900