1. М.И. Болски. Язык программирования Си. 1988г.
2. Б.И. Березин. Начальный курс С и С++. М.,2001г.
3. Интернет ресурсы (www.citforum.ru)
Листинг основной программы (kurs).
#include <iostream.h>
#include <conio.h>
#include <c:\matfac.cpp>
#include<math.h>
//#include<stdio.h>
void f1(char menu [9][30])// Площадь круга
{
float r;
gotoxy(15,10);
cout<<menu[1]<<endl;
cout<<"Введите радиус \n";cin>>r;
cout<< menu[1]<<"="<<Sokr(r);
getch();
}
void f2(char menu [9][30])// Объём цилиндра
{
float r,h;
gotoxy(15,10);
cout<<menu[2]<<endl;
cout<<"Введите радиус \n";cin>>r;
cout<<"Введите высоту \n";cin>>h;
cout<< menu[2]<<"="<<VCil(r,h);
getch();
}
void f3(char menu [9][30])// Площадь цилиндра
{
float r,h;
gotoxy(15,10);
cout<<menu[3]<<endl;
cout<<"Введите радиус \n";cin>>r;
cout<<"Введите высоту \n";cin>>h;
cout<< menu[3]<<"="<<SCil(r,h);
getch();
}
void f4(char menu [9][30])// Площадь трапеции
{
float a,b,h;
gotoxy(15,10);
cout<<menu[4]<<endl;
cout<<"Введите сторону a \n";cin>>a;
cout<<"Введите сторону b \n";cin>>b;
cout<<"Введите высоту h \n";cin>>h;
cout<< menu[4]<<"="<<STrap(a,b,h);
getch();
}
void f5(char menu [9][30])// Объём пирамиды
{
float a,b,h;
gotoxy(15,10);
cout<<menu[5]<<endl;
cout<<"Введите a \n";cin>>a;
cout<<"Введите b \n";cin>>b;
cout<<"Введите h \n";cin>>h;
cout<< menu[5]<<"="<<VPir(a,b,h);
getch();
}
void f6(char menu [9][30])// Объём шара
{
float r;
gotoxy(15,10);
cout<<menu[6]<<endl;
cout<<"Введите радиус \n";cin>>r;
cout<< menu[6]<<"="<<VSfer(r);
getch();
}
void f7(char menu [9][30])// Площадь сферы
{float r;
gotoxy(15,10);
cout<<menu[7]<<endl;
cout<<"Введите радиус r\n";cin>>r;
cout<< menu[7]<<"="<<SSfer(r);
getch();
}
void f8(char menu [9][30])// Факториал
{float r;
gotoxy(15,10);
cout<<menu[8]<<endl;
cout<<"Введите число \n";cin>>r;
cout<< menu[8]<<"="<< fac(r);
getch();
}
short sw(short k,char menu[9][30])//вызов функций
{
short kod=1;
switch (k)
{
case(1):f1(menu);break;
case(2):f2(menu);break;
case(3):f3(menu);break;
case(4):f4(menu);break;
case(5):f5(menu);break;
case(6):f6(menu);break;
case(7):f7(menu);break;
case(8):f8(menu);break;
case(9):cout<<menu[9]<<endl;kod=27; getch();return kod; // Выход
}
}
void mn (short k, char menu [9][30])//меню
{
clrscr();
textattr(7);
for(int i=1;i<10;i++)
{
gotoxy(15,i+5);
if (k==i) {
textattr(2);
cprintf(menu[i]);
textattr(7);
} else cprintf (menu[i]);
}
}
void main ()
{
clrscr();
char menu [9][30];//массив строк
strcpy (menu[1],"Площадь круга");
strcpy (menu[2],"Объём цилиндра");
strcpy (menu[3],"Площадь цилиндра");
strcpy (menu[4],"Площадь трапеции");
strcpy (menu[5],"Объём пирамиды");
strcpy (menu[6],"Объём шара");
strcpy (menu[7],"Площадь сферы");
strcpy (menu[8],"Факториал");
strcpy (menu[9],"Выход");
short k=1, kod=1;
mn (k, menu);
do
{
kod=getch();
switch (kod)//определить нажатые клавиши
{
// case (27):{ return;};break;//ESC
case (80):{k++;if (k>9) k=9; mn(k, menu);};break;//стрелка вверх
case (72):{k--;if (k<1) k=1; mn(k, menu);};break;// стрелка вниз
case (13): clrscr();kod=sw(k,menu);mn(k,menu);break;//enter
}
} while (kod!=27); //ESC
}
Листинг модуля “matfac.cpp”.
#include <math.h>
#define M_PI 3.14159265358979323846
float fac (float n) //factorial_1
{
float f=0;
if (n!=0)
{
f=1;
for (int i=1;i<=n;i++)
{
f*=i;
}
} else f=0;
return f;
}
float Sokr (float r) //площадь груга_2
{
return (M_PI*r*r);
}
float VCil (float r,float h) //объём цилиндра_3
{
return (M_PI*r*r*h);
}
float SCil (float r,float h) //площадь цилиндра_4
{
return (M_PI*2*r*(r+h));
}
float STrap (float a,float b,float h) //площадь трапеции_5
{
return ((a+b)/(2*h));
}
float VPir (float a,float b,float h) //объём пирамиды_6
{
return ((a*b*h)/3);
}
float VSfer (float r) //объём шара_7
{
return (4*M_PI*r*r)/3;
}
float SSfer (float r) //площадь сферы_8
{
return (4*M_PI*r*r);
}