Новичок
Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.11.2011
Репутация: нет Всего: нет
|
программа выдает только первую строку, во второй записывает много нулей. и воторой расчет не записывает в файл txt. Код | //main.cpp 20.11.2011 //Ãëàâíûé ìîäóëü ÊÐ ÏÏÎ 481 âàðèàíò 8 #include "Raschet.h" #include <iostream> #include <fstream> using namespace std; //============================ìîäóëü ôàéëà èçìåðåíèé, izm================ char FileIzmName[]="izm.txt"; ifstream Fizm; //int errcount=0; //ôóíêöèÿ ÷òåíèÿ èçìåðåíèÿ èç îòêðûòîãî ïîòîêà Fizm //èçìåðåíèå ÷èòàåòñÿ â ïàðàìåòðû ññûëêè //âîçâðàùàåò ðåçóëüòàò ÷òåíèÿ //0-íîðìà, 1-t, 2-r, 3-a //9-êîíåö ôàéëà, 10- íåèñïðàâíàÿ îøèáêà int ReadIzmerenie(int& t, float& X1, float& Y1, float& X2, float& Y2, float& a1, float& a2, float& u1, float& u2) {
int tt; float tX1, tY1, tY2, tX2, ta1,ta2,tu1,tu2;//÷èòàåìîå static int errcount=0; Fizm>>tt>>tX1>>tY1>>tX2>>tY2>>ta1>>ta2>>tu1>>tu2;
if(Fizm.eof())//íîðìàëüíûé êîíåö ôàéëà { Fizm.clear(); return 9; } else if(Fizm.bad())//íåèñïðàâèìàÿ îøèáêà return 2; else if(Fizm.fail())//ïîïûòêà ïðîäîëæèòü { Fizm.clear(); errcount++; Fizm.ignore(1024,'\n'); if(errcount>4)//ìíîãî îøèáîê ïîäðÿä return 2;
else { return 1; } }
errcount=0; //ïåðåäàòü âûõîäíûå ïàðàìåòðû t=tt; X1=tX1; Y1=tY1; Y2=tY2; X2=tX2; a1=ta1;a2=ta2;u1=tu1;u2=tu2; return 0;
} //============================================================ //=============ìîäóëü ôàéëà ïîëîæåíèé, pol==================== #include<fstream> #include<iomanip> using namespace std; char FilePolName[]="pol.txt"; ofstream Fpol;
//ôóíêöèÿ çàïèñè ïîëîæåíèÿ â îòêðûòûé ïîòîê Fpol //ïîëîæåíèå ïåðåäàåòñÿ ÷åðåç ïàðàìåòðû //âîçâðàùàåò ðåçóëüòàò çàïèñè //0-íîðìà, 10-íåèñïðàâíàÿ îøèáêà int WritePologenie(float x, float y, float ng, float vg,int h, int m, int s) { static int polcount=0; Fpol.exceptions(ios::failbit); try { polcount++; if(polcount==1) { Fpol<<left<<showpos<<fixed<<setprecision(3); Fpol<<setw(10)<<"Øèðîòà" <<setw(10)<<"Äîëãîòà" <<setw(10)<<"Íèæíÿÿ ãðàíèöà" <<setw(10)<<"Âåðõíÿÿ ãðàíèöà" <<"Âðåìÿ" <<endl; Fpol<<setw(10)<<"ãðàäóñû" <<setw(10)<<"ãðàäóñû" <<setw(10)<<"ìåòðû" <<setw(10)<<"ìåòðû" <<setw(10)<<"÷÷:ìì:ññ" <<endl<<endl;
Fpol<<setw(10)<<x; Fpol<<setw(10)<<y; Fpol<<setw(10)<<ng; Fpol<<setw(10)<<vg; cout<<right<<setfill('0'); Fpol<<h; Fpol<<":"<<m; Fpol<<":"<<s; Fpol<<endl; }} catch(...) { if (Fizm.fail()) return 1; else return 9; } return 0; } //======================================================================== //=====================ìîäóëü èíèöèàëèçàöèè ini=========================== #include<iostream> using namespace std; #include "Raschet.h" #include <string.h> //ôóíêöèÿ èíèöèàëèçàöèè ïàðàìåòðîâ //ôîðìèðóåò èìÿ ôàéëà .ini èç ïîëíîé ñïåöèôèêàöèè ïðîãðàììû s // ÷èòàåò ïàðàìåòðû âî âíåøíèå èìåíà //ïèøåò ïàðàìåòðû âî âíåøíèå èìåíà //çàâåðøàåò ïðîãðàììó ïðè îøèáêàõ void InitializeParametrs(char s[]) { //èìÿ ôàéëà èíè char FileIniName[512]=""; ifstream Fini; //s ñïåöèôèêàöèÿ ôàéëà exe ïðîãðàììû char *pn=1+strrchr(s,'\\');//óêàçàòåëü íà íà÷àëî èìåíè int k=strlen(pn)-4;//äëèíà èìåíè áåç òèïà strncpy(FileIniName,pn,k); //èìÿ áåç òèïà strcat(FileIniName,".ini");//èìÿ +òèï .ini
Fini.open(FileIniName); if(!Fini) { clog<<endl<<"Ôàéë èíèöèàëèçàöèè íå îòêðûâàåòñÿ." <<"Ïðîãðàììà áóäåò çàêðûòà."<<endl; clog<<"Íàæìèòå ENTER"; cin.get(); exit(1); } Fini.exceptions(ios::failbit);//âêëþ÷èòü èñêëþ÷åíèÿ ôàéëà try { cout<<"Ï à ð à ì å ò ð û ñ õ å ì û è ç ì å ð å í è é"<<endl; Fini>>ShirPel1; Fini.ignore(1024,'\n'); cout<<" ïåëåíãàòîðà1 â ãðàäóñàõ "<<ShirPel1<<endl; Fini>>DolgPel1; Fini.ignore(1024,'\n'); cout<<"Äîëãîòà ïåëåíãàòîðà1 â ãðàäóñàõ "<<DolgPel1<<endl; Fini>>ShirPel2; Fini.ignore(1024,'\n'); cout<<" Øèðîòà ïåëåíãàòîðà 2 â ãðàäóñàõ "<<ShirPel2<<endl; Fini>>DolgPel2; Fini.ignore(1024,'\n'); cout<<"Äîëãîòà ïåëåíãàòîðà 2 â ãðàäóñàõ "<<DolgPel2<<endl; Fini>>OshAzim1; Fini.ignore(1024,'\n'); cout<<"Îøèáêà àçèìóòà 1 â ãðàäóñàõ "<<OshAzim1<<endl; Fini>>OshAzim2; Fini.ignore(1024,'\n'); cout<<"Îøèáêà àçèìóòà 2 â ãðàäóñàõ "<<OshAzim2<<endl; Fini>>OshUglP1; Fini.ignore(1024,'\n'); cout<<"Îøèáêà óãëà ìåñòà 1 â ãðàäóñàõ "<<OshUglP1<<endl; Fini>>OshUglP2; Fini.ignore(1024,'\n'); cout<<"Îøèáêà óãëà ìåñòà 2 â ãðàäóñàõ "<<OshUglP2<<endl; Fini>>debug; Fini.ignore(1024,'\n'); cout<<"Ôëàã îòëàäêè "<<debug<<endl; Fini>>FileIzmName; Fini.ignore(1024,'\n'); cout<<"Èìÿ ôàéëà èçìåðåíèé "<<FileIzmName<<endl; Fini>>FilePolName; Fini.ignore(1024,'\n'); cout<<"Èìÿ ôàéëà ïîëîæåíèé "<<FilePolName<<endl; cout<<endl; } catch(...) { clog<<endl<<"Îøèáêà ÷òåíèÿ ôàéëà èíèöèàëèçàöèè." <<"Ïðîãðàììà áóäåò çàêðûòà."<<endl; clog<<"Íàæìèòå ENTER"; cin.get(); exit(1); } Fini.close(); } //=========================================================
//=====================ìîäóëü ïðîòîêîëà==================== #include<iostream> #include<iomanip> using namespace std;
//øèðèíà ãðàô ïðîòîêîëà â ñèìâîëàõ int wt=10; //ãðàôû èçìåðåíèÿ int wx=15,wy=15,wg=15,whh=5,wmm=5,wss=5;// ãðàôû ïîëîæåíèÿ int prec=3; void PrintHead() { cout<<left<<setprecision(prec)<<fixed; cout<<endl <<setw(wt)<<"Âðåìÿ" <<setw(wt)<<"Êîîðäèíàòû x1" <<setw(wt)<<"Êîîðäèíàòû y1" <<setw(wt)<<"Êîîðäèíàòû x2" <<setw(wt)<<"Êîîðäèíàòû y2" <<setw(wt)<<"Àçèìóò1" <<setw(wt)<<"Àçèìóò2" <<setw(wt)<<"Óãîë ìåñòà1" <<setw(wt)<<"Óãîë ìåñòà2" <<setw(wy)<<"Øèðîòà" <<setw(wx)<<"Äîëãîòà" <<setw(wg)<<"Íèæíÿÿ ãðàíèöà" <<setw(wg)<<"Âåðõíÿÿ ãðàíèöà" <<setw(whh)<<"" <<setw(wmm)<<"Âðåìÿ" <<setw(wss)<<"" <<endl; //âòîðàÿ ñòðîêà øàïêè cout <<setw(wt)<<"ñåê" <<setw(wt)<<"ãðàäóñû" <<setw(wt)<<"ãðàäóñû" <<setw(wt)<<"ãðàäóñû" <<setw(wt)<<"ãðàäóñû" <<setw(wt)<<"ãðàäóñû" <<setw(wt)<<"ãðàäóñû" <<setw(wt)<<"ãðàäóñû" <<setw(wt)<<"ãðàäóñû" <<setw(wy)<<"ãðàäóñû" <<setw(wx)<<"ãðàäóñû" <<setw(wg)<<"ìåòðû" <<setw(wg)<<"ìåòðû" <<setw(whh)<<"÷àñû" <<setw(wmm)<<"ìèíóòû" <<setw(wss)<<"ñåêóíäû" <<endl <<endl;//äîïîëíèòåëüíàÿ ñòðîêà ïîñëå øàïêè } //ïå÷àòü èçìåðåíèÿ â òåêóùåé ñòðîêå void PrintIzmerenie(int t, float X1, float Y1, float X2, float Y2,float a1, float a2, float u1, float u2) { cout<<left<<setprecision(3)<<fixed; cout <<setw(wt)<<t <<setw(wt)<<X1 <<setw(wt)<<Y1 <<setw(wt)<<X2 <<setw(wt)<<Y2 <<setw(wt)<<a1 <<setw(wt)<<a2 <<setw(wt)<<u1 <<setw(wt)<<u2; } //ïå÷àòü ïîëîæåíèÿ â òåêóùåé ñòðîêå è ïåðåâîä ñòðîêè void PrintPologenie(float x, float y, float ng, float vg,int h, int m, int s) { cout<<left<<setprecision(3)<<fixed; cout <<setw(wy)<<x <<setw(wx)<<y <<setw(wg)<<ng <<setw(wg)<<vg; cout<<right<<setfill('0') <<setw(whh)<<h<<":" <<setw(wmm)<<m<<":" <<setw(wss)<<s <<endl; } //===================================================================
//==================ãëàâíûé ìîäóëü================================= #include<iostream> #include<fstream> using namespace std;
#include<windows.h> int main(int argc, char* arg[]) { SetConsoleCP(1251); SetConsoleOutputCP(1251);
cout<<" Ï Ð Î Ã Ð À Ì Ì À Ð À Ñ × Å Ò À " " Ï Î Ë Î Æ Å Í È ß Â Ñ "<<endl<<endl;
//èíèöèàëèçàöèÿ ïàðàìåòðîâ InitializeParametrs(arg[0]); //îòêðûòü ôàéë èçìåðåíèé Fizm.open(FileIzmName); if(!Fizm) { clog<<"Ôàéë èçìåðåíèé íå îòêðûâàåòñÿ" <<"Ïðîãðàììà áóäåò çàêðûòà"<<endl; cin.get(); return 1; }
//îòêðûòü ôàéë ïîëîæåíèé Fpol.open(FilePolName); if(!Fpol) { cerr<<"Ôàéë ïîëîæåíèé íå îòêðûâàåòñÿ." <<"Ïðîãðàììà áóäåò çàêðûòà."<<endl; cin.get(); return 2; }
//ðàáî÷èå ïåðåìåííûå int t=0; float X1=0, X2=0, Y1=0, Y2=0, a1=0, a2=0, u1=0, u2=0; int rez=0; //êîä ðåç-òà float x=0, y=0,vg=0, ng=0; int hh=0,mm=0,ss=0;//ïîëîæåíèå
PrintHead();//øàïêà òàáëèöû ïðîòîêîëà
//öèêë äî êîíöà ôàéëà ïî ðåçóëüòàòó ÷òåíèÿ èçìåðåíìÿ while(1) { //÷òåíèå rez=ReadIzmerenie(t,X1,Y1,X2,Y2,a1,a2,u1,u2); //êîíòðîëü ÷òíåíèÿ if(rez==9)//êîíåö ôàéëà, íåò èçìåðåíèé { cout<<endl<<"Êîíåö ôàéëà èçìåðåíèé" <<"Ïðîãðàììà çàâåðøåíà óñïåøíî"<<endl; break; } else if(rez==10)//íåèñïðàâèìàÿ îøèáêà { cout<<endl<<"Íåèñïðàâèìàÿ îøèáêà ÷òåíèÿ èçìåðåíèÿ" <<"Ïðîãðàììà áóäåò çàêðûòà äîñðî÷íî"<<endl; cerr<<"Íàæìèòå ENTER"; cin.get(); return 3; } else if(rez==8)//âû÷èñëèòåëüíàÿ îøèáêà â èçìåðåíèè { cout<<endl<<"Âû÷èñëèòåëüíàÿ îøèáêà íîìåð "<<rez<<" ïðè ÷òåíèè ôàéëà èçìåðåíèÿ" <<"Ïðîãðàììà ïðîïóñêàåò ðàñ÷åò ïîëîæåíèÿ."<<endl; continue; } else if(0<rez && rez<8)//îøèáêà ÷òåíèÿ èçìåðåíèÿ { cout<<endl<<"Îøèáêà ââîäà â ÷èñëå íîìåð "<<rez<<" ïðè ÷òåíèè èçìåðåíèÿ" <<"Ïðîãðàììà ïðîïóñêàåò ðàñ÷åò ïîëîæåíèÿ."<<endl; continue; } //âûâîä èçìåðåíèÿ PrintIzmerenie(t,X1, Y1, X2, Y2, a1, a2, u1, u2);
rez=Raschet(t,X1,Y1,X2,Y2,a1,a2,u1,u2, x, y, ng,vg,hh,mm,ss); if(rez!=0) { cout<<"Îøèáêà ðàñ÷åòà ¹"<<rez <<" Ïðîãðàììà ïðîïóñêàåò ðàñ÷åò ïîëîæåíèÿ"<<endl; continue; } //ðàñ÷åò
//âûâîä ïîëîæåíèÿ PrintPologenie(x,y,ng,vg,hh,mm,ss);
//çàïèñü ïîëîæåíèÿ rez=WritePologenie(x,y,ng,vg,hh,mm,ss); if(rez==9)//âû÷èñëèòåëüíàÿ îøèáêà { cout<<endl<<"Âû÷èñëèòåëüíàÿ îøèáêà ïðè çàïèñè ïîëîæåíèÿ" <<" Ïðîãðàììà áóäåò çàêðûòà"<<endl; clog<<" Íàæìèòå ENTER"; cin.get(); return 1; } /*else if(rez!=0)//íåèñïðàâèìàÿ îøèáêà { cout<<endl<<"Îøèáêà çàïèñè â ÷èñëå íîìåð "<<rez<<"ïðè çàïèñè ïîëîæåíèÿ" <<" Ïðîãðàììà áóäåò çàêðûòà"<<endl; clog<<" Íàæìèòå ENTER"; cin.get(); return 5; }*/ } Fizm.close(); Fpol.close(); clog<<"Íàæìèòå ENTER"; cin.get();
}
|
|