- Содержание
- Часть работы
- Список литературы
Введение………………………………………………………………………….. 2
1. Математическое обеспечение программного продукта………………........ 4
1.1 Математическая модель полета ЛА…………………………………….. 4
1.2 Численная модель полета ЛА…………………………………………… 6
2. Реализация программного продукта………………………………………… 8
2.1 Выбор среды разработки………………………………………………… 8
2.2 Проектирование интерфейса……………………………………………. 9
2.3 Алгоритм работы и действий пользователя……………………………. 10
2.4 Тестирование программы……………………………………………….. 10
2.5 Исходный код программы………………………………………………..14
Заключение………………………………………………………………………. 21
Список литературы……………………………………………………………… 22
Фрагмент для ознакомления
h>#pragmahdrstop#include "MainUnit.h"#include "math.h"#include //---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner){this->PageControl1->Pages[0]->Caption = "Траектория";this->PageControl1->Pages[1]->Caption = "Траектория, данные";}//---------------------------------------------------------------------------float TForm1::calcXV(float cx, float d, float density, float V){float xv = cx*(M_PI*d*d/4)*(density*V*V/2);return xv;}void __fastcall TForm1::bCalculateClick(TObject *Sender){try{ Series1->Clear();std::list> trajectory;float V0 = StrToFloat(teditV0->Text);float alpha0 = M_PI*StrToFloat(teditAlpha0->Text)/180;float medium_density = StrToFloat(tedit_medium_density->Text);float start_mass = StrToFloat(tedit_start_mass->Text);float fuel_mass = StrToFloat(tedit_fuel_mass->Text);float engine_operating_time = StrToFloat(tedit_engine_operating_time->Text);float engine_thrust = StrToFloat(tedit_engine_thrust->Text);float aircraft_caliber = StrToFloat(tedit_aircraft_caliber->Text);float cx = StrToFloat(tedit_cx->Text);float dt = StrToFloat(tedit_delta->Text);float time = 0;float x0=0, y0=0;float x = x0;float y = y0;float g = 9.8;float Vx = V0*cos(alpha0);float Vy = V0*sin(alpha0);float Teta = alpha0;float m = start_mass;float P = engine_thrust;float xi1 = x + Vx*dt;float yi1 = y + Vy*dt;float Xi = calcXV(cx, aircraft_caliber, medium_density,sqrt(Vx*Vx+Vy*Vy));float Vxi1 = Vx + (dt/m)*(P - Xi)*cos(Teta);float Vyi1 = Vy + (dt/m)*((P - Xi)*sin(Teta) - m*g); time += dt;while(yi1 > 0){if(P!=0 && time > engine_operating_time){P = 0;}Teta = atan(Vy/Vx);if(time <= engine_operating_time){m -= (dt/engine_operating_time)*fuel_mass;}//...x = xi1;y = yi1;Vx = Vxi1;Vy = Vyi1;trajectory.push_back(std::pair(x,y));xi1 = x + Vx*dt;yi1 = y + Vy*dt;Xi = calcXV(cx, aircraft_caliber, medium_density,sqrt(Vx*Vx+Vy*Vy));Vxi1 = Vx + (dt/m)*(P - Xi)*cos(Teta);Vyi1 = Vy + (dt/m)*((P - Xi)*sin(Teta) - m*g); time += dt;}int v1 = trajectory.size();Series1->Clear();listb_trajectory->Items->Clear();for(std::list>::iterator p=trajectory.begin(); p!=trajectory.end(); p++){Series1->AddXY((int)p->first, (int)p->second, "", clTeeColor );listb_trajectory->Items->Add(FloatToStr(p->first)+"; "+FloatToStr(p->second));}}catch(...){ShowMessage("Проверьте корректность введенных данных.");}}//---------------------------------------------------------------------------ЗАКЛЮЧЕНИЕКурсовая работа разработана для создания приложения выполняющего моделирование полета летательного аппарата.В процессе разработки была исследована математическая модель, приведен метод численного решения, разработано и протестировано приложение.СПИСОК ЛИТЕРАТУРЫСтрауструп, Б. Язык программирования C++: Специальное издание / Б. Страуструп; Пер. с англ. Н.Н. Мартынов. — М.: БИНОМ, 2017. — 1136 c.Фридман, А.Л. Основы объектно-ориентированного программирования на языке Си++ / А.Л. Фридман. — М.: Гор. линия-Телеком, 2016. — 234 c.Дорогов, В.Г. Основы программирования на языке С: Учебное пособие / В.Г. Дорогов, Е.Г. Дорогова; Под общ. ред. проф. Л.Г. Гагарина. — М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2017. — 224 c.Лаптев В. В., Морозов А. В., Бокова А.В. C++. Объектно-ориентированное программирование. Задачи и упражнения. – СПб.: Питер, 2007. – 288 с.Шилдт, Г. Полный справочник по С++ / Г. Шилдт. - 4-е изд., пер. с англ. – М.: Издательский дом «Вильямс», 2006. – 800 с.Гукин, Д. Программирование на C для чайников / Д. Гукин. - М.: Диалектика, 2019. - 384 c.
1. Страуструп, Б. Язык программирования C++: Специальное издание / Б. Страуструп; Пер. с англ. Н.Н. Мартынов. — М.: БИНОМ, 2017. — 1136 c.
2. Фридман, А.Л. Основы объектно-ориентированного программирования на языке Си++ / А.Л. Фридман. — М.: Гор. линия-Телеком, 2016. — 234 c.
3. Дорогов, В.Г. Основы программирования на языке С: Учебное пособие / В.Г. Дорогов, Е.Г. Дорогова; Под общ. ред. проф. Л.Г. Гагарина. — М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2017. — 224 c.
4. Лаптев В. В., Морозов А. В., Бокова А.В. C++. Объектно-ориентированное программирование. Задачи и упражнения. – СПб.: Питер, 2007. – 288 с.
5. Шилдт, Г. Полный справочник по С++ / Г. Шилдт. - 4-е изд., пер. с англ. – М.: Издательский дом «Вильямс», 2006. – 800 с.
6. Гукин, Д. Программирование на C для чайников / Д. Гукин. - М.: Диалектика, 2019. - 384 c.