INF1255 — Informatique pour les sciences de la gestion

Automne 2012 — Groupe 10



Projet pour la session

Le projet de la session est constitué de trois (3) TPs. C'est un seul projet auquel s'ajouteront des fonctions au fur et à mesure de la session. L'objectif visé est de développer un programme simulant une caisse enregistreuse pour un supermarché. La description des besoins sera complétée au cours de la session.

TP 1

Date de remise : 2012-10-29

L'objectif de ce TP est de saisir, en entrée, sur une ligne de commande, un code de produit et une quantité et, en sortie, d'afficher le montant total pour le produit et d'afficher les taxes, si le produit est taxable.
Une fonction vous est fournie contenant la liste des produits, leur code et si le produit est taxable ou non. Voir : Ex. 001 Catalogue de produits et Ex. 002 Comment lire la ligne de commande avec Node.js

Un petit rappel

Le taux de la TPS — taxe sur les produits et services — est de 5 % et le taux de la TVQ — taxe de vente du Québec — est de 9,5 %. Ces taxes seront modifiées le 1er janvier 2013. La TVQ se calcule sur le montant initial augmenté de la TPS.

Informations relatives à la transmission du TP

  • Le TP doit obligatoirement être transmis par le système de remise des devoirs de Moodle.
  • Le fichier transmis doit se terminer par ".js".
  • Le fichier transmis doit être encodé selon l'encodage "UTF-8".
  • Le fichier transmis doit obligatoirement contenir au tout début de celui-ci, sous forme d'une ligne de commentaire, le code d'étudiant, le nom de famille et le prénom de l'étudiant. À titre d'exemple :
// FAMP01018000 FAMILLE, Prénom
 
Ex. 007 TP1 une solution possible

TP 2

Date de remise : 2012-11-19 (énoncé mis à jour le 2012-11-05)

L'objectif de ce TP est de permettre la saisie des codes de produit et des quantités d'une commande via une page WEB, d'y afficher l'équivalent du contenu d'un coupon de caisse. L'application doit permettre de retirer un produit de la commande, le cas échéant.

Fonctionnement des boutons dans la colonne de gauche du clavier :
  • La clé "code" indique au programme que la séquence des chiffres saisis précédemment représente un code produit.
  • La clé "qté" indique au programme que la séquence des chiffres saisis précédemment représente une quantité. Cette séquence peut être précédée du signe "-" pour indiquer un retour de produit.
  • La clé "reculer" permet d'effacer le dernier chiffre saisi, appuyer plusieurs fois sur cette clé permet de reculer du nombre équivalent de chiffres, si aucun chiffre n'est entré, la clé n'a aucun effet.
  • La clé "effacer" permet d'effacer la séquence en cours de saisie d'un code de produit et d'une quantité, appuyer plusieurs fois sur cette clé permet d'effacer le nombre équivalent des séquences précédentes, s'il ne reste aucune séquence, la clé n'a aucun effet.

Fonctionnement des boutons dans la colonne de droite du clavier :
  • La clé "-" (moins) permet d'entrée une quantité négative.
  • La clé "OK" indique que l'affichage du total ou du total courant n'est plus requis.
  • La clé "annuler" indique au programme d'annuler au complet la vente actuelle. Il faut cliquer cette clé deux fois de suite pour que l'action se produise, permettant ainsi de récupérer d'une faute de frappe. Toute autre séquence n'a aucun effet, par exemple, si l'opérateur clique sur "annuler" et sur une autre clé que "annuler".
  • La clé "total courant" indique au programme d'afficher en haut du clavier (et non sur le coupon de caisse), le total courant de la vente incluant les taxes.
  • La clé "total" indique au programme que la vente est terminée et d'afficher les montants avant taxes, les taxes, et le montant total de la vente sur le coupon de caisse et d'afficher le montant total en haut du clavier.

S'il faut afficher un message dans la zone en haut du clavier (il ne faut pas afficher de message sur le coupon de caisse), les messages suivants sont possibles :
  • "er.code" si aucun produit ne correspond au code saisi ;
  • "er.qte" si la quantité est 0 ou n'est pas dans l'intervalle -99 à 99 (excluant 0) ;
  • "annul." si on clique sur la clé "annuler" une première fois, signifiant que si on clique une autre fois sur la même clé la vente sera annulée.

Le ZIP suivant contient le rendu visuel de la caisse enregistreuse ainsi qu'un embryon du fichier JavaScript comme point de départ.



Ex. 008 Une aide au TP2

Informations relatives à la transmission du TP

  • Le TP doit obligatoirement être transmis par le système de remise des devoirs de Moodle.
  • Les remarques relatives à la présence d'une ligne de commentaire identifiant l'étudiant décrites au TP 1 s'appliquent.
  • Le fichier transmis doit être encodé selon l'encodage "UTF-8".
  • Votre TP doit être remis dans un seul fichier dont le nom est "app.js", car la page HTML et les autres fichiers ne doivent pas être modifiés.

TP 3

Date de remise : 2012-12-10 (énoncé mis à jour le 2012-11-19)

L'objectif de ce TP est de stocker dans une base de données les commandes et de pouvoir sortir un rapport sur les mouvements de stocks.

Informations relatives à la transmission du TP

  • Le TP doit obligatoirement être transmis par le système de remise des devoirs de Moodle.
  • Les remarques relatives à la présence d'une ligne de commentaire identifiant l'étudiant décrites au TP 1 s'appliquent.
  • Le fichier transmis doit être encodé selon l'encodage "UTF-8".
  • Votre TP doit être remis dans un seul fichier dont le nom se termine par ".sql".

Pour l'outil dans Firefox

Données à charger dans la base de données

Ces données sont sous la forme d'une ligne par rangée et les colonnes sont séparées par une barre verticale |
Vous devez, avant d'importer les données via sqlite-manager, créer la table correspondante dans la base de données.

Table des produits (26 lignes)

Description des colonnes du fichier :
  1. id
  2. code produit
  3. description
  4. prix unitaire
  5. taxable ou non ( 1 ou 0)



Table des factures (1 000 lignes)

Description des colonnes du fichier :
  1. id
  2. numéro de facture
  3. caissier
  4. horodateur



Table des items facture (4 965 lignes)

Description des colonnes du fichier :
  1. id
  2. numéro de facture
  3. code produit
  4. quantité



Requêtes SQL à produire pour le TP


Note : ne pas prendre en compte les taxes
  1. Une requête pour connaitre les produits les plus vendus (quantité) en ordre décroissant
  2. Une requête pour connaitre les produits ayant générés le plus de revenus (quantité X prix) en ordre décroissant
  3. Une requête pour connaitre les factures ayant les plus gros montants en ordre décroissant
  4. Une requête pour connaitre le montant moyen des factures

Vous remettez :

  1. Les trois (3) énoncés SQL pour créer les tables
  2. Les quatre (4) énoncés SQL pour effectuer les requêtes



FAQ — Foire aux questions

Ressources pour JavaScript

Exemples en JavaScript et HTML incluant des fonctions pour les TP



Cours

Local : DS-M425

Horaire : lundi de 18h00 à 21h00


Ateliers

Local : PK-S1565

Horaire : samedi de 10h00 à 12h00


Plan de cours