Documente Academic
Documente Profesional
Documente Cultură
C8 Colectii de Obiecte
C8 Colectii de Obiecte
Exemplu:
Considerm urmtoarea ierarhie de clase n VB.NET
Unde:
-clasa Document este clas abstract iar clasa Cec este o clas concret.
Clasa Cec este clasa secundar/derivat/copil avnd clasa Document
clas de baz/superclasa/printe
-atributele:m_FelDoc, m_NrDoc, m_EmitentDoc, m_TipOperatie,
m_DenumireTert sunt de tip String; m_DataDoc este de tip Date i
m_SumaCec este de tip Integer;
-atributul m_TipOperatie poate lua doar valorile: I pentru cec de ncasat;
P pentru cec de plat i S pentru cec depus spre scontare
-pentru atributele Private: m_FelDoc, m_TipOperatie i m_Suma se vor
defini proprietile similare: felDoc, tipOperatie, sumaCec
Cerine:
i) s se defineasc clasele
Get
Return m_TipOperatie
End Get
Set(ByVal value As String)
'validarea datelor introduse
If value = "I" Or value = "P" Or value = "S" Then
m_TipOperatie = value
Else
m_TipOperatie = ""
MsgBox("Tip operatie diferit de I,P sau S")
End If
End Set
End Property
Public Property sumaCec() As Integer
Get
Return m_SumaCec
End Get
Set(ByVal value As Integer)
m_SumaCec = value
End Set
End Property
'definirea metodelor
End Class
-se valideaz datele i dac sunt corecte (se instaniaz un nou obiect; se
transfer datele din machet n proprieti; se adaug obiectul n colecie)
Exemplu:
Pentru preluarea proprietilor felDoc, tipOperatie, sumaCec vom construi
urmtoarea interfa:
Unde:
- n stnga machetei am utilizat etichete Fel Document, Tip Operatie i
Suma Cec cu rol explicativ;
iar
- n partea dreapt am folosit TextBox-uri n care vom introduce noile valori
ale proprietilor de ncrcat cu numele txtFelDoc, txtTipOperaie,
txtSumaCec.
Not: ceeace vom introduce noi n TextBox-uri va fi memorat i disponibil n
proprietatea text a fiecrui control de tip TextBox
Dorim ca la click pe Button4 (PreluareValidare) s verificm dac am
introdus date corecte n TextBox-uri i dac sunt corecte s
Simbol
Nume
Sarcin
btnPrima
btnDreapta
btnStanga
btnUltima
txtFelDoc.Text = cecCurent.felDoc
txtTipOp.Text = cecCurent.tipOperatie
txtSumaCec.Text = cecCurent.sumaCec
End Sub
Private Sub btnUltima_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnUltima.Click
'curat macheta
txtFelDoc.Text = ""
txtTipOp.Text = ""
txtSumaCec.Text = 0
'ma pozitionez pe ultimul element din colectie si afisez continutul
cecCurent = cecuri.Item(cecuri.Count - 1)
'afisez continutul
txtFelDoc.Text = cecCurent.felDoc
txtTipOp.Text = cecCurent.tipOperatie
txtSumaCec.Text = cecCurent.sumaCec
'preiau indexul
i = cecuri.Count - 1
End Sub
Private Sub btnStanga_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnStanga.Click
'curat macheta
txtFelDoc.Text = ""
txtTipOp.Text = ""
txtSumaCec.Text = 0
'ma pozitionez pe precedentu element din colectie (daca exista) si
afisez continutul
If i > 0 Then
i = i - 1
End If
MsgBox(i)
cecCurent = cecuri.Item(i)
txtFelDoc.Text = cecCurent.felDoc
txtTipOp.Text = cecCurent.tipOperatie
txtSumaCec.Text = cecCurent.sumaCec
End Sub
Simbol
Nume
Sarcin
brnSterg
btnAdaug
btnModific
brnCuratColectia
Else
'afisez cecul gasit
txtFelDoc.Text = cecCurent.felDoc
txtTipOp.Text = cecCurent.tipOperatie
txtSumaCec.Text = cecCurent.sumaCec
End If
End Sub
Private Sub btnCautIndex_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnCautIndex.Click
'Definesc indexul de cautat
Dim j As Integer
'Preiau indexul
j = InputBox("Tastati indexul")
'caut
cecCurent = Nothing
If j > -1 And j < cecuri.Count Then
cecCurent = cecuri.Item(j)
End If
If IsNothing(cecCurent) Then
MsgBox("Indexul nu exista")
'curat macheta
Call CuratMacheta()
Else
End Sub
Private Sub btnSterg_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles btnSterg.Click
Dim raspuns As Integer
If IsNothing(cecCurent) Then
MsgBox("Cecul nu poate fi sters")
Else