Académique Documents
Professionnel Documents
Culture Documents
CORRECTION
Remarque : Ce document ne prsente que des lments de correction. Les variantes possibles sont
nombreuses.
Conn.
Gestion Gestion de
commerciale stock
Le progiciel de gestion de stock enregistre ses informations dans une base de donnes
PostgreSQL. Une des tables dcrit les niveaux de stocks pour chaque composant :
PComposant
nocomp nom quantite_reel quantite_virtuel
Un langage de script, comme par exemple PHP, est un choix commun pour ce genre de connecteurs.
Lavantage est un temps de dveloppement relativement court. De plus, PHP permet de lire de
fichiers Excel (avec la bibliothque PHPExcel) et de se connecter des bases de donnes Oracle et
PostgreSQL (avec PDO).
Tout dabord, ouvrir le fichier Excel, issu de la gestion commerciale, correspondant au numro de
commande (nocomm) pour en extraire la liste des numros de produit et leur quantit. Ensuite, se
connecter la base de donnes Oracle de la gestion des donnes techniques afin de constituer la liste
et quantit des composants ncessaires pour les produits. Enfin, se connecter la base de donnes
PostgreSQL de la gestion de stocks pour diminuer le stock virtuel du nombre de composants qui
seront utiliss pour les produits commands.
3) Dcrivez quelles instructions de code (les fonctions, les requtes, les tests, les calculs ) seraient
effectuer pour chaque tape. Attention, il est demand de dcrire brivement le code du
connecteur, mais non pas dcrire le code complet du connecteur.
R1
R2
(X, Y, Z) H (I, J, K)
Voici un exemple dune ligne dcrivant un tel cne tronqu dans un fichier IGES :
158,8.1D0,1.7D1,8.5D0,0D0,0D0,0D0,0D0,1D0,0D0; 98P 56
Lobjectif est dcrire un connecteur qui puisse trouver dans un fichier IGES tous les troncs de cne
et en extraire les caractristiques (H, R1, R2) afin de pouvoir les fournir Mupad. Par exemple,
Mupad pourra alors calculer les volumes des troncs de cnes avec le code suivant :
code.mu
1 Volume := proc (hauteur, rayon1, rayon2)
2 begin
3 return (h*PI/3) * (rayon1^2 + rayon2^2 + rayon1*rayon2);
4 end_proc;
5
6 V := Volume (hauteur_IGES, rayon1_IGES, rayon2_IGES);
7
8 hauteur_IGES := 8.1 ;
9 rayon1_IGES := 17 ;
10 rayon2_IGES := 8.5 ;
11 V;
1) Ecrivez un script PHP qui lit un fichier IGES et pour chaque ligne dcrivant un cne (c.--d.
commenant par 158) affiche trois lignes avec les caractristiques du cne et lappel de fonction V
(c.--d. comme dans les lignes 8, 9, 10 et 11 du fichier code.mu).
1 <?php
2
3 $filename = 'conception.iges' ;
4 $desc = fopen ($filename, 'r') ;
5
6 if (!$desc) {
7 die ('Erreur ouverture du fichier '.$filename.' en lecture.') ;
8 }
9
10 while (!feof ($desc)) {
11 $line = fgets ($desc) ;
12 $debut = substr ($line, 0, 3) ;
13
14 if ($debut == '158') {
15 $tab = explode (',', $line) ;
16
17 $tab_h = explode ('D', $tab[1]) ;
18 $tab_r1 = explode ('D', $tab[2]) ;
19 $tab_r2 = explode ('D', $tab[3]) ;
20
21 $h = $tab_h[0] * pow (10, $tab_h[1]) ;
22 $r1 = $tab_r1[0] * pow (10, $tab_r1[1]) ;
23 $r2 = $tab_r2[0] * pow (10, $tab_r2[1]) ;
24
25 echo 'hauteur_IGES := '.$h.' ; '."\r\n" ;
26 echo 'rayon1_IGES := '.$r1.' ; '."\r\n" ;
27 echo 'rayon2_IGES := '.$r2.' ; '."\r\n" ;
28 echo 'V; '."\r\n" ;
29 }
30 }
31
32 fclose ($desc) ;
33 ?>