try rewriting your code this way (i m not doing the full code for you, but only a sample):
Console.WriteLine("----------Menu:----------");
Console.WriteLine("Enter personal details (p)");
Console.WriteLine();
Console.WriteLine("Enter salary details (s)");
Console.WriteLine();
Console.WriteLine("Calculate and display (d)");
Console.WriteLine();
Console.WriteLine("Exit (x)");
Console.WriteLine();
Console.Write("Enter p,s,d or x to proceed :");
Console.WriteLine();
do
{
choise = (char)Console.Read();
switch (choise)
{
case 'p':
Console.Clear();
Console.WriteLine("You choose to enter persons data :");
Console.WriteLine();
Console.WriteLine("Enter your full name >");
full_name = Console.ReadLine();
while (string.IsNullOrWhiteSpace(full_name))
{
Console.WriteLine("Please enter correct data.");
full_name = Console.ReadLine();
}
...
Menu should be outside the main loop (unless you want to display it everytime) and use while loops inside the main loop rather than do...while loop. Give this a go.This should take care of invalid data to some extent.