Code:
#include <stdio.h>
#include <stdlib.h>
#define pi 3.141593
//Author:
//Descripiton:This program can calculate the Perimeters/Areas and volumes of shapes.
//Date 4/1/14
//function prototypes
float volSphere(float r);
float volCylinder(float r, float h);
float volCone(float r, float h);
int main()
{
//variable declarations
int n,m,q,z;
float l,w,h,r;
//prompt for first switch statement
printf("This program calculates the Perimeters/Areas/Volumes of various 3-Dimensional and 2-Dimensional shapes. Which operation do you wish to perform? [-1 to end] \n\n");
printf("1)Perimeter\n");
printf("2)Area\n");
printf("3)Volume\n");
scanf("%d",&n);
do
{
switch(n)
{
//
case 1:
printf("For which shape would you like to calculate the Perimeter?[-1 to end]\n\n");
printf("1)Square\n");
printf("2)Rectangle\n");
printf("3)Parallelogram\n");
printf("4)Triangle\n");
printf("5)Trapezoid\n");
printf("6)Circle\n");
scanf("%d",&m);
if(m<0)
{
exit(0);
}else{
do
{
//nested switch statement
switch(m)
{
case 1:
printf("Enter the side length of the square: \n");
scanf("%f",&l);
printf("The perimeter of the square with side length %.2f units is %.2f units.\n\n",l,4*l);
break;
case 2:
printf("Enter the length of the rectangle: \n");
scanf("%f",&l);
printf("Enter the width of the rectangle: \n");
scanf("%f",&w);
printf("The perimeter of the rectangle with side length %.2f units and width %.2f units is %.2f units.\n\n",l,w,2*l+2*w);
break;
case 3:
printf("Enter the length of the base of the parallelogram: \n");
scanf("%f",&l);
printf("Enter the side of the parallelogram: \n");
scanf("%f",&w);
printf("The perimeter of the parallelogram with base %.2f units and side length %.2f units is %.2f units.\n\n",l,w,2*l+2*w);
break;
case 4:
printf("Enter side 1 of the triangle: \n");
scanf("%f",&l);
printf("Enter side 2 of the triangle: \n");
scanf("%f",&w);
printf("Enter side 3 of the triangle: \n");
scanf("%f",&h);
printf("The perimeter of the triangle with sides: %.2f units, %.2f units and %.2f units is %.2f units.\n\n",l,w,h,(l+w+h));
break;
case 5:
printf("Enter side 1 of the trapezoid: \n");
scanf("%f",&l);
printf("Enter side 2 of the trapezoid: \n");
scanf("%f",&w);
printf("Enter side 3 of the trapezoid: \n");
scanf("%f",&h);
printf("Enter side 4 of the trapezoid: \n");
scanf("%f",&r);
printf("The perimeter of the trapezoid with sides: %.2f units, %.2f units, %.2f units and %.2f units is %.2f units\n\n",l,w,h,r,(l+w+h+r));
break;
case 6:
printf("Enter the radius of the circle: \n");
scanf("%f",&r);
printf("The Perimeter/Circumference of the circle with radius %.2f units is %.2f units\n\n",r,2*pi*r);
break;
}
break;
}while(m>0);
}
break;//need to break
case 2:
printf("For which shape would you like to calculate the Area?[-1 to end]\n\n");
printf("1)Square\n");
printf("2)Rectangle\n");
printf("3)Parallelogram\n");
printf("4)Triangle\n");
printf("5)Trapezoid\n");
printf("6)Circle\n");
printf("7)Cylinder\n");
scanf("%d",&q);
if(q<0)
{
exit(0);
}else{
do
{
//2nd nested switch statement
switch(q)
{
case 1:
printf("Enter the side length of the square: \n");
scanf("%f",&l);
printf("The area of the square with side length %.2f units, is %.2f units.\n",l,l*l);
break;
case 2:
printf("Enter the side length of the rectangle: \n");
scanf("%f",&l);
printf("Enter the side width of the rectangle: \n");
scanf("%f",&w);
printf("The area of the rectangle with length %.2f units and %.2f units is %.2f units.\n",l,w,l*w);
break;
case 3:
printf("Enter the base length of the parallelogram: \n");
scanf("%f",&l);
printf("Enter the height of the parallelogram: \n");
scanf("%f",&w);
printf("The area of the parallelogram with base %.2f units and height %.2f units is %.2f units.\n",l,w,l*w);
break;
case 4:
printf("Enter the base length of the triangle: \n");
scanf("%f",&l);
printf("Enter the height of the triangle: \n");
scanf("%f",&w);
printf("The area of the triangle with base %.2f units and height %.2f units is %.2f units.\n",l,w,(l*w)/2.0);
case 5:
printf("Enter the lower base of the trapezoid: \n");
scanf("%f",&l);
printf("Enter the upper base of the trapezoid: \n");
scanf("%f",&w);
printf("Enter the height of the trapezoid: \n");
scanf("%f",&h);
printf("The area of the trapezoid with bases %.2f units and %.2f units and height %.2f units is %.2f units.\n",l,w,h,(l+w)*h/2);
break;
case 6:
printf("Enter the radius of the circle: \n");
scanf("%f",&r);
printf("The area of the circle with radius %.2f units is %.2f units.\n",r,pi*r*r);
break;
case 7:
printf("Enter the radius of the cylinder: \n");
scanf("%f",&r);
printf("Enter the height of the cylinder: \n");
scanf("%f",&h);
printf("The surface area of the cylinder with radius %.2f units and height %.2f units is %.2f units.\n",r,h,(2*pi*r*h)+(2*pi*r*r));
break;
}
break;
}while(q>0);
}
break; //need to break
case 3:
printf("For which shape would you like to calculate the Volume?[-1 to end]\n\n");
printf("1)Cube\n");
printf("2)Rectangular Prism\n");
printf("3)Triangular Pyramid\n");
printf("4)Sphere\n");
printf("5)Cylinder\n");
printf("6)Cone\n");
do
{
scanf ("%d",&z);
//if(z<0)
//{
// exit(0);
//}else{
//do
//{
//4rd nested switch statement
switch(z)
{
case 1:
printf("Enter the side length of the cube: \n");
scanf("%f",&l);
printf("The volume of the cube with side length %.2f units is %.2f units.\n",l,l*l*l);
break;
case 2:
printf("Enter the base length of the rectangular prism: \n");
scanf("%f",&l);
printf("Enter the base width of the rectangular prism: \n");
scanf("%f",&w);
printf("Enter the height of the rectangular prism: \n");
scanf("%f",&h);
printf("The volume of the rectangular prism with base length and width %.2f units and %.2f units \
and height %.2f units is %.2f units.\n",l,w,h,l*w*h);
break;
case 3:
printf("Enter the base length of the triangular pyramid: \n");
scanf("%f",&l);
printf("Enter the base width of the triangular pyramid: \n");
scanf("%f",&w);
printf("Enter the height of the the triangular pyramid: \n");
scanf("%f",&h);
printf("The volume of the triangular pyramid with base length and width %.2f units and %.2f units and height %.2f units is %.2f units.\n",l,w,h,(l*w*h)/3.0);
break;
case 4:
printf("Enter the radius of the sphere: \n");
scanf("%f",&r);
printf("The volume of the sphere with radius %.2f units is %.2f units.\n",r,volSphere(r));
case 5:
printf("Enter the radius of the cylinder: \n");
scanf("%f",&r);
printf("Enter the height of the cylinder: \n");
scanf("%f",&h);
printf("The volume of the cylinder with radius %.2f units and height %.2f units is %.2f units.\n",r,h,volCylinder(r,h));
break;
case 6:
printf("Enter the radius of the cone: \n");
scanf("%f",&r);
printf("Enter the height of the cone: \n");
scanf("%f",&h);
printf("The volume of the cone with radius %.2f units and height %.2f units is %.2f units.\n",r,h,volCone(r,h));
break;
}
//}
}while(z>0);
break;
}//end of switch to "n" PAV
}while(n>0);
return 0;
}
//function definitions
float volSphere(float r)
{
float vol;
vol=(4*pi*r*r*r)/3.0;
return vol;
}
float volCylinder(float r, float h)
{
float vol;
vol=pi*r*r*h;
return vol;
}
float volCone(float r, float h)
{
float vol;
vol=(pi*r*r*h)/3.0;
return vol;
}