wojtas1993aaa Temat założony przez niniejszego użytkownika |
Nie umiem skompilować kodu z lekcji » 2008-10-16 21:26:01 Przeczytalem kurs i nie moge sobie poradzic ze zrobieniem tej ksiazki telefonicznej(nowy jestem)Mógl by mi ktos pomuc? |
|
DejaVu |
» 2008-10-16 21:27:24 A co chcesz konkretnie zrobić w niej? |
|
wojtas1993aaa Temat założony przez niniejszego użytkownika |
» 2008-10-16 21:30:19 #include <iostream> #include <conio.h> #include "console.ddt" #define MAX_OSOB 50 #define WYSWIETL_OSOB 20 using namespace ddt::console; using namespace std; struct OsobaST { string imie; string nazwisko; string telefon; }; OsobaST WczytajOsobe( void ); void WyswietlDaneOsoby( OsobaST ); void WyswietlListeOsob( OsobaST tablica[], int iloscElelemtow, int zaznaczElement, int wyswietlOdElementu ); void KasujOsobe( OsobaST tablica[], int & iloscElementow, int indeksDoSkasowania ); void DodajOsobe( OsobaST tablica[], int & aktualnaIloscElementow ); void WyswietlKomunikaty( int iloscElementow ) { textbackground( 0 ); textcolor( 7 ); gotoxy( 1, 1 ); cout << "Ilosc osob: " << iloscElementow << "/" << MAX_OSOB << " "; gotoxy( 1, 24 ); cout << "[ESC] Wyjscie "; cout << "[INSERT] Dodaj wpis "; cout << "[GORA/DOL] Poruszanie sie po liscie "; gotoxy( 1, 25 ); cout << "[DELETE] Kasuj osobe "; cout << "[ENTER] Pokaz dane osoby "; cout << "[CTRL+ENTER] Edytuj osobe "; return; } void EdytujTekst( string & fTekst ); void EdytujDaneOsoby( OsobaST & ); int main() { OsobaST osoby[ MAX_OSOB ]; int iloscOsob = 0; bool koniec = false; int pozycja = 0; int pozycjaListy = 0; while( koniec != true ) { textcolor( 7 ); textbackground( 0 ); clrscr(); if( pozycja >= iloscOsob ) pozycja = iloscOsob - 1; if( pozycja < 0 ) pozycja = 0; if( pozycja > pozycjaListy +( WYSWIETL_OSOB - 1 ) ) pozycjaListy = pozycja -( WYSWIETL_OSOB - 1 ); if( pozycja < pozycjaListy ) pozycjaListy = pozycja; WyswietlListeOsob( osoby, iloscOsob, pozycja, pozycjaListy ); WyswietlKomunikaty( iloscOsob ); unsigned char znak = getch(); switch( znak ) { case 224: znak = getch(); switch( znak ) { case 72: pozycja -= 1; break; case 80: pozycja += 1; break; case 82: DodajOsobe( osoby, iloscOsob ); break; case 83: KasujOsobe( osoby, iloscOsob, pozycja ); break; } znak = 0; break; case 10: if( iloscOsob > 0 ) EdytujDaneOsoby( osoby[ pozycja ] ); break; case 13: if( iloscOsob > 0 ) WyswietlDaneOsoby( osoby[ pozycja ] ); break; case 27: koniec = true; break; } } return( 0 ); } void DodajOsobe( OsobaST tablica[], int & aktualnaIloscElementow ) { if( aktualnaIloscElementow < MAX_OSOB ) { tablica[ aktualnaIloscElementow ] = WczytajOsobe(); aktualnaIloscElementow += 1; } return; } OsobaST WczytajOsobe( void ) { OsobaST tOsoba; clrscr(); cout << "Podaj imie: "; getline( cin, tOsoba.imie ); cout << "Podaj nazwisko: "; getline( cin, tOsoba.nazwisko ); cout << "Podaj telefon: "; getline( cin, tOsoba.telefon ); return( tOsoba ); } void WyswietlListeOsob( OsobaST tablica[], int iloscElementow, int zaznaczElement, int wyswietlOdElementu ) { int max = wyswietlOdElementu + WYSWIETL_OSOB; if( max > iloscElementow ) max = iloscElementow; for( int i = wyswietlOdElementu; i < max; i++ ) { if( i == zaznaczElement ) { textbackground( 12 ); textcolor( 14 ); } else { textbackground( 0 ); textcolor( 7 ); } gotoxy( 1, 3 + i - wyswietlOdElementu ); for( int j = 0; j < 60; j++ ) cout << " "; gotoxy( 1, wherey() ); cout <<( i + 1 ); gotoxy( 10, wherey() ); cout << tablica[ i ].imie; gotoxy( 30, wherey() ); cout << tablica[ i ].nazwisko; } return; } void WyswietlDaneOsoby( OsobaST osoba ) { clrscr(); cout << "Imie wybranej osoby to: " << osoba.imie << endl; cout << "Nazwisko wybranej osoby to: " << osoba.nazwisko << endl; cout << "Telefon kontaktowy do tej osoby to: " << osoba.telefon << endl; cout << endl; cout << "Nacisnij dowolny klawisz aby powrocic do listy osob." << endl; getch(); return; } void KasujOsobe( OsobaST tablica[], int & iloscElementow, int indeksDoSkasowania ) { if( iloscElementow > 0 ) { int minx = 20; int miny = 11; int maxx = 80 -( minx - 1 ); int maxy = 25 -( miny - 1 ); textcolor( 15 ); textbackground( 1 ); for( int y = miny; y <= maxy; y++ ) { gotoxy( minx, y ); for( int x = minx; x <= maxx; x++ ) cout << " "; } gotoxy( minx + 1, miny ); textcolor( 15 ); cout << "Imie: "; textcolor( 14 ); cout << tablica[ indeksDoSkasowania ].imie; gotoxy( minx + 1, miny + 1 ); textcolor( 15 ); cout << "Nazwisko: "; textcolor( 14 ); cout << tablica[ indeksDoSkasowania ].nazwisko; gotoxy( minx + 1, miny + 2 ); textcolor( 15 ); cout << "Telefon: "; textcolor( 14 ); cout << tablica[ indeksDoSkasowania ].telefon; gotoxy( minx + 1, maxy ); textcolor( 15 ); cout << "Czy chcesz usunac ten wpis? (T/N)"; unsigned char tOdpowiedz = 0; do { tOdpowiedz = getch(); if( tOdpowiedz == 224 ) { getch(); tOdpowiedz = 0; } } while(( tOdpowiedz != 't' ) &&( tOdpowiedz != 'T' ) &&( tOdpowiedz != 'N' ) &&( tOdpowiedz != 'n' ) ); if(( tOdpowiedz == 't' ) ||( tOdpowiedz == 'T' ) ) { for( int i = indeksDoSkasowania + 1; i < iloscElementow; i++ ) tablica[ i - 1 ] = tablica[ i ]; iloscElementow -= 1; } } return; } void EdytujTekst( string & fTekst ) { string tNowy; getline( cin, tNowy ); if( tNowy.length() == 0 ) { cout << "Nie wprowadzono zmian!" << endl; } else { fTekst = tNowy; cout << "Wprowadzono zmiany!" << endl; } } void EdytujDaneOsoby( OsobaST & fOsoba ) { clrscr(); cout << "Pole, ktore zostawisz puste nie zostanie zmienione." << endl; cout << "Podaj nowe imie (stare: \"" << fOsoba.imie << "\"): "; EdytujTekst( fOsoba.imie ); cout << "Podaj nowe nazwisko (stare: \"" << fOsoba.nazwisko << "\"): "; EdytujTekst( fOsoba.nazwisko ); cout << "Podaj nowy telefon (stary: \"" << fOsoba.telefon << "\"): "; EdytujTekst( fOsoba.telefon ); return; } //////////////////to bylo w kursie ////////////////////////////////////////////// Mi kompilator znajduje bledy w ddt::console i nie mogfe ruszyc :/ Prosze o pomoc:) |
|
DejaVu |
» 2008-10-16 21:33:40 |
|
wojtas1993aaa Temat założony przez niniejszego użytkownika |
» 2008-10-16 21:37:38 Cos nie bardzo dziala:/ |
|
DejaVu |
» 2008-10-16 21:39:02 Pisz pełnymi zdaniami i opisuj dokładniej, bo na takie stwierdzenia nie jestem w stanie w żaden sposób zareagować. |
|
lynx |
» 2008-10-16 21:40:13 To może spróbuj jeszcze raz pobrać console.ddt. |
|
wojtas1993aaa Temat założony przez niniejszego użytkownika |
» 2008-10-16 21:41:12 ok |
|
« 1 » 2 |