|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Приложение 1. Структурная схема ПМО ЦУП обмена
Приложение 2. Структурная схема ПМО визуализации стандартной баллистической информации.
Приложение 3. Структурная схема модуля расчета рассеивания ТП ТК «Союз ТМА».
Приложение 4. Листинг основных процедур программ. П4.1. Листинг программы обмена. void __fastcall TForm2::ComboBox1Change(TObject *Sender) { int NServ; AnsiString Con,k100; ADOConnection1->Connected=false; k100=ComboBox1->Text; if(k100=="k100")k100="Spusk"; NServ=ADOConnection1->ConnectionString.Pos("Spusk"); if(NServ==0) { NServ=ADOConnection1->ConnectionString.Pos("mkc"); Con=ADOConnection1->ConnectionString; Con.Delete(NServ,4); Con.Insert(k100,NServ); ADOConnection1->ConnectionString=Con; } else { Con=ADOConnection1->ConnectionString; Con.Delete(NServ,5); Con.Insert(k100,NServ); ADOConnection1->ConnectionString=Con; } //ADOConnection1->Connected=true;
}
Variant form509[]={id_nu,name_ka,name_nu,name_f,status,n_tlg,writer,vari,n_ka, n_nu,n_sol,n_form,vitok,vitok_s,t_eqvator,s_eqvator,l_eqvator,imp_size1, imp_time1,reg_sp,t_vkl_du1,s_vkl_du1,psi1,gamma1,teta1,u_v1,t_1,u_v2,t_2, u_v3,t_3,t_razd,s_t_razd,metka_r,t_h_104,t_25_6,l_25_6,teta_25_6,dt_vn,u_n,u_s,u_vsr, f_vsr,u_k,u_yt,f_yt,kod_gr1,kod_gr2,abs_dsp,t_osp,b_osp,l_osp,gka,gbo,gsa,p_dpobt,xt_sa,yt_sa,zt_sa,comm,form};
ADOTable1->Active=false; ADOTable1->TableName="f509"; ADOTable1->Active=true; ADOTable1->Insert(); ADOTable1->FieldValues["ID_NU;NAME_KA;NAME_NU;NAME_F;STATUS;N_TLG;WRITER;VARI;N_KA;\ N_NU;N_SOL;N_FORM;VITOK;VITOK_S;T_EQVATOR;S_EQVATOR;L_EQVATOR;IMP_SIZE1;\ IMP_TIME1;REG_SP;T_VKL_DU1;S_VKL_DU1;PSI1;GAMMA1;TETA1;U_V1;T_1;U_V2;T_2;\ U_V3;T_3;T_RAZD;S_T_RAZD;METKA_R;T_H_104;T_25_6;L_25_6;TETA_25_6;DT_VN;U_N;U_S;U_VSR;\ F_VSR;U_K;U_YT;F_YT;KOD_GR1;KOD_GR2;ABS_DSP;T_OSP;B_OSP;L_OSP;\ GKA;GBO;GSA;P_DPOBT;XT_SA;YT_SA;ZT_SA;COMM;FORM"]= VarArrayOf(form509,60); ADOTable1->Post(); ADOTable1->Active=false;
Memo3->Lines->Add("Форма "+base+" записана в таблицу f509"); kivkfile<<base.c_str()<<endl;
П.4.2. Листинг программы визуализации. #include <vcl.h> #pragma hdrstop #include <fstream.h> #include "oblozka.h" #include "grafform.h" #include <stdio.h> #include "map.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm2 *Form2; void vvod() { AnsiString ntlg; double shirota_dr[75], dolgota_dr[75], shirota_cel[75], dolgota_cel[75]; // чтение формы 516d из файла double shir_str[75], dolg_str[75]; Form2->Memo1->Lines->LoadFromFile(MyFileName); ifstream formfile(MyFileName.c_str()); while(formfile.getline(postr,80)) formfile.close();
for(i=0;i<Form2->Memo1->Lines->Count;i++) { bstr=Form2->Memo1->Lines->Strings[i]; str=bstr.c_str(); OemToChar(str,str); cstr=StringReplace(bstr,bstr,str,TReplaceFlags()<<rfReplaceAll); Form2->Memo1->Lines->Strings[i]=cstr; } stroka=Form2->Memo1->Lines->Strings[3]; ntlg=stroka.SubString(14,3); // File515="E:\\Program Files\\Microsoft Visual
Studio\\MyProjects\\Sadik\\Debug\\FORMS\\F515."+ntlg; stroka=Form2->Memo1->Lines->Strings[0]; nka=stroka; for (j = 9; j<88; j++) { DecimalSeparator='.'; stroka=Form2->Memo1->Lines->Strings[j]; if (stroka.SubString(3,1)=="П") { j_end=j; break; } shir_str[j-9]=stroka.SubString(19,7).ToDouble(); dolg_str[j-9]=stroka.SubString(28,7).ToDouble(); shirota_cel[j-9]=stroka.SubString(19,4).ToDouble(); dolgota_cel[j-9]=stroka.SubString(28,4).ToDouble(); shirota_dr[j-9]=stroka.SubString(24,2).ToDouble(); dolgota_dr[j-9]=stroka.SubString(33,2).ToDouble(); shirota[j-9]=(shirota_cel[j-9]+(shirota_dr[j-9])*5/300); // пересчет из градусов миниты в градусы доли градуса dolgota[j-9]=(dolgota_cel[j-9]+(dolgota_dr[j-9])*5/300); Form2->StringGrid1->RowCount=j-7; // запись широты и долготы в таблицу Form2->StringGrid1->Cells[0][j-8]=IntToStr(j-8); Form2->StringGrid1->Cells[1][0]="Широта"; Form2->StringGrid1->Cells[2][0]="Долгота"; Form2->StringGrid1->Cells[1][j-8]=FloatToStr(shir_str[j-9]); // вывод в стрингрид непереведенных значений Form2->StringGrid1->Cells[2][j-8]=FloatToStr(dolg_str[j-9]); } } void pereschet() { // пересчет в экранную систему координат карта казахстана int i; h=Form3->Image1->Height; l=Form3->Image1->Width; for (i = 0; i <= j_end-10; i++) { fi[i]=h*(1-((shirota[i]-44)/(53-44))); lamda[i]=l*((dolgota[i]-57)/(82-57)); } } void graf() { // построение графика на карте int x1,y1,x2,y2; x1=lamda[j_end-10]-l*20/(25*70); x2=lamda[j_end-10]+l*20/(25*70); y1=fi[j_end-10]-h*20/(11*110); y2=fi[j_end-10]+h*20/(11*110); Form3->Image1->Canvas->Pen->Width=3; int i; for (i = 0; i <= j_end-10; i++) { if (shirota[i]>38 && dolgota[i]>40 && dolgota[i]<300 && shirota[i]!=0 && dolgota[i]!=0) { Form3->Image1->Canvas->LineTo(lamda[i],fi[i]); Form3->Image1->Canvas->Brush->Style=bsClear; Form3->Image1->Canvas->Ellipse(x1,y1,x2,y2); } } Form3->Image1->Canvas->Font->Height=2; Form3->Image1->Canvas->Pen->Style=bsClear; Form3->Image1->Canvas->Font->Size=24; Form3->Image1->Canvas->TextOutA(400,30,"Спуск "+nka); }
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.013 сек.) |