arak1488 Temat założony przez niniejszego użytkownika |
Dev C++ - Problem z nadanym projektem. » 2011-12-07 20:56:29 Witam, Mam problem z zadaniem. Otóż wszystko zrobiłem wg. zaleceń Profesora, a jednak wychodzi mi mnóstwo błędów. Mógłby ktoś zerknąć na tą pracę ? Będę wdzięczny. Oto kod : #include <iostream> #include <string> #include <stdlib.h> using namespace std; int tabl[ 5 ] = { 0, 0, 0, 0, 0 }; int x, y, z, i; float srednia, dlugosc; char a[ 10 ];
struct samochod { char model[ 10 ]; char zuzycie paliwa[ 4 ]; int wiek; char kolor[ 10 ]; int wielkosc samochodu; char pojemnosc silnika[ 10 ]; } tab[ 5 ]; int menu() { cout << endl; cout << "MENU >>Wpisz numerek przy wybranym przez Ciebie poleceniu(0-6)<<" << endl; cout << "1. Wypisze na ekranie w postaci tabelarycznej wprowadzone informacje." << endl; cout << "2. Poda informację ile jest samochodów we wskazanym (o kolor należy zapytać użytkownika) kolorze." << endl; cout << "3. Informacje o najmlodszym i najstarszym samochodzie" << endl; cout << "4. Wypisze wszystkie samochody (model, kolor i wiek) starsze niż średnia wieku wprowadzonych samochodów;" << endl; cout << "5. Poda ile samochodów ma za duże zużycie (za dużo jest wtedy, gdy: pojemność silnika/zużycie paliwa <210);" << endl; cout << "6. Wypisze w kolejności rosnącej (ze względu na pojemność silnika) samochody małe, a następnie duże." << endl; cout << "0. Koniec programu"; cin >> i; }
int zbieraniedanych() { cout << "Podaj informacje o 10 dowolnych samochodach"; for( x = 0; x < 5; x++ ) { cout << "Samochod " << x << endl; cout << "Model: "; cin >> tab[ x ].model; cout << "Zuzycie paliwa : "; cin >> tab[ x ].zuzycie paliwa; cout << "Wiek(w latach) : "; cin >> tab[ x ].wiek; cout << "Kolor : "; cin >> tab[ x ].kolor; cout << "Wielkość samochodu (duzy/maly)"; cin >> tab[ x ].wielkosc samochodu; cout << "Pojemnosc silnika "; cin >> tab[ x ].pojemnosc silnika; } }
int zad1() { for( x = 0; x < 5; x++ ) { cout << "Samochod " << x << endl; cout << " Model : "; cout << tab[ x ].model; cout << " Zyzycie paliwa : "; cout << tab[ x ].zuzycie paliwa; cout << " Wiek : "; cout << tab[ x ].wiek; cout << " Kolor : "; cout << tab[ x ].kolor; cout << " Wielkosc samochodu : "; cout << tab[ x ].wielkosc samochodu; cout << " pojemnosc silnika : "; cout << tab[ x ].pojemnosc silnika; cout << endl; } }
int zad2() { cout << "Podaj kolor : "; cin >> a; z = 0; for( x = 0; x < 5; x++ ) { if( tab[ x ].wielkosc samochodu == "duzy" ) { if( tab[ x ].kolor == a ) { z++; } } cout << endl << "Takich samochodzików jest : " << z; } }
int zad3() { z = tab[ 1 ].wiek; for( x = 0; x < 5; x++ ) { if( tab[ x ].wiek > z ) { z = tab[ x ].wiek; } } x = z; cout << "Najstarsze samochodu " << x << endl; cout << " Model : "; cout << tab[ x ].Model; cout << " Wielkosc(duzy/maly) : "; cout << tab[ x ].wielkosc; cout << " Wiek : "; cout << tab[ x ].wiek; cout << " Kolor : "; cout << tab[ x ].kolor; cout << " Wielkosc samochodu "; cout << tab[ x ].wielkosc samochodu; cout << " Pojemnosc silnika : "; cout << tab[ x ].pojemnosc silnika; cout << endl; z = tab[ 1 ].wiek; for( x = 0; x < 5; x++ ) { if( tab[ x ].wiek < z ) { z = tab[ x ].wiek; } } x = z; cout << "Najstarsze samochodu " << x << endl; cout << " Model : "; cout << tab[ x ].Model; cout << " Wielkosc(duzy/maly) : "; cout << tab[ x ].wielkosc; cout << " Wiek : "; cout << tab[ x ].wiek; cout << " Kolor : "; cout << tab[ x ].kolor; cout << " Wielkosc samochodu "; cout << tab[ x ].wielkosc samochodu; cout << " Pojemnosc silnika : "; cout << tab[ x ].pojemnosc silnika; cout << endl; }
int zad4() { srednia =( tab[ 1 ].wiek + tab[ 2 ].wiek + tab[ 3 ].wiek + tab[ 4 ].wiek + tab[ 5 ].wiek ) / 5; for( x = 0; x < 5; x++ ) { if( tab[ x ].wiek > srednia ) { cout << "Samochod" << x << endl; cout << " Model : "; cout << tab[ x ].Model; cout << " Wielkosc(duzy/maly) : "; cout << tab[ x ].wielkosc; cout << " Wiek : "; cout << tab[ x ].wiek; cout << " Kolor : "; cout << tab[ x ].kolor; cout << " Wielkosc samochodu "; cout << tab[ x ].wielkosc samochodu; cout << " Pojemnosc silnika : "; cout << tab[ x ].pojemnosc silnika; cout << endl; } } }
int zad5() { z = 0; for( x = 0; x < 5; x++ ) { if( tab[ x ].waga > 10 ) { if( tab[ x ].model[( sizeof( sizeof( tab[ x ].model ) / tab[ x ].model[ 0 ] ) ) - 1 ] == 'a' ) { z++; } } } cout << " Takich samochodow jest : " << z; }
int zad6() { z = 0; for( y = 0; y < 5; y++ ) { for( x = 0; x < 5; x++ ) { if( tab[ x ].wielkosc == "maly" || tab[ x ].wiek > z || x != tabl[ 0 ] || x != tabl[ 1 ] || x != tabl[ 2 ] || x != tabl[ 3 ] || x != tabl[ 4 ] ) { z = x; } } tabl[ y ] = z; for( x = 0; x < 5; x++ ) { if( tab[ x ].wielkosc == "duzy" || tab[ x ].wiek > z || x != tabl[ 0 ] || x != tabl[ 1 ] || x != tabl[ 2 ] || x != tabl[ 3 ] || x != tabl[ 4 ] ) { z = x; } } tabl[ y ] = z; } for( x = 0; x < 5; x++ ) { cout << "Samochod " << x << endl; cout << "Model : "; cout << tab[ x ].Model; cout << endl; cout << "Zuzycie paliwa: "; cout << tab[ x ].Zuzycie paliwa; cout << endl; cout << "Wiek : "; cout << tab[ x ].wiek; cout << endl; cout << "Kolor : "; cout << tab[ x ].kolor; cout << endl; cout << "Wielkosc samochodu : "; cout << tab[ x ].wielkosc samochodu; cout << endl; cout << "Pojemnosc silnika : "; cout << tab[ x ].pojemnosc silnika; cout << endl; } }
int main() { zbieraniedanych(); i = 1; while( i == 1 ) { menu(); switch( i ) { case 1: zad1(); break; case 2: zad2(); break; case 3: zad3(); break; case 4: zad4(); break; case 5: zad5(); break; case 6: zad6(); break; case 0: return 0; break; default: cout << "Bledna wartosc"; break; } system( "cls" ); } return 0; }
|
|
MJJay |
» 2011-12-07 21:01:43 Pierwszy błąd: nie piszemy #include <stdlib.h> bo jest to nie zgodne z obowiązującym standardem. Jako, iż jest to biblioteka ANSI C to piszemy teraz tak: #include <cstdlib> Kolejne błędy...w nazwach zmiennych czy są to tablice czy cokolwiek innego nie możemy używać spacji! Zamień je na "_"... :) Jak deklarujesz zmienną z małej litery to później w programie również wywołuj ją z małej litery... |
|
arak1488 Temat założony przez niniejszego użytkownika |
s » 2011-12-07 21:14:23 Mam prośbę, czy mógłbyś mi używając mojego kodu pogrubić/powiększyć linijkę gdzie są błędy, a ja je przeanalizuję i naniosę poprawki, a w racji potrzeby zwrócę się jeszcze raz tu o pomoc. |
|
MJJay |
» 2011-12-07 21:15:29 To twój kod w miarę poprawiony...coś jeszcze sypie się z tablicą "tab" ale jeszcze nie wiem co... #include <iostream> #include <string> #include <cstdlib> using namespace std; int tabl[ 5 ] = { 0, 0, 0, 0, 0 }; int x, y, z, i; float srednia, dlugosc; char a[ 10 ];
struct samochod { char model[ 10 ]; char zuzycie_paliwa[ 4 ]; int wiek; char kolor[ 10 ]; int wielkosc_samochodu; char pojemnosc_silnika[ 10 ]; int tab[ 5 ]; }; int menu() { cout << endl; cout << "MENU >>Wpisz numerek przy wybranym przez Ciebie poleceniu(0-6)<<" << endl; cout << "1. Wypisze na ekranie w postaci tabelarycznej wprowadzone informacje." << endl; cout << "2. Poda informację ile jest samochodów we wskazanym (o kolor należy zapytać użytkownika) kolorze." << endl; cout << "3. Informacje o najmlodszym i najstarszym samochodzie" << endl; cout << "4. Wypisze wszystkie samochody (model, kolor i wiek) starsze niż średnia wieku wprowadzonych samochodów;" << endl; cout << "5. Poda ile samochodów ma za duże zużycie (za dużo jest wtedy, gdy: pojemność silnika/zużycie paliwa <210);" << endl; cout << "6. Wypisze w kolejności rosnącej (ze względu na pojemność silnika) samochody małe, a następnie duże." << endl; cout << "0. Koniec programu"; cin >> i; }
int zbieraniedanych() { cout << "Podaj informacje o 10 dowolnych samochodach"; for( x = 0; x < 5; x++ ) { cout << "Samochod " << x << endl; cout << "Model: "; cin >> tab[ x ].model; cout << "Zuzycie paliwa : "; cin >> tab[ x ].zuzycie_paliwa; cout << "Wiek(w latach) : "; cin >> tab[ x ].wiek; cout << "Kolor : "; cin >> tab[ x ].kolor; cout << "Wielkość samochodu (duzy/maly)"; cin >> tab[ x ].wielkosc_samochodu; cout << "Pojemnosc silnika "; cin >> tab[ x ].pojemnosc_silnika; } }
int zad1() { for( x = 0; x < 5; x++ ) { cout << "Samochod " << x << endl; cout << " Model : "; cout << tab[ x ].model; cout << " Zyzycie paliwa : "; cout << tab[ x ].zuzycie_paliwa; cout << " Wiek : "; cout << tab[ x ].wiek; cout << " Kolor : "; cout << tab[ x ].kolor; cout << " Wielkosc samochodu : "; cout << tab[ x ].wielkosc_samochodu; cout << " pojemnosc silnika : "; cout << tab[ x ].pojemnosc_silnika; cout << endl; } }
int zad2() { cout << "Podaj kolor : "; cin >> a; z = 0; for( x = 0; x < 5; x++ ) { { if( tab[ x ].kolor == a ) { z++; } } cout << endl << "Takich samochodzików jest : " << z; } }
int zad3() { z = tab[ 1 ].wiek; for( x = 0; x < 5; x++ ) { if( tab[ x ].wiek > z ) { z = tab[ x ].wiek; } } x = z; cout << "Najstarsze samochodu " << x << endl; cout << " Model : "; cout << tab[ x ].model; cout << " wielkosc(duzy/maly) : "; cout << tab[ x ].Wielkosc; cout << " Wiek : "; cout << tab[ x ].wiek; cout << " Kolor : "; cout << tab[ x ].kolor; cout << " Wielkosc samochodu "; cout << tab[ x ].wielkosc_samochodu; cout << " Pojemnosc silnika : "; cout << tab[ x ].pojemnosc_silnika; cout << endl; z = tab[ 1 ].wiek; for( x = 0; x < 5; x++ ) { if( tab[ x ].wiek < z ) { z = tab[ x ].wiek; } } x = z; cout << "Najstarsze samochodu " << x << endl; cout << " Model : "; cout << tab[ x ].Model; cout << " Wielkosc(duzy/maly) : "; cout << tab[ x ].wielkosc; cout << " Wiek : "; cout << tab[ x ].wiek; cout << " Kolor : "; cout << tab[ x ].kolor; cout << " Wielkosc samochodu "; cout << tab[ x ].wielkosc_samochodu; cout << " Pojemnosc silnika : "; cout << tab[ x ].pojemnosc_silnika; cout << endl; }
int zad4() { srednia =( tab[ 1 ].wiek + tab[ 2 ].wiek + tab[ 3 ].wiek + tab[ 4 ].wiek + tab[ 5 ].wiek ) / 5; for( x = 0; x < 5; x++ ) { if( tab[ x ].wiek > srednia ) { cout << "Samochod" << x << endl; cout << " Model : "; cout << tab[ x ].Model; cout << " Wielkosc(duzy/maly) : "; cout << tab[ x ].wielkosc; cout << " Wiek : "; cout << tab[ x ].wiek; cout << " Kolor : "; cout << tab[ x ].kolor; cout << " Wielkosc samochodu "; cout << tab[ x ].wielkosc_samochodu; cout << " Pojemnosc silnika : "; cout << tab[ x ].pojemnosc_silnika; cout << endl; } } }
int zad5() { z = 0; for( x = 0; x < 5; x++ ) { if( tab[ x ].waga > 10 ) { if( tab[ x ].model[( sizeof( sizeof( tab[ x ].model ) / tab[ x ].model[ 0 ] ) ) - 1 ] == 'a' ) { z++; } } } cout << " Takich samochodow jest : " << z; }
int zad6() { z = 0; for( y = 0; y < 5; y++ ) { for( x = 0; x < 5; x++ ) { if( tab[ x ].wielkosc == "maly" || tab[ x ].wiek > z || x != tabl[ 0 ] || x != tabl[ 1 ] || x != tabl[ 2 ] || x != tabl[ 3 ] || x != tabl[ 4 ] ) { z = x; } } tabl[ y ] = z; for( x = 0; x < 5; x++ ) { if( tab[ x ].wielkosc == "duzy" || tab[ x ].wiek > z || x != tabl[ 0 ] || x != tabl[ 1 ] || x != tabl[ 2 ] || x != tabl[ 3 ] || x != tabl[ 4 ] ) { z = x; } } tabl[ y ] = z; } for( x = 0; x < 5; x++ ) { cout << "Samochod " << x << endl; cout << "Model : "; cout << tab[ x ].Model; cout << endl; cout << "Zuzycie paliwa: "; cout << tab[ x ].zuzycie_paliwa; cout << endl; cout << "Wiek : "; cout << tab[ x ].wiek; cout << endl; cout << "Kolor : "; cout << tab[ x ].kolor; cout << endl; cout << "Wielkosc samochodu : "; cout << tab[ x ].wielkosc_samochodu; cout << endl; cout << "Pojemnosc silnika : "; cout << tab[ x ].pojemnosc_silnika; cout << endl; } }
int main() { zbieraniedanych(); i = 1; while( i == 1 ) { menu(); switch( i ) { case 1: zad1(); break; case 2: zad2(); break; case 3: zad3(); break; case 4: zad4(); break; case 5: zad5(); break; case 6: zad6(); break; case 0: return 0; break; default: cout << "Bledna wartosc"; break; } system( "cls" ); } return 0; }
Czy klasa string, którą includujesz do programu nie miała Ci czasem zastąpić tego tab[ x ].wielkosc == "duzy" ? Trochę nie ogarniam co to porobiłeś z tymi tablicami... |
|
arak1488 Temat założony przez niniejszego użytkownika |
» 2011-12-07 21:26:07 Hm, może i masz racje z tym.
Ale nie pamiętam jak mi to Profesor tłumaczył, a teraz spoglądam również na tablice i próbuję ogarnąć te błędy. Pierwszy projekt bez problemów większych mi podszedł, a z tym coś pokićkałem i głowię się od popołudnia nad rozwiązaniem.. |
|
SeaMonster131 |
» 2011-12-07 21:30:01 |
|
MJJay |
» 2011-12-07 21:30:29 W tym pierwszym projekcie też deklarowałeś zmienne ze spacjami (nie możliwe, że to działało)?:P Napisz ten projekt jeszcze raz:) Taka moja mała porada. A jak nie wiesz o co chodziło to masz dwa wyjścia:
a) zapytać profesora jeszcze raz, b) masz problem :P
@SeaMonster131 czekałeś aż ktoś się wyprodukuje szukając tam błędów?:P |
|
arak1488 Temat założony przez niniejszego użytkownika |
» 2011-12-07 21:36:08 @SeaMonster131 - Przeczytałem artykuł odnośnie Tablic i nie tylko tu, ale i również w podręcznikach dla Programistów. I niestety nie przychodzi mi do głowy jakikolwiek pomysł.
@MJJay - Hm, Profesor wyciągnął wszelakie asy z rękawa by mi pomóc, ale na wszystkie pomoce z strony nie mogę chyba liczyć. Dlatego też zwracam się do was. A jeżeli pytałeś o spacje, używałem "_", tyle że nie zwróciłem uwagi przy pierwszym projekcie.
Porównuje teraz pierwszy z drugim i nie widzę zależności w błędach..
Będzie ktoś łaskawy i pomoże ? |
|
« 1 » 2 |