wyklad4 cpp, Baza danych studentów


Baza danych studentów

0x01 graphic

class BazaDanych {

Student m_baza_danych[10];

...

}

Klasa BazaDanych przechowuje tablice 10 obiektów statycznych klasy Student.

Studenci to obiekty statyczne w bazie danych - oznacza to tyle, że w chwili stworzenia obiektu klasy BazaDanych zostaje stworzonych 10 obiektów statycznych klasy Student.

#include <iostream>

using namespace std;

int main(int argc, char* argv[])

{

BazaDanych baza;

}

Klasa BazaDanych przechowuje tablice 10 obiektów statycznych klasy Student.

Studenci to obiekty statyczne w bazie danych - oznacza to tyle, że w chwili stworzenia obiektu klasy BazaDanych zostaje stworzonych 10 obiektów statycznych klasy Student.

#include <iostream>

using namespace std;

int main(int argc, char* argv[])

{

BazaDanych baza;

}

0x01 graphic

Zobaczmy co się stanie jeśli zawołamy metodę DodajStudenta

0x01 graphic

#include <iostream>

using namespace std;

int main(int argc, char* argv[])

{

BazaDanych baza;

baza.DodajStudenta();

}

//wpisywanie danych nowego studenta do bazy

void BazaDanych::DodajStudenta()

{

if(m_ilosc<10)

{

cout << "Wprowadz dane studenta o numerze rekordu " << m_ilosc << "\n";

m_baza_danych[m_ilosc].PobierzDane();

m_ilosc++;

}

else

{

cout << "Baza danych jest pełna! \n";

}

}

void Student::PobierzDane ()

{

cout << "Podaj imie: ";

//cin reprezentuje klawiature

// >> przepycha teksty wpisane na klawiaturze do zmiennej (szuflady) m_imie

cin >> m_imie;

cout << "Podaj nazwisko: ";

cin >> m_nazwisko;

cout << "Podaj rok: ";

cin >> m_rok;

}

A co się stanie jeśli zawołamy metodę DodajStudenta drugi raz?

0x01 graphic

#include <iostream>

using namespace std;

int main(int argc, char* argv[])

{

BazaDanych baza;

baza.DodajStudenta();

baza.DodajStudenta();

}

//wpisywanie danych nowego studenta do bazy

void BazaDanych::DodajStudenta()

{

if(m_ilosc<10)

{

cout << "Wprowadz dane studenta o numerze rekordu " << m_ilosc << "\n";

m_baza_danych[m_ilosc].PobierzDane();

m_ilosc++;

}

else

{

cout << "Baza danych jest pełna! \n";

}

}

void Student::PobierzDane ()

{

cout << "Podaj imie: ";

//cin reprezentuje klawiature

// >> przepycha teksty wpisane na klawiaturze do zmiennej (szuflady) m_imie

cin >> m_imie;

cout << "Podaj nazwisko: ";

cin >> m_nazwisko;

cout << "Podaj rok: ";

cin >> m_rok;

}

Co by było gdybyśmy przechowywali tablicę wskaźników do Studentów?

0x01 graphic

class BazaDanych {

Student* m_baza_danych[10];

...

}

Klasa BazaDanych przechowuje tablice 10 wskaźników do obiektów klasy Student (kartek z adresami obiektów klasy Student).

W chwili stworzenia obiektu klasy BazaDanych zostaje stworzonych 10 kartek z adresami

(10 wskaźników).

#include <iostream>

using namespace std;

int main(int argc, char* argv[])

{

BazaDanych baza;

}

0x01 graphic

W chwili stworzenia obiektu klasy BazaDanych zostaje stworzonych 10 kartek z adresami

(10 wskaźników).

ale nie są jeszcze tworzone żadne obiekty klasy Student

Trzeba dopisać konstruktor w klasie BazaDanych, w którym stworzymy 10 obiektów klasy student

//wpisywanie danych nowego studenta do bazy

void BazaDanych::BazaDanych()

{

m_baza_danych = new Student[10];

}

Teraz, konstruktor tworzy 10 obiektów klasy Student, i przechowuje ich wskaźniki (adresy)

w tablicy m_baza_danych.

0x01 graphic

Co jeszcze należy zmodyfikować w programie?

//wpisywanie danych nowego studenta do bazy

void BazaDanych::DodajStudenta()

{

if(m_ilosc<10)

{

cout << "Wprowadz dane studenta o numerze rekordu " << m_ilosc << "\n";

m_baza_danych[m_ilosc]->PobierzDane();

m_ilosc++;

}

else

{

cout << "Baza danych jest pełna! \n";

}

}

Teraz

m_baza_danych[m_ilosc]

to wskaźnik do obiektu klasy Student

Ze wskaźnika do obiektu przechodzimy z pomocą strzałki

m_baza_danych[m_ilosc]->

Trzeba więc wszędzie gdzie zaglądamy do tablicy studentów dopisać strzałki



Wyszukiwarka

Podobne podstrony:
Baza Danych MS Access Wykłady
Technika komputerowa w obrocie towarowym, Wykłady, Baza danych - uporządkowany zbiór danych obsługiw
Wykład Baza Danych 2000
Wyklad FP II dla studenta
Podstawy Informatyki Wykład XIX Bazy danych
podstawy pracy z bazą danych (4 str), Ekonomia
projekt baza danych w46753 id 3 Nieznany
baza danych, archiwizacja
Monitoring wykłady i pytania, Materiały dla studentów, ochrona srodowiska
wyklad5.cpp, JAVA jest językiem programowania obiektowego
Baza danych wojskowych map lotniczych w krajach bałtyckich 2011403
Bazy danych - podstawowe kroki w projektowaniu cz 2 - wyklady, Zajęcia z Baz Danych - MS Access, cz
Bazy danych - podstawowe kroki w projektowaniu cz 2 - wyklady, Zajęcia z Baz Danych - MS Access, cz
BAZA DANYCH GMINNEJ EWIDENCJI ZABYTKÓW
mis w7 baza danych i hd prof kisielnicki
Algorytmy wyklady, Elementarne struktury danych

więcej podobnych podstron