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

[c++] Program Bazodanowy?

Ostatnio zmodyfikowano 2009-02-06 12:35
Autor Wiadomość
dzolero86
Temat założony przez niniejszego użytkownika
[c++] Program Bazodanowy?
» 2008-11-06 19:13:33
Witam serdecznie, mam stworzyc program w C++ na zaliczenie a jego treść to:

Program umożliwia wprowadzenie i zapisywanie drużyn piłkarskich. Możliwe jest wprowadzanie i zapisywanie do plików wyników meczy. Możliwe jest wyświetlenie wyników wybranej drużyny oraz wybranej kolejki. Możliwe jest wyświetlenie tabeli zawierającej Nazwę drużyny, liczbę punktów, liczbę zwycięstw, liczbę porażek, liczbę remisów i stosunek bramek.


Jestem zielony w C++ nie bardzo wiem czy da sie stworzyc takie bazy danych w C++? czy ma ktos jakąś koncepcje na rozwiazanie tego problemy? jak narazie deukując z ksiązek które zgromadzilem to stworzylem takie menu:


C/C++
#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc, char * argv[] )
{ int wybor;
    cout << "Co chcesz zrobic? \n 1. Dodac druzyne pilkarska? \n 2.Wprowadzic wyniki meczow? \n 3. Zobaczyc wyniki druzyny? \n 4.Zobaczyc wyniki kolejki \n 5.Statystyki druzyny \n Wybierasz operacje nr: \n";
    cin >> wybor;
    switch( wybor )
    {
    case 1:
        cout << "Teraz dodamy druzyne pilkarska"; break;
    case 2:
        cout << "Wprowadzamy wyniki meczów"; break;
    case 3:
        cout << "Sprawdzimy wyniki druzyny z listy"; break;
    case 4:
        cout << "Wybierz kolejke"; break;
    case 5:
        cout << "Wybierz drużyne w celu podgladniecia statystyk"; break;
    default:
        cout << "wybrales" << wybor << "-nie ma takiej opcji w tym programie!"; break;
    }
    system( "PAUSE" );
    return EXIT_SUCCESS;
}

ale dalej nie bardzo wiem jak to rozwinac, bo samo wprowadzanie np. Nazwy druzyny nie gwarantuje jej zapisanie, a powiedzmy po 10 wprowadzonych druzynach program ma miec możliwosc wywołania jednej z wczesniejszych drużyn które zostały wprowadzone, czyli musi je gdzies zapisac... nie mam pojecia jak dalej sobie z tym poradzic....
P-2449
DejaVu
» 2008-11-06 20:34:22
Generalnie widzę, że jesteś w trudnej sytuacji. Aby wykonać program 'bazodanowy' o którym wspomniałeś musisz znać:
[li]warunki if...else[/li]
[li]Pętlę while[/li]
[li]Jak umiejętnie korzystać ze zmiennych typu string[/li]
[li]obsługę plików[/li]
[li]struktury danych - jak organizować łatwo dane[/li]
Język C++ ma największe możliwości ze wszystkich dostępnych języków programowania na świecie, możesz w nim zrobić dosłownie wszystko, jednak jest to kwestia nakładu czasu pracy. Języki inne są zazwyczaj dużo bardziej ograniczone niż C++ lecz charakteryzują się tym, że można coś znacznie szybciej i łatwiej zrobić, ponieważ zostały przystosowane do konkretnych wymagań (np. robienie stron www: PHP, robienie sieciowych aplikacji klienckich: Java).
P-2452
dzolero86
Temat założony przez niniejszego użytkownika
cout << dzieki =)
» 2008-11-06 21:15:30
Dzięki za pomoc Piotrze ;) biorę się ostro do czytania i kompilowania mojego pierwszego programu :) W razie jakichś problemów jak i również osiągów będę je umieszczał na tej stronie.
P-2455
grabon
» 2008-11-06 23:50:50
Co masz zaliczyć ;) , na jaki Ty kierunek poszedłeś że, nie znasz tak prostych "rzeczy" ;D. Bez obrazy.

Pozdro :)
P-2456
dzolero86
Temat założony przez niniejszego użytkownika
nie kompiluje sie...
» 2008-11-17 18:07:21
C/C++
#include <iostream>
#include <conio.h>
#include <fstream>

using namespace std;

struct druzyna // budujemy strukture dla zmiennej druzyna
{
    string nazwa;
    string skrocona_nazwa;
    string miasto;
};

short i; //zmienna gobalna
druzyna klub[ 200 ];

void dodaj(); // do wyboru 1

void usun();
void zapisz();
void wczytaj();
void znajdz();


int main()
{
    cout << "*******************\n"
    "****FOOTBALLER*****\n"
    "*****by D.B.*******\n"
    "*******************\n";
    cout << "\n\n\n";
   
    char wybor;
   
    do
    {
        cout << "Aktualnie mamy " << i << " druzyn pilkarskich w bazie\n";
        cout << "Co chcesz zrobic? \n"
        "1.Dodac druzyne pilkarska.\n" // wybor 1
        "2.Zobaczyc wszystkie druzyny.\n"
        "ESC - zakoncz program\n";
       
        wybor = getch();
        system( "cls" ); //czyszczenie ekranu
    } while( wybor != 27 );
   
   
    system( "pause" );
    return 0;
}

void dodaj() // wybor 1 cialo funkcji
{
    cout << "Podaj pelna nazwe druzyny: ";
    cin >> druzyna[ i ].nazwa;
   
    cout << "Podaj skrocona nazwe druzyny: ";
    cin >> druzyna[ i ].skrocona_nazwa;
   
    cout << "Z jakiego miasta pochodzi ta druzyna: ";
    cin >> druzyna[ i ].miasto;
   
    cin.ignore();
   
    i++;
   
    cout << "Nowa druzyna zostala dodana do bazy";
    getch();
};

WITAM, DOSZEDLEM DO TEGO MOMENTU (SAM POCZATEK, ALE COZ) I PROGRAM NIE KOMPILUJE SIE, NIE ZA BARDZO MOGE ZNALEZC PRZYCZYNE....
P-2562
lynx
» 2008-11-17 18:21:44
To podaj log. A tutaj jest to co samemu znalazłem:

cout<< "*******************n"
       "****FOOTBALLER*****n"             
       "*****by D.B.*******n"
       "*******************n";
Pomiędzy tekstami dodaj '<<' jak kończysz funkcję w następnej linijce. Oprócz tego jeżeli chcesz wyświetlać na konsoli tekst w następnym rzędzie to nie piszesz 'n' tylko
\n

Kod powinien wyglądać tak:
cout<< "*******************\n"<<
       "****FOOTBALLER*****\n"<<         
       "*****by D.B.*******\n"<<
       "*******************\n";


Pozdrawiam, Piotrek. ;)
P-2563
dzolero86
Temat założony przez niniejszego użytkownika
» 2008-11-17 18:31:06
to tutaj jakos dziwnie zinterpretowalo \n bo u siebie w programie mam urzyte \n
to moze przez kopiowanie tak wyszlo, ale blad jest chyba w innym miejscu... za pewne jestes znacznie bardziej w tym obeznany dlatego byłbym wdzieczny...


C/C++
#include <iostream>
#include <conio.h>
#include <fstream>

using namespace std;

struct druzyna // budujemy strukture dla zmiennej druzyna
{
    string nazwa;
    string skrocona_nazwa;
    string miasto;
};

short i; //zmienna gobalna
druzyna klub[ 200 ];

void dodaj(); // do owyboru 1

void usun();
void zapisz();
void wczytaj();
void znajdz();


int main()
{
    cout << "******************* \n" // tu na pewno mam "\n" ale jak wklejam
    "****FOOTBALLER***** \n" //    to tak jakby gwiazka byla a nie "\n"   
    "*****by D.B.******* \n" // może kod php sobie interpretuje to jakos?
    "******************* \n";
    cout << "\n\n\n";
   
    char wybor;
   
    do
    {
        cout << "Aktualnie mamy " << i << " druzyn pilkarskich w bazie\n";
        cout << "Co chcesz zrobic? \n"
        "1.Dodac druzyne pilkarska.\n" // wybor 1
        "2.Zobaczyc wszystkie druzyny.\n"
        "ESC - zakoncz program\n";
       
        wybor = getch();
        system( "cls" ); //czyszczenie ekranu
    } while( wybor != 27 );
   
   
    system( "pause" );
    return 0;
}

void dodaj() // wybor 1 - cialo funkcji
{
    cout << "Podaj pelna nazwe druzyny: ";
    cin >> druzyna[ i ].nazwa; //TUTAJ JEST druzyna"[i]".nazwa
    cout << "Podaj skrocona nazwe druzyny: ";
    cin >> druzyna[ i ].skrocona_nazwa; //TUTAJ JEST druzyna"[i]".skrocona_nazwa
    cout << "Z jakiego miasta pochodzi ta druzyna: ";
    cin >> druzyna[ i ].miasto; //TUTAJ JEST druzyna"[i]".miasto
   
    cin.ignore();
   
    i++;
   
    cout << "Nowa druzyna zostala dodana do bazy";
    getch();
   
}

A POKAZUJE ZE JEST BLAD W 55,57,59 LINII I "EXPECTED PRIMARY-EXPRESSION BEFORE '['TOKEN"
 wydaje mi sie ze blad jest gdzies w ciele VOID DODAJ
P-2564
lynx
» 2008-11-17 21:20:24
Ok przeanalizowałem twój kod i doszedłem do wniosku, że ty nie deklarując obiektu struktury go używasz. Uważając że nazwa struktury jest odrazu deklaracją jej obiektu. Ok, nie wiem jak Ci to powiedzieć, ale wiem co jest tu źle.

C/C++
#include <iostream>
#include <conio.h>
#include <fstream>

using namespace std;

struct druzyna // budujemy strukture dla zmiennej druzyna
{
    string nazwa;
    string skrocona_nazwa;
    string miasto;
};
Właśnie tutaj deklarujesz strukturę, czyli takie coś podobne do int, char. Aby tego używać musisz zadeklarować zmienną jego typu w przypadku in, char nazywamy to zmienną w przypadku klas nazywamy to obiektem.

Czyli powinno to wyglądać tak:
C/C++
#include <iostream>
#include <conio.h>
#include <fstream>

using namespace std;

struct druzyna // budujemy strukture dla zmiennej druzyna
{
    string nazwa;
    string skrocona_nazwa;
    string miasto;
};
druzyna zespol1;

Następnie nigdy nie używamy czegoś co nie istnieje, czyli:
C/C++
void dodaj() // wybor 1 - cialo funkcji
{
    cout << "Podaj pelna nazwe druzyny: ";
    cin >> druzyna.nazwa; //BLAD
    cout << "Podaj skrocona nazwe druzyny: ";
    cin >> druzyna.skrocona_nazwa; //BLAD
    cout << "Z jakiego miasta pochodzi ta druzyna: ";
    cin >> druzyna.miasto; //BLAD
Aby używać czegoś takiego musiałbyś zadeklarować obiekt struktury druzyna o nazwie druzyna. ;) Czyli: druzyna druzyna; ale tak łatwo sie pomylic więc napisz druzyna zespol1; tak jak napisalem wcześniej.

Zauważyłem jednak że masz już zadeklarowane obiekty(tablica) struktury o nazwie klub. Przerobię więc nieco twój kod tak, aby działał poprawnie. ;)



A więc ten fragment powinien wyglądać tak:
C/C++
int x = 0;
...
void dodaj( void ) // wybor 1 - cialo funkcji
{
    cout << "Podaj pelna nazwe druzyny: ";
    cin >> klub[ x ].nazwa; //TUTAJ JEST druzyna"".nazwa
    cout << "Podaj skrocona nazwe druzyny: ";
    cin >> klub[ x ].skrocona_nazwa; //TUTAJ JEST druzyna"".skrocona_nazwa
    cout << "Z jakiego miasta pochodzi ta druzyna: ";
    cin >> klub[ x ].miasto; //TUTAJ JEST druzyna"".miasto
   
    cin.ignore();
   
    cout << "Nowa druzyna zostala dodana do bazy";
    getch();
    x++;
   
}
Jest to wersja prowizoryczna o wiele lepiej by to działało na vectorach, ale niestety to nie jest takie proste.


/edit1:
Bierz kod w takie coś:
[code src="C++"]kod[/code]
A wtedy nie będzie znikało prawidłowe n i treść będzie ładniej wyglądała. ;) Oczywiście usuń spację.
P-2566
« 1 » 2
  Strona 1 z 2 Następna strona