lackiluck1 Temat założony przez niniejszego użytkownika |
[Kurs XII - Ćw.] Problem z rozwiązaniem » 2009-09-03 19:20:33 #include <iostream> #include <conio.h> #include <ctime> #include "console.ddt"
using namespace std; using namespace ddt::console;
int main() { int wybor; float pauza; char dane[ 5 ][ 5 ][ 58 ] = { { { "1. Czytaj logi" }, { "2. Usun temat" }, { "3. Lista oczekujacych prac" }, { "4. Pauza" }, { "5. Koniec" } }, { { "Co wybierasz szefie? " }, { "16 styczen 2008 00:01 - atak SYN flooding IP 99.99.99.1" }, { "20 maj 2008 14:13 - uzytkownik Macius12 blad logowania" }, { "31 lipiec 2008 17:29 - zarejestrowal sie uzytkownik Mapet" }, { "5 sierpien 2008 20:09 - aktualizacja Kursu Allegro" } }, { { "Tematy przeznaczone do usuniecia" }, { "1. GroupId = 191" }, { "2. GroupId = 163" }, { "GroupId = 671" }, { "1. Dokumetacja." } }, { { "2. Artykuly." }, { "3. Dzial Pliki." }, { "4. Sygnatury zamkniecia by Dante." }, { "Szefie zrob sobie przerwe, ile potrzebujesz minut?" }, { "Twoja przerwa wyniesie(w sekundach): " } }, { { "Niestety przerwa juz minela czas to roboty." }, { "Podaj cyfry z zakresu 1-5: " }, { "Koniec na dzisiaj do jutra!" }, { "Aplikacja zakonczy dzialanie za (sek.)" }, { "Administrowanie forum DDT:" } } }; gotoxy( 20, 1 ); cout << dane[ 4 ][ 4 ]; textcolor( 12 ); gotoxy( 15, 2 ); cout << dane[ 0 ][ 0 ]; gotoxy( 15, 3 ); cout << dane[ 0 ][ 1 ]; gotoxy( 40, 2 ); cout << dane[ 0 ][ 2 ]; gotoxy( 40, 3 ); cout << dane[ 0 ][ 3 ]; gotoxy( 40, 4 ); cout << dane[ 0 ][ 4 ]; gotoxy( 1, 5 ); while( wybor != 6 ) { cout << dane[ 1 ][ 0 ]; cin >> wybor; switch( wybor ) { case 1: cout << dane[ 1 ][ 1 ] << endl << dane[ 1 ][ 2 ] << endl << dane[ 1 ][ 3 ] << endl << dane[ 1 ][ 4 ] << endl << endl; break; case 2: cout << dane[ 2 ][ 0 ] << endl; cout << dane[ 2 ][ 1 ] << "\t" << dane[ 2 ][ 2 ] << "\t" << dane[ 2 ][ 3 ] << endl << endl; break; case 3: cout << dane[ 2 ][ 4 ] << "\t\t" << dane[ 3 ][ 0 ] << endl << dane[ 3 ][ 1 ] << "\t\t" << dane[ 3 ][ 2 ] << endl << endl; break; case 4: cout << dane[ 3 ][ 3 ] << endl; ( cin >> pauza ).get(); clock_t koniec = int( pauza * 60 ) * CLOCKS_PER_SEC; clock_t start = clock(); cout << dane[ 3 ][ 4 ] << pauza * 60 << endl; while( clock() - start < koniec ) ; cout << dane[ 4 ][ 0 ] << endl << endl; break; } } getch(); return( 0 ); } W tym kodzie mam problem z opcją 5-koniec. Na pierwszy rzut oka wydaje mi się, że wszystko jest dobrze i tak jest dopóki nie usunę znaków /* i */ Kompilując w DevC++ wyskakuje mi następujący błąd: jump to case label - linijka 74 crosses initialization of `clock_t start' - linijka 68 crosses initialization of `clock_t koniec' - linijka 67 Może jestem debilem ale potrzebuje pomocy. Przez dłuższy czas mogę nie odpisywać, bo niestety nie mam neta w domu(ale już nie długo), za co serdecznie przepraszam. |
|
GoldWolf |
» 2009-09-03 20:20:43 Sprawdziłem i wszystko działa super, bardzo dobrze poradziłeś sobie z zadaniem. Wprawdzie jeszcze trochę poprawek i będzie całkowicie działać zgodnie z wymaganiami ćwiczenia. Więc mogę ci spokojnie powiedzieć, że debilem nie jesteś. Nie mam takich komunikatów jakie podałeś: #include <iostream> #include <conio.h> #include <ctime> #include "console.ddt" int main() { using namespace std; using namespace ddt::console; int wybor; float pauza; char dane[ 5 ][ 5 ][ 58 ] = { { { "1. Czytaj logi" }, { "2. Usun temat" }, { "3. Lista oczekujacych prac" }, { "4. Pauza" }, { "5. Koniec" } }, { { "Co wybierasz szefie? " }, { "16 styczen 2008 00:01 - atak SYN flooding IP 99.99.99.1" }, { "20 maj 2008 14:13 - uzytkownik Macius12 blad logowania" }, { "31 lipiec 2008 17:29 - zarejestrowal sie uzytkownik Mapet" }, { "5 sierpien 2008 20:09 - aktualizacja Kursu Allegro" } }, { { "Tematy przeznaczone do usuniecia" }, { "1. GroupId = 191" }, { "2. GroupId = 163" }, { "GroupId = 671" }, { "1. Dokumetacja." } }, { { "2. Artykuly." }, { "3. Dzial Pliki." }, { "4. Sygnatury zamkniecia by Dante." }, { "Szefie zrob sobie przerwe, ile potrzebujesz minut?" }, { "Twoja przerwa wyniesie(w sekundach): " } }, { { "Niestety przerwa juz minela czas to roboty." }, { "Podaj cyfry z zakresu 1-5: " }, { "Koniec na dzisiaj do jutra!" }, { "Aplikacja zakonczy dzialanie za (sek.)" }, { "Administrowanie forum DDT:" } } }; gotoxy( 20, 1 ); cout << dane[ 4 ][ 4 ]; textcolor( 12 ); gotoxy( 15, 2 ); cout << dane[ 0 ][ 0 ]; gotoxy( 15, 3 ); cout << dane[ 0 ][ 1 ]; gotoxy( 40, 2 ); cout << dane[ 0 ][ 2 ]; gotoxy( 40, 3 ); cout << dane[ 0 ][ 3 ]; gotoxy( 40, 4 ); cout << dane[ 0 ][ 4 ]; gotoxy( 1, 5 ); while( wybor != 6 ) { cout << dane[ 1 ][ 0 ]; cin >> wybor; switch( wybor ) { case 1: cout << dane[ 1 ][ 1 ] << endl << dane[ 1 ][ 2 ] << endl << dane[ 1 ][ 3 ] << endl << dane[ 1 ][ 4 ] << endl << endl; break; case 2: cout << dane[ 2 ][ 0 ] << endl; cout << dane[ 2 ][ 1 ] << "\t" << dane[ 2 ][ 2 ] << "\t" << dane[ 2 ][ 3 ] << endl << endl; break; case 3: cout << dane[ 2 ][ 4 ] << "\t\t" << dane[ 3 ][ 0 ] << endl << dane[ 3 ][ 1 ] << "\t\t" << dane[ 3 ][ 2 ] << endl << endl; break; case 4: cout << dane[ 3 ][ 3 ] << endl; ( cin >> pauza ).get(); clock_t koniec = int( pauza * 60 ) * CLOCKS_PER_SEC; clock_t start = clock(); cout << dane[ 3 ][ 4 ] << pauza * 60 << endl; while( clock() - start < koniec ); cout << dane[ 4 ][ 0 ] << endl << endl; break; case 5: { cout << dane[ 4 ][ 2 ]; clock_t koniec2 = 1 * CLOCKS_PER_SEC; clock_t start1 = clock(); for( int i = 5; i > 0; i-- ) { cout << dane[ 4 ][ 3 ] << i << endl; while( clock() - start1 < koniec2 ); } } break; } } getch(); return( 0 ); } PS sprawdzałem na Code::Blocks, jeśli są chętni to przydał by się ktoś kto sprawdzi to w Dev-ie |
|
malan |
» 2009-09-03 20:42:57 Na Dev-ie to samo co kolega. //edit: lackiluck1 spróbuj tak: clock_t koniec; koniec = int( pauza * 60 ) * CLOCKS_PER_SEC; clock_t start; start = clock();
+ wydaje mi się, że jest błąd w głównej pętli ;p, a dokładnie w warunku. |
|
GoldWolf |
» 2009-09-03 22:50:37 + wydaje mi się, że jest błąd w głównej pętli język, a dokładnie w warunku. To by nie działało nikomu, więc zostaje kompilator... |
|
malan |
» 2009-09-03 23:07:01 Mi po tej zamianie (up) program się skompilował poprawnie na Dev-ie - wszystko działa. Co do błędu to miałem na myśli: while( wybor != 6 ) Zamiast 6 powinna być 5, aby program się zamknął ;p. |
|
GoldWolf |
» 2009-09-04 03:28:00 Mi po tej zamianie (up) program się skompilował poprawnie na Dev-ie - wszystko działa.I tak wolałbym wiedzieć co było(jest) przyczyną. |
|
pompom |
» 2009-09-04 14:42:49 Deklaracja zmiennych w case 4 była w głównym bloku switcha. #include <iostream> #include <conio.h> #include <ctime> #include "console.ddt"
int main() { using namespace std; using namespace ddt::console; int wybor; float pauza; char dane[ 5 ][ 5 ][ 58 ] = { { { "1. Czytaj logi" }, { "2. Usun temat" }, { "3. Lista oczekujacych prac" }, { "4. Pauza" }, { "5. Koniec" } }, { { "Co wybierasz szefie? " }, { "16 styczen 2008 00:01 - atak SYN flooding IP 99.99.99.1" }, { "20 maj 2008 14:13 - uzytkownik Macius12 blad logowania" }, { "31 lipiec 2008 17:29 - zarejestrowal sie uzytkownik Mapet" }, { "5 sierpien 2008 20:09 - aktualizacja Kursu Allegro" } }, { { "Tematy przeznaczone do usuniecia" }, { "1. GroupId = 191" }, { "2. GroupId = 163" }, { "GroupId = 671" }, { "1. Dokumetacja." } }, { { "2. Artykuly." }, { "3. Dzial Pliki." }, { "4. Sygnatury zamkniecia by Dante." }, { "Szefie zrob sobie przerwe, ile potrzebujesz minut?" }, { "Twoja przerwa wyniesie(w sekundach): " } }, { { "Niestety przerwa juz minela czas to roboty." }, { "Podaj cyfry z zakresu 1-5: " }, { "Koniec na dzisiaj do jutra!" }, { "Aplikacja zakonczy dzialanie za (sek.)" }, { "Administrowanie forum DDT:" } } }; gotoxy( 20, 1 ); cout << dane[ 4 ][ 4 ]; textcolor( 12 ); gotoxy( 15, 2 ); cout << dane[ 0 ][ 0 ]; gotoxy( 15, 3 ); cout << dane[ 0 ][ 1 ]; gotoxy( 40, 2 ); cout << dane[ 0 ][ 2 ]; gotoxy( 40, 3 ); cout << dane[ 0 ][ 3 ]; gotoxy( 40, 4 ); cout << dane[ 0 ][ 4 ]; gotoxy( 1, 5 ); while( wybor != 6 ) { cout << dane[ 1 ][ 0 ]; cin >> wybor; switch( wybor ) { case 1: cout << dane[ 1 ][ 1 ] << endl << dane[ 1 ][ 2 ] << endl << dane[ 1 ][ 3 ] << endl << dane[ 1 ][ 4 ] << endl << endl; break; case 2: cout << dane[ 2 ][ 0 ] << endl; cout << dane[ 2 ][ 1 ] << "\t" << dane[ 2 ][ 2 ] << "\t" << dane[ 2 ][ 3 ] << endl << endl; break; case 3: cout << dane[ 2 ][ 4 ] << "\t\t" << dane[ 3 ][ 0 ] << endl << dane[ 3 ][ 1 ] << "\t\t" << dane[ 3 ][ 2 ] << endl << endl; break; case 4: { cout << dane[ 3 ][ 3 ] << endl; ( cin >> pauza ).get(); clock_t koniec = int( pauza * 60 ) * CLOCKS_PER_SEC, start = clock(); cout << dane[ 3 ][ 4 ] << pauza * 60 << endl; while( clock() - start < koniec ); cout << dane[ 4 ][ 0 ] << endl << endl; break; } case 5: { cout << dane[ 4 ][ 2 ]; clock_t start = clock(), koniec = 1 * CLOCKS_PER_SEC; for( int i = 5; i > 0; i-- ) { cout << dane[ 4 ][ 3 ] << i << endl; while( clock() - start < koniec ); } break; } } } getch(); return( 0 ); }
Btw - zamiast pętli while lepiej użyc funkcji sleep(). |
|
lackiluck1 Temat założony przez niniejszego użytkownika |
» 2009-09-05 10:32:34 Macie rację to zależy od kompilatora bo jak spróbowałem na wxDevC++ to nie było błędów ale i tak musiełem poprawić kilka rzeczy. |
|
« 1 » |