Lab 07

background image

Laboratorium nr 7

Temat: Definiowanie 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


Wyszukiwarka

Podobne podstrony:
Lab 07 Uwierzytelnianie v1 2
lab 07 projektowanie filtrow II
CMS Lab 07 Zend Framework
lab 07 wyprowadzanie równań ruchu2
fiz lab 07
lab 07 wyprowadzanie równań ruchu
MP Lab 07 Filtracja, 9. WŁASNOŚCI FILTRACYJNE OŚRODKÓW POROWATYCH
lab 07
Linux asm lab 07 (Wprowadzenie do Linux'a i Asemblera )
FIZ 7 K2, fizyka lab, 07
pa lab [07] rozdział 7 PF5WTK3UXIKLS2NGNA74PZKEK3VZG74FE3KPW2Q
Lab 07 Instrukcje sterujace w C
lab 07 RIP r6
lab 07 wyprowadzanie równań ruchu2
Lab 07 2011 2012 Suplement
2011 Lab 07 modulacja TEQ

więcej podobnych podstron