Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- int readPositiveInt();
- float readPositiveFloat();
- void readTriangleData(float *base, float *height);
- float triangleArea(float base, float height);
- float rectangleArea(float width, float height);
- float squareArea(float side);
- float circleArea(float radius);
- char menu(int numTri, int numRect, int numSquares, int numCircles);
- int main(void)
- {
- char option;
- int numTri = 0, numRect = 0, numSquares = 0, numCircles = 0;
- float area, base, height, width, side, radius;
- do
- {
- option = menu(numTri, numRect, numSquares, numCircles);
- switch(option)
- {
- case 't':
- printf("Base: ");
- base = readPositiveFloat();
- printf("Height: ");
- height = readPositiveFloat();
- //readTriangleData(&base, &height);
- area = triangleArea(base, height);
- printf("\nTriangle area: %.2f.\n", area);
- printf("Press a key...\n");
- getchar();
- numTri++;
- break;
- case 'r':
- printf("Width: ");
- width = readPositiveFloat();
- printf("Height: ");
- height = readPositiveFloat();
- area = rectangleArea(width, height);
- printf("\nRectangle area: %.2f.\n", area);
- printf("Press a key...\n");
- getchar();
- numRect++;
- break;
- case 's':
- printf("Side: ");
- side = readPositiveFloat();
- area = squareArea(side);
- printf("\nSquare area: %.2f.\n", area);
- printf("Press a key...\n");
- getchar();
- numSquares++;
- break;
- case 'c':
- printf("Radius: ");
- radius = readPositiveFloat();
- area = circleArea(radius);
- printf("\nCircle area: %.2f.\n", area);
- printf("Press a key...\n");
- getchar();
- numCircles++;
- break;
- case 'e':
- printf("\nBon voyage!\n");
- }
- }
- while(option != 'e');
- return 0;
- }
- int readPositiveInt()
- {
- int n, r;
- do
- {
- r = scanf("%d", &n);
- while(getchar() != '\n');
- }
- while(r != 1 || n <= 0);
- return n;
- }
- float readPositiveFloat()
- {
- float n;
- int r;
- do
- {
- r = scanf("%f", &n);
- while(getchar() != '\n');
- }
- while(r != 1 || n <= 0);
- return n;
- }
- void readTriangleData(float *base, float *height)
- {
- printf("Base: ");
- (*base) = readPositiveFloat();
- printf("Height: ");
- (*height) = readPositiveFloat();
- }
- float triangleArea(float base, float height)
- {
- return base * height / 2;
- }
- float rectangleArea(float width, float height)
- {
- return width * height;
- }
- float squareArea(float side)
- {
- return side * side;
- }
- float circleArea(float radius)
- {
- return M_PI * radius * radius;
- }
- char menu(int numTri, int numRect, int numSquares, int numCircles)
- {
- char option;
- do
- {
- char a = 248;
- printf("\t\t\tAreas computation\n\n");
- printf("Triangle (N%c): %d\t\t\t\tRetangulo (N%c): %d\n", a, numTri, a, numRect);
- printf("Circle (N%c): %d\t\t\t\t\tSquare (N%c): %d\n", a, numCircles, a, numSquares);
- printf("\n\tOPTIONS\n");
- printf("\t(T)riangle\n");
- printf("\t(R)ectangle\n");
- printf("\t(S)quare\n");
- printf("\t(C)ircle\n");
- printf("\t(E)xit\n");
- printf("OPTION -> ");
- scanf(" %c", &option);
- while(getchar() != '\n');
- option = tolower(option);
- if(option != 't' && option != 'r' && option != 's' && option != 'c' && option != 'e')
- {
- printf("\n\nInvalid option!\n\n");
- printf("Press a key...\n");
- getchar();
- }
- }
- while(option != 't' && option != 'r' && option != 's' && option != 'c' && option != 'e');
- return option;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement