Instrukcja 1 zajecia1 5 J Kisilewicz K Puchala J Gladysz v2 0

background image

Jerzy Kisielewicz

Jakub Gładysz

Karol Puchała









Instrukcja nr 1 do Laboratorium

z Programowania Obiektowego

Zaj

ę

cia 1-5 Tydzie

ń

INEW002L



Semestr 2

Kierunek:

Informatyka (INF)

Teleinformatyka (TIN)

Studium Kształcenia Podstawowego (SKP)



















Wrocław 2009

background image

Zaj

ę

cia Laboratoryjne składaj

ą

si

ę

z 15 zaj

ęć

po 90 minut ka

ż

de. Podczas

pierwszych zaj

ęć

prowadz

ą

cy winien przeprowadzi

ć

szkolenie BHP oraz

zapozna

ć

studentów z Regulaminem Pracowni. Warunkiem uczestnictwa w

zaj

ę

ciach jest odbycie w/w szkolenia i po

ś

wiadczenie go czytelnym podpisem.

Na ka

ż

de zaj

ę

cia przygotowana b

ę

dzie instrukcja laboratoryjna z zestawem

zada

ń

do zrobienia oraz wskazówkami. Zadania z bie

żą

cego laboratorium

powinny by

ć

oddane na nast

ę

pne zaj

ę

cia. Oddanie zada

ń

po terminie skutkuje

obni

ż

eniem oceny za dane laboratorium. Oprócz tego na niektórych zaj

ę

ciach

b

ę

dzie sprawdzana wiedza Studentów poprzez rozwi

ą

zanie zada

ń

testowych w

systemie Moodle (w czasie 6 laboratoriów). Tematyka zada

ń

testowych na dane

laboratorium znajduje si

ę

w Tabeli na nast

ę

pnej stronie. W przypadku oceny

niedostatecznej z testu, student dopuszczony jest do laboratorium, przy czym na
kolejnych zaj

ę

ciach b

ę

dzie zobowi

ą

zany do zaliczenia tego testu. Ocena za test

b

ę

dzie wówczas

ś

redni

ą

punktów z pierwszego oraz drugiego podej

ś

cia.

Oprócz list zada

ń

ka

ż

dy student otrzyma Projekt Indywidualny, który powinien

zosta

ć

zrealizowany najpó

ź

niej na przedostatnie zaj

ę

cia laboratoryjne.

Propozycje tematów semestralnych znajduj

ą

si

ę

w instrukcji nr 4 i

zaprezentowane zostan

ą

podczas drugich zaj

ęć

laboratoryjnych. Zadania

ostatecznie przydzielone powinny zosta

ć

do czwartych zaj

ęć

laboratoryjnych.

Mo

ż

liwa jest własna propozycja tematu semestralnego, przy czym zawarto

ść

Projektu musi pokrywa

ć

si

ę

z tematyk

ą

wykładu oraz laboratorium.

Warunkiem koniecznym zaliczenia przedmiotu jest:

1) Ucz

ę

szczanie

na

zaj

ę

cia

(mo

ż

liwe

jedynie

2

nieobecno

ś

ci

nieusprawiedliwione),

2) Zrealizowanie WSZYSTKICH zada

ń

przewidzianych do zrobienia w czasie

laboratorium (w czasie zaj

ęć

mog

ą

by

ć

zaproponowane dodatkowe

zadania na ocen

ę

celuj

ą

c

ą

dla ochotników),

3) Zaliczenie zada

ń

testowych z danej tematyki laboratorium,

4) Zrealizowanie indywidualnego Zadania Projektowego.

Szczegółowe zasady zalicze

ń

i proporcje przedstawia prowadz

ą

cy.

Obowi

ą

zuj

ą

ca Platforma Programowa to Visual Studio C++ 2008.

Zaliczenie laboratorium jest warunkiem koniecznym dopuszczenia do
egzaminu z wykładu!

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 1. Wst

ę

p.

Uruchomienie prostej aplikacji terminalowej.
Propozycja programów semestralnych.


Celem

ć

wiczenia jest poznanie

ś

rodowiska kompilatora Microsoft Visual Studio

2008 Professional C++, sposobu tworzenia aplikacji terminalowych.

Zapozna

ć

si

ę

z edytorem i kompilatorem.

1. Wybra

ć

z menu File|New|Projects.

Wybra

ć

lokalizacj

ę

, czyli katalog, w którym automatycznie powstanie

podkatalog (przestrze

ń

robocza tworzonego programu -> ang location). W

przestrzeni roboczej b

ę

d

ą

umieszczone pliki tworzonego programu.

Wpisa

ć

nazw

ę

projektu (b

ę

dzie to nazwa podkatalogu i równocze

ś

nie

programu) -> name.

Z listy projektów wybra

ć

: Visual C++|Win32| Win32 Console Application i

nacisn

ąć

„OK”.

2. nacisn

ąć

klawisz „Next”, nast

ę

pnie wybra

ć

typ aplikacji „Console Application”

i nacisn

ąć

klawisz „Finish”.

3. W funkcji _tmain wpisa

ć

cout <<„Własny tekst”<<endl;

4. Skompilowa

ć

i uruchomi

ć

wybran

ą

aplikacj

ę

. Wybra

ć

z menu: Build|Build ...,

a nast

ę

pnie po poprawnej kompilacji uruchomi

ć

program wybieraj

ą

c:

Build|Execute ... .

Wszystkie programy powinno si

ę

uruchamia

ć

dopisuj

ą

c do takiego programu kolejne

instrukcje i sprawdzaj

ą

c, co pewien czas, czy tworzony niekompletny program si

ę

kompiluje i czy prawidłowo si

ę

wykonuje. Podstawowa idea polega na tym, aby cały

czas pracowa

ć

z „chodz

ą

cym” programem

background image

Ć

wiczenie 2. Definicja prostej klasy.

Obserwacja konstruktorów i destruktorów .

Celem

ć

wiczenia jest poznanie zasad formatowania obiektowego wej

ś

cia i

wyj

ś

cia.

Zadania laboratoryjne (czas realizacji: 1 tydzie

ń

)

1.1. Napisz i uruchom program, który wczyta

1

kilka liczb rzeczywistych do tablicy

TAB[Max] (Max=1000), nast

ę

pnie wyprowadzi te liczby w wyrównanej

kolumnie. W programie kontroluj, aby zadany rozmiar tablicy nie przekroczył

maksymalnego.

1.2. W programie z zadania 1.1 zredaguj precyzj

ę

wyprowadzanych liczb tak, aby

była ona zale

ż

na od

ż

yczenia u

ż

ytkownika. Jako dane wprowadzaj liczby o

ż

nej liczbie cyfr po kropce dziesi

ę

tnej oraz liczby całkowite.

1.3. Sformatuj wyprowadzane liczby tak, aby miały one jednakow

ą

zadan

ą

liczb

ę

cyfr po kropce oraz aby kropki dziesi

ę

tne były pisane w jednej kolumnie.

1.4. Wyprowadzaj ka

ż

d

ą

liczb

ę

dwukrotnie: w notacji zwykłej i naukowej Np. w

postaci „TAB[7]= 3.20 3.20E+00”.

1.5. Zaproponuj konwersje wprowadzonych liczb do postaci ósemkowej oraz

szesnastkowej.

1.6. Jakie pliki zawiera przestrze

ń

robocza programu i jaka jest zawarto

ść

pliku

StdAfx.h?

*Do wczytywania liczb nale

ż

y u

ż

ywa

ć

obiektowych operatorów wej

ś

cia.

Dodatkowo mile widziane b

ę

dzie wczytywanie danych z pliku (strumienie

plikowe).

1

Do wczytywania liczb nale

ż

y u

ż

ywa

ć

obiektowych operatorów wej

ś

cia. Dodatkowo mile widziane

b

ę

dzie wczytywanie danych z pliku (strumienie plikowe).

background image

Ć

wiczenie 3. Definicja prostej klasy.

Obserwacja konstruktorów i destruktorów .

Zadania laboratoryjne (czas realizacji: 1 tydzie

ń

)

Celem

ć

wiczenia jest poznanie zasad definiowania oraz obserwacja konstruktorów i

destruktorów poprzez tworzenie prostych obiektów.

1. Napisz w j

ę

zyku obiektowym C++ nast

ę

puj

ą

cy program:

Stwórz klas

ę

definiuj

ą

c

ą

okr

ę

g. Ka

ż

dy okr

ę

g składa si

ę

ze współrz

ę

dnych

ś

rodka

oraz promienia (współrz

ę

dne

ś

rodka x,y powinny by

ć

zmiennymi całkowitymi,

promie

ń

r – liczb

ą

rzeczywist

ą

nieujemn

ą

). Dokonaj wczytania liczb ze sprawdzeniem

poprawno

ś

ci (r>=0).

W programie obiektowym u

ż

yj konstruktora z parametrami do przypisania

warto

ś

ci pocz

ą

tkowych na standardowe współrz

ę

dne

ś

rodka S(0,0) oraz promie

ń

r=1. U

ż

yj konstruktora z tzw. list

ą

inicjalizuj

ą

c

ą

. Oprócz konstruktora z

parametrami

zdefiniuj

oraz

zbadaj

przykład

u

ż

ycia

konstruktora

bezparametrowego

oraz

konstruktora

z

niepełn

ą

liczb

ą

parametrów.

Wy

ś

wietleniem komunikatu na ekran informuj u

ż

ytkownika który konstruktor

został wywołany. Napisz funkcje obliczaj

ą

ce Pole oraz Obwód okr

ę

gu oraz

wyprowadzaj

ą

ce wynik z dokładno

ś

ci

ą

do 0,001. Wprowad

ź

dane dwóch okr

ę

gów

oraz zbadaj czy wprowadzone okr

ę

gi maj

ą

punkty wspólne. Program powinien

poinformowa

ć

o tym u

ż

ytkownika w postaci wyprowadzenia komunikatu o ilo

ś

ci

punktów wspólnych (zero, jeden, dwa lub niesko

ń

czenie wiele).

2. Niech obiektem b

ę

dzie klasa Student posiadaj

ą

ca nast

ę

puj

ą

ce pola: Imie (typu

String), Nazwisko (String) , Nr_albumu (integer) , Srednia (float), Przedmioty

(dynamiczna tablica typu String). Na pocz

ą

tku programu u

ż

ytkownik podaje liczb

ę

tworzonych obiektów K i zostaje przydzielona pami

ęć

na tablic

ę

K obiektów typu

background image

Student. Nast

ę

pnie nale

ż

y wczyta

ć

dane poszczególnego Obiektu z klawiatury. W

czasie wczytywania ka

ż

dego obiektu powinno znale

źć

si

ę

zapytanie o ilo

ść

Przedmiotów N dla danego obiektu Student, a nast

ę

pnie dynamicznie przydzielona

pami

ęć

na N Przedmiotów oraz ich wczytanie. Nale

ż

y stworzy

ć

Menu umo

ż

liwiaj

ą

ce:

a) Dodanie i wprowadzenie danych nowego studenta (zwi

ę

kszaj

ą

c pami

ęć

o 1 obiekt

klasy student),

b) Wy

ś

wietlenie aktualnego stanu tablicy,

c) Zapisanie zawarto

ś

ci bazy do pliku student.txt (

ś

rednia z dokładno

ś

ci

ą

do 2

miejsc po przecinku, nr indeksu w notacji szesnastkowej),

d) Skasowanie całej zawarto

ś

ci i zako

ń

czenie programu.

Program powinien działa

ć

w p

ę

tli a zwi

ę

kszanie tablicy obiektów klasy student

powinno odbywa

ć

si

ę

dynamicznie z chwil

ą

wprowadzania nowego studenta.

Zaproponuj odpowiedni konstruktor, destruktor, do wypisywania danych u

ż

yj

przeci

ąż

onego operatora <<. Czy w zadaniu mo

ż

na u

ż

y

ć

destruktora domy

ś

lnego

czy konieczne b

ę

dzie u

ż

ycie konstruktora jawnego?

background image

Ć

wiczenie 4. Aplikacja dialogowa – budowa interfejsu u

ż

ytkownika

Przydział tematów semestralnych

Zadania laboratoryjne (czas realizacji: 1 tydzie

ń

)

Celem

ć

wiczenia jest poznanie sposobu tworzenia aplikacji windowsowych MFC

oraz zasad umieszczania i programowania podstawowych kontrolek w oknie
dialogowym.

Uruchomi

ć

program, który w zale

ż

no

ś

ci od wyboru: doda, odejmie, pomno

ż

y lub

podzieli dwie liczby. W tym celu nale

ż

y wykona

ć

poni

ż

sze kroki.

1. Wybra

ć

z menu File|New|Projects.

a. Wybra

ć

lokalizacj

ę

, czyli katalog, w którym automatycznie powstanie

podkatalog (przestrze

ń

robocza tworzonego programu -> ang

location). W

przestrzeni

roboczej

b

ę

d

ą

umieszczone

pliki

tworzonego programu.

b. Wpisa

ć

nazw

ę

projektu

(b

ę

dzie

to

nazwa

podkatalogu

i

równocze

ś

nie programu) -> name.

c. Z listy projektów wybra

ć

: VisualC++|MFC|MFC Application. i

nacisn

ąć

„OK”.

2. Step1 – Nacisn

ąć

„Next”. Wybra

ć

typ aplikacji „Dialog based” i nacisn

ąć

klawisz „Finish”.

3. Skompilowa

ć

i uruchomi

ć

wybran

ą

aplikacj

ę

. Wybra

ć

z menu: Build|Build…,

a nast

ę

pnie po poprawnej kompilacji uruchomi

ć

program wybieraj

ą

c:

Debug| Start Without Debugging ... .

Powieli si

ę

okno z nazw

ą

programu – zako

ń

czy

ć

program naciskaj

ą

c

klawisz „OK.” lub „Cancel”.

4. Klikn

ąć

napis “TODO: Place dialog controls here.” ( kontrolka „Static Textt”

) Przesun

ąć

okienko z tym tekstem do górnej kraw

ę

dzi okna programu.

Klikn

ąć

prawym klawiszem na ww. tekst i wybra

ć

„Properties”. W okienku

wła

ś

ciwo

ś

ci w linii edycyjnej „Appearance|Caption” wpisa

ć

inny dowolny

tekst. W zakładce „Align Textt” mo

ż

na zmieni

ć

zmieni

ć

poło

ż

enie tekstu.

background image

5. Z okienka „Toolbox” przeci

ą

gn

ąć

myszk

ą

ikony Aa (Static Textt) oraz ab|

(Edit Box) na wybrane miejsca obok siebie w okienku programu. Jak w p. 4

wprowadzi

ć

do kontrolki „Static Textt” tekst z opisem pierwszej danej, która

b

ę

dzie wprowadzana do linii edycyjnej „Edit Box”. Powtórzy

ć

(dwa razy)

czynno

ś

ci z p. 5 dla drugiej danej i dla wyniku. Uruchomi

ć

program.

6. We wła

ś

ciwo

ś

ciach linii edycyjnej wyniku wybra

ć

zakładk

ę

„Behavior” i

ustawi

ć

opcj

ę

„Read-only” na TRUE.

7. Zdefiniuj obsług

ę

zdarze

ń

w pierwszej linii edycyjnej. Kliknij jej ikon

ę

prawym klawiszem i wybierz „Add Event Handler…”. W okienku „Message

type:” pod

ś

wietl EN_KILLFOCUS (zdarzenie wyj

ś

cia mysz

ą

z obszaru linii

edycyjnej). Naci

ś

nij klawisz „Add and Edit” i zaakceptuj nazw

ę

funkcji.

Pojawi si

ę

okno do edycji kodu

ź

ródłowego w C++. Wpisz nast

ę

puj

ą

c

ą

zawarto

ść

funkcji obsługi zdarzenia (je

ś

li IDC_EDIT1 identyfikuje t

ę

lini

ę

edycyjn

ą

– sprawdzisz to w jej wła

ś

ciwo

ś

ciach).

CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT1);

pEdit->GetWindowTextt(m_Text);
a=atof(m_Text);
m_Text.Format("%.*lf", prec, a);
pEdit->SetWindowTextt(m_Text);

8. Aby wróci

ć

do edycji graficznej w lewym oknie (w zakładce „Res..”) rozwi

ń

drzewo i gał

ąź

„Dialog” oraz wybierz (dwuklik) okno dialogowe programu

(IDE_Nazwa_Projektu_DIALOG). Powtórz to samo dla drugiej linii edycyjnej

(z identyfikatorem IDC_EDIT2) u

ż

ywaj

ą

c zmiennej b w miejsce zmiennej a.

Skompiluj program. Bł

ę

dy kompilacji wykazuj

ą

brak definicji zmiennych:

m_Text, a, prec, b.

9. Zdefiniuj ww. zmienne w klasie okna dialogowego. Kliknij prawym

klawiszem nazw

ę

klasy okna dialogowego w zakładce „Clas..” i wybierz

„Add|Member Variable”. Dodobnie dodaj zmienn

ą

prec typu int oraz

zmienne a, b typu double.

10. Dodaj zmienn

ą

zabezpieczon

ą

(Protected) m_Text typu CString do klasy

dialogowej. W tym celu przejd

ź

do zakładki Class View. Wykonaj dwuklik

na klas

ę

dialogow

ą

- przejdziesz do edycji tej funkcji. Po instrukcji double

b

;

dopisz inicjacje zmiennej CString m_Text;

background image

11. Zmie

ń

system kodowania znaków. Przy otwartym projekcie wejd

ź

w

Project->Properties->Configuration

Properties->General,

znajd

ź

pole

Character Set i wybierz Use Multi-Byte Character Set.

12. Klikinij na klas

ę

dialogowa. W poni

ż

ej uka

żą

si

ę

funkcje tej kasy. Wykonaj

dwuklik na funkcji „OnInitDialog()” – przejdziesz do edycji tej funkcji. Przed

instrukcj

ą

return TRUE; dopisz inicjacj

ę

zmiennej prec – dopisz instrukcj

ę

prec=3;. Skompiluj i uruchom program. Spróbuj wpisywa

ć

dane.

13. W podobny sposób zainicjuj zmienne a i b oraz linie edycyjne wpisuj

ą

c do

funkcji „OnInitDialog” instrukcje:

a=b=1;

m_Text.Format("%.*lf", prec, a);

((CEdit*)GetDlgItem(IDC_EDIT1))->SetWindowTextt(m_Text);

((CEdit*)GetDlgItem(IDC_EDIT2))->SetWindowTextt(m_Text);

14. Dodaj funkcj

ę

obsługi klikni

ę

cia klawisza „OK.”. W edytorze graficznym

kliknij ten klawisz prawym klawiszem myszki i wybierz „Add Event

Handler…”., a nast

ę

pnie klawisz „Add and Edit” i zaakceptuj nazw

ę

funkcji.

W edytorze tekstu

ź

ródłowego usu

ń

instrukcj

ę

OnOK(); i na jej miejsce

wpisz instrukcje:

CEdit* pEdit=(CEdit*)GetDlgItem(IDC_EDIT3);
double wynik=a+b;
m_Text.Format("%.*lf", prec,wynik);
pEdit->SetWindowTextt(m_Text);

15. Przetestuj działanie programu.

16. Do okna programu (edycja graficzna) wstaw kontrolk

ę

„Group Box” i

zwi

ę

ksz jej wymiary. W obszar kontrolki wstaw jeden pod drugim 4 przyciski

„Radio Button”. Zaznacz te przyciski i kliknij prawym klawiszem myszki, a

nast

ę

pnie wyrównaj poło

ż

enie przycisków wybieraj

ą

c „Align Left Edges”.

17. Podobnie jak w p. 4 zaopatrz przyciski w teksty; „Dodaj”, „Odejmij”,

„Pomnó

ż

” i „Podziel”. W oknie wła

ś

ciwo

ś

ci pierwszego przycisku („Dodaj”)

zaznacz opcj

ę

„Group” -> TRUE Dla tego przycisku stwórz zmienn

ą

m_zadanie typu int – klikaj

ą

c go prawym klawiszem i wybieraj

ą

c „Add

Variable…”. W „Add Member Variable Wizard” zmie

ń

„Category” na „Value”.

background image

Nast

ę

pnie ustaw „Variable Type ” na typ całkowity „int”. nadaj nazw

ę

zmiennej w okienku „Variable Name” i naci

ś

nij „OK”.

18. W konstruktorze klasy okna dialogowego sprawd

ź

warto

ść

pocz

ą

tkow

ą

zmiennej m_zadanie. Je

ż

eli warto

ść

b

ę

dzie ró

ż

na od 0, zmie

ń

j

ą

na „0”.

Nast

ę

pnie sprawd

ź

działanie programu.

19. Zmodyfikuj działanie funkcji obsługi naci

ś

ni

ę

cia klawisza OK. tak, aby wynik

zale

ż

ał od warto

ś

ci zmiennej m_zadanie (po wykonaniu funkcji

UpdateData(), aktualizowane s

ą

warto

ś

ci zmiennych stowarzyszonych z

przyciskami i zmienna m_zadanie otrzymuje warto

ś

ci: 0 – dodawanie, 1 –

odejmowanie, 2 – mno

ż

enie i 3 – dzielenie).

20. Umie

ść

w oknie dialogowym tekst statyczny i lini

ę

edycyjn

ą

do

wprowadzenia wymaganej liczby cyfr ułamkowych – precyzji. Napisz

funkcj

ę

obsługi tej kontrolki „Edit Control”, aby wprowadzon

ą

liczb

ę

całkowit

ą

podstawia

ć

do zmiennej prec zdefiniowanej w klasie okna

dialogowego.

background image

Ć

wiczenie 5. .Rozbudowa aplikacji dialogowej – programowanie

obsługi wybranych kontrolek

Wielu kontrolkom ( np.: Edit Control, Button, Check Box, Radio Button, Combo

Box, List Box,…) mo

ż

na przypisa

ć

zmienne zgodne z typem wprowadzanych

danych. Np. linii edycyjnej "Edit Control" mo

ż

na przypisa

ć

zmienn

ą

tekstow

ą

typu

CString, aby wprowadza

ć

teksty, zmienn

ą

typu int, aby wprowadza

ć

liczby

całkowite, zmienn

ą

typu double itp. Zmiennym mo

ż

na ogranicza

ć

zakres

akceptowanych danych. Np. mo

ż

na okre

ś

li

ć

rozmiar zmiennej tekstowej

ograniczaj

ą

c długo

ść

tekstu. Zmiennym liczbowym mo

ż

na okre

ś

li

ć

minimaln

ą

i

maksymaln

ą

warto

ść

.

Aby przekaza

ć

dane z kontrolek do przypisanych im zmiennych, nale

ż

y

wywoła

ć

funkcj

ę

UpdateData() z domy

ś

lnym argumentem TRUE.

Aby przekaza

ć

dane ze zmiennych do przypisanych im kontrolek, nale

ż

y wywoła

ć

funkcj

ę

UpdateData(FALSE).


Zadania laboratoryjne (czas realizacji: 1 tydzie

ń

)

Celem

ć

wiczenia jest doskonalenie umiej

ę

tno

ś

ci posługiwania si

ę

kontrolkami.

Zadanie 1

1. W programie z

ć

wiczenia 4 doda

ć

do linii edycyjnej do wprowadzania precyzji

zmienn

ą

m_prec typu int i ograniczy

ć

zakres wprowadzanych warto

ś

ci do

przedziału od 0 do 8. W tym celu klikaj

ą

c prawym klawiszem na kontrolk

ę

wybieramy Add Variable…”. W powstałym oknie „Add Member Variable

Wizard” zmieniamy „Category” na „Value”. Nast

ę

pnie ustaw „Variable Type ”

na typ całkowity „int”. nadaj nazw

ę

zmiennej w okienku „Variable Name”.

Nast

ę

pnie okre

ś

lamy minimaln

ą

i maksymaln

ą

warto

ść

. i naci

ś

nij „OK”.

Na koniec zmieniamy zawarto

ść

funkcji obsługi kontrolki na:

UpdateData();

prec=m_prec;

background image

2. We wła

ś

ciwo

ś

ciach klawiszy „OK.” i „Cancel” zmie

ń

teksty na klawiszach na

„Oblicz” i „Koniec”. Wstaw pocz

ą

tkowy napis „3” do kontrolki wprowadzania

precyzji – w funkcji „OnInitDialog” w miejsce linii prec=3; wstaw linie

m_prec=prec=3;

UpdateData(FALSE);

3. We wła

ś

ciwo

ś

ciach klawisza „Oblicz” zmie

ń

tekst na nim na „Dodaj”. Do

kontrolek Radio Button dodaj funkcje obsługi zdarzenia BN_CLICKED. W

ka

ż

dej funkcji zmieniaj tekst na klawiszu na zgodny z wybranym przyciskiem.

Np. aby zmieni

ć

tekst na „Podziel”, nale

ż

y w funkcji dodanej do przycisku

„Odejmij” wpisa

ć

instrukcj

ę

((CEdit*)GetDlgItem(IDOK))->SetWindowText("Podziel");

gdzie IDOK jest identyfikatorem klawisza.

4. Dopisz pokazanie okna klasy CAboutDlg zdefiniowanego automatycznie w

Twoim programie. Do tego celu u

ż

yj dodatkowego klawisza, któremu nadaj

wła

ś

ciwo

ś

ci Caption: „O Programie” oraz identyfikator IDC_ABOUT. Niech

funkcja obsługi zdarzenia BN_CLICKED utworzy obiekt klasy CAboutDlg i

wykona na nim funkcj

ę

DoModal().

Zadanie 2

1. Stwórz now

ą

aplikacj

ę

MFC i napisz funkcje realizuj

ą

ce nast

ę

puj

ą

ce

operacje Stwórz 2 pola umo

ż

liwiaj

ą

ce wprowadzenie dwóch liczb

naturalnych n i k z zakresu <0-100> oraz (n>=k) a nast

ę

pnie napisz 4

funkcje licz

ą

ce:

a) silnie podanej liczby n lub k*

b) kombinacje (n po k)

c) n-t

ą

lub k-t

ą

liczb

ę

pierwsz

ą

*

d) n

k

*) Nale

ż

y u

ż

ytkownikowi umo

ż

liwi

ć

wybór

2

Stwórz pole umo

ż

liwiaj

ą

ce wprowadzenie tekstu (

ś

cie

ż

ki do pliku

tekstowego - np. dane.txt), w którym b

ę

dzie zawarta w pierwszej linii ilo

ść

elementów tablicy A, a w drugiej i nast

ę

pnych liczby naturalne oddzielone

znakiem spacji. Odczytaj ilo

ść

liczb, a nast

ę

pnie stwórz dynamiczn

ą

tablic

ę

background image

integer wielko

ś

ci A i wpisz do niej elementy z pliku dane.txt. Na danych z

pliku dokonaj nast

ę

puj

ą

cych operacji:

a) znajd

ź

element maksymalny oraz minimalny,

b) rozpi

ę

to

ść

danych, czyli ró

ż

nice pomi

ę

dzy elementem max a min,

c) policz warto

ść

ś

redni

ą

elementów z dokładno

ś

ci

ą

do 0.01.

Nast

ę

pnie zapisz te warto

ś

ci do pliku wyj

ś

ciowego wyniki.txt – ka

ż

d

ą

policzon

ą

warto

ść

w osobnej linii.


Wyszukiwarka

Podobne podstrony:
Instrukcja 2 instr 6 9 J Kisilewicz K Puchala J Gladysz v1 2
Instrukcja 3 instr 10 12 J Kisilewicz K Puchala J Gladysz
inne, 1,2,3. Warunkowanie instrumentalne (Zajęcia 3, Agusia), Zajęcia 3 : Warunkowanie instrumentaln
Instrukcja Interfejs STN1110 ELM327 Bluetooth v2
Instrukcja obslugi TachoPRO v2
rozklad tematow na zajecia teoretyczne, materiały dla instruktorów i przyszłych instruktorów nauki j
kintek explorer instructions v2 0 13b
instrukcja pierwszej pomocy v2 cz1[1]
Instrukcja Obslugi GreenEightSystem SRFL600 v2 0
Karty z instrukcjami dla dzieci, zajęcia - świetlica
224 instrukcja www PL rival434 v2
Instrukcja Obslugi GreenEightSystem SWL v2 0
zajęcie - instrukcja obsługi złości, PRZEDSZKOLE, dobre wychowanie
Instruksca sparwdzania szczelności i dopasowania masek pgaz, Zajęcia WSOWL, OPBMR
instrukcja filtracyjnej maski przeciwgazowej mp-5, Zajęcia WSOWL, OPBMR
243-instrukcja PL nano v2
DBT 120 instrukcja PL V2 0 36ENXX7WUJXQ24OJXNW2RTMAOOXBEL3JJW24HJI 36ENXX7WUJXQ24OJXNW2RTMAOOXBEL3JJ
Pokoloruj schody według instrukcji, dla dzieci i nauczycieli, zajęcia korekcyjno -kompensacyjne, zaj

więcej podobnych podstron