Write a complete C# program that displays a menu comprising of the followings:

Main Menu
1) Calculate Fuel Consumption
2) Calculate Weekly Wages
3) About This Program
4) Exit Program
Enter your Choice:

Calculating Fuel Consumption
When the user chooses this option, the program should display a short description about what this option does, and then prompt the user to input the number of liters of gasoline consumed by the user’s car, the price per gallon of gasoline, and the number of miles traveled by the car (all values are floating-point with 2 decimal point accuracy). The program will then display (using MessageBox) the number of miles per gallon the car delivered, and total cost of the consumed gasoline. Your program should allow the users to repeat this calculation as often as they wish by returning them to the Main Menu (a liter is 0.264179 gallons).

Calculating Weekly Wages
A company pays its employees as managers (who receive a fixed weekly salary), hourly workers (who receive a fixed hourly wage for up to the first 40 hours they work and “time-and-a-half,” i.e. 1.5 times their hourly wage, for overtime hours worked), commission workers (who receive $250 plus 5.7% of their gross weekly sales), or pieceworkers (who receive a fixed amount of money per item for each of the items they produce-each pieceworker in this company works on only one type of item).

Write the complete C# program to compute and display the weekly pay for each employee. You do not know the number of employees in advance. Each type of employee has its own pay code:
Managers have pay code 1MA,
Hourly workers have code 2HW,
Commission workers have code 3CW, and
Pieceworkers have code 4PW.
Use a switch to compute each employee’s pay based on that employee’s paycode. Within the switch, prompt the user to enter the appropriate facts your program needs to calculate each employee’s pay based on that employee’s paycode. Display the result using a MessageBox.

About This Program
This option should display a very short description of the entire program does. I suggest using the descriptions above.

Exit Program
This option will prompt the user with a Goodbye type of message that the program is terminating. Then terminate the program.

I'm having problems with the whole thing

Sure! I can help you with that. Let's break down the program into smaller steps and explain each part.

Step 1: Displaying the Main Menu
To display the main menu, you can use the Console.WriteLine statement to print the menu options on the console. Here's an example:

```csharp
Console.WriteLine("Main Menu");
Console.WriteLine("1) Calculate Fuel Consumption");
Console.WriteLine("2) Calculate Weekly Wages");
Console.WriteLine("3) About This Program");
Console.WriteLine("4) Exit Program");
Console.Write("Enter your choice: ");
```

Step 2: Reading User's Choice
To read the user's choice, you can use the Console.ReadLine statement to capture the user's input. Here's an example:

```csharp
string choice = Console.ReadLine();
```

Step 3: Implementing the Selected Option
You can use a switch statement to implement the selected option based on the user's choice. Here's an example:

```csharp
switch (choice)
{
case "1":
// Option 1: Calculate Fuel Consumption
// Write code to implement this option
break;
case "2":
// Option 2: Calculate Weekly Wages
// Write code to implement this option
break;
case "3":
// Option 3: About This Program
// Write code to implement this option
break;
case "4":
// Option 4: Exit Program
// Write code to implement this option
break;
default:
// Invalid choice
Console.WriteLine("Invalid choice. Please try again.");
break;
}
```

Step 4: Implementing Each Option
a. Calculate Fuel Consumption:
For this option, you can display the description and prompt the user to input the required values using the Console.WriteLine and Console.ReadLine statements. Then, perform the necessary calculations and display the result using MessageBox. Here's an example:

```csharp
// Description
Console.WriteLine("Calculating Fuel Consumption");
Console.WriteLine("Enter the number of liters of gasoline consumed: ");
float liters = float.Parse(Console.ReadLine());

Console.WriteLine("Enter the price per gallon of gasoline: ");
float pricePerGallon = float.Parse(Console.ReadLine());

Console.WriteLine("Enter the number of miles traveled: ");
float miles = float.Parse(Console.ReadLine());

// Calculations
float gallons = liters * 0.264179f;
float milesPerGallon = miles / gallons;
float totalCost = gallons * pricePerGallon;

// Display result using MessageBox
string result = $"Miles per gallon: {milesPerGallon:F2}\nTotal cost of gasoline: {totalCost:C2}";
MessageBox.Show(result);

// Return to the main menu
Console.WriteLine("Press any key to return to the Main Menu.");
Console.ReadKey();
```

b. Calculate Weekly Wages:
For this option, you can display the description and prompt the user to enter the pay code and other necessary inputs using the Console.WriteLine and Console.ReadLine statements. Then, use a switch case to calculate and display the weekly pay based on the pay code using MessageBox. Here's an example:

```csharp
// Description
Console.WriteLine("Calculating Weekly Wages");

Console.WriteLine("Enter the employee's pay code (1MA, 2HW, 3CW, 4PW): ");
string payCode = Console.ReadLine();

switch (payCode.ToUpper())
{
case "1MA":
// Manager
// Write code to calculate and display weekly pay for manager
break;
case "2HW":
// Hourly worker
// Write code to calculate and display weekly pay for hourly worker
break;
case "3CW":
// Commission worker
// Write code to calculate and display weekly pay for commission worker
break;
case "4PW":
// Pieceworker
// Write code to calculate and display weekly pay for pieceworker
break;
default:
// Invalid pay code
Console.WriteLine("Invalid pay code. Please try again.");
break;
}

// Return to the main menu
Console.WriteLine("Press any key to return to the Main Menu.");
Console.ReadKey();
```

c. About This Program:
For this option, you can simply display the description of the whole program using Console.WriteLine. Here's an example:

```csharp
Console.WriteLine("About This Program");
Console.WriteLine("Option 1: Calculate Fuel Consumption - Calculates miles per gallon and total cost of gasoline consumed.");
Console.WriteLine("Option 2: Calculate Weekly Wages - Computes weekly pay for different types of employees.");
Console.WriteLine("Option 3: About This Program - Displays a short description of the entire program.");
Console.WriteLine("Option 4: Exit Program - Terminates the program.");
Console.WriteLine("Press any key to return to the Main Menu.");
Console.ReadKey();
```

d. Exit Program:
For this option, you can display a goodbye message using MessageBox and terminate the program using the Environment.Exit method. Here's an example:

```csharp
string goodbyeMessage = "Goodbye! Program terminated.";
MessageBox.Show(goodbyeMessage);
Environment.Exit(0);
```

And that's it! You have now implemented the complete C# program that displays the menu and performs the selected options. Remember to include the necessary using statements at the beginning of your program, such as `using System;` and `using System.Windows.Forms;`.