Diagrama cazurilor de utilizare [630538]

Diagrama cazurilor de utilizare

Pentru aceasta diagrama am folosit urmatoarele interactiuni intre actorii cititor si bibliotecar:
1. Un cititor se autentifica in sistem. Daca acesta nu este inregistrat, atunci se va trece la
inregistrarea sa.
2. Dupa ce a fost inregistrat acesta va analiza abonamentele prezentate de bibliotecar.
Cititorul poate refuza sau accepta o oferta. Daca accepta oferta, atunci 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 urma cautarii efectuate, acesta cere imprumutul, iar bibliotecarul ii va primi cererea,
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, bibliotecarul o primeste si verifica daca imprumutul a
durat mai mult de 15 zile ii 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 plateasca, si va scoate cartea din
gestiune.
7. Bibliotecarul poate adauga carti in gestiune.

Cititor
BibliotecarSe AutentificaInregistreaza
Cititor Nou
Prezinta
AbonamenteAnalizeaza
Abonamentele
Refuza
AbonamentulAccepta
AbonamentulIntocmeste
Abonament
Nou
Cauta
Cauta CarteCauta AutorCauta Gen
Cere
ImprumutulPrimeste
Cererea
Verifica Starea
Cartii
Inmaneaza
CarteaPrimeste
Cartea
Returneaza
CarteaPrimeste
Cartea
Imprumutata
Verifica Starea
ImprumutuluiAmendeaza
Pentru Termen
DepasitPlateste Amenda
Pentru Depasirea
Termenului
Verifica Starea
Cartii
Amendeaza
Pentru Lipsa
CartiiPlateste Amenda
Pentru Lipsa
Cartii
Scoate Cartea
din GestiuneAdauga Carte
Revizuieste
Cererea de
ImprumutSupervizeaza
Abonamentul«include»
«include»
«include»«extend»
«extend»«extend»
«extend»
{Cartea Se
Poate
Imprumuta}
«include»«extend»«extend»«include»
«include»
«extend»
{Carte
Indisponibila}«include»«extend» {cititor inexistent}
«include»
«include»
«extend»«extend»
«extend»
{Carte
Lipsa}«include»«include»
«include»«include»«extend»
{DataReturnare>15}«include»«include»
«extend»
{Carte
Lipsa}

Diagrama claselor

Pentru aceasta diagrama am avut in vedere urmatoarele reguli de gestiune:
1. Un cititor are unul sau mai multe abonamente.
2. Un abonament este dat unui singur cititor.
3. Un abonament apartine unui singur tip de abonamente.
4. Un tip de abonament este folosit de mai multe abonamente.
5. Un cititor scrie 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 mai multe fise de imprumut (deoarece este returnatade
obicei).
8. O carte apartine unui gen.
9. O sala are mai multe carti.
10. Un gen apartine doar unei sali.
11. 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 amenda 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 bibliotecar supervizeaza mai multe abonamente.
21. Un abonament este supervizat de un bibliotecar.

Restrictii:
1.Data returnarii care apare pe o fisa de imprumut trebuie sa fie mai mare sau egala cu
cea a imprumutului.
2. Data de sfarsit a abonamentului trebuie sa fie mai mare sau egala cu cea de inceput.
3. Ora de inchidere a unei sali trebuie sa fie dupa ora deschiderii.

Cititor
– CNP: String
– NumeCititor: String
– PrenumeCititor: String
– DataNasterii: Date
– AdresaCititor: String
– TelefonCititor: String
– eMailCititor: String
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
Bibliotecar
– IdBibliotecar: UShort
– NumeBibliotecar: String
– PrenumeBibliotecar: String
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ RepartizeazaAbonament() : voidAbonament
– NrAbonament: Integer
– DataInceput: Date
– DataSfarsit: Date
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ Valabilitate() : IntegerTipAbonament
– IdTip: Integer
– NumeTip: String
– Descriere: String
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : voidFisaImprumut
– NrFisa: Integer
– DataIntocmire: Date
– DataReturnare: Date = Nothing
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ Returnare() : voidCarte
– IdCarte: Integer
– DenumireCarte: String
– Disponibilitate: Boolean
– Valoare: Integer
– ISBN: String
– DataAparitie: Date
– Editura: String
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ NrAutori() : IntegerCartiImprumutate
– IdCarte: Carte
– NrFisa: FisaImprumut
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ NrCartiImprumutate() : Integer
+ ItemCarte() : IntegerAutor
– IdAutor: Integer
– NumeAutor: String
– DataNastere: Date
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : voidGen
– IdGen: Integer
– NumeGen: String
– VarstaMinima: Integer
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ NrCarti() : IntegerSala
– NrSala: Integer
– DenumireSala: String
– EtajSala: Integer
– OraDeschidereSala: Integer
– OraInchidereSala: Integer
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ TotalCartiInSala() : Integer
+ NrCartiDisponibileInSala() : Integer
+ DurataProgram() : Integer
+ NumarGenuriInSala() : Integer
Amenda
– IdAmenda: Integer
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ ValoareAmenda() : void
+ TotalPlati() : Double
AmendaIntarziere
– SumaAmenda: Integer
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ NrZileIntarziere() : Integer
+ TotalAmenda() : IntegerAmendaPierdere
– ProcentAdaugat: Integer
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : void
+ TotalAmenda() : Integer
+ NrCartiPierdute() : IntegerPlata
– IdPlata: Integer
– SumaPlatita: Integer
+ Adauga() : void
+ Salveaza() : void
+ Sterge() : voidDataReturnare >=
DataIntocmire
DataSfarsit >= DataInceputOraInchidere > OraDeschidere
1Detine
0..*1Apartine
0..*
0..*Apartine
1Supervizeaza0..*0..*Scrie
11Se Afla
1..*1/Este Specializata In
1..*1..*A Scris
0..*
1
Se Da
0..1
0..*Se Plateste
10..*/I Se
Dau1 1
Efectueaza
0..*1..*
Imprumuta
0..*

Diagramele de activitati

Diagrama 1
Aceasta diagrama prezinta imprumutul de carti. Mai intai utilizatorul incarca lista intr-o
colectie temporara. Din aceasta colectie se va parcurge fiecare carte, i se va afla pozitia
corespunzatoare din colectia de carti, iar daca aceasta este disponibila, i se va modifica
disponibilitatea si va fi adaugata pe lista. Daca la sfarsitul acestei bucle nu se afla nicio 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 intrebat daca doreste un tip de abonament
si cat timp va dori un abonament, va introduce 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.

NumarCartiImprumutate =
NumarCartiImprumutate + 1Declarare variabile
Generare Fisa de Imprumut Noua
Introducere Date Carti
k=1
ItemCarte=tmp.Item(k).ItemCarte()
Carte.Item(ItemCarte).Disponibila=FALSE
pCartiImprumutate.Adauga(tmp.k)CancelSterge Fisa De
Imprumut
tmp = Nothing ;
ConfirmareDate=Falsetmp : ColCartiImprumutate
ConfirmareDate: Boolean
ItemCarte: Integer
NumarCartiImprumutate: Integer =0
[NumarCartiImprumutate = 0][ConfirmareDate=True]
[k<=tmp.Count()]
[Carte.Item(ItemCarte)=TRUE][ConfirmareDate=False]
[NumarCartiImprumutate != 0][Carte.Item(ItemCarte)=FALSE][k>tmp.Count()]

Declarare variabilepCititor : Cititor
ConfirmareDate : Boolean
ConfirmareAbonamentNou : Boolean
pAbonament : Abonament
Introducere Date Cititor
pCititor = New Cititor
pCititor.Salveaza(CNP ,NumeCititor,PrenumeCititor,Da taNasterii,AdresaCititor,TelefonCititor,eMailCitito r)
ColCititori.Add(pCititor)
pAbonament = New AbonamentIntroducere Date Abonament
pAbonament.Salveaza(NrAbonament,DataInceput,DataSfa rsit)
ColAbonament.Add(pAbonament)Cancel
CancelExistaCititor(Cod)
[ConfirmareAbonamentNou = True]
[ConfirmareDate = False] [ConfirmareDate = True][ConfirmareAbonamentNou = False][ConfirmareDate = False]
[ConfirmareDate = True]
[False] [True]

Diagramele de secvente

Diagrama 1
Aceasta diagrama descrie imprumutul unei carti de un cititor. Acesta se autentifica in
sistem, dupa care introduce o noua cerere 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
disponibila, atunci va fi imprumutata. Daca nicio carte nu este disponibila, atunci fisa de
imprumut generata va fi stearsa. Dupa finalizarea operatiunilor utilizatorul va inchide formularul
de imprumut.

Diagrama 2
Aceasta diagrama descrie alegerea unui nou abonament de catre un cititor. Dupa ce se
autentifica va introduce 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 incarcate in
colectia de abonamente. Acest lucru se va intampla cat timp cititorul va dori abonamente noi. La
sfarsit el va iesi din formularul de abonare.

Cititor:FrmAcces :FrmImprumuta :ColTmp :ColFisaImprumut
:FisaImprumut:ColCarteImprumutata
NrCartiImprumutate:Cartepar
[Autentificare()]
loop
[ConfirmareCarteNoua = True]
alt
[Cartea este disponibila]loop
[Nu au fost trecute toate cartile]
alt
[NrCartiImprumutate = 0]+ Carte : CarteImprumutata
1: Fisa = New FisaImprumut()
2: ColFisaImprumut.Add(Fisa)
3: IntroducereDate()
4: ConfirmareDate()
5: Carte = New CarteImprumutata()
6: ColTmp.Add(Carte)
7: Initializeaza(NrCartiImprumutate)
8: Adauga(ColTmp.item(i))
9: IncrementeazaNrCI()
10: StergeFisaDeImprumut()
11: Close()

Cititor
:tmpAbonament:FrmAcces :FrmAbonare :ColAbonamente
par
[Autentificare()]
loop
[ConfirmareAbonamentNou = True]+ AbonamentNou : Abonament
1: IntroduceDate()
2: ConfirmaDate()
3: AbonamentNou()
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 noua si daca aceasta va fi mai mare decat
valoarea totala a amenzii, atunci plata va fi stearsa.

CrearePlataDatePlata
Entry/IdPlata
Do/AdaugaSumaAmenda
Entry/IdAmenda
Do/TotalPlata()
Plata
Entry/IdPlata
Do/StergeDo/AdaugaAmenda
[TotalPlata() + SumaPlatita > ValoareAmenda()] [TotalPlata() + SumaPlatita <= ValoareAmenda()]

Diagrama de amplasare

In aceasta diagrama avem nodul principal reprezentat de server unde vom avea clasele
implementate in VB.Net. Avem si un nod care reprezinta baza de date implementata in Microsoft
SQL Server. Nodul cu aplicatii pentru cititori reprezinta totalitatea formularelor accesibile
acestora. Nodul cu aplicatii pentru bibliotecari reprezinta totalitatea formularelor accesibile
acestora, deoarece ei vor putea executa actiuni speciale.

«device»
:AppServer
«executionEnvironment»
:VB.Net
TipAbonament.VB
Abonament.VB
Cititor.VB
Plata.VB
Amenda.VB
AmendaIntarziere.VB
AmendaPierdere.VB
Bibliotecar.VB
Carte.VB
FisaImprumut.VB
Gen.VB
Autor.VB
Sala.VB
CartiImprumutate.VB«device»
:SQLserver
«device»
:AppCititor
«executionEnviron…
:VB.Net
frmAcces.VB
frmImprumuta.VB
frmRestituire.VB
frmPlata.VB
frmAbonarevb
«device»
:AppBibliotecar
«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 intermediul fisei de imprumut se vor adauga toate
cartile imprumutate, li se va verifica disponibilitatea in componenta de carti si li se va modifica
disponibilitatea daca pot fi imprumutate.

ImprumutCarti
:frmImprumut
:FisaImprumut IntroducereDate
:CartiImprumutate
:Carte«delegate»

Implementare in Microsoft SQL Server

Putem observa urmatoarele tabele in modelul relational:

Cititor (CNP , NumeCititor, PrenumeCititor, DataNasterii, AdresaCititor, eMailCititor)
Abonament(NrAbonament , DataInceput, DataSfarsit, CNP, IdTip, IdBibliotecar )
TipAbonament(IdTip , NumeTip, Descriere)
Bibliotecar(IdBibliotecar , NumeBibliotecar, PrenumeBibliotecar)
Amenda(IdAmenda , CNP, NrFisa )
AmendaIntarziere(IdAmenda , SumaAmenda)
AmendaPierdere(IdAmenda , ProcentAdaugat)
Plata(IdPlata ,SumaPlata, IdAmenda, CNP )
FisaImprumut(NrFisa , DataIntocmire, DataReturnare, CNP )
CartiImprumutate(IdCarte, NrFisa )
Carte(IdCarte , DenumireCarte, Disponibilitate, Valoare, ISBN, DataAparitie, Editura, NrSala,
IdGen)
Sala(NrSala , DenumireSala, EtajSala, OraDeschidereSala, OraInchidereSala)
Gen(IdGen , NumeGen, VarstaMinima, NrSala )
Autor(IdAutor , NumeAutor, 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 cAbonament 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)
NumeCititor = value
End Set
End Property
Property Prenume()
Get
Return PrenumeCititor
End Get
Set(ByVal value)
PrenumeCititor = value
End Set
End Property
Property DataNasteriiCititor()
Get
Return DataNasterii
End Get
Set(ByVal value)
DataNasterii = value
End Set
End Property
Property Adresa()
Get
Return AdresaCititor
End Get
Set(ByVal value)
AdresaCititor = value
End Set
End Property
Property Telefon()

Get
Return TelefonCititor
End Get
Set(ByVal value)
If IsNumeric(value) Then TelefonCititor = value
End Set
End Property
Property eMail()
Get
Return eMailCititor
End Get
Set(ByVal value)
eMailCititor = value
End Set
End Property
Property Abonament()
Get
Return cAbonament
End Get
Set(ByVal value)
cAbonament = value
End Set
End Property
Property Amenda()
Get
Return cAmenda
End Get
Set(ByVal value)
cAmenda = value
End Set
End Property
Property Plata()
Get
Return cPlata
End Get
Set(ByVal value)
cPlata = value
End Set
End Property
Property FisaImprumut()
Get
Return cFisaImprumut
End Get
Set(ByVal value)
cFisaImprumut = value
End Set
End Property
Public Sub Adauga()

End Sub

Public Sub Salveaza(ByVal pCNP As String, ByVal pNume As String, ByVal
pPrenume As String, ByVal pDataNasterii As Date, By Val pAdresa As String,
ByVal pTelefon As String, ByVal peMail As String)
CNPCititor = 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 Date
Private DataSfarsit As Date
Private oBibliotecar As Bibliotecar
Property NrAb()
Get
Return NrAbonament
End Get
Set(ByVal value)
NrAbonament = value
End Set
End Property
Property DataI()
Get
Return DataInceput
End Get
Set(ByVal value)
DataInceput = value
End Set
End Property
Property DataSf()
Get
Return DataSfarsit
End Get
Set(ByVal value)
If value >= DataI Then DataSfarsit = va lue
End Set
End Property
Property Bibliotecar()
Get
Return oBibliotecar
End Get
Set(ByVal value)
oBibliotecar = value
End Set
End Property
Public Sub Adauga()

End Sub

Public Sub Salveaza(ByVal pNrAbonament As Integ er, ByVal pDataInceput As
Date, ByVal pDataSfarsit As Date)
NrAb = pNrAbonament

DataI = pDataInceput
DataSf = pDataSfarsit
End Sub

Public Sub Sterge()

End Sub

Public Function Valabilitate() As Integer
Return (DataSf – DataI)
End Function
End Class
Tip Abonament
Public Class TipAbonament
Private IdTip As Integer
Private NumeTip As String
Private Descriere As String
Private cAbonament As New Collection
Property IdTipAb()
Get
Return IdTip
End Get
Set(ByVal value)
IdTip = value
End Set
End Property
Property Nume()
Get
Return NumeTip
End Get
Set(ByVal value)
NumeTip = value
End Set
End Property
Property DescriereAb()
Get
Return Descriere
End Get
Set(ByVal value)
Descriere = value
End Set
End Property
Property Abonament()
Get
Return cAbonament
End Get
Set(ByVal value)
cAbonament = value
End Set
End Property
Public Sub Adauga()

End Sub

Public Sub Salveaza(ByVal pIdTip As Integer, By Val pNume As String, ByVal
pDescriereAb As String)

IdTipAb = pIdTip
Nume = pNume
DescriereAb = pDescriereAb
End Sub

Public Sub Sterge()

End Sub
End Class
Amenda
Public Class Amenda
Private IdAmenda As Integer
Private oFisaImprumut As FisaImprumut
Private cPlata As New Collection
Property IdAm()
Get
Return IdAmenda
End Get
Set(ByVal value)
IdAmenda = value
End Set
End Property
Property FisaImprumut()
Get
Return ColFisaImprumut
End Get
Set(ByVal value)
ColFisaImprumut = value
End 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 Overloads Sub Salveaza(ByVal pIdAmenda A s 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.Item(cautaAI(Id Am)).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).SumaPlatita
Next k
Return Total
End Function
End Class
Amenda Intarziere
Public Class AmendaIntarziere
Inherits Amenda
Private SumaAmenda As Integer
Property Suma()
Get
Return SumaAmenda
End Get
Set(ByVal value)
SumaAmenda = value
End Set
End Property

Public Overloads Sub Salveaza(ByVal pIdAmenda A s Integer, ByVal
pSumaAmenda As Integer, ByVal pFisaImprumut As Fisa Imprumut)
IdAm = pIdAmenda
Suma = pSumaAmenda
FisaImprumut = pFisaImprumut
End Sub

Public Function NrZileIntarziere() As Integer
Return DateDiff(DateInterval.Day, Today, Fi saImprumut.DataIn)
End Function

Public Function TotalAmenda() As Integer
Return (DateDiff(DateInterval.Day, Today, F isaImprumut.DataIn) – 15)
* SumaAmenda
End Function
End Class
Amenda Pierdere
Public Class AmendaPierdere
Inherits Amenda
Private ProcentAdaugat As Integer
Property PrAd()
Get
Return ProcentAdaugat
End Get
Set(ByVal value)
ProcentAdaugat = value
End Set
End Property

Public Overloads Sub Salveaza(ByVal pIdAmenda A s Integer, ByVal
pProcentAdaugat As Integer, ByVal pFisaImprumut As FisaImprumut)
IdAm = pIdAmenda
PrAd = pProcentAdaugat
FisaImprumut = pFisaImprumut
End Sub

Public Function TotalAmenda() As Integer
Dim k As Integer
Dim Total As Integer
Total = 0
For k = 0 To FisaImprumut.Count
Total += Carte.Item(cautaC(FisaImprumut.ColCarte (k).IdCarte)).ValoareCarte
Next k
Return Total
End Function

Public Function 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 Date
Private DataReturnare As Date = Nothing
Private oCititor As Cititor
Private cCartiImprumutate As New Collection
Property NrF()
Get
Return NrFisa
End Get
Set(ByVal value)
NrFisa = value
End Set
End Property
Property DataIn()
Get
Return DataIntocmire
End Get
Set(ByVal value)
DataIntocmire = value
End Set
End Property
Property DataR()
Get
Return DataReturnare
End Get

Set(ByVal value)
If value >= DataIn Then DataReturnare = value
End Set
End Property
Property Cititor()
Get
Return oCititor
End Get
Set(ByVal value)
oCititor = value
End 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 pNrFisa As Integer, B yVal pDataIntocmire 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 FisaImprumut
Property IdC() As Integer
Get
Return IdCarte
End Get
Set(ByVal value As Integer)
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, By Val pNrFisa As
FisaImprumut)
NrF = pNrFisa
IdC = pIdCarte
End Sub

Public Sub Sterge()

End Sub

Public Function NrCartiImprumutate() 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.IdCar te Then Item = k : Exit
For
Next
Return Item
End Function

End Class
Carte
Public Class Carte
Private IdCarte As Integer
Private DenumireCarte As String
Private Disponibilitate As Boolean
Private Valoare As Integer
Private ISBN As String
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(ByVal value)
DenumireCarte = value
End Set
End Property
Property Val()
Get
Return Valoare
End Get
Set(ByVal value)
Valoare = value
End Set
End Property
Property ISBNcarte()
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 Property
Property Autor()
Get
Return cAutor
End Get
Set(ByVal value)
cAutor = value
End 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 Integer, ByVal pDen As String, ByVal
pDisponibilitate As Boolean, ByVal pValoare As Inte ger, ByVal pISBN As
String, ByVal pDataAparitie As Date, ByVal pEditura As String)
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
Private DataNastere As Date
Property IdAut()
Get
Return IdAutor
End Get
Set(ByVal value)
IdAutor = value
End Set
End Property
Property Nume()
Get
Return NumeAutor
End Get
Set(ByVal value)
NumeAutor = value
End Set
End Property
Property DataNastereAutor()
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 = pDataNastere
End Sub
Public Sub Sterge()
End Sub
End Class
Gen
Public Class Gen
Private IdGen As Integer
Private NumeGen As String
Private VarstaMinima As Integer
Private cCarte As New Collection
Property IdG()
Get
Return IdGen
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 Property
Property VarstaMin()
Get
Return VarstaMinima
End Get
Set(ByVal value)
VarstaMinima = 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

Public Sub Salveaza(ByVal pIdGen As Integer, By Val pVarstaMin As Integer)
IdG = pIdGen
VarstaMin = pVarstaMin
End Sub

Public Sub Sterge()

End Sub
Public Function NrCarti()
Return Carte.Count
End Function
End Class
Sala
Public Class Sala
Private NrSala As Integer
Private DenumireSala As String
Private EtajSala As Integer
Private OraDeschidereSala As Integer
Private OraInchidereSala 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 OraDeschidere()
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 OraInchid ereSala = 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 value)
cGen = value
End Set
End Property
Public Sub Adauga()

End Sub

Public Sub Salveaza(ByVal pNr As Integer, ByVal pDenumire As String,
ByVal pEtaj As Integer, ByVal pOraDeschidere As Int eger, ByVal pOraInchidere
As Integer)
Nr = pNr
Denumire = pDenumire
Etaj = pEtaj
OraDeschidere = pOraDeschidere
OraInchidere = pOraInchidere
End Sub

Public Sub Sterge()

End Sub

Public Function TotalCartiInSala() As Integer
Return Carte.count
End Function

Public Function NrCartiDisponibileInSala() As I nteger
Dim k As Integer
Dim Nr As Integer
Nr = 0
For k = 0 To Carte.count
If Carte.Item(k).Disponibila = True The n Nr += 1
Next k
Return Nr
End Function

Public Function DurataProgram() As Integer
Return (OraInchidere – OraDeschidere)
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 Collection
Property Id()
Get
Return IdBibliotecar
End Get
Set(ByVal value)
IdBibliotecar = value
End Set
End Property
Property Nume()
Get
Return NumeBibliotecar
End Get
Set(ByVal value)
NumeBibliotecar = value
End Set
End Property
Property Prenume()
Get
Return PrenumeBibliotecar
End Get
Set(ByVal value)
PrenumeBibliotecar = value
End Set
End Property
Property Abonament()
Get
Return cAbonament
End Get
Set(ByVal value)
cAbonament = value
End Set
End Property
Public Sub Adauga()

End Sub

Public Sub Salveaza(ByVal pId As Integer, ByVal pNume As String, ByVal
pPrenume 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 ColAbonament.Count

If IsDBNull(ColAbonament.Item(k).Biblio tecar) Then
ColAbonament.Item(k).Bibliotecar.Sa lveaza(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
Private 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 Property

Public Sub Adauga()

End Sub

Public Sub Salveaza(ByVal pId As Integer, ByVal pSuma 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 Boolean
Dim k As Integer
For k = 1 To ColCititor.Count
If ColCititor.Item(k).CNPCititor = 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, ByVal e As
System.EventArgs) Handles btnOK.Click
Dim buton As DialogResult
buton = MsgBox("Sunteti sigur ca ati introd us datele corect?",
MsgBoxStyle.YesNo, "Confirmare Date")
If buton = Windows.Forms.DialogResult.Yes T hen
If CautaCNP(txtCNP.Text.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 frmInregistrare_Load(ByVal sender A s System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
Me.txtCNP.Text = frmAcces.txtCNP.Text.ToStr ing
txtDataNasterii.Text = CDate(Format(dtpData Nastere.Value, "D"))
End Sub

Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles dtpDataNastere .ValueChanged
txtDataNasterii.Text = CDate(Format(dtpData Nastere.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, tx tNume.Text.ToString,
txtPrenume.Text.ToString, Convert.ToDateTime(txtDat aNasterii.Text),
txtAdresa.Text.ToString, txtTelefon.Text.ToString, txteMail.Text.ToString)
ColCititor.Add(obCititor)
MsgBox("Cititorul a fost adaugat")
Me.Close()
End Sub
End Class

Capturi de ecran din timpul executiei programului

Similar Posts