От: | RussianFellow | http://russianfellow.livejournal.com | |
Дата: | 28.07.17 11:59 | ||
Оценка: |
CPrintSolvedNUDialog::CPrintSolvedNUDialog(CWnd* pParent /*=NULL*/)
: CDialogEx(CPrintSolvedNUDialog::IDD, pParent)
{
}
void CPrintSolvedNUDialog::setOutputInfo(addparstruct aps)
{
this->aps = aps;
}
BOOL CPrintSolvedNUDialog::OnInitDialog()
{
char s[7000], s2[160];
int i, n;
long double val1, val2, val3;
string str;
CDialog::OnInitDialog();
strcpy(s,"");
strcpy(s2," Результаты решения краевой задачи по определению орбиты КА \r\n");
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," Мерный интервал (дата/время): %s \r\n",aps.measuresinterval);
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," Использованные измерения: \r\n");
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," Виды Рассмотрено Включено Распределение по времени(ET) СКО разброса (O-C) \r\n");
n = aps.typeofmeasinterval.size();
if (n>0)
{
for (i=0; i<n; i++)
{
str = (string)(aps.typeofmeasinterval.at(i));
strcpy(s2,str.c_str());
strcat(s,s2);
strcat(s,"\r\n");
}
}
sprintf(s2," Всего %d %d %s \r\n",aps.nummeas,aps.nummeas,aps.measuresinterval);
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," Количество выполненных итераций: %d \r\n",aps.nummeas);
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," Согласование измерений: sigma0 = %.6f \r\n");
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," Уточнённые НУ Поправки к исходным НУ СКО НУ (1 sigma) \r\n");
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," tНУ %s\r\n",aps.stNU);
strcat(s,s2);
sprintf(s2," x(км) %.15le %.15le %.9le \r\n",aps.x,aps.deltax,aps.SKOx);
strcat(s,s2);
sprintf(s2," y(км) %.15le %.15le %.9le \r\n",aps.y,aps.deltay,aps.SKOy);
strcat(s,s2);
sprintf(s2," z(км) %.15le %.15le %.9le \r\n",aps.z,aps.deltaz,aps.SKOz);
strcat(s,s2);
sprintf(s2," Vx(км) %.15le %.15le %.9le \r\n",aps.Vx,aps.deltaVx,aps.SKOVx);
strcat(s,s2);
sprintf(s2," Vy(км) %.15le %.15le %.9le \r\n",aps.Vy,aps.deltaVy,aps.SKOVy);
strcat(s,s2);
sprintf(s2," Vz(км) %.15le %.15le %.9le \r\n",aps.Vz,aps.deltaVz,aps.SKOVz);
strcat(s,s2);
n = aps.Sbarray.size();
if (n>0)
{
// вывод Sb
}
n = aps.kappaarray.size();
if (n>0)
{
// вывод kappa;
}
n = aps.Vimparray.size();
if (n>0)
{
for (i=0; i<n/3; i++)
{
val1 = (long double)(aps.Vimparray.at(i*3));
val2 = (long double)(aps.Vimparray.at(i*3+1));
val3 = (long double)(aps.Vimparray.at(i*3+2));
sprintf(s2," dV%dx(м/с) %.15le %.15le %.9le \r\n",i+1,val1,val2,val3);
strcat(s,s2);
}
}
sprintf(s2," \r\n");
strcat(s,s2);
sprintf(s2,"Среднеквадратические ошибки в орбитальной системе RNB \r\n");
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," sigma r(км) sigma n(км) sigma b(км) sigmaVr(м/с) sigmaVn(м/с) sigmaVb(м/с) \r\n");
strcat(s,s2);
sprintf(s2," %.5le %.5le %.5le %.5le %.5le %.5le \r\n",aps.sigmar,aps.sigman,aps.sigmab,aps.sigmaVr,aps.sigmaVn,aps.sigmaVb);
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," Уточнение элементов орбиты \r\n");
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," a(км) %.15le %.9le %.9le \r\n",aps.a,aps.deltaa,aps.SKOa);
strcat(s,s2);
sprintf(s2," e %.15le %.9le %.9le \r\n",aps.e,aps.deltae,aps.SKOe);
strcat(s,s2);
sprintf(s2," i(град) %.15le %.9le %.9le \r\n",aps.ild,aps.deltaild,aps.SKOild);
strcat(s,s2);
sprintf(s2," W(град) %.15le %.9le %.9le \r\n",aps.Omega,aps.deltaOmega,aps.SKOOmega);
strcat(s,s2);
sprintf(s2," w(град) %.15le %.9le %.9le \r\n",aps.omega,aps.deltaomega,aps.SKOomega);
strcat(s,s2);
sprintf(s2," tpi %s %.4fs %.4fs \r\n",aps.stpi,aps.deltaperiod,aps.SKOtpi);
strcat(s,s2);
sprintf(s2," Период %s %.4fs %.4fs \r\n",aps.period,aps.deltaperiod,aps.SKOperiod);
strcat(s,s2);
strcpy(s2," \r\n");
strcat(s,s2);
sprintf(s2," Корреляционная матрица элементов Kq \r\n");
strcat(s,s2);
sprintf(s2," a e i W w tpi \r\n");
strcat(s,s2);
sprintf(s2," a %.7f %.7f %.7f %.7f %.7f %.7f \r\n",aps.covmatr[0],aps.covmatr[1],aps.covmatr[2],aps.covmatr[3],aps.covmatr[4],aps.covmatr[5]);
strcat(s,s2);
sprintf(s2," e %.7f %.7f %.7f %.7f %.7f %.7f \r\n",aps.covmatr[6],aps.covmatr[7],aps.covmatr[8],aps.covmatr[9],aps.covmatr[10],aps.covmatr[11]);
strcat(s,s2);
sprintf(s2," i %.7f %.7f %.7f %.7f %.7f %.7f \r\n",aps.covmatr[12],aps.covmatr[13],aps.covmatr[14],aps.covmatr[15],aps.covmatr[16],aps.covmatr[17]);
strcat(s,s2);
sprintf(s2," W %.7f %.7f %.7f %.7f %.7f %.7f \r\n",aps.covmatr[18],aps.covmatr[19],aps.covmatr[20],aps.covmatr[21],aps.covmatr[22],aps.covmatr[23]);
strcat(s,s2);
sprintf(s2," w %.7f %.7f %.7f %.7f %.7f %.7f \r\n",aps.covmatr[24],aps.covmatr[25],aps.covmatr[26],aps.covmatr[27],aps.covmatr[28],aps.covmatr[29]);
strcat(s,s2);
sprintf(s2," tpi %.7f %.7f %.7f %.7f %.7f %.7f \r\n",aps.covmatr[30],aps.covmatr[31],aps.covmatr[32],aps.covmatr[33],aps.covmatr[34],aps.covmatr[35]);
strcat(s,s2);
m_IDC_EDIT1.SetWindowTextA(s);
return TRUE;
}
void CPrintSolvedNUDialog::OnBnClickedOk()
// если была нажата кнопка "Печать"
{
// TODO: добавьте свой код обработчика уведомлений
int i, n, cyChar, cyPage, yPos;
CString myString;
LPCSTR pzText;
LPTSTR lpszText;
DWORD size = MAX_PATH;
TCHAR temp[MAX_PATH];
TEXTMETRIC txtm;
m_IDC_EDIT1.GetWindowTextA(myString);
lpszText = "";
//n = myString.GetLength();
n = m_IDC_EDIT1.GetLineCount();
pzText = (LPCSTR)myString;
GetDefaultPrinter(temp,&size);
HDC hDC = CreateDC(NULL,temp,NULL,NULL);
if (hDC)
{
cyPage = GetDeviceCaps(hDC,VERTRES);
GetTextMetrics(hDC,&txtm);
cyChar = txtm.tmHeight + txtm.tmExternalLeading;
yPos = 0;
DOCINFO docinfo;
docinfo.cbSize = sizeof(docinfo);
docinfo.lpszDocName = "Simple";
docinfo.lpszOutput = NULL;
docinfo.lpszDatatype = "EMF";
docinfo.fwType = 0;
if (StartDoc(hDC,&docinfo)>0)
{
if (StartPage(hDC)>0)
{
//TextOut(hDC,0,0,pzText,80);
for (i=0; i<n; i++)
{
//m_IDC_EDIT1.GetLine(i,lpszText);
int len = m_IDC_EDIT1.LineLength(i);
if (len>0)
{
m_IDC_EDIT1.GetLine(i,myString.GetBuffer(len),len);
myString.ReleaseBuffer();
}
else
myString = " ";
myString = myString + "\r\n";
pzText = myString.GetBuffer();
TextOut(hDC,0,yPos,pzText,90);
yPos += cyChar;
}
EndPage(hDC);
}
EndDoc(hDC);
}
DeleteDC(hDC);
}
CDialogEx::OnOK();
}
Результаты решения краевой задачи по определению орбиты КА Мерный интер?ээээ<<<<<<<<<<<<<<<< ъ;М}фWNet Provider Class<<<<<<<<<<<<<<<<<<<<
Мерный интервал (дата/время): 2017.04.22/01:06: 9.184 — 2017.0ээээ<<<<<<<<<<<<<<<<ою?ээээ<<<<<<<< ъ;М}фWNet Provider Class<<<<<<<<
D | 1452HHHHHHHHHHHээээ<<<<<<<<ою
V | 1452HHHHHHHHHHH<<<<<<<<ээээ<<<<<<<<ою
?ээээ<<<<<<<< ъ;М{фWNet Provider Class