Collège Montmorency

Gestion du parc informatique

Hiver 2004

420-1D5

Travail pratique 2 ( 15% de la note finale )



Instructions pour la remise :

Remettre une copie papier au début de la scéance de TP du 6 avril. Le travail doit être agraffé et comporter une page de présentation.

Pour le no.1 : une impression du diagramme demandé.

Pour le no.2 : impression du contenu de la table users de la base de données mysql et contenu de l'exécution de mysqldump avec la structure seulement de votre base de données.

Pour le no.3 : impression de votre code Perl.

Remettre également une copie électronique

Numéro 1 (4 points)

Produire le diagramme représentant les entités nécessaires pour stocker l'information sur un parc informatique : ordinateurs (et leurs caractéristiques de bases, ie. CPU, taille mémoire, taille disque), écrans, utilisateurs associés à chacun (seulement nom, prénom, no. de bureau).

Le diagramme est à faire dans un outil graphique, du genre de Dia, qui est installé sur vos stations et qui est disponible pour Windows.



Numéro 2 (4 points)

Créer les utilisateurs (un pour administration, l'autre en lecture seulemnt ), la base de données (elle doit s'appeler «inventaire») et les tables pour supporter le diagramme du no. 1.



Numéro 3 (7 points)

Écrire une suite de programmes qui permettent de consulter et de modifier la base de données d'album telle que décrites dans les notes de cours sur le SQL (Notez qu'on laisse tombé la maison de disque).

Parmi les programmes nécessaires :

voircd : permet de consulter la base de données de cd :

Genre de sortie :

bash$ voircd

Voici la liste des CD :
1) titre album 1
2) titre album 2
    ..
    (10 par pages : utiliser LIMIT avec OFFSET si plus que 10
    
    Quel cd voulez-vous voir en détails?
    (l'usager tape un chiffre : on valide, puis on affiche tout ce qu'on sait sur le cd).
Album no xxx 
Titre de l'album - Artiste
- titre chanson 1
- titre chanson 2
- titre chanson x
...

Q pour quitter, L pour retourner a la liste
modifiercd : permet de modifier la base de données de cd. Ce programme doit demander un mot de passe a l'utilisateur et se connecter à la base de données en utilisant ce mot de passe et un usager d'administration (à créer, avec droit de lecture et d'écriture sur la BD).

Genre de sortie :

bash$ modifiercd

ADMINISTRATION DES CD
Mot de passe requis.
Quel est le mot de passe ?
(lire le mot de passe)
Voici la liste des CD :
1) titre album 1
2) titre album 2
    ..
    (10 par pages : utiliser LIMIT avec OFFSET si plus que 10)
    Quel ordinateur voulez-vous modifier?
Q pour quitter, L pour retourner a la liste,
N pour ajouter un nouvel album, S pour voir page suivante(si nécessaire)
(c'est le «menu» : a afficher dans chaque écran)
(l'usager tape un chiffre (ou une lettre): on valide, puis on affiche les infos de l'ordinateur :)
Album no xxx 
Titre de l'album - Artiste
 1 - titre chanson 1
 2 - titre chanson 2
 3 - titre chanson x
...

T pour modifier le titre de l'album, A pour modifer l'artiste, C# pour modifier une chanson, C pour ajouter une chanson
Q pour quitter, L pour retourner a la liste
(l'usager tape une lettre: on valide, puis on agit en conséquence. Exemple, pour modifier l'artiste:)
A
Modification de l'artiste associé a l'album No.XX
Liste des artistes:
 1) nom 1
 2) nom 2
...
(Encore une limite de 10 par pages)
Entree le no. de l'album, ou N pour créer un nouvel album.
N
Nom de l'album :
(lecture du nom)

(Réaffichage des infos de l'album + menu d'admin)
Conseil : les 2 programmes sont tres semblable : il peuvent etre fait avec le meme code... Il est possible de lire le nom sous lequel un programme Perl a été appelé en lisant la variable $0 :

if ($0 eq 'modifiercd'){
if (login_admin()){
$isadmin = 1;
} else {
die « Mauvais mot de passe »;
}
} elseif ($0 eq 'voircd'){
#...
}

Ainsi, le code peut etre le même partout, avec un simple ajout de fonctionnalité et/ou vérification « d'accès » si l'usager à été identifié comme administrateur.

Il est essentiel d'utiliser des fonctions! Vous pouvez toujours essayer sans, mais vous verrez que votre code va vite devenir incontrolable (et vos points descendre en conséquence... :P ).

Un bon design de programme va isoler l'affichage des menus des requêtes dans les BD, et tâcher de rééutiliser le code qui répète la logique.