TP2&3

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

ISSAT Mateur TP2&TP3 : Application avec base de donnée 2019 / 2021

TP2&TP3 : Application avec base de données


OBJECTIFS :
Manipulation des composants de base du langage JAVA afin de crée une
application de gestion de calcul de score d’un candidat connecté à une base de
données Postgres.

Application : Calcul de score


On veut calculer le score d’un candidat dans un concours en fonction de certains critères et
épreuves.
Les règles de gestion :
Langue (note /20) et Technique (note/20)
7 pour l’homme et 5 pour la femme.
Bonus : Expérience : 15, Motivation : 10 et 5 pour autres
diplômes.
Age : 20 pour 20-30, 10 pour 30-4à et 5 pour 40 et
plus.

1 Rabâa HANCHI
ISSAT Mateur TP2&TP3 : Application avec base de donnée 2019 / 2021

2 Rabâa HANCHI
ISSAT Mateur TP2&TP3 : Application avec base de donnée 2019 / 2021

Contrôle Name Autres propriétés


textField_cin
textField_tel
textField_nom
textField_prenom
JTextField textField_langue Text: 0
textField_technique Text: 0
textField_chance enabled: true
editable: false
Text: 0
textField_score enabled: true
editable: false
Text: 0
JLabel LblNom, LblPrenom , …
JRadioButton rdbtnNewRadioButton_mas,
rdbtnNewRadioButton_fem
JCheckBox chckbxNewCheckBox_exper,
chckbxNewCheckBox_motiv,
chckbxNewCheckBox_Diplom
JComboBox CmbAge Items (20-30 ; 30-40 ; 40 et
Plus
JButton btnNewButton_generer,
btnNewButton_initialiser,
btnNewButton_Quitter,
btnNewButton_calculer,
btnNewButton_chargement,
btnNewButton_modification,
btnNewButton_supprimer
btnNewButton_Ajouter, Enabled: false
JPanel panel_information, panel_notes,
panel_sexe, panel_bonus
JTable table_students Surround with:
javax.swing.JscrollPane

Remarque :
‒ Pour le JComboBox, les choix doivent être mis dans la propriété Items (20-30 ; 30-
40 ; 40 et plus).
‒ Les JTextField textField_chance et textField_score ne doivent pas être saisis par
l’utilisateur. Il faut mettre donc leur propriété enabled à True et editable à false.
‒ TXTcin ne peut pas contenir plus que 8 caractères. Il faut donc programmer un
évènement KeyPress et pour s’assurer que TXTcin contiennent des caractères de type
chiffres et accepte que 8 chiffres.
‒ Les TextBox TxtLang et TxtTech ne doivent accepter que des chiffres. Il faut
donc programmer leur évènement KeyPress et pour s’assurer que ces TextBox
contiennent une note entre 0 et 20.
‒ Un ChekBox ou RadioButton est coché si sa propriété Checked est égale à True,
sinon il n’est pas coché.

3 Rabâa HANCHI
ISSAT Mateur TP2&TP3 : Application avec base de donnée 2019 / 2021

‒ La propriété SelectedIndex d’un ComboBox indique l’indice de l’élément


sélectionné, le premier est d’indice 0. CMBage.SelectedIndex=-1 si aucun élément
n’est sélectionné.
‒ Pour ajouter un élément dans un Tableau table_students, il faut utiliser une base de
donnée MySQL.

Les classes en Java :

1. Un candidat est caractérisé par un identifiant, son numéro de carte d’identité, son nom,
son prénom et par son score. Chaque candidat peut connaître son id, numéro de carte
d’identité (cin), son nom, son prénom, son score finale.
• Définir la classe StudentClass
2. Reprendre la définition de la StudentClass en ajoutant :
• un constructeur recevant en arguments les coordonnées d'un candidat.
• une méthode getId() retournant la valeur actuelle de l'identifiant d'un
candidat.
• une méthode getCin() retournant la valeur actuelle de CIN d'un candidat.
• une méthode getName() retournant la valeur actuelle de Nom d'un candidat.
• une méthode getSurname() retournant la valeur actuelle de Prénom d'un
candidat.
• une méthode getScore() retournant la valeur actuelle de Score d'un candidat.

Indication sur le code:

• Timer :

Date dNow = new Date();


SimpleDateFormat ft = new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a
zzz");
lblNewLabel_date.setText("Current Date: " + ft.format(dNow));

• L'évènement KeyPressed pour les quatres TextField :


textField_cin, textField_tel, textField_langue, textField_technique

Border border_txt = BorderFactory.createLineBorder(Color.cyan);


textField_cin.setBorder(border_txt);
char c = arg0.getKeyChar();
if (!((c >= '0') && (c <= '9') || (c == KeyEvent.VK_BACK_SPACE)))
{
JOptionPane.showMessageDialog(null, "Verifier !! votre cin
invalide", "Ereur", JOptionPane.WARNING_MESSAGE);
}

if(textField_cin.getText().length() > 8)
{ JOptionPane.showMessageDialog(null, "Verifier !! le champ dépasse le
8 chiffres, \n"+ textField_cin.getText().length(), "Ereur",
JOptionPane.WARNING_MESSAGE);
}

4 Rabâa HANCHI
ISSAT Mateur TP2&TP3 : Application avec base de donnée 2019 / 2021

• Le bouton btnNewButton_generer:

int x;
Random alea=new Random();
int i = alea.nextInt(100);// génère et affiche un entier pseudo-aléatoire entre 0
et 99.
textField_chance.setText(Integer.toString(i));

• Le bouton BtnInitialiser:
textField_cin.setText(null);

rdbtnNewRadioButton_fem.setSelected(false);

chckbxNewCheckBox_motiv.setSelected(false);

comboBox_age.setSelectedIndex(0);

btnNewButton_Ajouter.setEnabled(false);

• Le bouton BtnCalculer:
int note= 0; int sexe=0; int bonus=0; int age=0; int chance=0; int score=0;
if((textField_cin.getText()==null)||…{

JOptionPane.showMessageDialog(null, "Verifier !! des champs vide", "Ereur",


JOptionPane.WARNING_MESSAGE);
}
else {
note= … ;
if(rdbtnNewRadioButton_fem.isSelected()==true) { sexe=5;
}else { sexe=7; }

if(chckbxNewCheckBox_motiv.isSelected()==true) {bonus+=10; }
if(chckbxNewCheckBox_exper.isSelected()==true) {bonus+=15; }
if(chckbxNewCheckBox_Diplom.isSelected()==true) {bonus+=5; }

switch(comboBox_age.getSelectedIndex())
{ case 0: age=20; break;

default: age=0; break;
}

score=note+sexe+bonus+age+chance;
btnNewButton_Ajouter.setEnabled(true);
}

5 Rabâa HANCHI
ISSAT Mateur TP2&TP3 : Application avec base de donnée 2019 / 2021

• Le bouton BtnAjout:
Créer une boite de dialogue simple qui affiche les coordonnées d’un candidat comme suit :

• Le bouton BtnQuitter:
int input = JOptionPane.showConfirmDialog(null,"Voulez-vous quitter ",
"Confirmation", JOptionPane.YES_NO_OPTION);
if(input==0) {System.exit(0);}

6 Rabâa HANCHI

Vous aimerez peut-être aussi