background image

Laboratorium nr 3

Temat: Definicja klas oraz tworzenie obiektów. 

1) Klasa i obiekt
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),   przy   czym,   w   klasie   oprócz   danych   można   również
przechowywać funkcje. Zmienne typu class nazywają się obiektami.
W celu wskazania, że definiowane funkcje są składowymi klasy używa się operatora zakresu ::,np. 

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

Struktura

Klasa

# include <conio.h>

# include <iostream.h>

# include <stdio.h>

# include <stdlib.h>

struct macierz {

   int x,y;

   int tab[3][3];

};

int main() {

int wybor;

struct macierz A;

do {

   cout << "MENU:\n";

   cout << "1. utworz\n";

   cout << "2. wyswietl\n";

   cout << "9. koniec\n";

   cin >> wybor;

   clrscr();

   switch (wybor) {

   case 1 :

       {

       A.x=2;

       A.y=2;

       for (int i=0; i<=A.x; i++)

       for (int j=0; j<=A.y; j++)

       A.tab[i][j]=rand();

       cout << "\nZadeklarowano macierz";

       getch();

       clrscr();

       break; }

   case 2 :

       {

       for (int i=0; i<=A.x; i++)

       for (int j=0; j<=A.y; j++)

       cout << "A["<< i <<"][" << j<< "]=" 

            << A.tab[i][j] << "\n";

       cout << "\nZadeklarowana macierz";

       getch();

       clrscr();

       break; }

   case 9 :

       {

       cout << "\nKoniec";

       break; }

   };

} while (wybor!=9);

getch();

return 0;

}

# include <conio.h>

# include <iostream.h>

# include <stdio.h>

# include <stdlib.h>

class macierz {

public:

   int x,y;

   int tab[3][3];

   int wprowadz(int i, int j, int w);

};

int macierz::wprowadz (int i, int j, int w) {

   tab[i][j]=w;

   return 0;

};

int main() {

class macierz A;

int wybor;

do {

   cout << "MENU:\n";

   cout << "1. utworz\n";

   cout << "2. wyswietl\n";

   cout << "9. koniec\n";

   cin >> wybor;

   clrscr();

   switch (wybor) {

   case 1 :

       {

       A.x=2;

       A.y=2;

       for (int i=0; i<=A.x; i++)

       for (int j=0; j<=A.y; j++)

       A.wprowadz(i,j,rand());

       cout << "\nZadeklarowano macierz";

       getch();

       clrscr();

       break; }

   case 2 :

       {

       for (int i=0; i<=A.x; i++)

       for (int j=0; j<=A.y; j++)

       cout << "A["<< i <<"][" << j<< "]=" 

            << A.tab[i][j] << "\n";

       cout << "\nZadeklarowana macierz";

       getch();

       clrscr();

       break; }

   case 9 :

       {

       cout << "\nKoniec";

       break; }

};

} while (wybor!=9);

getch();

return 0;

}

background image

2) Zadanie 
Opracuj program, który będzie definiował obiekt typu „macierz” o zadanych wymiarach np. 3x3, z możliwością
dodawania,   kasowania   oraz   itp.   poszczególnych   elementów   macierzy,   w   oparciu   o   funkcje   składowe   klasy
„macierz”, np.:

class macierz {

public:

   int x,y;

   int tab[3,3];

   wprowadz(int i, int j);

   kasuj (int i, int j);

   wyswietl ();

   itp.()...;

}

1

2

3

4

5

6

7

8

9

Program powinien posiadać krótkie menu wyboru, np.:
1. Utwórz macierz
2. Wprowadź element macierzy
3. Kasuj element macierzy
4. Wyświetl macierz
5. itp.
6. Koniec