background image

Laboratorium nr 7

TematDefiniowanie klas i obiektów - pojedynczych jak i tablic. Struktura i obsługa bazy danych.

1) Definiowanie klasy i obiektu - pojedynczego jak i tablicy.

W języku  C++, w  porównaniu do zwykłego  C, istnieje możliwość  używania  klas  (class). W 

rzeczywistości  klasa jest typem  danych,  podobnym  do struktur (struct), gdzie oprócz danych  można 
przechowywać również funkcje. Zmienne typu class nazywają się obiektami.

Uwagi:

W celu wskazania, że definiowane zmienne lub funkcje są składowymi klasy używa się operatora 
zakresu :: , np. 

void klasa::funkcja (void) {...}

Dane i funkcje mogą być umieszczone w klasie na dwa sposoby – jako prywatne (private) i 
publiczne (public). Prywatność oznacza, że żadna część programu nie może odwoływać się do 
takiego elementu poza samym obiektem. W celu poprawy modularności oraz bezpieczeństwa w 
programie, większość zmiennych w klasie powinna być prywatna. 

# include <stdio.h>

struct baza {
  char imie[10];

  char nazwisko[25];
  char telefon[10];

};

main() {
struct baza osoba;

/*pobranie danych*/
  printf("Podaj dane:\n");

  printf("\tImie: ");
  gets(osoba.imie);

  printf("\tNazwisko: ");
  gets(osoba.nazwisko);

  printf("\tNumer telefonu: ");
  gets(osoba.telefon);

/*wypisanie danych*/
  printf("\nDane osobowe:\n");

  printf("\tImie: %s\n", osoba.imie);
  printf("\tNazwisko:%s\n",osoba.nazwisko);

  printf("\tTelefon:%s\n",osoba.telefon);
  return 0;

}

#include <iostream>
using namespace std;

class baza {

private:
 char imie[10];

 char nazwisko[25];
 char telefon[10];

public:
 void pobierz();

 void wyswietl();
};

void baza::pobierz(){

 cout << "Podaj dane\n";
 cout << "\tImie: ";

 cin >> imie;
 cout << "\tNazwisko: ";

 cin >> nazwisko;
 cout << "\tTelefon: ";

 cin >> telefon;
};

void baza::wyswietl(){

 cout << "Dane osobowe\n";
 cout << "\tImie: " << imie << "\n";

 cout<<"\tNazwisko:"<<nazwisko<< "\n";
 cout<<"\tTelefon :"<<telefon << "\n";

};

int main() {
class baza osoba;

 osoba.pobierz();
 osoba.wyswietl();

 return 0;
}

Uwagi:

W przypadku obiektów istnieje możliwość definiowania tablicy obiektów:

class baza osoby[10]

Wskaźniki do obiektów działają na tej samej zasadzie jak wskaźniki do innych zmiennych; do 
obiektu można odwołać się poprzez wskaźnik; w tym celu korzysta się operatora strzałki 

>

adres_osoby->imie

background image

Funkcja składowa klasy otrzymuje niejawnie adres obiektu, który ją wywołał. Wewnątrz funkcji 
składowej zmienna  this  jest wskaźnikiem do obiektu, który wywołał dana funkcję. Ponadto 
można jej zawsze przekazać jawnie argumenty typu jej własnej lub innej klasy

this->imie

Program   powinien   składać   się   z   trzech   plików   (!   zasadę   tę   należy   stosować   we   wszystkich  
kolejnych ćwiczeniach
), tj.:

pliku main.cpp zawierający funkcje main()

pliku klasa.cpp z definicją zmiennych i funkcji klasy

pliku nagłówkowego klasa.h

main.cpp

#include "klasa.h"

int main() {
class baza osoby[5];

int i=0;
   osoby[i].pobierz();

   osoby[i].wyswietl();
   return 0;

}

klasa.h

#include <iostream>
using namespace std;

class baza {

private:
   char imie[10];

   char nazwisko[25];
   char telefon[10];

public:
   void pobierz();

   void wyswietl();
};

klasa.cpp

#include "klasa.h"

void baza::pobierz(){

   cout << "Podaj dane\n";
   cout << "\tImie: ";

   cin >> this->imie;
   cout << "\tNazwisko: ";

   cin >> this->nazwisko;
   cout << "\tTelefon: ";

   cin >> this->telefon;
};

void baza::wyswietl(){

   cout << "Dane osobowe\n";
   cout << "\tImie: " << this->imie << "\n";

   cout << "\tNazwisko: " << this->nazwisko << "\n";
   cout << "\tTelefon: " << this->telefon << "\n";

};

2.)  Zadanie: Opracuj program tworzący i obsługujący bazę danych osobowych,  korzystając z klas i 
obiektów
. Program powinien zawierać możliwość wprowadzenia danych, zapisania oraz pobrania danych 
z dysku. Program powinien korzystać z funkcji oraz sprawdzać poprawność wprowadzanych danych. 
Przykładowe menu:

1. Wprowadź dane
2. Zapisz dane na dysk
3. Pobierz dane z dysku
4. Wyświetl dane
5. Koniec