Sunteți pe pagina 1din 39

Diagrama cazurilor de utilizare Pentru aceasta diagrama am folosit urmatoarele i

nteractiuni intre actorii cititor si bibliotecar: 1. Un cititor se autentifica i


n sistem. Daca acesta nu este inregistrat, atunci se va trece la inregistrarea s
a. 2. Dupa ce a fost inregistrat acesta va analiza abonamentele prezentate de bi
bliotecar. Cititorul poate refuza sau accepta o oferta. Daca accepta oferta, atu
nci va intocmi un nou abonament. 3. Bibliotecarului i se repartizeaza abonamente
pe care sa le supervizeze. 4. Cititorul cauta carti, autori sau genuri. 5. In u
rma cautarii efectuate, acesta cere imprumutul, iar bibliotecarul ii va primi ce
rerea, dupa care va verifica starea cartii si daca poate sa o imprumute, atunci
o va imprumuta, iar cititorul o va primi. 6. Cand cititorul inapoiaza cartea, bi
bliotecarul o primeste si verifica daca imprumutul a durat mai mult de 15 zile i
i va da amenda pe fiecare zi in care a depasit termenul, iar cititorul va plati.
De asemenea, bibliotecarul verifica si starea cartii, iar daca o constata lipsa
va amenda cititorul pentru pierderea cartii, acesta din urma fiind nevoit sa pl
ateasca, si va scoate cartea din gestiune. 7. Bibliotecarul poate adauga carti i
n gestiune.
extend {cititor inexistent} Se Autentifica include include Analizeaza Abonamentele inc
ude extend Refuza Abonamentul extend include Accepta Abonamentul Intocmeste Abonament
ou include extend Cauta extend Cauta Gen extend Adauga Carte Supervizeaza Abonamentul
registreaza Cititor Nou
Prezinta Abonamente
Cauta Carte
Cauta Autor
Primeste Cererea
Cititor
include include include Cere Imprumutul Revizuieste Cererea de Imprumut include exte
rte Indisponibila}
extend {Cartea Se Poate Imprumuta}
Verifica Starea Cartii
include Bibliotecar Inmaneaza Cartea
Primeste Cartea
Returneaza Cartea
include
Primeste Cartea Imprumutata
extend
include Verifica Starea Imprumutului
Plateste Amenda Pentru Depasirea Termenului
include
extend {DataReturnare>15} Amendeaza Pentru Termen Depasit
include
Plateste Amenda Pentru Lipsa Cartii include
extend
Verifica Starea Cartii
Amendeaza Pentru Lipsa Cartii
extend {Carte Lipsa}
extend {Carte Lipsa} Scoate Cartea din Gestiune
Diagrama claselor Pentru aceasta diagrama am avut in vedere urmatoarele reguli d
e gestiune: 1. Un cititor are unul sau mai multe abonamente. 2. Un abonament est
e dat unui singur cititor. 3. Un abonament apartine unui singur tip de abonament
e. 4. Un tip de abonament este folosit de mai multe abonamente. 5. Un cititor sc
rie o mai multe fise de imprumut de-a lungul perioadei cat este inscris. 6. Pe o
fisa de imprumut se pot imprumuta mai multe carti. 7. O carte se imprumuta pe m
ai multe fise de imprumut (deoarece este returnatade obicei). 8. O carte apartin
e unui gen. 9. O sala are mai multe carti. 10. Un gen apartine doar unei sali. 1
1. O sala are mai multe genuri. 12. O carte are mai multi autori si este scrisa
de toti. 13. Un autor are mai multe carti. 14. O amenda este data pentru o fisa
de imprumut. 15. O fisa de imprumut poate primi o amenda sau niciuna. 16. O amen
da poate fi de intarziere sau de pierdere. 17. O plata se face de un cititor. 18
. O plata se face pentru o amenda. 19. O amenda i se da unui cititor. 20. Un bib
liotecar supervizeaza mai multe abonamente. 21. Un abonament este supervizat de
un bibliotecar. Restrictii: 1.Data returnarii care apare pe o fisa de imprumut t
rebuie sa fie mai mare sau egala cu cea a imprumutului. 2. Data de sfarsit a abo
namentului trebuie sa fie mai mare sau egala cu cea de inceput. 3. Ora de inchid
ere a unei sali trebuie sa fie dupa ora deschiderii.
Autor A Scris 1..* + + + Adauga() : void Salveaza() : void Sterge() : void Apart
ine 0..* + + 1 + + Gen IdGen: Integer NumeGen: String VarstaMinima: Integer Adau
ga() : void Salveaza() : void Sterge() : void NrCarti() : Integer 1..* 1 Sala 1
CartiImprumutate + + + + + IdCarte: Carte NrFisa: FisaImprumut Adauga() : void S
alveaza() : void Sterge() : void NrCartiImprumutate() : Integer ItemCarte() : In
teger + + + + + + + NrSala: Integer DenumireSala: String EtajSala: Integer OraDe
schidereSala: Integer OraInchidereSala: Integer Adauga() : void Salveaza() : voi
d Sterge() : void TotalCartiInSala() : Integer NrCartiDisponibileInSala() : Inte
ger DurataProgram() : Integer NumarGenuriInSala() : Integer IdAutor: Integer Num
eAutor: String DataNastere: Date OraInchidere > OraDeschidere
/Este Specializata In
0..* Carte + + + + IdCarte: Integer DenumireCarte: String Disponibilitate: Boole
an Valoare: Integer ISBN: String DataAparitie: Date Editura: String Adauga() : v
oid Salveaza() : void Sterge() : void NrAutori() : Integer
Se Afla 1..*
Imprumuta DataReturnare >= DataIntocmire
1..*
0..* FisaImprumut + + + + NrFisa: Integer DataIntocmire: Date DataReturnare: Dat
e = Nothing Adauga() : void Salveaza() : void Sterge() : void Returnare() : void
0..* + + + Cititor CNP: String NumeCititor: String PrenumeCititor: String DataN
asterii: Date AdresaCititor: String TelefonCititor: String eMailCititor: String
Adauga() : void Salveaza() : void Sterge() : void 1 Se Da Efectueaza 0..1 Amenda
+ + + + + IdAmenda: Integer Adauga() : void Salveaza() : void Sterge() : void V
aloareAmenda() : void TotalPlati() : Double Se Plateste 1 0..* + + + IdPlata: In
teger SumaPlatita: Integer Supervizeaza Adauga() : void Salveaza() : void Sterge
() : void 0..* Plata /I Se Dau 0..* 1 DataSfarsit >= DataInceput
Scrie 1
Abonament Detine + + + + NrAbonament: Integer DataInceput: Date DataSfarsit: Dat
e Adauga() : void Salveaza() : void Sterge() : void Valabilitate() : Integer 0..
* 0..* + + + Apartine -
TipAbonament IdTip: Integer NumeTip: String Descriere: String Adauga() : void Sa
lveaza() : void Sterge() : void
1
1
0..*
Bibliotecar + + + + IdBibliotecar: UShort NumeBibliotecar: String PrenumeBibliot
ecar: String Adauga() : void Salveaza() : void Sterge() : void RepartizeazaAbona
ment() : void
AmendaIntarziere + + + + + SumaAmenda: Integer Adauga() : void Salveaza() : void
Sterge() : void NrZileIntarziere() : Integer TotalAmenda() : Integer + + + + +
AmendaPierdere ProcentAdaugat: Integer Adauga() : void Salveaza() : void Sterge(
) : void TotalAmenda() : Integer NrCartiPierdute() : Integer
1
Diagramele de activitati Diagrama 1 Aceasta diagrama prezinta imprumutul de cart
i. Mai intai utilizatorul incarca lista intr-o colectie temporara. Din aceasta c
olectie se va parcurge fiecare carte, i se va afla pozitia corespunzatoare din c
olectia de carti, iar daca aceasta este disponibila, i se va modifica disponibil
itatea si va fi adaugata pe lista. Daca la sfarsitul acestei bucle nu se afla ni
cio carte disponibila, atunci fisa de imprumut generata va fi stearsa. Diagrama
2 In prima parte se va proceda la autentificarea utlizatorului, iar in cazul in
care acesta nu exista va fi introdus ca utilizator nou. Dupa aceea va fi intreba
t daca doreste un tip de abonament si cat timp va dori un abonament, va introduc
e datele si i se va intocmi. De asemenea, daca se razgandeste dupa ce a introdus
datele, poate renunta. Nota: Prima parte a fost implementata in VB.Net.
Declarare variabile
tmp : ColCartiImprumutate ConfirmareDate: Boolean ItemCarte: Integer NumarCartiI
mprumutate: Integer =0
Generare Fisa de Imprumut Noua
Introducere Date Carti
[ConfirmareDate=False] [ConfirmareDate=True] Sterge Fisa De Imprumut
k=1
[k<=tmp.Count()] [NumarCartiImprumutate = 0] ItemCarte=tmp.Item(k).ItemCarte() [
k>tmp.Count()] [Carte.Item(ItemCarte)=FALSE]
[NumarCartiImprumutate != 0] [Carte.Item(ItemCarte)=TRUE]
Carte.Item(ItemCarte).Disponibila=FALSE Cancel
pCartiImprumutate.Adauga(tmp.k)
NumarCartiImprumutate = NumarCartiImprumutate + 1
tmp = Nothing ; ConfirmareDate=False
Declarare variabile
pCititor : Cititor ConfirmareDate : Boolean ConfirmareAbonamentNou : Boolean pAb
onament : Abonament
Introducere Date Cititor
[ConfirmareDate = False] ExistaCititor(Cod) [ConfirmareDate = True]
pCititor = New Cititor [True] Cancel pCititor.Salveaza(CNP,NumeCititor,PrenumeCi
titor,DataNasterii,AdresaCititor,TelefonCititor,eMailCititor) [False]
ColCititori.Add(pCititor)
[ConfirmareAbonamentNou = False]
[ConfirmareAbonamentNou = True]
Introducere Date Abonament
pAbonament = New Abonament
pAbonament.Salveaza(NrAbonament,DataInceput,DataSfarsit)
Cancel [ConfirmareDate = False] [ConfirmareDate = True]
ColAbonament.Add(pAbonament)
Diagramele de secvente Diagrama 1 Aceasta diagrama descrie imprumutul unei carti
de un cititor. Acesta se autentifica in sistem, dupa care introduce o noua cere
re de imprumut. Pe cerere va introduce mai multe carti ce vor fi adaugate intr-o
colectie temporara. Dupa aceea, fiecare carte va fi verificata si, daca este di
sponibila, atunci va fi imprumutata. Daca nicio carte nu este disponibila, atunc
i fisa de imprumut generata va fi stearsa. Dupa finalizarea operatiunilor utiliz
atorul va inchide formularul de imprumut. Diagrama 2 Aceasta diagrama descrie al
egerea unui nou abonament de catre un cititor. Dupa ce se autentifica va introdu
ce datele pentru noul abonament, le va confirma, i se va crea un obiect temporar
pentru a reconfirma datele din abonament, dupa care aceste date vor fi incarcat
e in colectia de abonamente. Acest lucru se va intampla cat timp cititorul va do
ri abonamente noi. La sfarsit el va iesi din formularul de abonare.
+ Carte : CarteImprumutata :FrmAcces Cititor par [Autentificare()] :FisaImprumut
:ColFisaImprumut :FrmImprumuta :ColTmp :ColCarteImprumutata
1: Fisa = New FisaImprumut()
2: ColFisaImprumut.Add(Fisa)
loop [ConfirmareCarteNoua = True] 3: IntroducereDate()
4: ConfirmareDate() :Carte
5: Carte = New CarteImprumutata()
6: ColTmp.Add(Carte)
NrCartiImprumutate 7: Initializeaza(NrCartiImprumutate)
loop [Nu au fost trecute toate cartile] alt [Cartea este disponibila]
8: Adauga(ColTmp.item(i))
9: IncrementeazaNrCI()
alt [NrCartiImprumutate = 0]
10: StergeFisaDeImprumut()
11: Close()
:FrmAcces Cititor par [Autentificare()]
:FrmAbonare
:ColAbonamente
+ AbonamentNou : Abonament
loop [ConfirmareAbonamentNou = True] 1: IntroduceDate()
2: ConfirmaDate() 3: AbonamentNou() :tmpAbonament
4: ConfirmareDate() 5: AdaugaAbNou()
6: Close()
Diagrama de stare Am prezentat diagrama de stare a platii. Se efectueaza o plata
noua. Se calculeaza suma totala platita pana atunci la care se adauga plata nou
a si daca aceasta va fi mai mare decat valoarea totala a amenzii, atunci plata v
a fi stearsa.
DatePlata
CrearePlata Entry/IdPlata Do/AdaugaSuma Do/AdaugaAmenda
Amenda
Entry/IdAmenda Do/TotalPlata()
[TotalPlata() + SumaPlatita > ValoareAmenda()]
[TotalPlata() + SumaPlatita <= ValoareAmenda()]
Plata
Entry/IdPlata Do/Sterge
Diagrama de amplasare In aceasta diagrama avem nodul principal reprezentat de se
rver unde vom avea clasele implementate in VB.Net. Avem si un nod care reprezint
a baza de date implementata in Microsoft SQL Server. Nodul cu aplicatii pentru c
ititori reprezinta totalitatea formularelor accesibile acestora. Nodul cu aplica
tii pentru bibliotecari reprezinta totalitatea formularelor accesibile acestora,
deoarece ei vor putea executa actiuni speciale.
device :AppServer
device :SQLserver
executionEnvironment :VB.Net TipAbonament.VB device :AppCititor
Abonament.VB executionEnviron... :VB.Net Cititor.VB frmAcces.VB
Plata.VB Amenda.VB AmendaIntarziere.VB
frmImprumuta.VB
frmRestituire.VB
AmendaPierdere.VB Bibliotecar.VB
frmPlata.VB
frmAbonarevb Carte.VB FisaImprumut.VB
Gen.VB Autor.VB Sala.VB
device :AppBibliotecar
CartiImprumutate.VB
executionEnvironment :VB.Net
frmAcces.VB
frmAdaugaCarte.VB
frmScoateCarte.VB
frmSupervizareAbonament.VB
Diagrama de componente Reprezinta componenta de imprumut al unei carti. Aceasta
se face pe baza introducerii datelor in formularul de imprumut, iar prin interme
diul fisei de imprumut se vor adauga toate cartile imprumutate, li se va verific
a disponibilitatea in componenta de carti si li se va modifica disponibilitatea
daca pot fi imprumutate.
ImprumutCarti :frmImprumut delegate
IntroducereDate
:FisaImprumut
:CartiImprumutate
:Carte
Implementare in Microsoft SQL Server
Putem observa urmatoarele tabele in modelul relational: Cititor (CNP, NumeCitito
r, PrenumeCititor, DataNasterii, AdresaCititor, eMailCititor) Abonament(NrAbonam
ent, DataInceput, DataSfarsit, CNP, IdTip, IdBibliotecar) TipAbonament(IdTip, Nu
meTip, Descriere) Bibliotecar(IdBibliotecar, NumeBibliotecar, PrenumeBibliotecar
) Amenda(IdAmenda, CNP, NrFisa) AmendaIntarziere(IdAmenda, SumaAmenda) AmendaPie
rdere(IdAmenda, ProcentAdaugat) Plata(IdPlata,SumaPlata, IdAmenda, CNP) FisaImpr
umut(NrFisa, DataIntocmire, DataReturnare, CNP) CartiImprumutate(IdCarte, NrFisa
) Carte(IdCarte, DenumireCarte, Disponibilitate, Valoare, ISBN, DataAparitie, Ed
itura, NrSala, IdGen) Sala(NrSala, DenumireSala, EtajSala, OraDeschidereSala, Or
aInchidereSala) Gen(IdGen, NumeGen, VarstaMinima, NrSala) Autor(IdAutor, NumeAut
or, DataNasterii) AutoriCarte(IdAutor, IdCarte)
Implementare in VB.Net Cititor
Public Class Cititor Private CNP As String Private NumeCititor As String Private
PrenumeCititor As String Private DataNasterii As Date Private AdresaCititor As
String Private TelefonCititor As String Private eMailCititor As String Private c
Abonament As New Collection Private cAmenda As New Collection Private cPlata As
New Collection Private cFisaImprumut As New Collection Property CNPCititor() Get
Return CNP End Get Set(ByVal value) If Len(value) = 13 Then CNP = value End Set
End Property Property Nume() Get Return NumeCititor End Get Set(ByVal value) Nu
meCititor = value End Set End Property Property Prenume() Get Return PrenumeCiti
tor End Get Set(ByVal value) PrenumeCititor = value End Set End Property Propert
y DataNasteriiCititor() Get Return DataNasterii End Get Set(ByVal value) DataNas
terii = value End Set End Property Property Adresa() Get Return AdresaCititor En
d Get Set(ByVal value) AdresaCititor = value End Set End Property Property Telef
on()
Get Return TelefonCititor End Get Set(ByVal value) If IsNumeric(value) Then Tele
fonCititor = value End Set End Property Property eMail() Get Return eMailCititor
End Get Set(ByVal value) eMailCititor = value End Set End Property Property Abo
nament() Get Return cAbonament End Get Set(ByVal value) cAbonament = value End S
et End Property Property Amenda() Get Return cAmenda End Get Set(ByVal value) cA
menda = value End Set End Property Property Plata() Get Return cPlata End Get Se
t(ByVal value) cPlata = value End Set End Property Property FisaImprumut() Get R
eturn cFisaImprumut End Get Set(ByVal value) cFisaImprumut = value End Set End P
roperty Public Sub Adauga() End Sub Public Sub Salveaza(ByVal pCNP As String, By
Val pNume As String, ByVal pPrenume As String, ByVal pDataNasterii As Date, ByVa
l pAdresa As String, ByVal pTelefon As String, ByVal peMail As String) CNPCitito
r = pCNP Nume = pNume Prenume = pPrenume
DataNasteriiCititor = pDataNasterii Adresa = pAdresa Telefon = pTelefon eMail =
peMail End Sub Public Sub Sterge() End Sub End Class
Abonament
Public Class Abonament Private NrAbonament As Integer Private DataInceput As Dat
e Private DataSfarsit As Date Private oBibliotecar As Bibliotecar Property NrAb(
) Get Return NrAbonament End Get Set(ByVal value) NrAbonament = value End Set En
d Property Property DataI() Get Return DataInceput End Get Set(ByVal value) Data
Inceput = value End Set End Property Property DataSf() Get Return DataSfarsit En
d Get Set(ByVal value) If value >= DataI Then DataSfarsit = value End Set End Pr
operty Property Bibliotecar() Get Return oBibliotecar End Get Set(ByVal value) o
Bibliotecar = value End Set End Property Public Sub Adauga() End Sub Public Sub
Salveaza(ByVal pNrAbonament As Integer, ByVal pDataInceput As Date, ByVal pDataS
farsit As Date) NrAb = pNrAbonament
DataI = pDataInceput DataSf = pDataSfarsit End Sub Public Sub Sterge() End Sub P
ublic Function Valabilitate() As Integer Return (DataSf - DataI) End Function En
d Class
Tip Abonament
Public Class TipAbonament Private IdTip As Integer Private NumeTip As String Pri
vate Descriere As String Private cAbonament As New Collection Property IdTipAb()
Get Return IdTip End Get Set(ByVal value) IdTip = value End Set End Property Pr
operty Nume() Get Return NumeTip End Get Set(ByVal value) NumeTip = value End Se
t End Property Property DescriereAb() Get Return Descriere End Get Set(ByVal val
ue) Descriere = value End Set End Property Property Abonament() Get Return cAbon
ament End Get Set(ByVal value) cAbonament = value End Set End Property Public Su
b Adauga() End Sub Public Sub Salveaza(ByVal pIdTip As Integer, ByVal pNume As S
tring, ByVal pDescriereAb As String)
IdTipAb = pIdTip Nume = pNume DescriereAb = pDescriereAb End Sub Public Sub Ster
ge() End Sub End Class
Amenda
Public Class Amenda Private IdAmenda As Integer Private oFisaImprumut As FisaImp
rumut Private cPlata As New Collection Property IdAm() Get Return IdAmenda End G
et Set(ByVal value) IdAmenda = value End Set End Property Property FisaImprumut(
) Get Return ColFisaImprumut End Get Set(ByVal value) ColFisaImprumut = value En
d Set End Property Property Plata() Get Return ColPlata End Get Set(ByVal value)
ColPlata = value End Set End Property Public Sub Adauga() End Sub Public Overlo
ads Sub Salveaza(ByVal pIdAmenda As Integer, ByVal pFisaImprumut As FisaImprumut
) IdAm = pIdAmenda FisaImprumut = pFisaImprumut End Sub Public Sub Sterge() End
Sub Public Sub ValoareAmenda() Dim Total As Double Total = ColAmendaIntarziere.I
tem(cautaAI(IdAm)).TotalAmenda() + ColAmendaPierdere.Item(cautaAP(IdAm))
Return Total End Sub Public Function TotalPlati() As Double Dim Total As Double
Dim k As Integer Total = 0 For k = 0 To Plata.count Total += Plata.Item(k).SumaP
latita Next k Return Total End Function End Class
Amenda Intarziere
Public Class AmendaIntarziere Inherits Amenda Private SumaAmenda As Integer Prop
erty Suma() Get Return SumaAmenda End Get Set(ByVal value) SumaAmenda = value En
d Set End Property
Public Overloads Sub Salveaza(ByVal pIdAmenda As Integer, ByVal pSumaAmenda As I
nteger, ByVal pFisaImprumut As FisaImprumut) IdAm = pIdAmenda Suma = pSumaAmenda
FisaImprumut = pFisaImprumut End Sub
Public Function NrZileIntarziere() As Integer Return DateDiff(DateInterval.Day,
Today, FisaImprumut.DataIn) End Function Public Function TotalAmenda() As Intege
r Return (DateDiff(DateInterval.Day, Today, FisaImprumut.DataIn) - 15) * SumaAme
nda End Function End Class
Amenda Pierdere
Public Class AmendaPierdere Inherits Amenda Private ProcentAdaugat As Integer Pr
operty PrAd() Get Return ProcentAdaugat End Get Set(ByVal value) ProcentAdaugat
= value End Set End Property
Public Overloads Sub Salveaza(ByVal pIdAmenda As Integer, ByVal pProcentAdaugat
As Integer, ByVal pFisaImprumut As FisaImprumut) IdAm = pIdAmenda PrAd = pProcen
tAdaugat FisaImprumut = pFisaImprumut End Sub
Public Function TotalAmenda() As Integer Dim k As Integer Dim Total As Integer T
otal = 0 For k = 0 To FisaImprumut.Count Total += Carte.Item(cautaC(FisaImprumut
.ColCarte(k).IdCarte)).ValoareCarte Next k Return Total End Function Public Func
tion NrCartiPierdute() As Integer Dim k As Integer Dim Nr As Integer Nr = 0 For
k = 0 To FisaImprumut.Count Nr += 1 Next k Return Nr End Function End Class
Fisa Imprumut
Public Class FisaImprumut Private NrFisa As Integer Private DataIntocmire As Dat
e Private DataReturnare As Date = Nothing Private oCititor As Cititor Private cC
artiImprumutate As New Collection Property NrF() Get Return NrFisa End Get Set(B
yVal value) NrFisa = value End Set End Property Property DataIn() Get Return Dat
aIntocmire End Get Set(ByVal value) DataIntocmire = value End Set End Property P
roperty DataR() Get Return DataReturnare End Get
Set(ByVal value) If value >= DataIn Then DataReturnare = value End Set End Prope
rty Property Cititor() Get Return oCititor End Get Set(ByVal value) oCititor = v
alue End Set End Property Property CartiImprumutate() Get Return cCartiImprumuta
te End Get Set(ByVal value) cCartiImprumutate = value End Set End Property Publi
c Sub Adauga() End Sub Public Sub Salveaza(ByVal pNrFisa As Integer, ByVal pData
Intocmire As Date, ByVal pDataReturnare As Date, ByVal pCititor As Cititor) NrF
= pNrFisa DataIn = pDataIntocmire DataR = pDataReturnare Cititor = pCititor End
Sub Public Sub Sterge() End Sub Public Sub Returnare() End Sub End Class
Carti Imprumutate
Public Class CartiImprumutate Private IdCarte As Carte Private NrFisa As FisaImp
rumut Property IdC() As Integer Get Return IdCarte End Get Set(ByVal value As In
teger) IdCarte = value End Set End Property Property NrF() Get Return NrFisa End
Get
Set(ByVal value) NrFisa = value End Set End Property Public Sub Adauga() End Sub
Public Sub Salveaza(ByVal pIdCarte As Carte, ByVal pNrFisa As FisaImprumut) NrF
= pNrFisa IdC = pIdCarte End Sub Public Sub Sterge() End Sub Public Function Nr
CartiImprumutate() As Integer Dim k As Integer Dim Nr As Integer Nr = 0 For k =
0 To ColCartiImprumutate.Count If ColCartiImprumutate.Item(k).NrFisa = NrF Then
Nr += 1 Next k Return Nr End Function Public Function ItemCarte() As Integer Dim
k As Integer Dim Item As Integer For k = 0 To ColCarti.Count If ColCarti.Item(k
).IdC = IdCarte.IdCarte Then Item = k : Exit For Next Return Item End Function E
nd Class
Carte
Public Class Carte Private IdCarte As Integer Private DenumireCarte As String Pr
ivate Disponibilitate As Boolean Private Valoare As Integer Private ISBN As Stri
ng Private DataAparitie As Date Private Editura As String Private cAutor As New
Collection Private cCartiImprumutate As New Collection Property IdC() Get Return
IdCarte End Get Set(ByVal value) IdCarte = value
End Set End Property Property Denumire() Get Return DenumireCarte End Get Set(By
Val value) DenumireCarte = value End Set End Property Property Val() Get Return
Valoare End Get Set(ByVal value) Valoare = value End Set End Property Property I
SBNcarte() Get Return ISBN End Get Set(ByVal value) If Len(value) = 13 Then ISBN
= value End Set End Property Property DataAp() Get Return DataAparitie End Get
Set(ByVal value) DataAparitie = value End Set End Property Property EdituraCarte
() Get Return Editura End Get Set(ByVal value) Editura = value End Set End Prope
rty Property Autor() Get Return cAutor End Get Set(ByVal value) cAutor = value E
nd Set End Property Property CartiImprumutate() Get Return cCartiImprumutate End
Get Set(ByVal value) cCartiImprumutate = value End Set
End Property Public Sub Adauga() End Sub Public Sub Salveaza(ByVal pId As Intege
r, ByVal pDen As String, ByVal pDisponibilitate As Boolean, ByVal pValoare As In
teger, ByVal pISBN As String, ByVal pDataAparitie As Date, ByVal pEditura As Str
ing) IdC = pId Denumire = pDen Disponibilitate = pDisponibilitate Val = pValoare
ISBNcarte = pISBN DataAp = pDataAparitie EdituraCarte = pEditura End Sub Public
Sub Sterge() End Sub Public Function NrAutori() As Integer Return cAutor.Count
End Function End Class
Autor
Public Class Autor Private IdAutor As Integer Private NumeAutor As String Privat
e DataNastere As Date Property IdAut() Get Return IdAutor End Get Set(ByVal valu
e) IdAutor = value End Set End Property Property Nume() Get Return NumeAutor End
Get Set(ByVal value) NumeAutor = value End Set End Property Property DataNaster
eAutor() Get Return DataNastere End Get Set(ByVal value) DataNastere = value End
Set End Property Public Sub Adauga() End Sub
Public Sub Salveaza(ByVal pIdAutor As Integer, ByVal pNumeAutor As String, ByVal
pDataNastere As Date) IdAut = pIdAutor Nume = pNumeAutor DataNastereAutor = pDa
taNastere End Sub Public Sub Sterge() End Sub End Class
Gen
Public Class Gen Private IdGen As Integer Private NumeGen As String Private Vars
taMinima As Integer Private cCarte As New Collection Property IdG() Get Return I
dGen End Get Set(ByVal value) IdGen = value End Set End Property Property Nume()
Get Return NumeGen End Get Set(ByVal value) NumeGen = value End Set End Propert
y Property VarstaMin() Get Return VarstaMinima End Get Set(ByVal value) VarstaMi
nima = value End Set End Property Property Carte() Get Return cCarte End Get Set
(ByVal value) cCarte = value End Set End Property Public Sub Adauga() End Sub Pu
blic Sub Salveaza(ByVal pIdGen As Integer, ByVal pVarstaMin As Integer) IdG = pI
dGen VarstaMin = pVarstaMin End Sub
Public Sub Sterge() End Sub Public Function NrCarti() Return Carte.Count End Fun
ction End Class
Sala
Public Class Sala Private NrSala As Integer Private DenumireSala As String Priva
te EtajSala As Integer Private OraDeschidereSala As Integer Private OraInchidere
Sala As Integer Private cCarte As New Collection Private cGen As New Collection
Property Nr() Get Return NrSala End Get Set(ByVal value) NrSala = value End Set
End Property Property Denumire() Get Return DenumireSala End Get Set(ByVal value
) DenumireSala = value End Set End Property Property Etaj() Get Return EtajSala
End Get Set(ByVal value) EtajSala = value End Set End Property Property OraDesch
idere() Get Return OraDeschidereSala End Get Set(ByVal value) OraDeschidereSala
= value End Set End Property Property OraInchidere() Get Return OraInchidereSala
End Get Set(ByVal value) If value > OraDeschidere Then OraInchidereSala = value
End Set
End Property Property Carte() Get Return cCarte End Get Set(ByVal value) cCarte
= value End Set End Property Property Gen() Get Return cGen End Get Set(ByVal va
lue) cGen = value End Set End Property Public Sub Adauga() End Sub Public Sub Sa
lveaza(ByVal pNr As Integer, ByVal pDenumire As String, ByVal pEtaj As Integer,
ByVal pOraDeschidere As Integer, ByVal pOraInchidere As Integer) Nr = pNr Denumi
re = pDenumire Etaj = pEtaj OraDeschidere = pOraDeschidere OraInchidere = pOraIn
chidere End Sub Public Sub Sterge() End Sub Public Function TotalCartiInSala() A
s Integer Return Carte.count End Function Public Function NrCartiDisponibileInSa
la() As Integer Dim k As Integer Dim Nr As Integer Nr = 0 For k = 0 To Carte.cou
nt If Carte.Item(k).Disponibila = True Then Nr += 1 Next k Return Nr End Functio
n Public Function DurataProgram() As Integer Return (OraInchidere - OraDeschider
e) End Function Public Function NumarGenuriInSala() As Integer Return Gen.count
End Function End Class
Bibliotecar
Public Class Bibliotecar Private IdBibliotecar As UShort Private NumeBibliotecar
As String Private PrenumeBibliotecar As String Public cAbonament As New Collect
ion Property Id() Get Return IdBibliotecar End Get Set(ByVal value) IdBiblioteca
r = value End Set End Property Property Nume() Get Return NumeBibliotecar End Ge
t Set(ByVal value) NumeBibliotecar = value End Set End Property Property Prenume
() Get Return PrenumeBibliotecar End Get Set(ByVal value) PrenumeBibliotecar = v
alue End Set End Property Property Abonament() Get Return cAbonament End Get Set
(ByVal value) cAbonament = value End Set End Property Public Sub Adauga() End Su
b Public Sub Salveaza(ByVal pId As Integer, ByVal pNume As String, ByVal pPrenum
e As String) Id = pId Nume = pNume Prenume = pPrenume End Sub Public Sub Sterge(
) End Sub Public Sub RepartizeazaAbonament() Dim k As Integer For k = 0 To ColAb
onament.Count
If IsDBNull(ColAbonament.Item(k).Bibliotecar) Then ColAbonament.Item(k).Bibliote
car.Salveaza(Id, Nume, Prenume) Exit For End If Next k End Sub End Class
Plata
Public Class Plata Private IdPlata As Integer Private SumaPlatita As Integer Pri
vate oAmenda As Amenda Property Id() Get Return IdPlata End Get Set(ByVal value)
IdPlata = value End Set End Property Property Suma() Get Return SumaPlatita End
Get Set(ByVal value) SumaPlatita = value End Set End Property Property Amenda()
Get Return oAmenda End Get Set(ByVal value) oAmenda = value End Set End Propert
y Public Sub Adauga() End Sub Public Sub Salveaza(ByVal pId As Integer, ByVal pS
uma As Integer, ByVal pAmenda As Amenda) Id = pId Suma = pSuma Amenda = pAmenda
End Sub Public Sub Sterge() End Sub End Class
Interfata Cititor.Salveaza() (adaugarea datelor unui cititor nou) Modulul pentru
colectia de cititori
Module moduleColCititor Public ColCititor As New Collection End Module
Modulul pentru functia de cautare CNP in colectia de cititori
Module moduleFuncCautaCNP Public Function CautaCNP(ByVal pCNP As String) As Bool
ean Dim k As Integer For k = 1 To ColCititor.Count If ColCititor.Item(k).CNPCiti
tor = pCNP Then Return True End If Next k Return False End Function End Module
Codul pentru formularul de acces
Public Class frmAcces Private Sub btnOK_Click(ByVal sender As System.Object, ByV
al e As System.EventArgs) Handles btnOK.Click Dim buton As DialogResult buton =
MsgBox("Sunteti sigur ca ati introdus datele corect?", MsgBoxStyle.YesNo, "Confi
rmare Date") If buton = Windows.Forms.DialogResult.Yes Then If CautaCNP(txtCNP.T
ext.ToString) Then frmAbonare.ShowDialog() Else frmInregistrare.ShowDialog() End
If End If End Sub End Class
Codul pentru fomrularul de inregristrare
Public Class frmInregistrare Dim obCititor As Cititor Private Sub frmInregistrar
e_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBas
e.Load Me.txtCNP.Text = frmAcces.txtCNP.Text.ToString txtDataNasterii.Text = CDa
te(Format(dtpDataNastere.Value, "D")) End Sub Private Sub DateTimePicker1_ValueC
hanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dtpDa
taNastere.ValueChanged txtDataNasterii.Text = CDate(Format(dtpDataNastere.Value,
"D")) End Sub Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnOk.Click
obCititor = New Cititor obCititor.Salveaza(txtCNP.Text.ToString, txtNume.Text.To
String, txtPrenume.Text.ToString, Convert.ToDateTime(txtDataNasterii.Text), txtA
dresa.Text.ToString, txtTelefon.Text.ToString, txteMail.Text.ToString) ColCitito
r.Add(obCititor) MsgBox("Cititorul a fost adaugat") Me.Close() End Sub End Class
Capturi de ecran din timpul executiei programului

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