Vous êtes sur la page 1sur 41

Mini projet: Application de

gestion service économique

Encadré par : Mr. BOUTABIA


Présenté par: - CHAIMAA BENMCHICH
- AYOUB FAHRI

Année universitaire: 2018/2019

Année universitaire: 2018/2019

1
Sommaire
Cahier de charge....................................................................................... ..........................................................................................................05
1-Introduction....................................................................................... ................................................................................................................05
2-le matériel ....................................................................................... ...................................................................................................................05
3-les besoins fonctionnels ....................................................................................... ..........................................................................05.
4-les besoins non fonctionnels....................................................................................... ..............................................................06
II-les outils informatique utilisees ..........................................................................................................................................06
A-langage de programmation JAVA.......................................................................................................................................06
B-les avantages de JAVA....................................................................................... ................................................................................07
C-Les avantages qui ramène JAVA a notre projet..............................................................................................07
D-AWT The Abstract Windowing Toolkit.......................................................................................................................07
E-Swing...................................................................................... ...................................................................................................................................012
F-Principaux paqages Swing ....................................................................................... ...................................................................013
G-MySQL....................................................................................... .............................................................................................................................14
H-Netbeans64....................................................................................... ..............................................................................................................16
I-WampServer....................................................................................... .............................................................................................................19
III-Création de la base de données sous MySQL.................................................................................................20

A-Le Modèle conceptuel de donnée………………………………..................................................…………………...……………..............23

B-Le Modèle logique de donnée……………………………………………………………..………….....................................................................24

C-Le Modèle physique de donnée……………………………………………………………..……..................................................................…24


IV- l'implémentation de l'application...............................................................................................................................25
A-Class Login.Java....................................................................................... .................................................................................................25
B la classe Welocme Java....................................................................................... ...........................................................................27
C- la classe séance java....................................................................................... .................................................................................35
D-Classe professeur....................................................................................... ...........................................................................................38
Conclusion....................................................................................... ......................................................................................................................40

2
Listes des figures
Figure 1 : Les composants graphiques……………..……………..………………….07
Figure 2 : bibliothèque du Swing ……………………………………………………..12
Figure 3 : système d'un serveur……………………………..…………………………14
Figure 4 : bureau du logiciel netbeans ………………………………………………19
Figure 5: Symbole et informations de WampServer………………….……………..20
Figure 6: Affichage login.application de l'écran….……………..………………….24
Figure 7 : Affichage de l'application login……………..……………..……………..25
Figure 8: Erreur affiche……………..……………..……………..……………………26
Figure 9: Affichage class welcome……………..…………….……………...……….26
Figure 10: affichage de la fenêtre gestion d 'utilisateur.……………..…………..33
Figure 11 : Affichage de la classe gestion des séances …………………………...36
Figure 12 : affichage un message de suppression ……………………..………….39
Figure 13 : affichage de la classe gestion des professeurs ………………………39

3
Nous tenons,dans un premier temps ,à remercier notre
encadrant Mr .BOUTABIA pour nous avoir dirigé et
conseiller durant toute la période de la réalisation du mini
projet .
Nos sincères remerciements s'adressent aussi à
l’université et son entourage et aussi au jury qui jugeront ce
travail le jour de la soutenance nous souhaitons en outre
remercier tous nos professeurs qui nous ont enseignes
durant tout le cycle de l’ingénieur pour toutes nos
connaissances aussi scientifique que techniques acquises
durant notre cursus universitaire

4
I-Cahier de charges:

1. Introduction:
L’administration de l'université internationale de Casablanca (UIC) assure
parmi ses fonctions la gestion économique des heures supplémentaires et vacation
des professeurs.

Cette gestion soulever un ensemble de problèmes liés au grand nombre des


professeurs er par conséquence le nombre de ses heures supplémentaires et cela
peut poser des difficultés de calcul pour un être humain.

Afin de mettre un terme à ce dilemme, la direction de l'UIC a opté pour un


logiciel qui garantirait ces fonctions et qui minimise le nombre d'erreur qui se peut
posée au cours le calcul et la rédaction des documents administratives.

2.Le matériel:
Plateformeminimalecomposéed'unsystèmed'exploitationWindows,JDK,WAM
PSERVER,Netbeans64.

3.Les besoins fonctionnels:


Assurer les éléments suivantes:

• Saisir et sauvegarder les donnes de professeurs.


ex: le nombre des heures de la matière qu'un professeurs l'enseigne.

• Le logiciel doit imposer des limites d'accès aux utilisateurs autre que
l'administrateur.
• Le logiciel doit garantir la clarté de l'interface ainsi que la facilite de
manipulation.
• Le logiciel doit permettre de saisir les données nécessaires d'un
professeur (nom ,prénom ,grade..)et permettre la modification.
• Le logiciel doit permettre l'administration la modification du relevé des
heures supplémentaire d'un professeur d'une manière plus simple
possible.
• Le logiciel doit permettre de fixer les critères du nombre maximal des
heures supplémentaires.
• Le logiciel doit permettre de générer les documents administratifs :

5
- Générer l'état des sommes dues.
- Générer le formulaire des heures supplémentaires et vacations.

• La création des sessions pour chaque utilisateur de l'application:


- Le logiciel doit permettre que l'administrateur puisse créer des
sessions pour d'autre utilisateur.
- Le logiciel doit imposer des limites d'accès aux utilisateurs autre que
l'administrateur.
- Le logiciel doit supporter la connexion a la base de donne qui se
situe sur un serveur (client/serveur)et aussi peut être utilise comme
un logiciel monoposte:
- Il doit permettre la configuration de la connexion a un serveur.
- Le logiciel doit fournir une configuration par défaut pour rendre
l'application monoposte.

4.Les besoins non fonctionnels:


Le logiciel doit assurer un ensemble de besoins non fonctionnels:

• Il doit assurer une distinction visuelle entre les différents parties du


programme.
• Toute modification doit être confirmée.
• Le logiciel doit assurer un seuil de sécurité acceptable au niveau des
accès.
• le logiciel doit permettre un accès au différents pages et des
modification rapides.

II-les outils informatiques utilisés:

A-Langage de programmation JAVA:


En 1991, un groupe d'ingénieurs qui travailles chez SUN SYSTEM cherchent
a concevoir un langage applicable a des petits appareils électriques ,ils sont bases
sur un langage dont la syntaxe est très proche que celle de C++.l'idée a été créée
par un langage dont ses programmes sont capables de fonctionner sur n'importe
quelle machine.

• La création d'un langage de programmation est basée a partir de C et


de C++.
• Au début ce langage fut nommé Oaket après .le langage Java est lance
Officiellement en 1995.
• Java possède beaucoup de composante :
• JAVA Visual machine(JVM).

6
• JAVA runtime environnement(JRE).
• Software Development Kit (SDK).
• Java Foundation Class (AWT,SWING).
B-Les avantages de JAVA:

• Indépendance de la plate-forme .
• Programmation orientée objet .
• Pas de pointeur.
• Programmation réseau et multitâches .
• Programmation sécuritaire.

C-Les avantages que ramènent JAVA a notre projet :


Ce langage nous a porté beaucoup d'avantage comme la notion de l'oriente
objet nous permet de bien structurer les ,méthodes utilises dans le projet .la
simplicité du langage et la richesse des outils de développement nous a pousses
encore a mieux progresser dans la réalisation de l'application.

D-AWT The Abstract Windowing Toolkit:

Abstract Window Toolkit. Abstract Window Toolkit (AWT) est une


bibliothèque graphique pour Java, faisant partie de JavaFoundation Classes (JFC)

Les composants graphiques (1)

• Button

• Canvas (zone de dessin)

• Checkbox (case à cocher)

• CheckboxGroup

• Label

• Choice (Sélecteur)

• List

• Scrollbar (barre de défilement)

• TextField (zone de saisie d’1 ligne)

• TextArea (zone de saisie multilignes)

Figure1: Les composants graphiques 7


1-Button

 C'est un composant d'interface utilisateur de base de type "appuyer


pour activer".

 Il peut être construit avec une étiquette de texte (un label) précisant
son rôle à l'utilisateur.

 Un objet de la classe Button est une source d’ActionEvent

 Les écouteurs associés à des objets de la classe Button doivent


implémenter interface ActionListener

 Il n’y a qu’une méthode dans l’interface ActionListener, c ’est la


méthode public void actionPerformed(ActionEvent e).

Button b = new Button ("Sample") ;


add (b) ;
b.addActionListener (...) ;

2-Check Box:

 La case à cocher fournit un dispositif d'entrée "actif / inactif"


accompagné d'une étiquette de texte.

 La sélection ou la déselection est notifiée par un ItemEvent à un


écouteur implémentant l’interface ItemListener.

 la méthode getStateChange() de ItemEvent retourne une constante :


ItemEvent.DESELECTED ou ItemEvent.SELECTED.

 le méthode getItem() de ItemEvent renvoie la chaîne contenant


l'étiquette de la case à cocher considérée.

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


add(one);
one.addItemListener(...);

3-CheckboxGroup:

 On peut regrouper des cases à cocher dans un CheckboxGroup pour


obtenir un comportement de type boutons radio

8
 On ne peut sélectionner qu’une seule case du groupe de cases à cocher
en même temps.

 Sélectionner une case fera que toute autre case précédemment cochée
sera désélectionnée

CheckboxGroupcbg = new CheckboxGroup();


Checkbox one = new Checkbox("One", cbg, false);
...
add(one);
...

4-Choice:

 Ce composant propose une liste de choix.

 On ajoute des éléments dans l’objet Choice avec la méthode


addItem(String nomItem).

La chaîne passée en paramètre sera la chaîne visible dans la liste :

On récupère la chaîne de caractère correspondant à l’item actuellement


sélectionné avec la méthode String getSelectedItem()

Cet objet est source de ItemEvent, l’écouteur correspondant étant un


ItemListener

Choice c = new Choice();


c.addItem("First");
c.addItem("Second");
...
c.addItemListener (...);

5-Label:

 Un Label affiche une seule ligne de texte (étiquette) non modifiable.

 En général, les étiquettes ne traitent pas d'événements.

Label l = new Label ("Bonjour !");


add(l);
9
6-List:

 Un objet de la classe List permet de présenter à l'utilisateur plusieurs


options de texte parmi lesquelles il peut sélectionner un ou plusieurs
éléments.

 Source d’ActionEvent et d’ItemEvent

 Méthode String getSelectedItem() et String[] getSelectedItems() pour


récupérer des items.

7-TextField :

 Le champ de texte est un dispositif d'entrée de texte sur une seule


ligne.

 Il est source d’ActionEvent

 On peut définir un champ de texte comme étant éditable ou non.

 Méthodes void setText(String text) et String getText() pour mettre ou


retirer du texte dans le TextField

TextField f = new TextField ("Une ligne seulement ...", 30);


add(f);

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


dans le TextField dans le TextField

10
8-Texte Area :

 La zone de texte est un dispositif d'entrée de texte multi-lignes, multi-


colonnes avec éventuellement la présence ou non de « scrollbars »
(barres de défilement) horizontal et/ou vertical.

 Il peut être ou non éditable.

 Méthode setText(), getText() et append() (pour ajouter du texte à la fin


d ’un texte existant déjà dans le TextArea)

9-Menu :

 menu déroulant de base, qui peut être ajoutée à une barre de menus
(MenuBar) ou à un autre menu.

 Les éléments de ces menus sont

 Des MenuItem

Ils sont rajoutés à un menu

En règle générale, ils sont associés à un ActionListener.

 Des CheckBoxMenuItem, ie. des éléments de menus à cocher


ils permettent de proposer des sélections de type "activé / désactivé " dans un menu.

10-PopupMenu:

 Des menus autonomes pouvant s'afficher instantanément sur un autre


composant.

11
 Ces menus doivent être ajoutés à un composant parent (par
exemple un Frame), grâce à la méthode add(...).

 Pour afficher un PopupMenu, il faut utiliser la méthode show(...).

11-Canvas:

 Il définit un espace vide

 Sa taille par défaut est zéro par zéro (Ne pas oublier de la
modifier avec un setSize(...) ) et il n’a pas de couleur.

pour forcer un canvas (ou tout autre composant) à avoir une certaine taille il faut
redéfinir les méthodes getMinimumSize() et getPreferredSize().

 On peut capturer tous les événements dans un Canvas.

 Il peut donc être associé à de nombreux écouteurs : KeyListener,


MouseMotionListener, MouseListener.

 On l’utilise en général pour définir une zone de dessin.

E-Swing:

Fig2: bibliothèque du Swing

Swing est une bibliothèque graphique pour le langage de


programmation Java, faisant partie du package JavaFoundation Classes (JFC),

12
inclus dans J2SE. Swingconstitue l'une des principales évolutions apportées
parJava 2 par rapport aux versions antérieures

 La bibliothèque Swing est une nouvelle bibliothèque de composants


graphiques pour Java.

 Swing est intégré à Java 1.2.

 Swing peut être téléchargé séparément pour une utilisation avec des
versions de Java antérieures (1.1.5+)

 Cette bibliothèque s'ajoute à celle qui était utilisée jusqu'alors (AWT) pour des
raisons de compatibilité.

 Swing fait cependant double emploi dans beaucoup de cas avec AWT.

 L'ambition de Sun est que, progressivement, les développeurs réalisent


toutes leurs interfaces avec Swing et laissent tomber les anciennes API
graphiques.

F-Principaux paquetages Swing (1)


 javax.swing

 Le paquetage général

 javax.swing.border

 pour dessiner des bordures autour des composants

 javax.swing.colorchooser

 classes et interfaces utilisées par le composant JColorChooser

 javax.swing.event

 les événements générés par les composants Swing

 javax.swing.filechooser

 classes et interfaces utilisées par le composant JFileChooser

 javax.swing.table

 classes et interfaces pour gérer les JTable

13
 javax.swing.text

 classes et interfaces pour la gestion des composants « texte »

 javax.swing.tree

 classes et interfaces pour gérer les JTree

 javax.swing.undo

 pour la gestion de undo/redo dans une application

BDD

Swing/AWT My SQL
ff JDBC
Seveur PHP
Application JAVA
Apache

Fig 3: systeme d'un serveur:

G-MySQL:

Définition :

MySQL est un système de gestion de base de données (SGBD).il est


distribue sous une double licence GPL et propriétaire . il fait partie des logiciels de
gestion de base de donnes les plus utilisées au monde ,autant par le grand public
(application web principalement ) que par de professionnels , en concurrence avec
Oracle ,informix et Microsoft QL Server .

Son nom vient du prénom de la fille du co-créateur Micheal


Windenius,My.SQL faire allusion au Strutured Query Language ,le langage de
requête utilisé.
14
MySQL est un serveur de bases de données relationnelles SQL développé
dans un souci de performance elevees en lecture , ce qui signifie qu'il est
davantage oriente vers le service de données déjà en place que vers celui de mise
a jour fréquentes et fortement sécurisées .il estmulti-theard et multiutilisateur.

c'est un logiciel libre développé sous double licence en fonction de


l'utilisation qui on faite :dans un produit libre ou dans un produit propriétaire .Dans
ce dernier cas ,la licence est payante, sinon c'est la licence publique générale GNU (GPL)
qui s applique. ce type de licence double est utilisé par d'autre produits comme le framework de
développement de logiciels Qt (pour les versions antérieures a la 4,5).

MySQL fonctionne sur de nombreux systèmes d'exploitation différents,


incluant AIX, IBMi-5,BSDi,fressBSD ,openBSD,OS/2 Warp,SGI IRIX ,solaris
,SunOS,SCO OpenServer,SCOUnixWare,true64 Unix,Windows.

Les avantages:
 a)rapide

Le serveur MySQL est très rapide, Des tests de performances sont


disponibles sur le site de MySQL.

 b) Facile a utiliser

MySQL est beaucoup plus simple a utiliser que la plupart des serveurs de
bases de données commerciaux.

 c)API diverses

on peut effectuer diverses opérations sur une base MySQL en utilisant des
interfaces ecrits en C ,Perl ,C++,JAVA ,Python ,PHP.

 d)Cout

Jusqu'a la version 3.20.32a, MySQL était sous licence JPL il faut une licence
pour faire tourner MySQL sous Windows .Sous les autres plates formes.
L'utilisation de MySQL est gratuite dans un but non commercial sinon il faudra
acheter une licence pour environ 200$ US.
15
 e)Connexion et sécurité

MySQL dispose d un système de sécurité permettant de gérer les personnes


et les machines pouvant accéder aux différents bases

 f)probabilité

MySQL tourne sur divers systèmes tels que Unix ,Windows ou linux.

 g)Distribution ouverte

Les sources étant fournies, il est possible d'améliorer MySQL.

H-Netbeans64:

NetBeans est un environnement de développement intégré (EDI), placé


en open source par Sun en juin 2000 sous licence CDDL (Common Development
and Distribution License) et GPLv2. En plus de Java, NetBeans permet la prise en
charge native de divers langages tels le C, le C++, le JavaScript, le XML, le
Groovy, le PHP et le HTML, ou d'autres (dont Python et Ruby) par l'ajout
de greffons. Il offre toutes les facilités d'un IDE moderne (éditeur avec coloration
syntaxique, projets multi-langage, refactoring, éditeur graphique d'interfaces et de
pages Web).

Compilé en Java, NetBeans est disponible sous Windows,


Linux, Solaris (sur x86 et SPARC), Mac OS X ou sous uneversion indépendante
des systèmes d'exploitation (requérant une machine virtuelle Java). Un
environnement Java Development Kit JDK est requis pour les développements en
Java.

NetBeans constitue par ailleurs une plateforme qui permet le développement


d'applications spécifiques (bibliothèque Swing (Java)). L'IDE NetBeans s'appuie sur
cette plate forme.

16
Environnement de base
L'environnement de base comprend les fonctions générales suivantes :

 configuration et gestion de l'interface graphique des utilisateurs,

 support de différents langages de programmation,

 traitement du code source (édition, navigation, formatage, inspection),

 fonctions d'import/export depuis et vers d'autres IDE, tels qu'Eclipse ou


JBuilder,

 accès et gestion de bases de données, serveurs Web, ressources


partagées,

 gestion de tâches (à faire, suivi…),

 documentation intégrée.

Principaux langage

L'éditeur intégré propose des fonctions de complètement, de contrôles


syntaxiques et sémantiques, d'avertissements et de conseils, de reprises de code
(« refactoring » : renommage, changement des méthodes, gestion des classes, …),
de sauvegarde et reprise.

Il supporte principalement les langages suivants :

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

 Groovy et Grails ;

 PHP (dont les environnements Zend et Symfony) ;

 JavaScript ;

 C, C++, Fortran. Netbeans ne requiert pas l'utilisation d'un compilateur


particulier. À noter le support des bibliothèques Qt. Les plates formes
supportées sont Microsoft Windows, Linux, Mac OS, Solaris 10 et
OpenSolaris ;

 Python (via un greffon développé par la communauté) ;

17
 HTML, XHTML, RHTML (en) ;

 XML ;

 DTD ;

 CSS ;

 JSP, JSF;

 Ruby (via un greffon depuis la version 7.0 de netBeans) ;

 …

Gestion de projet

Netbeans supporte les principaux systèmes de gestion de


versions : Subversion, Git, Mercurial, ClearCase, CVS. Il intègre par ailleurs des
outils collaboratifs (Projet Kenai Team Server).

Il interagit avec les logiciels de gestion de bugs : Jira, Bugzilla

Bases de donnees.

NetBeans comprend un explorateur de bases de données qui supporte


toutes les bases de données relationnelles pour lesquelles un
connecteur JDBC existe (selon les versions des gestionnaires de bases de
données): JavaDB (Derby) MySQL, PostgreSQL, Oracle, Microsoft SQL
Server, Point Base (en), JTD engine (en), IBM Redistributable DB2, …

L'explorateur comprend un éditeur de requêtes, un gestionnaire intégré de


bases de données MySQL.

18
Fig4: bureau du logiciel netbeans

I-WampServer:

WampServer (anciennement WAMP5) est une plateforme de développement


Web de type WAMP, permettant de faire fonctionner localement (sans avoir à se
connecter à un serveur externe) des scripts PHP. WampServer n'est pas en soi un
logiciel, mais un environnement comprenant trois serveurs
(Apache, MySQL et MariaDB), un interpréteur de script (PHP), ainsi
que phpMyAdmin pour l'administration Web des bases MySQL.

Il dispose d'une interface d'administration permettant de gérer et


d'administrer ses serveurs au travers d'un tray icon (icône près de l'horloge
de Windows).

La grande nouveauté de WampServer 3 réside dans la possibilité d'y installer


et d'utiliser n'importe quelle version de PHP, Apache, MySQL ou MariaDB en un
clic. Ainsi, chaque développeur peut reproduire fidèlement son serveur de
production sur sa machine locale.

19
FIG 5 :Symbole et informations de WampServer:

III-Création de la base de données sous MySQL:


-- phpMyAdmin SQL Dump

-- version 4.8.5

-- https://www.phpmyadmin.net/

--

-- Hôte : 127.0.0.1:3306

-- Généré le : lun. 08 juil. 2019 à 15:38

-- Version du serveur : 5.7.26

-- Version de PHP : 7.2.18

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";

SET AUTOCOMMIT = 0;

START TRANSACTION;

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 */;

--

-- Base de données : `gestion_prof`

--

CREATE DATABASE IF NOT EXISTS `gestion_prof` DEFAULT CHARACTER SET latin1 COLLATE
latin1_swedish_ci;

USE `gestion_prof`;

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

--

-- Structure de la table `professeurs`

--

DROP TABLE IF EXISTS `professeurs`;

CREATE TABLE IF NOT EXISTS `professeurs` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`Nom` varchar(30) NOT NULL,

`Prenom` varchar(30) NOT NULL,

`Grade` varchar(5) NOT NULL,

PRIMARY KEY (`id`)


21
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

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

--

-- Structure de la table `seances`

--

DROP TABLE IF EXISTS `seances`;

CREATE TABLE IF NOT EXISTS `seances` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`nbr_h` int(11) NOT NULL,

`date` varchar(30) NOT NULL,

`id_p` int(11) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

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

--

-- Structure de la table `utilisateurs`

--

DROP TABLE IF EXISTS `utilisateurs`;

CREATE TABLE IF NOT EXISTS `utilisateurs` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`login` varchar(30) NOT NULL,

22
`mdp` varchar(30) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

COMMIT;

/*!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 Modèle conceptuel de donnée :

B-Le Modèle logique de donnée :

23
C-Le Modèle physique de donnée : (mySQL)

IV-l'implémentation de l'application:

A-Class Login.Java:

Fig 6: Affichage login.application de l'écran:

24
Fig 7: Affichage de l'application login.

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

rs = db.querySelectAll("utilisateurs", "login='" + username.getText() + "' and mdp='" +


passwordd.getText() + "'");

try {

while (rs.next()) {

username1 = rs.getString("login");

password1 = rs.getString("mdp");

} catch (SQLException ex) {

Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);

if (username1 == null && password1 == null) {

JOptionPane.showMessageDialog(this, "le nom utilisateur ou le mots de pass est incorrect");

} else {

Welcome w = new Welcome();

w.setVisible(true);

this.dispose();

25
}

A- Commentaire :
Par exemple si on prend la fon se connecter ms abant il faut entrer un nom et
un mot de passe d'utilisateur pour se connecter au site

Au cas où on n'entre pas une information ou il y a un erreur il s'affiche


comme suivant

Fig 8: Erreur affiche.

B- La classe Welocme Java:

Fig 9: Affichage class welcome.


26
/*

* To change this license header, choose License Headers in Project Properties.

* To change this template file, choose Tools | Templates

* and open the template in the editor.

*/

package javaapplication1;

import java.sql.SQLException;

import java.util.logging.Level;

import java.util.logging.Logger;

/**

* @author HP

*/

public class Welcome extends javax.swing.JFrame {

/**

* Creates new form Welcome

*/

public Welcome() {

initComponents();

/**

* This method is called from within the constructor to initialize the form.

27
* WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor.

*/

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jLabel1 = new javax.swing.JLabel();

jButton1 = new javax.swing.JButton();

jButton2 = new javax.swing.JButton();

jButton3 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setFont(new java.awt.Font("Tahoma", 0, 48)); // NOI18N

jLabel1.setForeground(new java.awt.Color(0, 204, 255));

jLabel1.setText("Welcome");

jButton1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N

jButton1.setText("Gestion des professeurs");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt);

});

jButton2.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N

28
jButton2.setText("Gestion des séances");

jButton2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt);

});

jButton3.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N

jButton3.setText("Gestion d'utilisateurs");

jButton3.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton3ActionPerformed(evt);

});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGap(67, 67, 67)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)

.addComponent(jButton1)

.addComponent(jButton2)

.addComponent(jButton3)

.addComponent(jLabel1))

.addContainerGap(86, Short.MAX_VALUE))

29
);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addGap(30, 30, 30)

.addComponent(jLabel1)

.addGap(38, 38, 38)

.addComponent(jButton1)

.addGap(18, 18, 18)

.addComponent(jButton2)

.addGap(18, 18, 18)

.addComponent(jButton3)

.addContainerGap(44, Short.MAX_VALUE))

);

setSize(new java.awt.Dimension(416, 338));

setLocationRelativeTo(null);

}// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

Prof p = new Prof();

p.setVisible(true);

dispose();

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

30
Seance s;

try {

s = new Seance();

s.setVisible(true);

} catch (SQLException ex) {

Logger.getLogger(Welcome.class.getName()).log(Level.SEVERE, null, ex);

dispose();

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

User u = new User();

u.setVisible(true);

dispose();

/**

* @param args the command line arguments

*/

public static void main(String args[]) {

/* Set the Nimbus look and feel */

//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">

/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.

* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

*/

try {

for (javax.swing.UIManager.LookAndFeelInfo info :


javax.swing.UIManager.getInstalledLookAndFeels()) {

if ("Nimbus".equals(info.getName())) {
31
javax.swing.UIManager.setLookAndFeel(info.getClassName());

break;

} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(Welcome.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(Welcome.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(Welcome.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(Welcome.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);

//</editor-fold>

/* Create and display the form */

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Welcome().setVisible(true);

});

32
// Variables declaration - do not modify

private javax.swing.JButton jButton1;

private javax.swing.JButton jButton2;

private javax.swing.JButton jButton3;

private javax.swing.JLabel jLabel1;

// End of variables declaration

Fig 10: affichage de la fenêtre gestion d 'utilisateur.

33
Code Java1:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

if(login.getText().equals("") || mdp.getText().equals(""))

JOptionPane.showMessageDialog(this, "Veuillez remplir tous les champs avant


d'ajouter!");

else

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

String[] ligne = {login.getText(),mdp.getText()};

System.out.println(db.queryInsert("utilisateurs", cols, ligne));

table();

actualiser();

Commentaire :
ce code Java c'est pour la fonction ajouter qui a un role d'ajouter un autre login et
un mot de passe d'autre utilisateurs

Code Java 2:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

String id = String.valueOf(table.getValueAt(table.getSelectedRow(), 0));

if (JOptionPane.showConfirmDialog(this, "est ce que tu es sure que tu veux


suuprimer", "attention!!!", JOptionPane.OK_CANCEL_OPTION) ==
JOptionPane.OK_OPTION) {

db.queryDelete("utilisateurs", "id=" + id);


34
} else {

return;

table();

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

if (login.getText().equals("") || mdp.getText().equals("")) {

JOptionPane.showMessageDialog(this, "SVP entrer les informations


complete");

} else {

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

String[] inf = {login.getText(), mdp.getText()};

String id = String.valueOf(table.getValueAt(table.getSelectedRow(), 0));

System.out.println(db.queryUpdate("utilisateurs", colon, inf, "id='" + id + "'"));

table();

actualiser();

 Commentaire:

Ce code a la fonction de supprimer les comptes d'utilisateurs


ajoutes .

 Code Java 3:
private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

if (login.getText().equals("") || mdp.getText().equals("")) {

35
JOptionPane.showMessageDialog(this, "SVP entrer les informations
complete");

} else {

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

String[] inf = {login.getText(), mdp.getText()};

String id = String.valueOf(table.getValueAt(table.getSelectedRow(), 0));

System.out.println(db.queryUpdate("utilisateurs", colon, inf, "id='" + id + "'"));

table();

actualiser();

 Commentaire:
Ce code a la fonction de modifier les informations entrées pour
que l'utilisateur peut accéder au compte correctement sans erreurs

C-La classe séanceJava:

Fig 11: Affichage de la classe gestion des séances.

36
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

if(nbr_h.getText().equals("") || date1.getText().equals(""))

JOptionPane.showMessageDialog(this, "Veuillez remplir tous les champs avant


d'ajouter!");

else

rs = db.exécutionQuery("select id from professeurs where concat(nom,'


',prenom)='"+professeurs.getSelectedItem().toString()+"'");

System.out.println("select id from professeurs where concat(nom,'


',prenom)='"+professeurs.getSelectedItem().toString()+"'");

/*try {

while(rs.next())

System.out.print("//////////"+rs.getString("id"));

} catch (SQLException ex) {

Logger.getLogger(Seance.class.getName()).log(Level.SEVERE, null, ex);

}*/

//System.out.println();
37
String[] cols = {"nbr_h","date","id_p"};

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

try {

//System.out.println(rs.getString("id"));

String id = "";

while(rs.next())

id = rs.getString("id");

System.out.println("l'identifiant est :"+ id);

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

System.out.println("INSERT INTO seances(nbr_h,date,id_p)


VALUES("+nbr_h.getText()+",'"+date1.getText()+"',"+id+")");

db.exécutionUpdate("INSERT INTO seances(nbr_h,date,id_p)


VALUES("+nbr_h.getText()+",'"+date1.getText()+"',"+id+")");

} catch (SQLException ex) {

Logger.getLogger(Seance.class.getName()).log(Level.SEVERE, null, ex);

table();

actualiser();

 Commentaire :

Si on veut ajouter une séance il faut entrer son non son grade et la
date et les nombre d'heures enseignes

38
Fig 12: affichage un message de suppression.

 Commentaire:

Si on veut par exemple supprimer un professeur, ses séances et la


date d'enseignement se supprime automatiquement après l'affichage de
ce message

D-Classe professeurs:

Fig 13: affichage de la classe gestion des professeurs.


39
// TODO add your handling code here:

if(nom_txt.getText().equals("") || prenom_txt.getText().equals(""))

JOptionPane.showMessageDialog(this, "Veuillez remplir tous les champs avant


d'ajouter!");

else

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

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

System.out.println(db.queryInsert("professeurs", cols, ligne));

table();

actualiser();

 Commentaire:

Si on veut ajouter un professeur il faut entrer son nom et son


prénom et son grade pour qu'on puisse l'ajouter à la liste
40
Conclusion

Enfin, ce que nous avons bien appris au cours de


réalisation de ce muni projet c'est le travail d'équipe et ce
qui concerne le partage des idées convenables a des
situations différentes,
comment juger et argumenter nos idées .Egalement si
nous avons fait une comparaison avec le but propose au
début de notre rapport on va déduire que notre application a
réalisé la partie principale qui est la génération automatique
d'un fichier EXEL << l'état somme dues>> sans réaliser le
deuxième étape qui est la génération d'un <<OP>> sous
forme d'un fichier Word à cause de l'insuffisance du temps
mais ça n'empêche pas de la compléter ,en plus de ca de
développer et augmenter sa vitesse c’est à dire une
optimisation du code et du mémoire.

41

Vous aimerez peut-être aussi