WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Навчальна програма переведення дійсних чисел з 2,8,10,16 у 2,8,10,16 системи числення - Курсова робота

Навчальна програма переведення дійсних чисел з 2,8,10,16 у 2,8,10,16 системи числення - Курсова робота

*out); void Oct2Hex(char *in,char *out); void Dec2Hex(char *in,char *out); //основний клас програми, містить функції,які виводять на екран елементи //інтерфейсу class TProgApp : public TApplication { public: TProgApp(); virtual void handleEvent( TEvent& event ); static TMenuBar *initMenuBar( TRect ); static TStatusLine *initStatusLine( TRect ); private: void Info(); ushort calculator(); void Help(char * fname); }; //конструктор основного класу TProgApp::TProgApp() : TProgInit( &TProgApp::initStatusLine, &TProgApp::initMenuBar, &TProgApp::initDeskTop ) { struct DialogData DialogData; struct DialogData *DataPtr; DataPtr->from=1; DataPtr->to=2; strcpy(DataPtr->InputLine,"0000000000000"); strcpy(DataPtr->OutputLine,"xXx"); } //калькулятор, виводить на екран діалогове вікно, у якому користувач може //перевести числа в різні системи числення ushort TProgApp::calculator() { struct DialogData *DataPtr; do{ TDialog *d = new TDialog(TRect( 14, 5, 66, 16 ), "Виберiть варiант переведення числа" ); d->insert( new TButton( TRect( 30, 8, 39, 10 ), " OK! ", cmOK, bfDefault ) ); d->insert( new TButton( TRect( 39, 8, 48, 10 ), "Cancel", cmCancel, bfNormal ) ); TCluster *b=new TRadioButtons(TRect(1,4,8,8), new TSItem("2", new TSItem("8", new TSItem("10", new TSItem("16", 0) )))); d->insert(b); d->insert(new TLabel(TRect(1,2,10,3),"From",b)); d->insert( new TStaticText( TRect( 20, 5, 50, 6 ), DataPtr->OutputLine ) ); TCluster *c=new TRadioButtons(TRect(10,4,18,8), new TSItem("2", new TSItem("8", new TSItem("10", new TSItem("16", 0) )))); d->insert(c); d->insert(new TLabel(TRect(10,2,13,3),"To",c)); new TInputLine(TRect(3,8,37,9),128); d->insert(new TInputLine(TRect(19,2,50,3),length)); d->setData(DataPtr); ushort control=execView( d ); if(control!=cmCancel) {Trans(DataPtr);d->getData(DataPtr);} else d->getData(DataPtr); destroy(d); return control; }while(NULL); return 0; } //функція,що виводить на екран діалогове вікно з інформацією про програму void TProgApp::Info() { TDialog *d = new TDialog(TRect( 14, 5, 66, 16 ), "Iнформацiя про програму" ); d->insert( new TStaticText( TRect( 3, 1, 48, 10 ), "Курсова робота з П.О.М.П.nстудента групи КН-119, IКНI, кафедра IСМnГайдiна В.А. aka Mace Windun"Навчальна програма переведення дiйсних чисел з 2,8,10,16 у 2,8,10,16 системи числення"" ) ); d->insert( new TButton( TRect( 39, 8, 49, 10 ), " OK ", cmCancel, bfNormal ) ); deskTop->execView( d ); destroy(d); } //функція, що виводить на еран вікно з текстом, записаним у файлі, ім'я якого //передається у неї як параметр char * fname void TProgApp::Help(char * fname) { char s[256]; int y=1; FILE * f; f=fopen(fname,"r"); TDialog *d = new TDialog(TRect( 0, 0, 56, 20 ), "Довiдка про переведення числа" ); while(fgets(s,255,f)!=NULL) { d->insert( new TStaticText( TRect( 1, y, 55, y+1 ), strdup(s) ) ); y++; } d->insert( new TButton( TRect( 1, 17, 9, 19 ), "OK", cmCancel, bfNormal ) ); deskTop->execView( d ); destroy(d); } //обробник подій, в нього передається константа команди, у відповідь на неї //запускається функція, яка відповідає цій константі void TProgApp::handleEvent( TEvent& event ) { struct DialogData * DataPtr; TApplication::handleEvent( event ); ushort control; if( event.what == evCommand ) { switch( event.message.command ) { case CalcCmd: clearEvent( event ); while(calculator()==cmOK); break; case InfoCmd: Info(); clearEvent( event ); break; case HelpCmd: Help("help\help.txt"); clearEvent( event ); break; case Bin2OctCmd: Help("help\2-8.txt"); clearEvent( event ); break; case Bin2DecCmd: Help("help\2-10.txt"); clearEvent( event ); break; case Bin2HexCmd: Help("help\2-16.txt"); clearEvent( event ); break; case Oct2BinCmd: Help("help\8-2.txt"); clearEvent( event ); break; caseOct2DecCmd: Help("help\8-10.txt"); clearEvent( event ); break; case Oct2HexCmd: Help("help\8-16.txt"); clearEvent( event ); break; case Dec2BinCmd: Help("help\10-2.txt"); clearEvent( event ); break; case Dec2OctCmd: Help("help\10-8.txt"); clearEvent( event ); break; case Dec2HexCmd: Help("help\10-16.txt"); clearEvent( event ); break; case Hex2BinCmd: Help("help\16-2.txt"); clearEvent( event ); break; case Hex2OctCmd: Help("help\16-8.txt"); clearEvent( event ); break; case Hex2DecCmd: Help("help\16-10.txt"); clearEvent( event ); break; default: break; } } } //функція, що ініціалізує головне меню та забезпечує його роботу TMenuBar *TProgApp::initMenuBar( TRect r ) { r.b.y = r.a.y+1; return new TMenuBar( r, *new TSubMenu( "~М~еню", kbAltV ) + *new TMenuItem( "~К~алькулятор...", CalcCmd, kbAltJ ) + newLine() + *new TMenuItem( "~В~ихiд", cmQuit, cmQuit, hcNoContext, "Alt-X" ) + *new TSubMenu( "~Д~овiдка", kbAltL ) + *new TMenuItem( "~П~ро програму...", InfoCmd, kbAltG ) + newLine() + *new TMenuItem( "~Д~опомога", HelpCmd, kbAltG ) + newLine() + *new TMenuItem( "2->8", Bin2OctCmd, kbAltG ) + *new TMenuItem( "2->10", Bin2DecCmd, kbAltG ) + *new TMenuItem( "2->16", Bin2HexCmd, kbAltG ) + newLine() + *new TMenuItem( "8->2", Oct2BinCmd, kbAltG ) + *new TMenuItem( "8->10", Oct2DecCmd, kbAltG ) + *new TMenuItem( "8->16", Oct2HexCmd, kbAltG ) + newLine() + *new TMenuItem( "10->2", Dec2BinCmd, kbAltG ) + *new TMenuItem( "10->8", Dec2OctCmd, kbAltG ) + *new TMenuItem( "10->16", Dec2HexCmd, kbAltG ) + newLine() + *new TMenuItem( "16->2", Hex2BinCmd, kbAltG ) + *new TMenuItem( "16->8", Hex2OctCmd, kbAltG ) + *new TMenuItem( "16->10", Hex2DecCmd, kbAltG ) ); } //функція, що ініціалізує лінійку стану та забезпечує її роботу TStatusLine *TProgApp::initStatusLine( TRect r ) { r.a.y = r.b.y-1; return new TStatusLine( r, *new TStatusDef( 0, 0xFFFF ) + *new TStatusItem( "~Alt-X~ - Exit", kbAltX, cmQuit ) + *new TStatusItem( "~Alt-I~ - iнформацiя про програму", kbAltI, InfoCmd ) + *new TStatusItem( "~F1~ - довiдка", kbF1, HelpCmd ) + *new TStatusItem( 0, kbF10, cmMenu ) ); } //функція, яка виводить початкову заставку при старті програми void StartWindow() { int i,j; textcolor(WHITE); textbackground(BLACK); clrscr(); gotoxy(13,23); cputs(" NUMBER SYSTEMS TRANSLATOR"); gotoxy(13,24); cputs("Education program (c) 2005 Victor Haydin aka Mace Windu"); gotoxy(13,25); cputs(" Press any key to continue"); while(!kbhit()) { window(1,1,22,80); textcolor(LIGHTGREEN); gotoxy(1,1); for(i=1;i<=1760;i++) cprintf("%i",random(10)); textcolor(WHITE); gotoxy(30,2); cputs("??????"); gotoxy(46,2); cputs("?????"); gotoxy(29,3); cputs("?"); gotoxy(36,3); cputs("?"); gotoxy(45,3); cputs("?"); gotoxy(51,3);
Loading...

 
 

Цікаве