Instrukcja 2 instr 6 9 J Kisilewicz K Puchala J Gladysz v1 2

background image

Jerzy Kisielewicz

Jakub Gładysz

Karol Puchała









Instrukcja nr 2 do Laboratorium

z Programowania Obiektowego

Zaj

ę

cia 6-9 Tydzie

ń

INEW002L



Semestr 2

Kierunek:

Informatyka (INF)

Teleinformatyka (TIN)

Studium Kształcenia Podstawowego (SKP)



















Wrocław 2009

background image

Program laboratorium przedstawia si

ę

nast

ę

puj

ą

co:

Lab

.

Instrukcja

Temat Laboratorium

Test

1

1

Wst

ę

p. Uruchomienie prostej aplikacji terminalowej

2

1

Prosta aplikacja terminalowa. Formatowanie
obiektowego wej

ś

cia i wyj

ś

cia

Propozycje programów semestralnych

Podstawy C,
Wska

ź

niki i struktury

3

1

Definicja prostej klasy (punkt, prostok

ą

t, zesp, itp).

Obserwacja konstruktorów i destruktorów

4

1

Aplikacja dialogowa – budowa interfejsu u

ż

ytkownika

+ przydział tematów semestralnych

Podstawy C++

5

1

Rozbudowa aplikacji dialogowej – programowanie
obsługi wybranych kontrolek

6

2

Klasa z alokacj

ą

pami

ę

ci – definiowanie

konstruktorów, destruktora i operatora przypisania

Klasy i ich metody

7

2

Przeci

ąż

anie operatorów. Definiowanie klas

pochodnych, dziedziczenie proste i wielobazowe

8

2

(kontynuacja

ć

wiczenia 7)

Klasy pochodne,
Diedziczenie,
Polimorfizm

9

2

Funkcje wirtualne, klasy abstrakcyjne

10

3

Aplikacja dialogowa

11

3

Aplikacja SDI

Windows (zdarzenia,
aplikacje dialogowe i SDI)

12

3

Aplikacja SDI (cd.)

13

4

Program semestralny

UML, Wyj

ą

tki

14

4

Program semestralny (c.d.)

15

4

Program semestralny (c.d.) i wpisy

background image

Ć

wiczenie 6. Klasa z alokacj

ą

pami

ę

ci – definiowanie

konstruktorów, destruktora i operatora przypisania.


Zadania laboratoryjne (czas realizacji: 1 tydzie

ń

)

Zdefiniowa

ć

klas

ę

wektorów zawieraj

ą

c

ą

nast

ę

puj

ą

ce dane:

class Vec{

char Naz[4];

int n;

double *A;

static int p;

static double x;

gdzie:

Naz jest maksymalnie 3 znakow

ą

nazw

ą

wektora,

n jest rozmiarem wektora (liczb

ą

elementów tablicy wskazywanej przez A,

A wskazuje na pocz

ą

tkowy element n elementowej tablicy skojarzonej z obiektem,

p jest precyzj

ą

wydruku warto

ś

ci elementów tablicy A,

x jest zmienn

ą

pomocnicz

ą

(do której np. mo

ż

na si

ę

odwoła

ć

przy braku tablicy A).

Oprogramowa

ć

t

ę

klas

ę

. Przyj

ąć

zasad

ę

,

ż

e je

ś

li operatory wymagaj

ą

zgodno

ś

ci

rozmiarów swoich argumentów (wektorów), brakuj

ą

ce elementy wektora o mniejszym

rozmiarze s

ą

zerowe. Mi

ę

dzy innymi zdefiniowa

ć

operatory dodawania, odejmowania

i mno

ż

enia wektorów, zaprzyja

ź

nione operatory wej

ś

cia i wyj

ś

cia, operator indeksacji

i jednej konwersji skalarnej. Zdefiniowa

ć

Odpowiedni zestaw konstruktorów,

destruktor i operator przypisania. Niech w celach testowych konstruktory i destruktor

informuj

ą

o swoim działaniu.

Dane powinny by

ć

wczytywane

1

z pliku wybieranego przez u

ż

ytkownika. Wyniki

mog

ą

by

ć

wy

ś

wietlane w odpowiedniej kontrolce lub zapisywane do pliku.

1

Należy użyć obiektów używając obiektów klasy CFile , CArchive lub obiektów klas ifstream,

ofstream lub fstream.

background image

Ć

wiczenie 7 i 8 Przeci

ąż

anie operatorów. Definiowanie klas

pochodnych, dziedziczenie proste i wielobazowe .

Zadania laboratoryjne (czas realizacji: 2 tygodnie)


Zadanie 1

Celem

ć

wiczenia jest poznanie zasad definiowania klas pochodnych, dziedziczenie

proste, dziedziczenie wielobazowe oraz przeci

ąż

anie operatorów.

Zdefiniowa

ć

klas

ę

macierzy bazuj

ą

c

ą

na klasie wektor z poprzedniego zadania i

oprogramowa

ć

j

ą

:

class Mac: public Vec {

int N, M;

// liczba wierszy i liczba kolumn

. . .

};

Nale

ż

y przyj

ąć

zało

ż

enie,

ż

e elementy macierzy s

ą

pami

ę

tane wierszami w prostej

tablicy o rozmiarze n=N*M wskazywanej przez A.

W klasie macierzy zdefiniowa

ć

wymagane konstruktory i operatory, Podobnie jak w

klasie wektorów, aby uzyska

ć

zgodno

ść

wymiarów macierzy (np. w operacji

mno

ż

enia), nale

ż

y zało

ż

y

ć

,

ż

e brakuj

ą

ce kolumny lub brakuj

ą

ce wiersze s

ą

zerowe.

Indeks elementu z i-tego wiersza oraz j-tej kolumny wyra

ż

a si

ę

wzorem k=i*M+j (lub

k=(i-1)*M +j–1, gdy numeracja wierszy i kolumn zaczyna si

ę

od jedno

ś

ci).

Nie definiowa

ć

dla klasy macierzy operatorów wej

ś

cia i wyj

ś

cia, lecz wykorzysta

ć

istniej

ą

ce operatory zdefiniowane dla klasy wektorów. W tym celu nale

ż

y w obu

klasach zdefiniowa

ć

funkcje wirtualne, które b

ę

d

ą

realizowa

ć

te fragmenty operacji

we/wy, które s

ą

indywidualne w tych klasach. Np. w operacji wej

ś

cia indywidualne

b

ę

d

ą

zaproszenia do podania warto

ś

ci elementu wektora lub tablicy, natomiast

wprowadzone warto

ś

ci s

ą

w obu przypadkach wpisywane kolejno do tablicy A.

W miar

ę

mo

ż

liwo

ś

ci u

ż

y

ć

funkcji wirtualnych w innych przypadkach. Na przykład

definiuj

ą

c wirtualn

ą

funkcj

ę

, która zmieni rozmiar wektora lub wiersza macierzy

background image

(dopisuj

ą

c zera lub usuwaj

ą

c ostatnie elementy), mo

ż

na ujednolici

ć

operatory

dodawania i mno

ż

enia w obu klasach.

Program winien umo

ż

liwia

ć

wprowadzanie oraz wyprowadzanie danych, dodawanie,

odejmowanie, mno

ż

enie macierzy, mno

ż

enie macierzy przez liczb

ę

, wyznaczy

ć

i

wypisa

ć

indeks najmniejszego oraz najwi

ę

kszego elementu w poszczególnym

wierszu. Nale

ż

y pami

ę

ta

ć

aby konstruktory alokowały wymagane obszary pami

ę

ci

oraz zadba

ć

o dobr

ą

hermetyzacj

ę

klas – aby u

ż

ytkownik miał jak najmniejszy dost

ę

p

do wn

ę

trza obiektów.

Zadanie 2

Bazuj

ą

c na Zadaniu 1 napisa

ć

program który:

wczyta liczb

ę

wierszy i liczb

ę

kolumn macierzy A,

zaalokuje pami

ęć

na t

ę

macierz i nast

ę

pnie wczyta jej elementy,

zaalokuje tablic

ę

na wektor B o tylu elementach, ile jest kolumn w macierzy i wczyta

elementy tego wektora,

zaalokuje tablic

ę

na wektor C o tylu elementach, ile jest wierszy w macierzy, a

nast

ę

pnie obliczy elementy wektora C, c

i

=a

i1

b

1

+a

i2

b

2

+...+a

im

b

m

(i=1,2,...,n), czyli

obliczy iloczyn C=AB,

wyprowadzi wczytane dane i obliczone wyniki.


background image

Ć

wiczenie 9. Funkcje wirtualne, klasy abstrakcyjne.

Zadania laboratoryjne (czas realizacji: 1 tydzie

ń

)

Przygotuj klas

ę

Figura, która b

ę

dzie klas

ą

abstrakcyjn

ą

posiadaj

ą

c

ą

nast

ę

puj

ą

ce składniki:

· dane składowe protected:

nazwa (string),

P1(współrz

ę

dne x1, y1),

P2(współrz

ę

dne x2, y2),

P3(współrz

ę

dne x3, y3),

P4 (współrz

ę

dne x4, y4),

kolor

· publiczn

ą

funkcj

ę

składow

ą

: przedstaw_si

ę

(wypisuje nazw

ę

figura),

· wirtualne funkcje składowe Obwód o Pole

· odpowiednie konstruktor

Klasa Figura jest klas

ą

podstawow

ą

dla klas: Kwadrat, Prostok

ą

t, Romb, Czworok

ą

t.

Zdefiniuj ka

ż

d

ą

z klas pochodnych dodaj

ą

c niezb

ę

dne dane składowe opisuj

ą

ce

dan

ą

figur

ę

(np. promie

ń

, itd.). W ka

ż

dym przypadku zdefiniuj odpowiednio funkcje Obwód

oraz Pole. Ka

ż

da z klas musi mie

ć

zdefiniowany swój konstruktor otrzymuj

ą

cy

parametry inicjalizuj

ą

ce figur

ę

.

Przygotuj funkcj

ę

PokazFigure, której argumentem jest wska

ź

nik na obiekt typu

Figura. Funkcja powinna wywoływa

ć

funkcj

ę

składow

ą

Przedstaw_sie oraz

dodatkowo wypisywa

ć

informacj

ę

o polu oraz obwodzie figury.

W programie głównym stwórz obiekty typu Kwadrat, Prostok

ą

t, Romb, Czworok

ą

t.

Wywołaj funkcj

ę

PokazFigure przekazuj

ą

c do niej wska

ź

nik do utworzonych

obiektów.

Zmodyfikuj program tak, aby rysował figury na ekranie (

ś

rodowisko MFC).

background image

Napisz program tak aby była mo

ż

liwo

ść

zmiany poło

ż

enia wierzchołków. Program

powinien sam okre

ś

li

ć

czy dana figura jest prostok

ą

tem, rombem, kwadratem czy

innym dowolnym czworok

ą

tem.



Wyszukiwarka

Podobne podstrony:
Instrukcja 1 zajecia1 5 J Kisilewicz K Puchala J Gladysz v2 0
Instrukcja 3 instr 10 12 J Kisilewicz K Puchala J Gladysz
Instrukcja Obsluga programu Kontrola topTO v1 00 PL
Instrukcja zmiany oprogramowania T3000 TCx2x0 v1 2
Instr. kontr.urz.gaszącego, Instrukcje w wersji elektronicznej
Instr. wciNgarek hydr.- Nocek, Instrukcje w wersji elektronicznej
Instr.spawarki, Instrukcje w wersji elektronicznej
instr bhp przy ręcznych pracach transportowych, BHP, Instrukcje BHP
11-instalacja odgromowa, Instrukcje BHP, XXXV - INSTR. ENERGETYCZNE
Instructions V1
17-INSTR.BHP W AKUMULATORNI PRZY ŁADOWANIU BATERII, Instrukcje BHP, XXXII - TRANSPORT
Instr. mont.F17 33 przy Sobieskim dla 723, Instrukcje w wersji elektronicznej
Instr. napraw, Instrukcje w wersji elektronicznej
Instr. obsługi rusztowania, BHP, Instrukcje-Obsługi
instr bhp piec muflowy, BHP, Instrukcje BHP
Aneks-do instr. zasuw, Instrukcje w wersji elektronicznej
Instr. przyg. emulsji w agregatach Bokota, Instrukcje w wersji elektronicznej
18-instr. bhp w pomieszczeniach piekarni, Instrukcje BHP, XX - PIEKARNICTWO I CUKIERNICTWO

więcej podobnych podstron