Vous êtes sur la page 1sur 20

D41.

2 DEVELOPPEMENT
CORRIGE JUIN 2010

Premire partie : QCM


1. La fonction "simplexml_load_file" permet de :
a.
b.
c.
d.

parser un document XML dans une structure PHP


ouvrir et charger un document XML
charger en mmoire un fichier XML
ouvrir un fichier xml

2. XPath :
a.
b.
c.
d.

3.

est un langage non XML pour localiser une portion d'un document XML
est un langage XML pour localiser une portion d'un document XML
est une variable contenant le chemin d'un document XML
est une fonction pour localiser un document XML

En PHP-XML, le parseur fait appel des handlers :


a.
b.
c.
d.

pour chaque dbut de balise


pour chaque fin de balise
pour chaque dbut ou fin de balise
pour chaque balise

4. Un flux RSS :
a.
b.
c.
d.

5.

est constitu d'un canal et d'un ou plusieurs items, correspondant des articles
est constitu juste d'un seul canal
est constitu d'un seul item, correspondant un seul article
est constitu de plusieurs canaux et d'un ou plusieurs items, correspondant des articles

En langage PHP, l'appel du constructeur de la classe mre partir de la classe drive se fait :
a.
b.
c.
d.

super:: construct()
super::__construct()
parent:: construct()
parent::__construct()

6. Les attributs d'une classe abstraite :


a.
b.
c.
d.

doivent tre private ou protected


doivent tre null
ne peuvent tre modifis que par les mthodes des classes drives
peuvent tre "static" ou "public"

7. Laquelle de ces fonctions extraie le channel et appelle RSS_Channel ?


a.
b.
c.
d.

RSS_Retrieve
RSS_Channel
RSS_RetrieveLink
RSS_Tags

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

8. Le troisime paramtre de RSS_Display(url, nombre, true) permet en option d'afficher ou


non :
a.
b.
c.
d.

le nom du serveur du site


le titre du site
la description du site
le titre et la description du site

9. Utiliser PHP pour afficher un flux RSS :


a.
b.
c.
d.

est un avantage car celui-ci sera visible par les moteurs de recherche
est un inconvnient car celui-ci sera visible par les moteurs de recherche
est un avantage car celui-ci ne sera pas visible par les moteurs de recherche
est un inconvnient car celui-ci ne sera pas visible par les moteurs de recherche

10. Le processeur XSLT est cr :


a.
b.
c.
d.

partir d'une instanciation de la classe XSLTProcessor;


partir de la commande XSLTProcessor create
partir de la commande XSLT_ create
partir de la fonction XSLT()

11. Quel est le rsultat de <? $str1 = "Fdration europenne des Ecoles" ; print_r(explode("
", $str1, 2) ?> ?
a.
b.
c.
d.

Array ( [1] =>Fdration] [2] => europenne des Ecoles)


Array ( [0] => Fdration [1] => europenne des Ecoles)
Array ([1] =>Fdration] [2] => europenne [3] => des [4] => Ecoles)
Array ([0] =>Fdration] [1] => europenne [2] => des [3] => Ecoles)

12. En langage PHP, laquelle des assertions suivantes est vraie ?


a.
b.
c.
d.

une classe abstraite est introduite par : abstracted class


une classe qui a toutes ses mthodes abstraites doit tre dclare comme interface
il est strictement interdit d'instancier une classe abstraite
une classe abstraite doit tre implmente

13. Lappel systme fork() permet de :


a.
b.
c.
d.

crer un processus par duplication du mme fichier


crer un processus partir d'une structure gnrale de processus du noyau
crer un processus par recopie d'un autre
crer un processus nouveau

14. Comment sait-on que le parent d'un processus est mort ?


a.
b.
c.
d.

getppid() retourne 0
getppid() retourne -1
getppid() retourne 1
getpid() retourne -1

15. Dans bind(int sock, struct sockaddr * adresse, socklen_t longueur), quelle proposition est
vraie ?
a.
b.
c.
d.

longueur est la taille du pointeur


sockaddr est le descripteur de la socket
sock est un integer qui identifie la socket
struct sockaddr est passe par pointeur et ne sert qu'aux sockets TCP

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

2/20

16. Que fait la fonction accept() ?


a.
b.
c.
d.

elle accepte un client qui vient d'en faire la demande


elle accepte un client qui vient de se connecter et cre une socket pour communiquer avec ce client
elle rcupre seulement les informations du client (adresse IP,)
elle accepte le message arrivant et le stocke dans la structure passe en argument

17. Pour raliser une communication non temporaire bidirectionnelle inter processus, il est
conseill dutiliser :
a.
b.
c.
d.

un tube nomm
un seul tube anonyme
deux tubes anonymes indpendants
deux tubes nomms indpendants

18. La cration des descripteurs peut tre ralise par :


a.
b.
c.
d.

fork()
fop
write
pipe()

19. A quoi sert l'appel bind() ?


a.
b.
c.
d.

il permet d'identifier/reconnatre extrieurement la socket cre prcdemment dans le code


il fait un appel de rsolution DNS sur le rseau
bind() n'intervient pas sur les sockets
il ouvre la socket un processus condition qu'elle est t cre par l'appel socket()

20. L'ordre CREATE SESSION permet de :


a.
b.
c.
d.

se connecter une base


crer une session
crer une base
interroger le dictionnaire des donnes

21. L'ordre ROLLBACK permet de :


a.
b.
c.
d.

valider une transaction


insrer des donnes
supprimer des donnes
annuler une transaction

22. L'option WITH GRANT OPTION permet de :


a.
b.
c.
d.

transmettre des privilges reus


modifier la taille de la base
augmenter la taille de la base
ajouter des privilges un utilisateur

23. Un ROLE permet de :


a.
b.
c.
d.

regrouper des utilisateurs


regrouper des privilges
faire du cinma
aucune des trois rponses prcdentes

24. Sous un SGBD, si on dsire dvelopper avec de la programmation vnementielle, on utilisera


:
a. une vue
b. un trigger
c. Visual Basic
Fdration Europenne Des Ecoles European Federation of Schools Juin 2010
QCM UC D41.2 MASTER Europen dInformatique Corrig

3/20

d. un index

25. Une validation de transaction est effectue par :


a.
b.
c.
d.

un ordre accept
un ordre rollback
un ordre commit
un ordre validate

26. Un index permet d'amliorer les temps de rponse :


a.
b.
c.
d.

des requtes simples


des requtes avec jointure
des requtes de slection
des requtes

27. Quel contrle de transaction interdit deux utilisateurs de mettre jour les donnes en mme
temps ?
a.
b.
c.
d.

COMMIT
ROLLBACK
SAVEPOINT
LOCK

28. Comment sappelle la mmoire partage par les processus Oracle ?


a.
b.
c.
d.

la PGA
la SGA
la BUFPOOL
la MGA

29. Mettez dans l'ordre, suivant la rgle contient ou gre :


a.
b.
c.
d.

Instance - Tablespace - Database - Table - Rows


Instance - Database - Tablespace - Table - Rows
Instance - Database - Table - Tablespace - Rows
Database - Instance - Tablespace - Table Rows

30. Une instance Oracle, cest :


a.
b.
c.
d.

les processus et les zones mmoires utiles au fonctionnement dune base de donnes
lensemble des fichiers utiles au fonctionnement dune base de donnes Oracle
la phase d'installation du logiciel Oracle
une base de donnes qui ne veut plus dmarrer

31. A propos dun tablespace, indiquez quelle proposition est vraie :


a.
b.
c.
d.

un tablespace ne peut pas contenir plus d'une table


un tablespace contient soit des tables, soit des index
un tablespace peut en mme temps contenir des tables et des index
un tablespace a une taille fixe et ne peut pas tre agrandi

32. En tant que simple utilisateur, quelles sont les tables du catalogue que je ne peux pas consulter
?
a.
b.
c.
d.

user_tables
v$datafile
all_tables
cat

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

4/20

33. Dans la phase de conception dune base de donnes relationnelle, au niveau conceptuel, on ne
doit pas :
a.
b.
c.
d.

dgager les entits et leur identifiant


dgager les relations et leur identifiant
dterminer les cardinalit des relations
attacher les proprits aux relations et aux objets

34. La "normalisation" dun modle de donnes permet de :


a.
b.
c.
d.

vrifier que le modle est normalis ISO


vrifier que le modle respecte les normes de lentreprise
minimiser la redondance de linformation et assurer la cohrence de la base
sassurer que le modle sera assez normalis pour pouvoir tre valid par les utilisateurs

35. Pour nafficher que les villes dont le rsultat du count(*) est suprieur 10.000 dans
linstruction suivante
en SQL SELECT ville, count(*) FROM table_ville GROUP BY ville, on doit ajouter :
a.
b.
c.
d.

la clause where count(id_ville)>10000


la clause HAVING count(*)>10.000 aprs de GROUP BY
la clause WHERE count(*)>10.000 aprs le GROUP BY
la clause count(*)>10.000 aprs le WHERE

36. Lors de l'utilisation des servlets JSP :


a.
b.
c.
d.

il peut y avoir plusieurs directives page dans une JSP


il ne peut y avoir quune seule directive page dans une JSP
il ne peut pas y avoir de directive page dans une JSP
la directive page nexiste pas en JSP

37. Combien dinstances de la classe A cre le code suivant ?


A x, u, v;
x=new A();
A y=x;
A z=new A();
a.
b.
c.
d.

une
deux
trois
aucune

38. En Java, quelle assertion est vraie?


a.
b.
c.
d.

une classe peut implmenter plusieurs interfaces, mais doit tendre une seule classe
une classe peut implmenter plusieurs classes, mais doit tendre une seule interface
une classe peut implmenter plusieurs classes et peut tendre plusieurs interfaces
une classe doit implmenter une seule interface et tendre une seule classe

39. La liaison tardive est essentielle pour assurer :


a.
b.
c.
d.

lencapsulation
le polymorphisme
lhritage
la marginalisation

40. UML est :


a.
b.
c.
d.

un langage Objet
un langage orient Objet
un langage de modlisation oriente Objet
une mthode pour la programmation oriente Objet

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

5/20

41. OCL est :


a.
b.
c.
d.

un langage Objet
un langage orient Objet
un langage de contrainte.
une mthode pour la programmation oriente Objet

42. RUP est :


a.
b.
c.
d.

un langage Objet
un langage orient Objet
un langage de contrainte.
une mthode pour la programmation oriente Objet

43. En utilisant UML, quelle sont les possibilits pour des paramtres dopration ?
a.
b.
c.
d.

in
out
in, out
in, out, in/out

44. Un attribut statique est :


a.
b.
c.
d.

un attribut qui nest pas hrit par les classes filles


un attribut constant
un attribut normal
un attribut pass par rfrence

45. Une interface est :


a.
b.
c.
d.

une classe abstraite


une classe abstraite qui interagit avec lutilisateur
une classe dont toutes les mthodes sont abstraites
une classe imaginaire

46. Une agrgation est :


a.
b.
c.
d.

un ensemble dattributs
une composition faible
une composition forte
un ensemble de classes

47. Le symbole ~ reprsente (UML)


a.
b.
c.
d.

un lment non visible


un lment visible par tous
un lment visible seulement par les sous-classes
un lment visible seulement par les classes du mme paquetage

48. MDA signifie :


a.
b.
c.
d.

que larchitecture est guide par les modles


que larchitecture est guide par le code
que larchitecture est dcompose en blocs
que larchitecture est dcompose en paquetages

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

6/20

49. En UML, quelle cardinalit nexiste pas ?


a.
b.
c.
d.

0..1
1
N..1
M..N

50. Une relation "extends" pour les use case signifie :


a.
b.
c.
d.

peut tre complt par


doit tre complt par
nest pas complt par
est complt par

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

7/20

Deuxime partie : Exercices

Dossier 1 - UML 2

Modlisation dun suivi de commande et de fret de marchandises

Question 1
Ralisez le diagramme de classe.
1 point par classe
3 points pour les multiplicits

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

8/20

Dossier 1 - UML 2

Modlisation dun logiciel

Question 2
Proposez un diagramme de cas dutilisation correspondant aux besoins dcrits ci-dessus.

Question 3
Proposez un diagramme de squence correspondant lajout dune fiche produit.

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

9/20

Dossier 2 - ORACLE et PL/SQL

Question 1
Ralisez une fonction en langage pl/sql nomme Qtable(PC$Table, PC$ClauseWhere )
- dynamique et totalement gnrique qui permet dinterroger nimporte quelle table
(paramtre PC$Table),
- avec une clause where passe elle aussi en paramtre (PC$ClauseWhere),
- qui renvoie un integer LN$Total donnant le nombre doccurrences correspondantes a cette
clause.
Donnez un exemple dutilisation.
FUNCTION Qtable
(
PC$Table IN VARCHAR2,
PC$ClauseWhere IN VARCHAR2
) RETURN PLS_INTEGER
IS
LC$Requete
VARCHAR2(512) ;
LN$Total
PLS_INTEGER ;
BEGIN
LC$Requete := Select count(*) From || PC$Table || where || PC$ClauseWhere ;
EXECUTE IMMEDIATE LC$Requete INTO LN$Total ;
return LN$Total ;
END ;

NombreDept := Qtable( Departement, deptno between 1 and 13 ) ;

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

10/20

Question 2
Soit la Procdure NDS ci-dessous, rcrivez-la en utilisant le package DBMS_SQL
CREATE PROCEDURE insert_into_table (
table_name VARCHAR2,
deptnumber NUMBER,
deptname VARCHAR2,
location VARCHAR2) IS
stmt_str VARCHAR2(200);
BEGIN
stmt_str := 'INSERT INTO ' ||
table_name || ' values
(:deptno, :dname, :loc)';
EXECUTE IMMEDIATE stmt_str
USING
deptnumber, deptname, location;
END;)
CREATE PROCEDURE insert_into_table (
table_name VARCHAR2,
deptnumber NUMBER,
deptname VARCHAR2,
location VARCHAR2) IS
cur_hdl
INTEGER;
stmt_str
VARCHAR2(200);
rows_processed BINARY_INTEGER;
BEGIN
stmt_str := 'INSERT INTO ' ||
table_name || ' VALUES
(:deptno, :dname, :loc)';
-- open cursor
cur_hdl := dbms_sql.open_cursor;
-- parse cursor
dbms_sql.parse(cur_hdl, stmt_str,
dbms_sql.native);
-- supply binds
dbms_sql.bind_variable
(cur_hdl, ':deptno', deptnumber);
dbms_sql.bind_variable
(cur_hdl, ':dname', deptname);
dbms_sql.bind_variable
(cur_hdl, ':loc', location);
-- execute cursor
rows_processed :=
dbms_sql.execute(cur_hdl);
-- close cursor
dbms_sql.close_cursor(cur_hdl);
Fdration Europenne Des Ecoles European Federation of Schools Juin 2010
QCM UC D41.2 MASTER Europen dInformatique Corrig

11/20

END;

Question 3
Donnez les avantages et inconvnients du NDS par rapport au package DBMS_SQL.
NDS :
- Plus grande rapidit dexcution. En moyenne, le SQL dynamique natif sexcute de 1.5 3 fois plus
rapidement.
- Support des types dfinis, le SQL dynamique natif supporte tous les types dfinis par lutilisateur, Objets,
collections, etc
- Support des types RECORD pour les ordres Select.
- Le SQL dynamique natif permet dutiliser un objet de type RECORD dans une clause INTO.
Package DBMS_SQL :
- Support par le client, les fonctions du package DBMS_SQL sont supportes par les applications clientes
linverse du SQL dynamique natif.
- Supporte la procdure DESCRIBE_COLUMNS qui permet de connaitre les informations relatives aux
colonnes dun curseur ouvert au travers de DBMS_SQL.
- Support de la clause RETURNING pour les oprations UPDATE et DELETE.
D
BMS_SQL supporte la clause RETURNING pour des oprations UPDATE ou DELETE effectues sur
plusieurs lignes. Le SQL dynamique natif ne supporte une clause RETURNING que sur les oprations ne
retournant quune seule ligne

Question 4
Dfinissez OFA , son objectif et ses avantages.
Oracle Optimal Flexible Architecture, que l'on pourrait traduire par meilleure architecture volutive, est un
ensemble de convention de nommage et de rpartition de fichiers sur les diffrents disques dur du serveur. On
peut aussi dfinir OFA comme un ensemble de bonnes habitudes prendre pour la cration d'une base. Bien
qu'OFA ne soit pas indispensable la cration d'une base, Oracle recommande son utilisation si vous prvoyez
une augmentation du nombre d'utilisateurs ou encore si vous souhaitez mettre en place d'autres bases de donnes
dans votre environnement.
Son objectif est de prvenir tout un ensemble de problmes qui pourraient survenir si vous utilisiez plusieurs
versions d'Oracle, plusieurs bases de donnes, ou des bases de donnes fort taux d'utilisation.
La norme OFA a t ralise afin d'offrir des avantages non ngligeables, notamment dans les cas suivants :
- Facilit de maintenance des bases de donnes travers une organisation de fichiers standardise.
- Fiabilit grce des donnes rparties sur plusieurs disques.
- Performance accrue par des rductions de conflits d'entre/sortie sur les disques.
Oracle Universal Installer spare les fichiers excutables des fichiers de base de donnes. Cette
opration prend tout son sens lorsque vous souhaitez mettre jour votre version d'Oracle
Ses avantages sont :
- indpendance des sous-rpertoires,
- les oprations sur un fichier d'une certaine catgorie ne sont pas rpercutes sur un fichier d'une autre
catgorie,
- convention de nommage pour les fichiers de donnes, on peut ainsi identifier les fichiers plus facilement,
- sparation des diffrents types de tablespace pour obtenir les avantages d'I/O, mais aussi rduire la
fragmentation.

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

12/20

Question 5
Vous disposez dun serveur de base de donnes avec 4 disques durs, reprsentez, sur un schma,
larchitecture logicielle recommande pour respecter les points dfinis ci-dessus (question 4).

Question 6
Le schma ci-dessous reprsente un architecture web 3 tiers utilisant ORACLE comme base de
donnes, indiquez sur ce schma les vulnrabilits dun tel systme.

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

13/20

Dossier 3 - JAVA et IHM

Question 1
Larchitecture des tches est donne en figure 1 o le dtail des classes TacheElementaire et TacheComplexe
nest pas donn. Une tche est caractrise par un nom et un cot. Une tche est soit une tche lmentaire, soit
une tche complexe qui est alors compose de sous-tches. Il est ainsi possible dajouter une sous-tche une
tche complexe, ajouter(Tache) ou de supprimer une sous-tche, supprimer(Tache). Le cot dune tche
complexe est la somme des cots des tches qui la composent.

Indiquez le ou les patrons de conception utiliss dans cette architecture.


7.5 points
La tche complexe est le composite, Tache est le composant et TacheElementaire est la feuille.
Notons que les objets ajouter et supprimer ne sont ici que sur le composite et pas sur le composant.

Le listing 1 donne le code de linterface Tache. crivez en Java la classe Tache Elementaire qui est
une ralisation de linterface Tache :
Tache {
String getNom();
int getCout();
}
7.5 points

Rponse :
public class TacheElementaire implements Tache {
private String nom;
private int cout;
public TacheElementaire(String nom, int cout) {
this.nom = nom;
this.cout = cout;}
public String getNom() { return this.nom; }
public int getCout() { return this.cout; }
}

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

14/20

Question 2
Nous nous intressons maintenant la classe TacheComplexe, en particulier sa relation avec linterface Tache.
Une tche complexe est compose dun nombre quelconque de tches. On dcide dutiliser linterface
java.util.Collection pour stocker les sous-tches. On lutilisera bien entendu, dans sa version gnrique.
Comme on souhaite pouvoir parcourir toutes les sous-tches dune tche complexe, la Classe TacheComplexe
ralise linterface java.lang.Iterable.

Indiquez quel est le principal intrt de la gnricit.


6 points
Le contrle de type ralis par le compilateur.

Indiquez quel est le cot de la tche tA construite comme indiqu dans le listing suivant :
public class TestTache1 {
public static void main(String[] args) {
TacheComplexe tA = new TacheComplexe("A");
tA.ajouter(new TacheElementaire("A1", 10));
tA.ajouter(new TacheElementaire("A2", 20));
System.out.println("Cout de tA = " + tA.getCout());
}}
6 points
Le cot de la tche tA est de 30.

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

15/20

crivez en Java la classe TacheComplexe.


6 points
Interface graphique pour dfinir une tche complexe
Nous dfinissons maintenant une interface graphique en Swing minimale qui permet dajouter de nouvelles soustches une tche complexe. Le code partiel de cette classe est donn au listing 3.
import java.util.Collection;
import java.util.ArrayList;
import java.util.Iterator;

public class TacheComplexe implements Tache, Iterable<Tache> {


private Collection<Tache> sousTaches;
private String nom;

public TacheComplexe(String nom) {

this.nom = nom;
this.sousTaches = new ArrayList<Tache>();
}
public void ajouter(Tache tache) {
this.sousTaches.add(tache);
}
public void supprimer(Tache tache) {
this.sousTaches.remove(tache);
}

public String getNom() {


return this.nom;
}

public int getCout() {


int result = 0;
for (Tache t : sousTaches) {
result += t.getCout();
}
return result;}

public Iterator<Tache> iterator() {


Fdration Europenne Des Ecoles European Federation of Schools Juin 2010
QCM UC D41.2 MASTER Europen dInformatique Corrig

16/20

return this.sousTaches.iterator();
}
}

Dessinez la fentre (et les composants graphiques quelle contient) telle quelle est affiche quand
cette classe est excute.
6 points

Compltez cette classe pour que les boutons Ajouter et Quitter deviennent actifs.
Le bouton Quitter ferme la fentre.
Le bouton Ajouter ajoute une nouvelle sous-tche la tche complexe passe en paramtre du constructeur de
cette classe.
Le nom et le cot de cette sous tche sont, bien entendu, saisis par lutilisateur dans les zones de saisie prvues,
valeurNom et valeurCout.
Dans le cas o lutilisateur saisit une information qui nest pas un entier pour saisir le cot, on signalera lerreur
en mettant la couleur de fond de la zone de saisie correspondante en rouge (setBackground(Color.RED)).
On rappelle que la mthode Integer.parseInt(String) renvoie lentier correspondant la chane de caractre
pass en paramtre. Cette mthode lve lexception NumberFormatException si la chane ne correspond pas un
entier.
10 points
Listing 3 La classe TacheComplexeSwing
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TacheComplexeSwing {
private TacheComplexe tache;
final JFrame fenetre = new JFrame("Nouvelle tche");
final private JTextField valeurNom = new JTextField(10);
final private JTextField valeurCout = new JTextField(10);
final private JButton boutonAjouter = new JButton("Ajouter");
final private JButton boutonQuitter = new JButton("Quitter");
public TacheComplexeSwing(TacheComplexe tache) {
this.tache = tache;

Container c = fenetre.getContentPane();
c.setLayout(new BorderLayout());

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

17/20

JPanel informations = new JPanel(new GridLayout(2,2));


informations.add(new JLabel("Nom : ", SwingConstants.RIGHT));
informations.add(valeurNom);
informations.add(new JLabel("Cot : ", SwingConstants.RIGHT));
informations.add(valeurCout);
c.add(informations, BorderLayout.CENTER);

JPanel boutons = new JPanel(new FlowLayout());


boutons.add(boutonAjouter);
boutons.add(boutonQuitter);
c.add(boutons, BorderLayout.SOUTH);
boutonQuitter.addActionListener(new ActionQuitter());
boutonAjouter.addActionListener(new ActionAjouter());
fenetre.pack();
fenetre.setVisible(true);}}
private class ActionAjouter implements ActionListener {
public void actionPerformed(ActionEvent ev) {
try {
String nom = valeurNom.getText();
int cout = Integer.parseInt(valeurCout.getText());
tache.ajouter(new TacheElementaire(nom, cout));
System.out.println("cout total = " + tache.getCout());
} catch (NumberFormatException e) {
valeurCout.setBackground(Color.RED);
}
}
}
private class ActionQuitter implements ActionListener {
public void actionPerformed(ActionEvent ev) {
System.out.println("Appui sur Quitter...");
fenetre.dispose(); }
}
public static void main(String[] args) {
new TacheComplexeSwing(new TacheComplexe("Test TacheComplexeSwing")); }
}

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

18/20

Sauvegarde dune tche en XML


Soit la DTD pour reprsenter une tche :
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!ELEMENT taches (tache*)>
4 <!ELEMENT tache (attribut*, tache*)>
5 <!ELEMENT attribut EMPTY>
6 <!ATTLIST attribut
7 nom CDATA #REQUIRED
8 valeur CDATA #REQUIRED>

Donnez le contenu du fichier XML qui correspond la tche tA.


6 points
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taches SYSTEM "taches.dtd">
<taches>
<tache>
<attribut nom="nom" valeur="A" />
<attribut nom="cout" valeur="30" />
<tache>
<attribut nom="nom" valeur="A1" />
<attribut nom="cout" valeur="10" />
</tache>
<tache>
<attribut nom="nom" valeur="A2" />
<attribut nom="cout" valeur="20" />
</tache>
</tache>
</taches>

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

19/20

Grille de notation
Exercices
NOM__________________________________
Prnom___________________________________
N____________
Dossier 1 - UML 2
Question 1
Question 2
Question 3

30 points

Dossier 2 - ORACLE et PL/SQL


Question 1
Question 2
Question 3
Question 4
Question 5
Question 6

55 points

Dossier 3 - JAVA et IHM


Question 1
Question 2

55 points

Orthographe et prsenation
TOTAL

/10
/10
/10

/6
/12
/7
/12
/6
/12

/15
/40
/10
/150

Apprciation gnrale :

Fdration Europenne Des Ecoles European Federation of Schools Juin 2010


QCM UC D41.2 MASTER Europen dInformatique Corrig

20/20

Vous aimerez peut-être aussi