4. Программная часть

  4.1 Постановка задачи

 

Перед началом выполнения данной курсовой работы я поставил для себя целью изучить принципы работы с математической библиотекой, функции и системные вызовы языка С++, позволяющие выполнять геометрические, тригонометрические и другие нестандартные математические расчёты. В курсовой работе я буду создавать и описывать программу, которая позволит выполнять расчёты по заданным параметрам, введённых с клавиатуры.

Данная программа в дальнейшем может быть использована студентами для изучения математической библиотеки на лабораторных занятиях по изучению теоретического материала и приобретения практических навыков по дисциплине «Системное Программное Обеспечение», а также программа может быть использована в работе с операционной системой MS DOS.

 

4.2 Описание разработанной программы

Моя программа предназначена для демонстрации работы созданной мной библиотеки.

В программе организовано псевдографическое меню, в котором можно выбрать один из нескольких пунктов:

1)         Площадь круга.

2)         Объём цилиндра.

3)         Площадь цилиндра.

4)         Площадь трапеции.

5)         Объём пирамиды.

6)         Объём шара.

7)         Площадь сферы.

8)         Факториал.

9)         Выход.

При выборе соответствующего пункта, необходимо нажать клавишу Enter, для того чтобы приступить к расчётам или, если выбран пункт «Выход», выйти из программы. Для немедленного выхода из программы необходимо нажать клавишу ESC.

В программе я использую встроенные библиотеки С++.

Таблица. 3

Название библиотеки Описание функции
Iostream.h Потоки ввода \ вывода
Conio.h Прототип функции задержки
Math.h Использование математических функций

А также помимо стандартных библиотек, подгружается matfac.cpp - разработанная мной библиотека.

Почти в любой программе не обойдешься без собственных функций, они упрощают программирование, программа становится более понятна и удобна в изучении.

В моей программе я использую несколько своих функций вызываемых из основной программы.

·          f1-f8 - функции соответствующие описанным выше пунктам меню (Площадь круга, Объём цилиндра, …,Выход.).

·          sw – функция для вызова других функций (f1-f8).

·          mn – функция для организации меню.

В функции sw и mn в качестве аргументов передаются переменная соответствующая выбранному пункту меню, а также массив строк.

Непосредственно из функций f1-f8 передаются аргументы и вызываются описанные мною функции из matfac.cpp.

С помощью директив #include в головную программу выключаются другие файлы: matfac.cpp. Предположим что все они находятся в корневой директории диска С:. Если это не так, то необходимо изменить соответствующие директивы #include.

Листинги исполняемой программы kurs.cpp и подгружаемого модуля matfac.cpp представлены в приложениях 1 и 2.


5. Заключение

В данной курсовой работе мной был рассмотрен стандартный модуль для работы с математическими функциями на языке C++ “math.h”. А также разработан собственный модуль для вычисления площади, объёмов геометрических фигур и других параметров. Данная работа позволила мне более углубленно изучить работу с математическими функциями, различные тонкости языка. В курсовой работе была создана и описана программа, позволяющая вычислять некоторые геометрические величины.

Данная работа может использоваться в учебных целях, а на основе кода модуля могут осуществляться различные разработки дополнительных функций для работы с математическими функциями, на лабораторных занятиях по изучению теоретического материала и приобретения практических навыков по дисциплине «Системное Программное Обеспечение».


6. Список используемой литературы

1.       М.И. Болски. Язык программирования Си. 1988г.

2.       Б.И. Березин. Начальный курс С и С++. М.,2001г.

3.       Интернет ресурсы (www.citforum.ru)


Приложение 1

 

Листинг основной программы (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

}


Приложение 2

Листинг модуля “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);

}


Информация о работе «Стандартные библиотечные функции С++»
Раздел: Информатика, программирование
Количество знаков с пробелами: 33993
Количество таблиц: 3
Количество изображений: 0

Похожие работы

Скачать
28139
14
0

... gettextsettings(), settextstyle(), setusercharsize(). viewporttype – Используется для получения настроек области вывода функцией getviewsettings(). struct viewporttype { int left; int top; int right; int bottom; int clip; } 2. Реализация пользовательской библиотеки “mouse.h” В стандартной комплектации BorlandC2.0, BorlandC3.1 или любой версии компилятора C++ от любой другой ...

Скачать
668870
13
0

... программе. В данном разделе они перечислены в алфавитном порядке и приводятся с объяснениями. Эти ошибки могут являться следствием случайного затирание памяти программой. Abnormal program termination Аварийное завершение программы Данное сообщение может появляться, если для выполнения программы не может быть выделено достаточного количества памяти. Более подробно оно рассматривается в конце ...

Скачать
155480
0
0

... виден черный цвет на белом фоне, зеленый на белом. Размещение указателей должно быть очень четко продумано (44, с.421). 4. ХАРАКТЕРИСТИКА БИБЛИОТЕЧНОГО ДИЗАЙНА СИБАЙСКОГО ИНСТИТУТА БАШКИРСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА   Интенсивно развивающийся научно-технический прогресс вызывает необходимость реформ в сфере высшего образования. Значительно выросли требования к результативности учебной ...

Скачать
44104
0
0

... найти ошибки и повысит мобильность прикладной программы. Мобильность на уровне исходных текстов Материал, рассмотренный нами в предыдущем разделе, относится к вопросам мобильного программирования в связи с использованием функций операционной среды. Однако, если говорить о переносимости программ между компьютерами с разной архитектурой, имея в виду использование языка Си (не слишком высокого ...

0 комментариев


Наверх