## Monday, August 07, 2006

### Menu driven program - calculates factorial, detects a prime number, even/odd

Write a menu driven program which has the following options:
1. Factorial of a Number
2. Prime or Not
3. Odd or Even
4. Exit

Make use of a switch Statement.

Outline of the program:

main()
{
int choice;
while (1)
{
printf("\n1. Factorial");
printf("\n2. Prime");
printf("\n3. Odd/ Even");
printf("\n4. Exit");
scanf ("%d", &choice);

switch (choice)
{
case 1:
//logic for factorial of a number
break;
case 2:
//logic for deciding a prime number
case 3:
//logic for odd/even
break;
case 4:
exit();
}
}
}

NOTES:
1) The statement while(1) puts the entire logic in an infinite loop. This is necessary
since the menu must keep reappearing on the screen once an item is selected and an
appropriate action is taken.
2) exit() is a standard library function. When it gets executed the program execution is
immediately terminated. Note that a break would not have worked here because it would have
taken control only outside the switch and not outside the while.

#include<stdio.h>

main()

{
int choice, factorial, temp, number, i;
//The while(1) is needed so that the program runs in an infinite loop!

while (1)
{
printf("\n1. Factorial");

printf("\n2. Prime");
printf("\n3. Odd/ Even");
printf("\n4. Exit");

scanf ("%d", &choice);

switch (choice)
{
case 1:

//The following snippet calculates the factorial of a number.
printf("\nEnter the Number:");

scanf ("%d", &number);
for (temp=1,factorial=1; temp<=number;temp++)

{
factorial=factorial*temp;
continue;
}

printf("Factorial=%d\n\n",factorial);
break;

case 2:

//The following snippet detects a prime number.
printf("Enter the Number:");

scanf ("%d", &number);

if (number==1)

{
printf("The Number 1 is a Unique Number.\n\n ");
}

for (i=2; i<=number-1; i++)

{
if (number%i==0)
{

printf("Number is not prime\n\n");
break;
}

if (number==i || number%i !=0)

{
printf("Number is Prime\n\n");
break;
}

}

break; //break out of this case.

case 3:
//The following snippet detects Even/Odd Numbers.
printf("Enter the Number:");

scanf ("%d", &number);
if (number%2==0)

{
printf("The number is Even\n\n");
}
else

{
printf("The number is Odd\n\n");
}
break;

case 4:
//The Following command comes out of the program.
exit();

default:
printf("You have entered the wrong choice. Please try again. \n");
break;
}

}
}

The file can be found at:

surya said...

become a follower for free C,C++ And vb code of my blog:
http://www.a2zhacks.blogspot.com to learn C,C++,VB programming.

Anonymous said...

If program is showing an error for the exit function then you can add a header file #include and the exit function should be exit(0)

Anonymous said...

#include

Anonymous said...

Anonymous said...

can anyone pls look at my work.. im doing a menu program.. i can't run the program.. the .system' can't identify..

#include
#include

{
system("clear");

int response;
fprintf(stdout,"**************************************\n");
fprintf(stdout," Y O S H I N O Y A \n");
fprintf(stdout,"************************************\n\n");
fprintf(stdout,"M E N U:\n\n");
fprintf(stdout," 1. Gyudon Beef P145.00\n");
fprintf(stdout," 2. Chicken Teriyaki P150.00\n");
fprintf(stdout," 3. Pork Katsudon P135.00\n");
fprintf(stdout," 4. Beef Yakiniku P135.00\n");
fprintf(stdout," 5. Beef Misono P135.00\n");
fprintf(stdout," 6. Chicken Katsudon P135.00\n");
fprintf(stdout," 7. Italian Beef Bowl P120.00\n");
fprintf(stdout," 8. Ebi Ramen P120.00\n");
fprintf(stdout," 9. Yaki Udon P80.00\n");
fprintf(stdout," 10.Red tea P45.00\n");
fprintf(stdout,"Type F when you finished with your selections.\n\n");
fprintf(stdout,"************************************\n\n");
fprintf(stdout,"Select 1, 2, 3, 4, 5, 6, 7, 8, 9, or 10 --->\n\n");
fscanf(stdin, "%d", &response);
return response;
}

{
int s;
float p, x;
int response;

printf("How many orders of item number %d would you like?\n", response),
scanf("%d", &s);

switch(response)
{
printf("You have ordered %d order(s) 1. Gyudon Beef\n", s);
p=s*145;
break;
printf("You have ordered %d order(s) 2. Chicken Teriyaki\n", s);
p=s*150;
break;
printf("You have ordered %d order(s) 3. Pork Katsudon\n", s);
p=s*135;
break;
printf("You have ordered %d order(s) 4. Beef Yakiniku\n", s);
p=s*135;
break;
printf("You have ordered %d order(s) 5. Beef Misono\n", s);
p=s*135;
break;
printf("You have ordered %d order(s) 6. Chicken Katsudon\n", s);
p=s*135;
break;
printf("You have ordered %d order(s) 7. Italian Beef Bowl\n", s);
p=s*120;
break;
printf("You have ordered %d order(s) 8. Ebi Ramen\n", s);
p=s*120;
break;
printf("You have ordered %d order(s) 9. Yaki Udon\n", s);
p=s*80;
break;
printf("You have ordered %d order(s) 10. Red Tea\n", s);
p=s*45;
default:
break;

}
x=p*1.13;