0% au considerat acest document util (0 voturi)
3 vizualizări41 pagini

Mini Proiect

Documentul prezintă un mini proiect de aplicație pentru gestionarea serviciului economic pentru Universitatea Internațională din Casablanca, coordonat de Dl. BOUTABIA și realizat de Chaimaa Benmchich și Ayoub Fahri. Acesta descrie cerințele funcționale și nefuncționale ale aplicației, precum și instrumentele informatice utilizate, inclusiv limbajul de programare Java, bibliotecile AWT și Swing, și MySQL pentru gestionarea bazei de date. Proiectul are ca scop simplificarea gestionării orelor suplimentare ale profesorilor și reducerea erorilor administrative.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
3 vizualizări41 pagini

Mini Proiect

Documentul prezintă un mini proiect de aplicație pentru gestionarea serviciului economic pentru Universitatea Internațională din Casablanca, coordonat de Dl. BOUTABIA și realizat de Chaimaa Benmchich și Ayoub Fahri. Acesta descrie cerințele funcționale și nefuncționale ale aplicației, precum și instrumentele informatice utilizate, inclusiv limbajul de programare Java, bibliotecile AWT și Swing, și MySQL pentru gestionarea bazei de date. Proiectul are ca scop simplificarea gestionării orelor suplimentare ale profesorilor și reducerea erorilor administrative.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Mini proiect: Aplica ț ie de

serviciu de gestionare economică

Încadrat de: Dl. BOUTABIA


Prezentat de: - CHAIMAA BENMCHICH
AYOUB FAHRI

An universitar: 2018/2019

1
Sommaire
Caiet de sarcini....................................................................................... ..........................................................................................................05
1-Introducere....................................................................................... ................................................................................................................05
2-le material ....................................................................................... ...................................................................................................................05
3-nevoile funcț ionale ....................................................................................... ..........................................................................05.

4-nevoile nefuncț ionale....................................................................................... ..............................................................06


II - instrumentele informatice utilizate
..........................................................................................................................................06

Limbaj de programare JAVA


B-avantajele JAVA....................................................................................... ................................................................................07
Cavantajele pe care le aduce JAVA proiectului nostru..............................................................................................07

D-AWT Toolkit-ul Abstract Windowing


E-Swing
F-Principalele pachete Swing
....................................................................................... ...................................................................013

G-MySQL....................................................................................... .............................................................................................................................14
H-Netbeans64....................................................................................... ..............................................................................................................16
I-WampServer....................................................................................... .............................................................................................................19
III-Crearea bazei de date în MySQL.................................................................................................20

A-Le Modelul conceptual de date………………………………..................................................…………………...……………..............23

B-Le Modelul logic de date………………………………………………………………………………………….........................................24

C-Le Modelul fizic de date……………………………………………………………..……..................................................................…24


IV - implementarea aplicaț iei ............................................................................................................................... 25
A-Class [Link]....................................................................................... .................................................................................................25
B la clasa Bun venit Java....................................................................................... ...........................................................................27
C- la clasa ș edinț ă java....................................................................................... .................................................................................35
D-Classe profesor....................................................................................... ...........................................................................................38
Concluzie....................................................................................... ......................................................................................................................40

2
Listele figurilor
Figura 1 : Componentele grafice……………..……………..………………….07
Figura 2: biblioteca Swing……………………………………………………..12
Figura 3: sistemul unui server……………………………..…………………………14
Figura 4 : biroul software-ului netbeans………………………………………………19
Figura 5: Simboluri ș i informaț ii despre WampServer………………….……………..20
Figura 6: Afiș are [Link]ț ia ecranului….……………..………………….24
Figura 7: Afiș area aplicaț iei de conectare……………..……………..……………..25
Figura 8: Eroare afiș are……………..……………..……………..……………………26
Figura 9: Afiș are clasă bun venit……………..…………….……………...……….26
Figura 10: afisajul ferestrei de gestionare a utilizatorului........................33

Figura 11 : Afiș area clasei de gestionare a sesiunilor…………………………...36


Figura 12 : afiș area unui mesaj de ș tergere……………………..………….39
Figura 13 : afiș area clasei de gestionare a profesorilor………………………39

3
Dorim, în primul rând, să mulț umim echipei noastre
encadrant Mr. BOUTABIA pentru că ne-a îndrumat ș i
consilier pe toată durata realizării mini
proiect.
Sincerele noastre mul ț umiri se adresează de asemenea
universitatea ș i anturajul acesteia ș i, de asemenea, la juriul care va judeca acest lucru

muncă în ziua susț inerii, dorim de asemenea


a mul ț umi tuturor profesorilor no ș tri care ne-au învă ț at
pe parcursul întregului ciclu al inginerului pentru toate noastre
cuno ș tinț e atât ș tiinț ifice cât ș i tehnice dobândite
pe parcursul cursului nostru universitar

4
I-Caiet de sarcini:

[Link]:
Administrația Universității Internaționale din Casablanca (UIC) asigură
printre funcțiile sale gestionarea economică a orelor suplimentare și a concediilor
profesorii.

Această gestionare ridică un set de probleme legate de numărul mare de


profesori și, prin urmare, numărul orelor suplimentare ale acestora și asta
poate prezenta dificultăți de calcul pentru un om.

Pentru a pune capăt acestui dilema, conducerea UIC a optat pentru un


un software care ar garanta aceste funcții și care minimizează numărul de erori posibile
în timpul cursului, calculul și redactarea documentelor administrative.

[Link] matériel:
Platforma minimă compusă dintr-un sistem de operare Windows, JDK, WAM
PSERVER,Netbeans64.

[Link] funcț ionale:


Asigurați următoarele elemente:

• Introducerea și salvarea datelor profesorilor.


ex: numărul de ore al materiei pe care un profesor o predă.

• Software-ul trebuie să impună limite de acces utilizatorilor, altele decât


administratorul.
• Software-ul trebuie să garanteze claritatea interfeței, precum și ușurința de utilizare.
manipulare.
• Software-ul trebuie să permită introducerea datelor necesare unui
profesor (nume, prenume, grad..) și permite modificarea.
• Software-ul trebuie să permită administrarea modificării relevării
ore suplimentare ale unui profesor într-un mod mai simplu
posibil.
• Software-ul trebuie să permită stabilirea criteriilor pentru numărul maxim de
ore suplimentare.
• Software-ul trebuie să permită generarea documentelor administrative:

5
- Generați raportul sumelor datorate.
- Generați formularul pentru orele suplimentare și vacanțe.

• Crearea sesiunilor pentru fiecare utilizator al aplicației:


- Software-ul trebuie să permită administratorului să creeze
sesiuni pentru alți utilizatori.
- Software-ul trebuie să impună limite de acces utilizatorilor altele decât
administratorul.
- Software-ul trebuie să suporte conectarea la baza de date care se
situat pe un server (client/server) și poate fi folosit și ca
un software monopost:
- Il doit permettre la configuration de la connexion a un serveur.
- Software-ul trebuie să ofere o configurație implicită pentru a face
aplicația monopost.

[Link] nefuncț ionale:


Software-ul trebuie să asigure un set de nevoi non funcționale:

• Trebuie să asigure o distincție vizuală între diferitele părți ale


programme.
• Orice modificare trebuie confirmată.
• Software-ul trebuie să asigure un nivel de securitate acceptabil la nivelul
acces
• software-ul trebuie să permită accesul la diferitele pagini și
modificări rapide.

II-unele instrumente informatice utilizate:

A-Limbaj de programare JAVA:


În 1991, un grup de ingineri care lucrează la SUN SYSTEM caută
a concepe un limbaj aplicabil la dispozitive electrice mici, ele sunt bazate
pe un limbaj al cărui sintaxă este foarte apropiată de cea a C++. ideea a fost creată
printr-un limbaj al cărui programe sunt capabile să funcționeze pe oricare
ce mașină.

• Crearea unui limbaj de programare se bazează pe C și


de C++.
• La început, acest limbaj a fost numit Oaket, după care limbajul Java a fost lansat.
Oficial în 1995.
• Java are multe componente:
• JVM (Java Virtual Machine).

6
• Mediul de execuție Java (JRE).
• Kit de Dezvoltare Software (SDK).
• Clasa de bază Java (AWT, SWING).
Avantajele JAVA:

• Independența platformei.
• Programare orientată pe obiect.
• Pas de pointeur.
• Programare de rețea și multitasking.
• Programare sigurantă.
Avantajele pe care le aduce JAVA proiectului nostru :
Această limbă ne-a adus multe avantaje, cum ar fi noțiunea de orientare.
obiectul ne permite să structurăm bine metodele utilizate în proiect.
simplitatea limbajului și bogăția uneltelor de dezvoltare ne-au împins
încă o dată, pentru a progresa mai bine în realizarea aplicației.

D-AWT Toolkit-ul abstract de feronerie


Toolkit pentru feronerie abstractă. Toolkit pentru feronerie abstractă (AWT) este o

bibliotecă grafică pentru Java, făcând parte din JavaFoundation Classes (JFC)

Componentele grafice (1)

Buton

•Pânză (zonă de desen)


•Casetă de selectare (casă de selectare)

•CheckboxGroup

Etichetă

•Alegere (Selectare)

•Listă

•Scrollbar (barre de défilement)

•Câmp de text (zona de introducere pe 1 linie)

•TextArea (zone de înregistrare pe mai multe linii)

Figura 1: Componentele grafice 7


1-Buton

Este un component de interfaț ă utilizator de bază de tip "apăsaț i"


pentru a activa

Il peut être construit avec une étiquette de texte (un label) précisant
rolul său pentru utilizator.

Un obiect al clasei Button este o sursă de ActionEvent

Căș tile asociate cu obiecte din clasa Button trebuie să


implementaț i interfaț a ActionListener

Există o singură metodă în interfaț a ActionListener, aceasta este


metodă public void actionPerformed(ActionEvent e).

Button b = new Button ("Sample") ;


adaugă (b);
[Link](...) ;

2-Check Box:

Caseta de selectare furnizează un dispozitiv de intrare "activ / inactiv"


însotit de o etichetă de text.

Selectarea sau deselectarea este notificată printr-un ItemEvent la un


ascultător implementând interfaț a ItemListener.

metoda getStateChange() a ItemEvent returnează o constantă:


[Link] sau [Link].

metoda getItem() a ItemEvent returnează ș irul care conț ine


eticheta casetei de selectare considerate.

Checkbox one = new Checkbox("One", false);


adauga(unul);
[Link](...);

3-CheckboxGroup:

Se pot grupa căsuț e de selectare într-un CheckboxGroup pentru


a obț ine un comportament de tip butoane radio

8
Nu se poate selecta decât o singură casetă din grupul de casete de selectare.
în acelaș i timp.

Selectarea unei casete va face ca orice altă casetă bifată anterior


sera deselectată

CheckboxGroupcbg = new CheckboxGroup();


Checkbox unu = nou Checkbox("Unu", cbg, fals);
...
adauga(unul);
...

4-Alegeri:

Acest component propune o listă de alegeri.

Adăugăm elemente în obiectul Choice cu metoda


adaugaItem(String nomItem).

Ș irul trecut ca parametru va fi ș irul vizibil în listă :

Recuperăm șirul de caractere corespunzător articolului actual.


selectat cu metoda String getSelectedItem()

Acest obiect este sursă de ItemEvent, ascultătorul corespunzător fiind un


ListenerItem

Alegere c = noua Alegere();


[Link]("Primul");
[Link]ăItem("Al doilea");
...
[Link](...);

5-Label:

Un Label afiș ează o singură linie de text (etichetă) nemodificabilă.

În general, etichetele nu tratează evenimente.

Etichetă l = nouă Etichetă ("Bună ziua !");


adauga(l);
9
6-List:

Un obiect al clasei List permite prezentarea mai multor utilizatorului


opț iuni de text din care poate selecta una sau mai multe
elemente.

Sursa de ActionEvent ș i ItemEvent

Metoda String getSelectedItem() ș i String[] getSelectedItems() pentru


recuperaț i articole.

7-Camp de text :

Câmpul de text este un dispozitiv de introducere a textului pe o singură


linie.

Este sursa de ActionEvent

Se poate defini un câmp de text ca fiind editabil sau nu.

Métode void setText(String text) ș i String getText() pentru a seta sau a obț ine
a scoate textul din TextField

TextField f = new TextField ("O singură linie ...", 30);


adauga(f);

Texte par défaut mis Nombre de caractères visibles


în câmpul de text în câmpul de text

10
8-Zona Texte :

Zona de text este un dispozitiv de introducere a textului multi-linii, multi-


coloane cu eventuala prezenta sau absenta a « scrollbars »
(barre de derulare) orizontală ș i/sau verticală.

Poate fi sau nu editabil.

Metoda setText(), getText() ș i append() (pentru a adăuga text la sfârș it)


dintr-un text existent deja în TextArea)

9-Menu :

meniul derulant de bază, care poate fi adăugat la o bară de meniuri


(MenuBar) sau la un alt meniu.

Elementele acestor meniuri sunt

Des MenuItem

Ele sunt adăugate într-un meniu

În general, ele sunt asociate cu un ActionListener.

Des CheckBoxMenuItem, adică elemente de meniuri de selectat

ele permit propunerea de selecț ii de tip "activat / dezactivat" într-un meniu.

10-PopupMenu:

Meniuri autonome care pot fi afiș ate instantaneu pe un altul


component

11
Aceste meniuri trebuie adăugate unui component părinte (prin
exemple un Frame), datorită metodei add(...).

Pentru a afiș a un PopupMenu, trebuie să foloseș ti metoda show(...).

11-Canvas:

El defineș te un spaț iu gol

Dimensiunea sa implicită este zero pe zero (Nu uita să o


modifică cu un setSize(...) ) ș i nu are culoare.

pentru a forț a un canvas (sau orice alt component) să aibă o anumită dimensiune, trebuie să
redéfinirea metodelor getMinimumSize() ș i getPreferredSize().

Se pot captura toate evenimentele într-un Canvas.

Poate fi asociat cu numeroase căș ti: KeyListener,


MouseMotionListener, MouseListener.

Se foloseș te în general pentru a defini o zonă de desen.

E-Swing:

Fig2: biblioteca Swing

Swing este o bibliotecă grafică pentru limbajul de


programare Java, făcând parte din pachetul JavaFoundation Classes (JFC),

12
inclus în J2SE. Swing reprezintă una dintre principalele evoluții aduse
Java 2 în comparație cu versiunile anterioare

Biblioteca Swing este o nouă bibliotecă de componente.


graphiques pour Java.

Swing este integrat în Java 1.2.

Swing poate fi descărcat separat pentru utilizare cu


versiuni de Java anterioare (1.1.5+)

Această bibliotecă se adaugă la cea care a fost utilizată până acum (AWT) pentru
motive de compatibilitate.

Swing face însă dublă utilizare în multe cazuri cu AWT.

Ambiț ia lui Sun este ca, treptat, dezvoltatorii să realizeze


toate interfeț ele lor cu Swing ș i renunț ă la vechile API-uri
grafice.

F-Pacheturi principale Swing (1)


[Link]

Pachetul general

[Link]

pentru a desena borduri în jurul componentelor

[Link]

clase ș i interfeț e utilizate de componenta JColorChooser

[Link]

evenimentele generate de componentele Swing

[Link]

clase ș i interfeț e utilizate de componenta JFileChooser

[Link]

clase ș i interfeț e pentru gestionarea JTable

13
[Link]

clase ș i interfeț e pentru gestionarea componentelor „text”

[Link]

clase ș i interfeț e pentru a gestiona JTree

[Link]

pentru gestionarea undo/redo într-o aplicaț ie

BDD

Swing/AWT SQL-ul meu

JDBC
Server PHP
Aplicaț ie JAVA
Apache

Fig 3: sistemul unui server:

G-MySQL:

Definiț ie :

MySQL este un sistem de gestionare a bazelor de date (SGBD).


distribuit sub o licență duală GPL și proprietară. Face parte din software-urile de
gestionarea bazelor de date cele mai utilizate din lume, atât de publicul larg
(aplicație web în principal) realizată de profesioniști, în concurență cu
Oracle, Informix și Microsoft SQL Server.

Numele său provine de la prenumele fiicei co-creatoare Michael


Windenius, [Link] face aluzie la Limbajul de Interogare Structurat, limbajul de
cerere utilizată.
14
MySQL este un server de baze de date relaționale SQL dezvoltat
într-o preocupare pentru performanțe ridicate în citire, ceea ce înseamnă că este
mai degrabă orientat spre serviciul de date deja existent decât spre cel de implementare
o zi frecventă și foarte sigură. Este multi-threaded și multi-utilizator.

este un software liber dezvoltat sub o licență dublă în funcție de


utilizarea care s-a făcut: într-un produs liber sau într-un produs proprietar. În
în ultimul caz, licența este plătită, altfeleste licenț a publică generală GNU (GPL)
care se aplică. Acest tip de licenț ă dublă este utilizat de alte produse, cum ar fi cadrul de
dezvoltarea software-ului Qt (pentru versiunile anterioare 4,5).

MySQL funcționează pe numeroase sisteme de operare diferite,


incluzând AIX, IBMi-5, BSDi, FreeBSD, OpenBSD, OS/2 Warp, SGI IRIX, Solaris
,SunOS,SCO OpenServer,SCOUnixWare,true64 Unix,Windows.

Avantajele:
a)rapide

Serverul MySQL este foarte rapid, Testele de performanță sunt


disponibile pe site-ul MySQL.

b) Uș or de utilizat

MySQL este mult mai simplu de utilizat decât majoritatea serverelor de


baze de date comerciale.

c) API diverse

se pot efectua diverse operațiuni pe o bază de date MySQL folosind


interfețe scrise în C, Perl, C++, JAVA, Python, PHP.

d) Cost

Până la versiunea 3.20.32a, MySQL era sub licență JPL, este necesară o licență
pentru a rula MySQL pe Windows. Pe celelalte platforme forme.
Utilizarea MySQL este gratuită în scopuri necomerciale, altfel va trebui
cumpărați o licență pentru aproximativ 200$ US.
15
e) Conexiune ș i securitate

MySQL dispune de un sistem de securitate care permite gestionarea persoanelor


și mașinile care pot accesa diferitele baze

f) probabilitate

MySQL rulează pe diverse sisteme precum Unix, Windows sau Linux.

g) Distribuț ie deschisă

Sursele fiind furnizate, este posibil să se îmbunătățească MySQL.

H-Netbeans64:

NetBeans este unmediu de dezvoltare integrat (EDI), plasat


însursă deschisă parSoareîniunie 2000 sub licența CDDL(Dezvoltare Comună
și Licența de Distribuție) [Link] lângă Java, NetBeans permite utilizarea
încărcați nativ de diverse limbi precumCleC++JavaScript le XML, le
Groovy,PHP-ul și HTML-ul ou altele (printre carePythonși Ruby)prin adăugare
de greffons. Oferă toate facilitățile unui IDE modern(editor cu colorare
sintacticproiectemulti-lingvisticrefactorizareeditor grafic de interfețe și de
pagini Web).

Compilat în Java, NetBeans este disponibil sub Windows,


Linux, Solaris(surx86siSPARC)Mac OS X sau sub o versiune independentă
sisteme de operare (necesitând o mașină virtuală Java). Un
mediu Java Development KitJDKeste necesar pentru dezvoltările în
Java.

NetBeans constituie de asemenea o platformă care permite dezvoltarea


d'applications specifice (bibliotecăSwing (Java)).IDE-ulNetBeans se bazează pe
această platformă.

16
Mediu de bază
Mediul de bază include următoarele funcții generale:

configurarea ș i gestionarea interfeț ei grafice a utilizatorilor

suport pentru diferite limbaje de programare,

tratamentul codului sursă (editare, navigare, formatare, inspectare)

funcț ii de import/export din ș i către alteleIDEtels qu'Eclipse sau


JBuilder

acces ș i gestionare a bazelor de date, servere Web, resurse


partajate

gestion de sarcini (de făcut, urmărire...)

documentaț ie integrată.

Principalele limbi

Editorul integrat oferă funcții de completare, de controale


sintactice și semantice, de avertizări și sfaturi, de reluări de cod
(« refactorizare»: redenumire, schimbarea metodelor, gestionarea claselor, …)
de salvare și recuperare.

Suportă în principal următoarele limbi:

Java(Java SE, Java ME, Java FX, Java EE)Javadoc;

Groovyș iGrails;

PHP(în mediileZendș iSymfony);

JavaScript;

CC++[Link] nu necesită utilizarea unui compilator


particular. De menț ionat suportul [Link]
supportate sunt Microsoft Windows, Linux, Mac OS, Solaris 10 ș i
OpenSolaris

Python(printr-un greffon dezvoltat de comunitate) ;

17
HTMLXHTMLRHTML(en) ;

XML;

DTD;

CSS;

JSP,JSF

Ruby(printr-un greffon de la versiunea 7.0 de netBeans);


Gestionarea proiectului

Netbeans suportă principalelesisteme de gestion de


{"versions":"versiuni"}: Subversiune,[Link] asemenea, integrează
instrumente colaborative (Proiect Kenai Team Server).

Interacționează cu software-urile de gestionare a erorilor: Jira, Bugzilla

Baze de date.

NetBeans include un explorator de baze de date care suportă


toate lesbaze de date relaționale versare cele care un
conectorJDBCexistă (conform versiunilor gestionarelor de baze de
JavaDB(Derby)MySQLPostgreSQLOracle,Microsoft SQL
Server, Punct de bază (ro), Motor JTD (ro), IBM Redistributable DB2, …

Exploratorul include un editor de interogări, un manager integrat de


baze de date MySQL.

18
Fig4: bureau du logiciel netbeans

I-WampServer:

WampServer (cunoscut anterior ca WAMP5) este o platformă de dezvoltare


Web de tipWAMP,permițând să funcționeze local (fără a fi necesar să se
conectare la un server extern) [Link] nu este în sine un
software dar un mediu întelegător trei servere
(Apache,MySQLși MariaDB, un interpret de script (PHP), astfel
phpMyAdmin pentru administrarea web a bazelor de date MySQL.

Dispune de o interfață de administrație care permite gestionarea și


de a administra serverele sale prin intermediul unei pictograme în sistem (pictogramă lângă ceas)

de Windows).

Nouătatea mare a WampServer 3 constă în posibilitatea de a instala


și să folosești orice versiune de PHP, Apache, MySQL sau MariaDB într-un
clic. Astfel, fiecare dezvoltator poate reproduce fidel serverul său de
producție pe mașina sa locală.

19
FIG 5 : Simboluri ș i informaț ii despre WampServer:

III-Crearea bazei de date sub MySQL:


-- phpMyAdmin SQL Dump

-- versiunea 4.8.5

-- [Link]

--

-- Gazdă : [Link]:3306

-- Generat pe : luni, 08 iul. 2019 la 15:38

-- Versiunea serverului : 5.7.26

-- Versiune de PHP : 7.2.18

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET AUTOCOMMIT = 0;

INITIAZĂ TRANSACTIA;

20
SET time_zone = "+00:00";

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;

/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;

/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8mb4 */;

--

-- Baza de date: `gestion_prof`

--

CREAȚ I BAZA DE DATE DACĂ NU EXISTĂ `gestion_prof` SETUL DE CARACTERE IMPLICIT latin1 COLLATE
latin1_swedish_ci;

FOLOSIȚ I `gestion_prof`;

-- --------------------------------------------------------

--

-- Structura tabelului `profesori`

--

ŞTERGEŢI TABELA DACĂ EXISTĂ `professori`;

CREAȚ I TABELA DACĂ NU EXISTĂ `professeurs` (

`id` int(11) NU NULL AUTO_INCREMENT,

`Nume` varchar(30) NOT NULL,

`Prenom` varchar(30) NOT NULL,

`Grade` varchar(5) NOT NULL,

CHEIE PRIMARĂ (`id`)


21
) MOTOR=MyISAM CARACTER SET IMPUS=latin1;

-- --------------------------------------------------------

--

-- Structura tabelului `seances`

--

Ș TERGE TABELA DACĂ EXISTA `seances`;

CREAȚ I TABELA DACĂ NU EXISTĂ `seances` (

`id` int(11) NU NULL AUTO_INCREMENT,

`nbr_h` int(11) NON NULL,

`data` varchar(30) NOT NULL,

`id_p` int(11) NU NUL,

CHEIA PRIMARĂ (`id`)

) MOTOR=MyISAM REPER CHARSET=latin1;

-- --------------------------------------------------------

--

-- Structura tabelului `utilisateurs`

--

STERGE TABELA DACA EXISTA `utilizatori`;

CREAȚ I TABELA DACĂ NU EXISTĂ `utilisateurs` (

`id` int(11) NU NULL AUTO_INCREMENT,

`login` varchar(30) NU NULL,

22
`mdp` varchar(30) NOT NULL,

PRIMARY KEY (`id`)

) MOTOR=MyISAM SETARE CHARSET IMPUS=latin1;

COMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;

/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;

/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

A-Le Modelul conceptual de date :

B-Le Modelul logic de date :

23
C-Le Modelul fizic de date: (mySQL)

IV-implementarea aplicaț iei:

A-Class [Link]:

Fig 6: Afiș are [Link]ț ia ecranului:

24
Fig 7: Afiș area aplicaț iei de conectare.

private void jButton2ActionPerformed([Link] evt) {

// TODO adăugaț i codul dvs. de gestionare aici:

rs = [Link]("utilizatori", "login='" + [Link]() + "' ș i mdp='" +


[Link]() + "'";

încercă {

în timp ce ([Link]()) {

username1 = [Link]("login");

password1 = [Link]("mdp");

} catch (SQLException ex) {

[Link]([Link]()).log([Link], null, ex);

dacă (username1 == nul && password1 == nul) {

[Link](this, "le nom utilisateur ou le mots de pass est incorrect");

} altfel {

Bun venit w = new Bun venit();

[Link](true);

[Link]();

25
}

A-Commentaire:
De exemplu, dacă luăm funcția de conectare, trebuie introdus un nume și
o parolă de utilizator pentru a te conecta la site

În cazul în care nu introducem o informație sau există o eroare, aceasta se afișează.

cum urmează

Fig 8: Eroare afiș ată.

B-Clasa Bun venit Java:

Fig 9: Afiș are clasă bun venit.


26
/*

* Pentru a schimba acest antet de licenț ă, alegeț i Antetele Licenț ei în Proprietăț ile Proiectului.

Pentru a schimba acest fiș ier ș ablon, alegeț i Instrumente | Ș abloane

* ș i deschideț i ș ablonul în editor.

*/

pachet javaapplication1;

import [Link];

import [Link];

import [Link];

/**

* @author HP

*/

public class Welcome extends [Link] {

/**

Creează un nou formular Bun venit

*/

public Welcome() {

initComponente();

/**

Această metodă este apelată din interiorul constructorului pentru a iniț ia formularul.

27
* AVERTISMENT: NU modificaț i acest cod. Conț inutul acestei metode este întotdeauna

* regenerat de Editorul de Formulare.

*/

@SuppressWarnings("neîntreptăț it")

// <editor-fold defaultstate="collapsed" desc="Cod generat">

private void initComponents() {

jLabel1 = new [Link]();

jButton1 = nou [Link]();

jButton2 = new [Link]();

jButton3 = new [Link]();

setDefaultCloseOperation([Link].EXIT_ON_CLOSE);

[Link](new [Link]("Tahoma", 0, 48)); // NOI18N

[Link](new [Link](0, 204, 255));

[Link]("Bun venit");

[Link](new [Link]("Tahoma", 1, 18)); // NOI18N

[Link]("Gestion des professeurs");

[Link](new [Link]() {

public void actionPerformed([Link] evt) {

jButton1ActiuneExecutata(evt);

});

[Link](nouă [Link]("Tahoma", 1, 18)); // NOI18N

28
Gestionarea sesiunilor

[Link]ăActionListener(nou [Link]() {

public void actionPerformed([Link] evt) {

jButton2ActionPerformed(evt);

});

[Link](new [Link]("Tahoma", 1, 18)); // NOI18N

[Link]("Gestion d'utilisateurs");

[Link](nou [Link]() {

public void actionPerformed([Link] evt) {

jButton3ActionPerformed(evt);

});

[Link] layout = new [Link](getContentPane());

getContentPane().setLayout(layout);

[Link](

[Link]([Link])

.adaugatiGrup([Link]()

.addGap(67, 67, 67)

.addGroup([Link]([Link])

.adaugaComponenta(jButton1)

.adaugaComponenta(jButton2)

.adaugăComponenț ă(jButton3)

.adaugaComponenta(jLabel1))

.addContainerGap(86, Short.MAX_VALUE))

29
);

[Link](

[Link]([Link])

.adaugaGrup([Link]ț ial()

.adaugaSpatiu(30, 30, 30)

.adaugăComponenta(jLabel1)

.addGap(38, 38, 38)

.adaugaComponenta(jButton1)

.adaugatiSpatiu(18, 18, 18)

.adaugăComponent(jButton2)

.adaugaSpatiu(18, 18, 18)

.adaugaComponenta(jButton3)

.addContainerGap(44, Short.MAX_VALUE))

);

setSize(new [Link](416, 338));

setLocationRelativeTo(null);

privat void jButton1ActiunePerforms([Link] evt) {

// TODO adaugă-ț i codul de gestionare aici:

Prof p = new Prof();

[Link](true);

elimină();

private void jButton2ActionPerformed([Link] evt) {

// TODO adaugă codul tău de gestionare aici:

30
Sesiune s;
încearcă {

s = noua Seance();

[Link](true);

} prinde (SQLException ex) {

[Link]([Link]()).log([Link], null, ex);

dispose();

private void jButton3ActionPerformed([Link] evt) {

// TODO adaugă-ț i codul de gestionare aici:

Utilizator u = nou User();

[Link](true);

dispose();

/**

* @param args argumentele liniei de comandă

*/

public static void main(String args[]) {

/* Setează aspectul ș i senzaț ia Nimbus */

//<editor-fold defaultstate="collapsed" desc=" Cod pentru setarea aspectului (opț ional) ">

/* Dacă Nimbus (introducerea în Java SE 6) nu este disponibil, rămâneț i cu aspectul ș i senzaț ia implicită. */

* Pentru detalii consultaț i [Link]

*/

încercă {

pentru ([Link] info :


[Link]()) {

dacă ("Nimbus".equals([Link]())) {
31
[Link]([Link]());

ruptură;

} prind (ClassNotFoundException ex) {

[Link]([Link]()).log([Link],
null, ex);

} catch (InstantiationException ex) {

[Link]([Link]()).log([Link],
null, ex);

} catch (IllegalAccessException ex) {

[Link]([Link]()).log([Link],
null, ex);

} catch ([Link] ex) {

[Link]([Link]()).log([Link],
null, ex);

//</editor-fold>

/* Creează ș i afiș ează formularul */

[Link](new Runnable() {

public void run() {

new Welcome().setVisible(true);

});

32
// Declararea variabilelor - nu modifica

private [Link] jButton1;

private [Link] jButton2;

private [Link] jButton3;

private [Link] jLabel1;

// Sfârș itul declaraț iei variabilelor

Fig 10: afişare a feroniei de gestionare a utilizatorului.

33
Cod Java1:
private void jButton1ActionPerformed([Link] evt) {
// TODO adaugă codul tău de tratament aici:

dacă([Link]().equals("") || [Link]().equals(""))
[Link](this, "Vă rugăm să completaț i toate câmpurile înainte de ")
d'ajouter!

altfel

String[] cols = {"login","mdp"};

String[] ligne = {[Link](),[Link]()};

[Link]([Link]("utilisateurs", cols, ligne));

masă();

actualizează();

Commentaire :
acest cod Java este pentru funcția adăugare, care are rolul de a adăuga un alt login
o parolă a altor utilizatori

Cod Java 2:
private void jButton2ActionPerformed([Link] evt) {
// TODO adăugaț i codul dvs. de gestionare aici:

String id = [Link]([Link]([Link](), 0));

dacă ([Link](this, "eș ti sigur că vrei să ")


suuprimer", "atenț ie!!!", JOptionPane.OK_CANCEL_OPTION) ==
JOptionPane.OK_OPTION)

[Link]("utilizatori", "id=" + id);


34
} altfel {

return;

tabel();

private void jButton3ActionPerformed([Link] evt) {


// TODO adaugă codul tău de gestionare aici:

dacă ([Link]().equals("") || [Link]().equals("")) {


[Link](this, "Vă rugăm să introduceț i informaț iile")
complet

} altfel {

String[] colon = {"login", "mdp"};

String[] inf = {[Link](), [Link]()};

String id = [Link]([Link]([Link](), 0));

[Link]([Link]("utilizatori", colon, inf, "id='" + id + "'"));

tabel();

actualiser();

. Commentaire:

Acest cod are func ț ia de a ș terge conturile utilizatorilor


adaugă.

. Cod Java 3:
private void jButton3ActionPerformed([Link] evt) {
// TODO adăugaț i codul dvs. de gestionare aici:

dacă ([Link]().equals("") || [Link]().equals("")) {

35
Vă rugăm să introduceț i informaț iile
complet

} altfel {

String[] colon = {"login", "mdp"};

String[] inf = {[Link](), [Link]()};

String id = [Link]([Link]([Link](), 0));

[Link]([Link]("utilizatori", colon, inf, "id='" + id + "'"));

tabel();

actualizează();

. Commentaire:
Ce cod are funcț ia de a modifica informaț iile introduse pentru
ca utilizatorul să poată accesa contul corect, fără erori

C-Clasa sesiuneJava:

Fig 11: Afiș area clasei de gestionare a ș edinț elor.

36
private void jButton1ActionPerformed([Link] evt) {
// TODO adaugă codul tău de manipulare aici:

dacă (nbr_h.getText().equals("") || [Link]().equals(""))

[Link](this, "Veuillez remplir tous les champs avant


d'ajouter!

altfel

rs = [Link]écutionQuery("select id from professeurs where concat(nom,'


',prenom)="+[Link]().toString()+"'

[Link]("select id from professeurs where concat(nom,'


',prenom)="+[Link]().toString()+"'
/*încercare {

în timp ce([Link]())

[Link]("//////////"+[Link]("id"));

} catch (SQLException ex) {

[Link]([Link]()).log([Link], null, ex);

}*/

//[Link]();
37
String[] cols = {"nbr_h","date","id_p"};

//String[] ligne ={nbr_h.getText(),[Link](),""};


încearcă {

//[Link]([Link]("id"));

String id = "";

while([Link]())

id = [Link]("id");

[Link]("identificatorul este :" + id);

String[] ligne = {nbr_h.getText(),[Link](),id};

[Link]("INSERT INTO seances(nbr_h,date,id_p)")


VALORI("+nbr_h.getText()+",'"+[Link]()+"',"+id+")";

[Link]écutionUpdate("INSERARE ÎN seances(nbr_h,date,id_p)")
VALORI("+nbr_h.getText()+",'"+[Link]()+"',"+id+")

} catch (SQLException ex) {

[Link]([Link]()).log([Link], null, ex);

tabel();

actualizează();

. Comentariu :

Dacă vrei să adaugi o sesiune, trebuie să introduci numele tău ș i gradul.


date ș i numărul de ore predate

38
Fig 12: afiș area unui mesaj de ș tergere.

. Commentaire:

Dacă vrem, de exemplu, să ș tergem un profesor, ș edinț ele sale ș i


data de predare se ș terge automat după afiș are de
ce mesaj

Profesorii de clasa D:

Fig 13: afiș area clasei de gestionare a profesorilor.


39
// TODO adaugă codul tău de gestionare aici:

dacă(nom_txt.getText().equals("") || prenom_txt.getText().equals(""))

Vă rugăm să completaț i toate câmpurile înainte


d'ajouter!

altfel

String[] cols = {"Nom","Prenom","Grade"};

String[] linie =
{nom_txt.getText(),prenom_txt.getText(),grade_txt.getSelectedItem().toString();}

[Link]([Link]("profesori", cols, ligne));

tabel();

actualiser();

. Commentaire:
Dacă dorim să adăugăm un profesor, trebuie să introducem numele său ș i...
prenumele ș i gradul său pentru a-l putea adăuga pe lista
40
Concluzie

În sfâr ș it, ceea ce am învă ț at bine în cursul


realizarea acestui proiect este munca în echipă ș i aceasta
care se referă la împărtă ș irea ideilor potrivite pentru
situaț ii diferite,
cum să judecăm ș i să argumentăm ideile noastre. De asemenea, dacă
am făcut o comparaț ie cu scopul propus la
începerea raportului nostru vom deduce că aplicaț ia noastră are
realizat partea principală care este generarea automată
un fiș ier EXCEL << starea sumelor datorate >> fără a realiza
a doua etapă care este generarea unui <<OP>> sub
forme a unui fiș ier Word din cauza insuficienț ei de timp
dar asta nu împiedică completarea ei, în plus faț ă de asta
a dezvolta ș i a cre ș te viteza, adică o
optimizare a codului ș i a memoriei.

41

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