• Страница 1 из 1
  • 1
Форум » Программирование » Си » Калькулятор для підрахунку площі та периметру фігур
Калькулятор для підрахунку площі та периметру фігур
Администратор
Уровень 999
Сообщений: 2104
Дата: Четверг, 02.01.2014, 00:47:48 | Сообщение # 1
Offline
Курсова робота на тему: Калькулятор для підрахунку площі та периметру геометричних фігур




Код
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <locale.h>
#define Pi 3.141592
#define Rad 0.0174532925

void AreaTriangleBaseHeight(){
double S; int b, h;
printf("\n Введите основание b: ");
scanf_s("%d", &b);
printf(" Введите высоту h: ");
scanf_s("%d", &h);
S=0.5*b*h;
printf("\n S = %f\n",S);
}

void AreaTriangleSideAngle(){
double S; int a, b, c;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
printf(" Введите сторону b: ");
scanf_s("%d", &b);
printf(" Введите синус угла: ");
scanf_s("%d", &c);
S=0.5*a*b*sin((double) c*Rad);
printf("\n S = %f\n",S);
}

void AreaTriangleHeron(){
double S, p; int a, b, c;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
printf(" Введите сторону b: ");
scanf_s("%d", &b);
printf(" Введите сторону c: ");
scanf_s("%d", &c);
p=0.5*(a+b+c);
S=sqrt((double)p*(p-a)*(p-b)*(p-c));
printf("\n S = %f\n",S);
}

void PerimeterTriangle(){
double S; int a, b, c;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
printf(" Введите сторону b: ");
scanf_s("%d", &b);
printf(" Введите сторону c: ");
scanf_s("%d", &c);
S=a+b+c;
printf("\n S = %f\n",S);
}

void AreaRectangle(){
double S; int a, b;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
printf(" Введите сторону b: ");
scanf_s("%d", &b);
S=a*b;
printf("\n S = %f\n",S);
}

void PerimeterRectangle(){
double S; int a, b;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
printf(" Введите сторону b: ");
scanf_s("%d", &b);
S=2*(a+b);
printf("\n S = %f\n",S);
}

void AreaSquareSide(){
double S; int a;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
S=pow((double)a,2);
printf("\n S = %f\n",S);
}

void AreaSquareDiagonal(){
double S; int d;
printf("\n Введите диагональ d: ");
scanf_s("%d", &d);
S=pow((double)d,2)/2;
printf("\n S = %f\n",S);
}

void AreaPerimeterSide(){
double S; int a;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
S=4*a;
printf("\n S = %f\n",S);
}

void AreaPerimeterSideDiagonal(){
double S; int d;
printf("\n Введите диагональ d: ");
scanf_s("%d", &d);
S=2*sqrt((double)2)*d;
printf("\n S = %f\n",S);
}

void AreaTrapezoidBaseHeight(){
double S; int a, b, h;
printf("\n Введите основание a: ");
scanf_s("%d", &a);
printf(" Введите основание b: ");
scanf_s("%d", &b);
printf(" Введите высоту h: ");
scanf_s("%d", &h);
S=0.5*(a+b)*h;
printf("\n S = %f\n",S);
}

void AreaTrapezoidMidlineHeight(){
double S; int m, h;
printf("\n Введите среднюю линию m: ");
scanf_s("%d", &m);
printf(" Введите высоту h: ");
scanf_s("%d", &h);
S=m*h;
printf("\n S = %f\n",S);
}

void PerimeterTrapezoid(){
double S; int a, b, c, d;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
printf(" Введите сторону b: ");
scanf_s("%d", &b);
printf(" Введите сторону c: ");
scanf_s("%d", &c);
printf(" Введите сторону d: ");
scanf_s("%d", &d);
S=a+b+c+d;
printf("\n S = %f\n",S);
}

void AreaParallelogramBaseHeight(){
double S; int a, h;
printf("\n Введите основание a: ");
scanf_s("%d", &a);
printf(" Введите высоту h: ");
scanf_s("%d", &h);
S=a*h;
printf("\n S = %f\n",S);
}

void AreaParallelogramTwoSidesAngleBetween(){
double S; int a, b, c;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
printf("\n Введите сторону b: ");
scanf_s("%d", &b);
printf(" Введите синус угла: ");
scanf_s("%d", &c);
S = a*b*sin((double) c*Rad);
printf("\n S = %f\n",S);
}

void PerimeterParallelogram(){
double S; int a, b;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
printf(" Введите сторону b: ");
scanf_s("%d", &b);
S=2*(a+b);
printf("\n S = %f\n",S);
}

void AreaRhombusBaseAreaHeight(){
double S; int a, h;
printf("\n Введите основание a: ");
scanf_s("%d", &a);
printf(" Введите высоту h: ");
scanf_s("%d", &h);
S=a*h;
printf("\n S = %f\n",S);
}

void AreaRhombusSideAngle(){
double S; int a, c;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
printf(" Введите синус угла: ");
scanf_s("%d", &c);
S = a*a*sin((double) c*Rad);
printf("\n S = %f\n",S);
}

void AreaRhombusDiagonal(){
double S; int a, b;
printf("\n Введите диагональ d1: ");
scanf_s("%d", &a);
printf("\n Введите диагональ d2: ");
scanf_s("%d", &b);
S = 0.5*a*b;
printf("\n S = %f\n",S);
}

void PerimeterRhombusSide(){
double S; int a;
printf("\n Введите сторону a: ");
scanf_s("%d", &a);
S=4*a;
printf("\n S = %f\n",S);
}

void PerimeterRhombusDiagonal(){
double S; int a, b;
printf("\n Введите диагональ d1: ");
scanf_s("%d", &a);
printf("\n Введите диагональ d2: ");
scanf_s("%d", &b);
S=4*sqrt((double)pow((double) a/2,2)+pow((double) b/2,2));
printf("\n S = %f\n",S);
}

void AreaCircleRadius(){
double S; int R;
printf("\n Введите радиус R: ");
scanf_s("%d", &R);
S=Pi*pow((double) R,2);
printf("\n S = %f\n",S);
}

void AreaCircleDiameter(){
double S; int D;
printf("\n Введите диаметр D: ");
scanf_s("%d", &D);
S=Pi*(pow((double) D,2)/4);
printf("\n S = %f\n",S);
}

void PerimeterCircleRadius(){
double S; int R;
printf("\n Введите радиус R: ");
scanf_s("%d", &R);
S=2*Pi*R;
printf("\n S = %f\n",S);
}

void PerimeterCircleDiameter(){
double S; int D;
printf("\n Введите диаметр D: ");
scanf_s("%d", &D);
S=Pi*D;
printf("\n S = %f\n",S);
}

int main(){
system("color f0" );
setlocale(0, "");
int i, n=1, q=0;
while(n){
printf("\n Что Вы хотите получить ?\n\n");
printf(" 1 - Площадь геометрических фигур ?\n");
printf(" 2 - Периметр геометрических фигур ?\n\n ");
scanf_s("%d", &i);
switch (i){
case 1:
printf("\n 1 - Площадь треугольника ?\n");
printf(" 2 - Площадь прямоугольника ?\n");
printf(" 3 - Площадь квадрата ?\n");
printf(" 4 - Площадь трапеции ?\n");
printf(" 5 - Площадь параллелограмма ?\n");
printf(" 6 - Площадь ромба ?\n");
printf(" 7 - Площадь круга ?\n\n ");
scanf_s("%d", &i);

switch (i){
case 1: printf("\n 1 - Через основание и высоту ?\n");
printf(" 2 - Через стороны и угол ?\n");
printf(" 3 - Через формулу Герона ?\n ");
scanf_s("%d", &i);
switch (i){
case 1: AreaTriangleBaseHeight(); break;
case 2: AreaTriangleSideAngle(); break;
case 3: AreaTriangleHeron(); break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
case 2: AreaRectangle(); break;
case 3: printf("\n 1 - Через сторону ?\n");
printf(" 2 - Через диагональ ?\n ");
scanf_s("%d", &i);
switch (i){
case 1: AreaSquareSide(); break;
case 2: AreaSquareDiagonal(); break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
case 4: printf("\n 1 - Через основания и высоту ?\n");
printf(" 2 - Через среднюю линию и высоту ?\n ");
scanf_s("%d", &i);
switch (i){
case 1: AreaTrapezoidBaseHeight(); break;
case 2: AreaTrapezoidMidlineHeight(); break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
case 5: printf("\n 1 - Через основания и высоту ?\n");
printf(" 2 - Через две стороны и угол между ними ?\n ");
scanf_s("%d", &i);
switch (i){
case 1: AreaParallelogramBaseHeight(); break;
case 2: AreaParallelogramTwoSidesAngleBetween(); break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
case 6: printf("\n 1 - Через основание и высоту ?\n");
printf(" 2 - Через сторону и угол ?\n");
printf(" 3 - Через диагонали ?\n ");
scanf_s("%d", &i);
switch (i){
case 1: AreaRhombusBaseAreaHeight(); break;
case 2: AreaRhombusSideAngle(); break;
case 3: AreaRhombusDiagonal(); break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
case 7: printf("\n 1 - Через радиус ?\n");
printf(" 2 - Через диаметр ?\n ");
scanf_s("%d", &i);
switch (i){
case 1: AreaCircleRadius(); break;
case 2: AreaCircleDiameter(); break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
case 2:  

printf("\n 1 - Периметр треугольника ?\n");
printf(" 2 - Периметр прямоугольника ?\n");
printf(" 3 - Периметр квадрата ?\n");
printf(" 4 - Периметр трапеции ?\n");
printf(" 5 - Периметр параллелограмма ?\n");
printf(" 6 - Периметр ромба ?\n");
printf(" 7 - Периметр круга ?\n\n ");
scanf_s("%d", &i);

switch (i){
case 1: PerimeterTriangle(); break;
case 2: PerimeterRectangle(); break;
case 3: printf("\n 1 - Через сторону ?\n");
printf(" 2 - Через диагональ ?\n ");
scanf_s("%d", &i);
switch (i){
case 1: AreaPerimeterSide(); break;
case 2: AreaPerimeterSideDiagonal(); break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
case 4: PerimeterTrapezoid(); break;
case 5: PerimeterParallelogram(); break;
case 6: printf("\n 1 - Через сторону ?\n");
printf(" 2 - Через диагонали ?\n ");
scanf_s("%d", &i);
switch (i){
case 1: PerimeterRhombusSide(); break;
case 2: PerimeterRhombusDiagonal(); break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
case 7: printf("\n 1 - Через радиус ?\n");
printf(" 2 - Через диаметр ?\n ");
scanf_s("%d", &i);
switch (i){
case 1: PerimeterCircleRadius(); break;
case 2: PerimeterCircleDiameter(); break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
default: printf("\n Вы ничего не выбрали\n ");
}
break;
default: printf("\n Вы ничего не выбрали\n ");
}
printf("\n Хотите продолжить Да - 1 / Нет - 0 ? ");
scanf_s("%d", &q);
if(q==0) n=0;
system("cls");
}
return 0;
}
Подпись пользователя
Форум » Программирование » Си » Калькулятор для підрахунку площі та периметру фігур
  • Страница 1 из 1
  • 1
Поиск: