Projekt 02 Proj7 opis id 829818 Nieznany

background image

Techniki obiektowe, opracowanie: dr inż. Grzegorz Filo

IIS, M-72

Politechnika Krakowska im. Tadeusza Kościuszki

Wydział Mechaniczny

Instytut Informatyki Stosowanej M-7

Zakład Grafiki i Modelowania Komputerowego M-72

Laboratorium: Obsługa sytuacji wyjątkowych

Programowanie obiektowe Nr. proj.: 07, 2 x 45 minut

dr inż. Grzegorz Filo


1. Cel laboratorium

Celem ćwiczenia jest praktyczne wykorzystanie wiadomości na temat obsługi sytuacji

wyjątkowych na przykładzie języka C++. Zostaną wykorzystane wiadomości teoretyczne na
temat przechwytywania wyjątków programowych oraz programowego zgłaszania wyjątków.

2. Wymagane oprogramowanie

Zadanie należy wykonać przy wykorzystaniu środowiska programowania

Borland C++ Builder 2006.

3. Zadanie do wykonania

Temat: Zaprojektować i zaimplementować program obliczający pole powierzchni
kształtownika o nazwie kątownik.

3.1) Należy zastosować przedstawiony wzór

i skorzystać z załączonego rysunku ideowego.

(

)

2

1

2

2

4

1

)

(

r

r

g

b

g

g

a

P

⎛ −

+

+

=

π

3.2) Wykorzystać komponenty środowiska C++ Builder następujących klas:

TStringGrid (Standard):

dane dla kątownika, dwie kolumny: Nazwa, Wartość. W

kolejnych wierszach należy podawać następujące dane:

• Długość poziomego ramienia a;

• Wysokość pionowego ramienia g,

• Grubość ramienia g;
• Promień zaokrąglenia wewnętrznego R;

• Promień zaokrąglenia zewnętrznego R

1

.

TLabel (Standard):

wyświetlenie wyniku obliczonego pola przekroju;

• Właściwość Caption (typu AnsiString) definiuje tekst etykiety,

TButton (Standard):

uruchomienie

obliczeń

• Właściwość Caption (typu AnsiString) definiuje tekst na komponencie,
• Zdarzenie OnClick zachodzi po kliknięciu na obszar komponentu.

background image

Techniki obiektowe, opracowanie: dr inż. Grzegorz Filo

IIS, M-72

3.3) Zdefiniować klasę (w odrębnym module):

TKatownik:
Składniki private:

double A, B, G, R, R1;

double

Pole(void);

Składniki public:
Konstruktor

zwykły i domniemany (wszystkie wymiary = 0)

int

PrzypiszDane(TStringGrid

S);

double

ObliczPole();


W module powinny być włączone biblioteki

<vcl.h> oraz <Grids.hpp>. Następnie

należy zdefiniować wskaźnik do obiektu klasy

TKatownik. Obiekt powinien być

prywatnym składnikiem klasy formatki, powinien zostać utworzony w czasie startu programu,
natomiast zniszczony podczas zamykania programu.

Należy przypisać następujące dane początkowe (w komponencie klasy

TStringGrid):

A = 50, B = 50, G = 4.8, R = 5.2, R1 = 3.6.

3.3) Logika działania programu:

• Po kliknięciu na przycisk następuje wywołanie metody PrzypiszDane(). Metoda

ta konwertuje wartości wprowadzone w polach obiektu

TStringGrid na liczby

rzeczywiste i przypisuje ich wartości do odpowiednich pól obiektu. W przypadku
wystąpienia wyjątku funkcja zwraca indeks wiersza

TStringGrid, w którym

nastąpił wyjątek. W tym przypadku użytkownik otrzymuje odpowiedni komunikat
i obliczenia nie są wykonywane.

• Jeżeli konwersja przebiegła pomyślnie, metoda PrzypiszDane() zwraca 0.

Wtedy następuje wywołanie metody

ObliczPole(). Metoda ta sprawdza

poprawność następujących zależności pomiędzy wymiarami:

o

A, B, G, R, R1 > 0

//”Ujemna wartość parametru !”;

o

G < A/2, G < B/2,

//”Zbyt duża wartość G !”;

o

R<A/2,

R<B/2 //”Zbyt

duża wartość R !”

o

R1

<

G, //”Zbyt

duża wartość R1 !”

• W przypadku nie spełnienia wyżej wymienionych zależności metoda rzuca wyjątek

klasy

ERangeError z odpowiednim komunikatem. Wyjątek powinien być

przechwycony w metodzie

ButtonXClick() i odpowiednio obsłużony.

• Jeżeli wszystkie dane i zależności są poprawne, wynik zostaje wyświetlony na

kontrolce klasy

TLabel.

4. Bibliografia

[1] Matulewski

J.,

C++Builder i Turbo C++. Podstawy

, Wydawnictwo Helion,

Gliwice 2006;

[2] Daniluk

A.,

C++ Builder Borland Deweloper Studio 2006. Kompendium programisty

,

Wydawnictwo Helion, Gliwice 2006;

[3] Matulewski

J.

C++Builder 2006. 222 gotowe rozwiązania

, Wydawnictwo Helion,

Gliwice 2006;


Wyszukiwarka

Podobne podstrony:
Projekt 01 Proj6b opis id 82981 Nieznany
5 12 2013 Nahotko Opis id 39936 Nieznany (2)
projekt sr tr 2014 id 398557 Nieznany
G2 PB 02 B Rys 3 11 id 185401 Nieznany
G2 PB 02 B Rys 3 22 id 185421 Nieznany
projekty gry planszowe FD id 40 Nieznany
Pr konst opis id 382146 Nieznany
G2 PB 02 B Rys 3 07 id 185395 Nieznany
G2 PB 02 B Rys 3 13 id 185405 Nieznany
G2 PB 02 B Rys 3 24 id 185425 Nieznany
G2 PB 02 B Rys 3 10 id 185399 Nieznany
biochemia pyt opis id 86492 Nieznany
G2 PB 02 B Rys 3 06 id 185393 Nieznany
Lab1 Csharp opis id 258954 Nieznany
Projekt SNAKE Snake Game id 831 Nieznany
28 11 2013 Nahotko Opis id 3191 Nieznany (2)
9 01 2014 Nahotko Opis id 48150 Nieznany (2)
projekt rakow gotowy rk id 3994 Nieznany
opis 4 id 336794 Nieznany

więcej podobnych podstron