Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dev C++ - Problem z nadanym projektem.

Ostatnio zmodyfikowano 2011-12-08 08:26
Autor Wiadomość
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 :

C/C++
#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;
}
P-45284
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...
P-45285
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.
P-45286
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...

C/C++
#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].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;
}
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...
P-45287
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..
P-45288
SeaMonster131
» 2011-12-07 21:30:01
Przeczytaj » Kurs C++ » Poziom 2Tablice jednowymiarowe lekcja oraz » Kurs C++Klasy (obiekty) lekcja, a wszystko sie wyjaśni :)
P-45289
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
P-45290
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 ?
P-45291
« 1 » 2
  Strona 1 z 2 Następna strona