Sunteți pe pagina 1din 16

Subiecte MPP

1. Visual C++ . Definitie


2. Visual C++ . Utilitate
3. Visual C++ . Unelte de dezvoltare software
4. Proiect in visual C++
5. Solutie in visual C++
6. Definirea si declarerea unei clase in C++
7. Mecanismul de apel al unei functii in C++
8. Functii inline.
9. Operator de domeniu .Definitie si utilitate
10.Constructor.Destructor
11.Constructor de copiere
12.Redefinirea operatorilor
13.Mostenire.Deosebirea dintre cea publica sic ea privata
14.Reguli privind ordinea si modalitati de apel al
constructorului si destructorului in mostenire.
15.Functii virtuale .Functii virtuale pure
16.Polimorfism
17.API.Definitie si utilitate
18. Ferestre in visual C++
19.Functia CALLBACK.Definitie , Exemple
20.Crearea unei ferestre
21.Etapele realizarii unui program in visual C++
22. Resurse in visual C++
23.Meniuri
24.Casete de dialog
25.MFC.Definitie si utilitate
26.Avantajele utilizarii MFC
27.Categorii de clase din categoria MFC
28.Etapele scrierii unui program MFC fara a folosii un
wizard
29.Harta de mesaje
30.Tipuri de functii in MFC.Operatii necesare pentru
aceasta
31.APP Wizard.Definitie si utilitate
32.Fereastra de lucru al unui proiect
33.Reprezentarea claselor(ClassView)
34.Reprezentarea resurselor(ResourceView)
35.Reprezentarea fisierelor (Solution explorer)
36.Etapele crearii unei casete de dialog
37.Adaugarea si alinearea coloanele intr-o caseta de
dialog
38.Stabilirea ordinii de selectare a controarelor intr-o
caseta de dialog
39.Tasta de acces (acceleratorii)
40.Asocierea (maparea) unui obiect cu un control
41.Categorii de variabile din biblioteca MFC
42.Tipuri de butoane
43.Butoane de comanda
44.Butoane radio
45.Casete de validare
46.Casete de editare
47.Subclasarea unei casete de editare
48.Controarele de tip lista.Clasificare.Utilitate
49.Casete combinate(ComboBox)
50.Casete de tip arbore(TreeControl)
51.Casete de tip lista (ListBox)
52.Controler de tip lista (ListControl)
53.Controler orientare pe intervale de
valori.Clasificare.Utilitare
54.Controler spin (SpinControl)
55.Controler indicator de evolutie(Progress)
56.Controler glisor(Slider)
57.Controler de selectie a datei si
orei.Clasificare.Utilitate
58.Controler selector data si ora
59.Controler de tip calendar
60.Casete de dialog , modele si nemodele.Comparatie
61.Schimbul si validarea datelor intre controalere si
variabile associate
62.Exceptii
63.Metode neobiectuale de tratare a exceptiilor
64.Mecanismul C++ de tratare a exceptiilor
65.Clase MFC pentru lucru cu fisiere
66.Deschiderea fisierelor
67.Inchiderea fisierelor
68.Citirea si scrierea datelor din / in fisiere.

1 . Visual C++.Definite :

Limbajul de programare C++ produs de firma


Microsoft este un limbaj textual ce foloseste un program
de construit interfete grafice pentru a usura munca
programatorului in scopul crearii de interfete decente
3. Visual C++.Unelte de dezvoltare software :

Visual C++ include o colectie mare si elaborate de


unelte de dezvolatare software :
- MFC biblioteca de clase
- APP Wizard generator de cod ce creaza un schelet
functional
- Class-Wizard program ce genereaza cod pentru o
noua clasa sau functie
- conecteaza mesajele de scheletul
aplicatiei

4. Proiect in visual C++ :

Definitie : Un proiect in visual C++ este o entitate


constituita din mai multe fisiere care contin toate
informatiile necesare generarii programului executabil .
Definite spatiu de lucru : este totalitate fisierelor ,
utilitalelor (workspace) in cadrul ferestrei visual C++
Poate contine mai multe proiecte (spatiu de lucru)
Poate avea mai multe fisiere sursa (fiecare proiect )

8.Functii inline :

-functii cu putine instructiuni.


- corpul functiei este inserat in locul in care a fost
inserata
- cod redus ca dimensiune
10.Constructor.Destructor

Constructor :
- functie membru de acelasi nume cu numele clasei
- nu returneaza nici o valoare
- generat implicit ;poate fi redefinit de programatori
- o clasa poate avea mai multi contructori ce difera
intre ei prin semnatura.
- Unii parametrii pot fi declarati implicit
- Trebuie sa fie public alfel un obiect din afara clasei
nu va putea fi accesibil
- Alocare dinamica a memoriei se face cu malloc()

Destructor :
- eliberarea zonei de memorie
- nu returneaza nimic
- nume : ~nume_clasa
- nu primesc nici un parametru
- o clasa poate avea un singur destructor
- pentru eliberarea memoriei : - free()
-delete()

13.Mostenire.Deosebire dintre mostenirea publica sic


ea provata :

- ierarhie de clase- se afla intr-o relatie de mostenire


- clasa de baza (superclasa), clasa derivate (subclasa)
Deosebirea dintre mostenirea publica si cea privata :
- un obiect al unei clase derivate privat transforma
toti membrii mosteniti din clasa de baza in privati .
- se apeleaza constructorul clasei de baza si apoi
contructorul derivatei
- se apeleaza mai intain destructorul clasei derivate
apoi destructorul clasei de baza
- conversia de la superclasa la sub clasa se face in
mod explicit.
- Conversia sub-super : se face implicit (se numeste
mostenire publica ). Si se face explicit (mostenire
privata)
Mostenirea poate fi : simpla cand fiecare clasa derivate are
o singura clasa de baza si multipla ( proprietatea unei clase
de a se deriva din una sau mai multe clase de baza )

15.Functii virtuale .Functii virtuale pure :

Functii virtuale : limbaje C++ aduce un mecanism


extreme de puternic de tratare , de o maniera uniforma a
tablourilor eterogene: sunt functiile virtuale
- este redeclarata in clasa derivata (cu acceasi
semnatura acceasi lista de parametri formali ,
acelasi nume si acelasi tip returnat) si prefixata de
cuvantul cheie virtual
- atributul virtual se mosteneste pe tot parcursul
derivarii
- daca o functie este declarata virtual in clasa de
baza , functia redefinita intr-o clasa derivate este
functie de tip virtual in mod implicit
- functiile virtuale sunt functii member nestatice
- constructorii nu pot fi functii virtuale
- destructorii pot fi declarati de tip virtual si aceasta
declaratie este absolute necesara in situatia in care
se dezaloca un obiect de tip clasa derivata folosind
pointer la o clasa de baza a acesteia
- functiile inline nu pot fi functii virtuale

Functii virtuale pure:


- declaratia este urmata de =0 ; nu reprezinta o
initializare , ci denota caracterul virtual pur al
functiei

16. Polimorfism :

-cand functiile sunt declarate virtuale in clasa de baza


si cand aceste functii sunt apelate folosind un pointer catre
clasa de baza acest pointer devine polimorf
- comportamentul diferit al unei functii cu acelasi
nume pentru obiectele din superclasa se numeste
polimorfism ; exemplu : supraincarcarea operatorilor
- polimorfismul permite definirea unei interfete
commune pentru mai multe metode specifice diferitelor
functionalitati
17. API.Definite si Utilitate :

API vine de la : Aplication Programming Interface


W.API un set de functii oferite de sistemul de
operare windows pentru manipularea resurselor
calculatorului

Utilitate : -dezvoltarea de aplicatii

Denumirea de WIN 32 API se refera la sistemul de


operare pe 32 de biti.

19.Functii CALLBACK.Definite si exemple

Definitie : functie care receptioneaza mesaje de la


sistemul de operare . Exemplu : LRESULT CALLBACK
Wnd Proc ();

20.Crearea unei ferestre

- nu vom putea executa un program in windows daca


nu vom crea mai intai o fereastra
- crearea unei ferestre se face cu ajutorul functiei
CreateWindow()
- o fereastra este unic identificata in sistem printr-un
identificator ( o variabila HWND).Identificatorul se
obtine prin apelul functiei API : CreateWindow()
Parametrii :
- IPClassName
- IPWindowName
- dwStyle
- x
- y
- nWidth
- nHeight
- hWndParent
- hMenu
- hInstance
- IpParam

21.Etapele realizarii unui program windows in visual C++

- sa declaram functia CALLBACK , in cazul nostru


WndProc();
- sa declaram sis a definim clase de ferestre
utilizate(in fisierul sursa)
- sa cream o instanta a acestei clase , utilizand functii
CreateWindow()
- sa stabilim starea de vizibilitate a ferestrei cu
functia Show_Window()
- sa implemntam procedura fereastra

26. Avantajele utilizarii MFC

-creste semnificativ lizibilitate codului , o aplicatie


putand fi descifrata mult mai usor
- se simplifica programarea aplicatiei prin folosirea
claselor deja implemntate in MFC
- se micsoreaza semnificativ timpul de dezvoltare a
unei aplicatii windows
- programatorul are posibilitatea de a se concentra
numai asupra aspectelor particulare ale aplicatiei , lasand
aspectelor standard(clasa de ferestre, proceduri fereastra
etc.)in seama claselor MFC
- se pot folosi in procesul de programare programele
vrajitor(Wizard) precum APPWizard si ClassWizard , care
usureaza munca programatorilor.

28.Etapele scrierii unui program MFC fara a folosii un


program vrajitor (Wizard)

- deschidem un nou proiect de tip Win 32 Aplication ,


care nu contine nici un fisier
- din meniul Project-Settings , selectam Settings for :
all configuration, iar de la tab-ul General , in caseta
combinata Microsoft Foundation Classes vom alege
Using MFC in a shared library.
- Introducem codul programului , compilam , editam
legaturile si lansam in executie

29.Harta de mesaje :

- pentru a putea trata mesajele adresate unei ferestre ,


este necesara definirea unei harti de mesaje .O harta
de mesaje este utilizata pentru a stabili legaturile
intre mesajele trasmise unei ferestre si functiile
destinate procesarii acestor mesaje
- declararea unei harti de mesaje se face in interiorul
unei clase derivate din clasa C.Wnd(uzual in fisierul
header ) , folosind macroul:
DECLARE_MESSAGE_MAP()
! nu se pune ; dupa macrou .
- declarea se face acolo deorece windows trimite
toate mesajele catree fereastra asociata programelor
aplicatiei
BEGIN_MESSAGE_MAP
END_MESSAGE_MAP

33.Reprezentarea claselor(ClassView)

- prin utilizarea etichetei ClassView , in fereastra de


lucru va apare structura de clasa utilizate in cadrul
proiectului.
- Prin intermediul ClassView se poate accesa oricare
clasa, functie membru sau variabila din proiect.
- Daca efectuam dublu click asupra oricarui element
al clasei rezultand afisarea definitiei clasei , functiei
sau variabilei respective in fereastra de cod .

34.Reprezentarea resurselor (ResourceView)

- in cazul selectarii etichetei ResourceView vor fi


afisate resursele proiectului , adica toate elementele
vizuale ale acestuia.
Acestea sunt :
- casete
- meniuri
- prictograme

Tipuri :
- resurse bitmap
- pictograme
- resurse dialog
- resurse meniu

35.Reprezentarea fisierelor

- in cazul optiunii Solution Explorer, fereastra de


lucru va afisa fisierele care compun proiectul.
- Fisierele sunt organizate pe cataloage , in functie de
tipul lor .

Tipuri uzuale :
- .dpp fisier proiect baza de date
- .cpp fisier sursa C++
- .bmp fisier de tip bitmap

38. Stabilirea ordinii de selectare a controalelor intr-o


caseta de dialog :

- selectam Layout -> Tab Order ;


- controalele din caseta de dialog vor fi numerate;
- refacem (daca e nevoie) ordinea prin apasarea
butonului stang al mouse-lui cu prompterul pe
fiecare control , in ordinea dorita;
- pentru testarea ordinii de selectare , alegem Layout
->Test , sau apasam CTRL+T;

39. Taste de acces (acceleratori)

Exista posibilitatea ca mai multe etichete sa aiba


aceeasi mnemonica.In acest caz , la apasarea mnemonicei,
va fi activate primul control considerand oridinea de
selectare.
Existenta mneminicelor multiple , se vrifica cu
optiunea Check Mnemonics din meniul contextual.
O tasta de acces (sau accelerator) pentru un control se
specifica prin inserare simbolului & in eticheta controlului ,
inainte de caracterul care va avea rol de mnemonica.
Mnemonica este un character subliniat , care poate fi
utilizat ca o scurtatura pentru activitatea controlului
respective. De exemplu, un control cu eticheta T&est. El va
putea fi activate , pe langa mouse si de combinatia de taste
ALT+E .

43. Butoane de comanda.

-sunt acele butoane a caror apasare se executa o


singura comanda ; implementata in cadrul programului prin
intermediul unei functii ;Orice sablon caseta de dialog
contine in forma initiala (si in marea majoritate a cazurilor
si in forma finala)doua butoane de comanda,respective OK
si Cancel.

44. Butoane Radio.

- sunt utilizate in marea majoritate a cazurilor pentru


a marca in program actiuni mutual exclusive.In
general ele sunt utilizate ca un grup de butoane, un
singur buton fiind validat (marcat ca un punct in
interior) la un moment dat.
- Primul buton din grup are validate optiunile Group
si Tab Stop, iar celelalte butoane vor avea validate
doar optiunea Tab Stop

45.Casete de validare

-marcheaza una sau mai multe optiuni.Spre deosebire


de butoanele radio, aceste optiuni nu sunt mutual exclusive,
putand fi validate simultan mai multe dintre ele.Utilizand
tipica a acestor butoane implica 2 functii:
Int cButton :: GetCheck(); -returneaza 1 in
situatia in care caseta de validare pentru care este apelata
este validate si 0 in caz contrar.
Void cButton :: SetCheck(int nCheck); -valideaza
caseta pentru care este apelata daa primeste ca parametru
valoarea 1 si respective o invalideaza daca primeste
valoarea 0.
46. Casete de editare.

- interfata de intrare este cel mai des utilizata pentru


aplicatiile Windows
- sunt utilizate ca si controale de intrare, pentru
receptionarea textului introdus . precum ca si
controale de iesire, pentru afisarea informatiilor.
- Prin efectuarea unu click cu mouse-ul in interiorul
casetei, acesta va prelua implicit focusul, putand fi
introdus textul.

S-ar putea să vă placă și