КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Структура програми
Дана програма складається з модулів і функцій, що робить її більш зрозумілою. Основним модулем програми є - main_pr.cpp. Даний модуль складається з функції Osnovna_progr(). Ця функція ініціалізує графічний режим, пересуває рамку по пунктах меню і викликає функції інших модулів. Допоміжні модуля – це menu.cpp, його структура: У даному модулі викликаються функції інших модулів, описаний клас Ramka, class Ramka { public: int kod_klav(); // код натиснутої клавіші void ramka_1(); // меню користувача void ramka_2(); // рамка для пунктів меню void uslovie(); // вибір потрібної функції void Help(); // допомога для роботи з програмою };
який складається з відкритих функцій- членів: int Ramka :: kod_klav() – повертає значення натиснутої клавіші, int kod_klav() { klav=getch(); return klav; };
void ramka_1() – виводить на екран меню користувача, void Ramka :: ramka_1() { outtextxy(180,50,"РОЗВ’ЯЗАННЯ ДИФЕРЕНЦІАЛЬНИХ РІВНЯНЬ."); outtextxy(230,180,"1.Метод Адамса."); outtextxy(230,200,"2.Метод Рунге-Кутта."); outtextxy(230,220,"3.Метод Крилова."); outtextxy(230,240,"4.Приклад для користувача."); setcolor(9); outtextxy(100,420,"F1-Допомога Esc - Вихід "); };
void ramka_2() – малює рамку для пунктів меню, void ramka_2() { setcolor(0);rectangle(220,p,400,pp); // зафарбовує рамку setcolor(2);rectangle(220,y1,400,y2); // малює рамку };
void uslovie() – викликає потрібну функцію: При виборі першого пункту меню викликається функція Adamca(). При виборі другого пункту меню викликається функція Runge_Kuta(). При виборі третього пункту меню викликається функція Krulov(). При виборі четвертого пункту меню викликається функція All_Metods(). void Ramka :: uslovie() {if (y1= =170){closegraph(); // вибір першого пункту меню Adamca(); //виклик методу Адамса initgraph(&gdriver,&gmode,"c:\\borlandc\\bgi"); } else if (y1= =190) {closegraph(); // вибір другого пункту меню Runge_Kuta(); //виклик методу Рунге-Кута initgraph(&gdriver,&gmode,"c:\\borlandc\\bgi"); } else if (y1= =210) // вибір третього пункту меню {closegraph(); Krulov(); //виклик методу Крилова initgraph(&gdriver,&gmode,"c:\\borlandc\\bgi"); } else {closegraph(); // вибір четвертого пункту меню All_Metods(); // виклик усіх методів initgraph(&gdriver,&gmode,"c:\\borlandc\\bgi"); } }; void Help() – виводить з файлу допоміжну інформацію про програму.
void Ramka :: Help() { cleardevice(); setcolor(15); FILE *f; int Nstr=0; char buff[612]; //буфер для виведеної інформації f=fopen("c:\\borlandc\\help_srm.txt","r"); //відкриття файлу для зчитування while (!feof (f)) // читання даних поки не кінець файлу { buff[0] = fgetc(f); for(it i=1;!feof (f)&&buff[i-1]!='\n';i++) buff[i] =fgetc(f); buff[i-1]='\0'; outtextxy (10,Nstr*10,buff); //висновок інформації на екран Nstr++; } ad.cpp, його структура: У даному модулі описано три функції: void Yravnen() – виводить на екран приклади рівнянь, що даються користувачу для розв’язання(опис функції вище в методі Рунге-Кута).
double Function(float x,float y,int chose) – вибирає яке рівняння потрібно вирішити і підставляє в нього значення x, y і повертає отримане значення (опис функції вище в методі Рунге-Кутта).
void Adamca() – розв’язання диференціального рівняння методом Адамса (опис функції вище в методі Адамса).
run.cpp, його структура: У даному модулі описано три функції: void Yravnen() – виводить на екран приклади рівнянь, що даються користувачу для розв’язання(опис функції вище в методі Рунге-Кута).
double Function(float x,float y,int chose) – вибирає яке рівняння потрібно вирішити і підставляє в нього значення x, y і повертає отримане значення (опис функції вище в методі Рунге-Кута).
void Runge_Kuta() – розв’язання диференціального рівняння методом Рунге-Кута(опис функції вище в методі Рунге-Кутта) . krulov.cpp, його структура: У даному модулі описано три функції: void Yravnen() – виводить на екран приклади рівнянь, що даються користувачу для розв’язання(опис функції вище в методі Рунге-Кутта).
double Function(float x,float y,int chose) – вибирає яке рівняння потрібно вирішити і підставляє в нього значення x, y і повертає отримане значення (опис функції вище в методі Рунге-Кута).
void Krulov() – розв’язання диференціального рівняння методом Крилова (опис функції вище в методі Крилова).
allmet.cpp, його структура: У даному модулі описано п'ять функції: double Function(float x,float y) -підставляє в рівняння значення x, y і повертає отримане значення. double Function(float x,float y) {double f; f=x+y; return f; }
void Adamca() – розв’язання диференціального рівняння методом Адамса (опис функції вище в методі Адамса, тільки без уведення початкових даних; дані задаються самим користувачем). void Runge_Kuta() – розв’язання диференційного рівняння методом Рунге-Кутта(опис функції вище в методі Рунге-Кутта, тільки без уведення початкових даних; дані задаються самим користувачем).
void Krulov() – розв’язання диференційного рівняння методом Крилова (опис функції вище в методі Крилова, тільки без уведення початкових даних; дані задаються самим користувачем).
void All_Metods() – викликаються всі три методи розв’язання диференційного рівняння. void All_Metods() { Adamca(); // виклик функції розв’язання диференційного рівняння. методом Адамса Runge_Kuta(); // виклик функції розв’язання диференційного рівняння. методом Рунге-Кута Krulova(); // виклик функції розв’язання диференційного рівняння. методом Крилова }
|