Algorithmique - Données de phase, sauts de page
Objectifs du chapitre
Les programmes à réaliser dans ce chapitre nécessitent de tester des données qui ne sont pas présentes dans le ou les fichiers d’entrée. Ce sont des données calculées au cours de l’exécution du programme. On les nomme données de phase. Certains sauts de page nécessitent de tester un compteur de lignes. Ce compteur de lignes est un cas particulier de donnée de phase.
État des chiffres d’affaires par client et secteur
1. Sujet
Le programme à réaliser consiste à éditer un état statistique à partir d’un fichier de produits.
a. État de sortie
b. Fichier d’entrée : produitsCA
Description du fichier produitsCA
Un enregistrement du fichier produitsCA contient :
-
noSec : numéro de secteur
-
noCli : numéro de client
-
noPro : numéro de produit
-
qte : quantité
-
PU : prix unitaire
Structure correspondante :
typedef struct
{
char noSec[4];
char noCli[5];
char noPro[4];
int qte;
float PU;
} PRODUIT;
Organisation du fichier : séquentielle
Critères de tri :
-
noSec (N° de secteur)
-
noCli (N° de client)
Il y a un enregistrement par produit.
Ce fichier est fourni. Son chemin d’accès est : C:\C\fichiers\produitsCA
c. Traitement
Pour un client : ca = Somme des qte * PU (ca : chiffre d’affaires).
Une remise de 10 % est accordée à tout client pour lequel le CA est supérieur ou égal à 1 000.
On totalise par secteur les chiffres d’affaires et les remises.
Le changement de page est réalisé après 20 lignes (en-tête non compris). Il n’y a pas de changement avant le total secteur éventuellement affiché en 21e ligne.
d. Les sauts de page
Les sauts de page sont liés à des problèmes de présentation : format du papier, zones préimprimées… Ils ne changent le programme qu’au moment de l’impression, c’est-à-dire au moment où s’exécutent les ordres d’écriture.
Il est plus simple de s’y intéresser une fois les ordres d’impression écrits.
En conséquence : faire le programme sans se soucier des sauts de page. Les ajouter après.
2. Décompositions
État
L’état se présente comme un ensemble de données concernant un secteur, autant de fois qu’il y a de secteurs (ensembles grisés).
Chaque secteur contient un numéro de secteur, un ensemble de données concernant un client, autant de fois qu’il y a de clients (ensembles grisés), un total CA et un total REMISE.
Chaque client contient un numéro de client, un CA et une remise présente...
Travail pratique : édition de factures
1. Sujet
a. But du programme
Il s’agit d’éditer les factures des clients et de faire la mise à jour du fichier client.
b. Schéma du traitement
-
Le fichier comm contient des enregistrements de commandes de clients. Ces commandes sont dites "normales".
-
Le fichier commd contient également des enregistrements de commandes de clients. Ces commandes sont dites "de dépannage".
-
Le fichier client contient des informations sur les clients. Pour chaque client ayant une facture, il faut y mettre à jour un solde en fonction du montant de la facture.
On édite une facture par client ayant au moins une commande normale et éventuellement des commandes de dépannage.
c. Impression
d. Lignes d’impression
e. Caractéristiques de l’état
-
Saut de page : une fois par client et par page pleine.
-
Dans le cas d’un saut de page pour une page pleine :
-
En fin de page :
-
Laisser les montants remise, HT et TVA à blanc.
-
Imprimer ./. à l’emplacement NET À PAYER.
-
Sur la page suivante :
-
Réafficher les en-têtes avec le numéro de page incrémenté (+1).
-
Rappeler le numéro de commande et la date de la commande.
-
Une seule facture par client.
-
On édite d’abord les commandes normales, puis les commandes de dépannage.
-
On édite une ligne produit toutes les deux lignes.
f. Fichier client
Description du fichier client
Un enregistrement du fichier client contient :
-
noCli : numéro de client (identifiant)
-
nom : nom (prénom) du client
-
adresse : adresse du client
-
cPost : code postal
-
ville : ville
-
noRep : numero de représentant
-
codPays : code pays
-
codSit : code situation (D : débit, C : crédit)
-
solde : montant du solde
Ce fichier est fourni. Son chemin d’accès est : C:\C\fichiers\client
Il contient :
Le solde du client est toujours un nombre positif. Le code situation indique si le client est créditeur (C) ou débiteur (D).
Programme d’accès au fichier client
Le fichier d’en-têtes de la bibliothèque d’accès au fichier client est : client.h. Son contenu est :
/* ========================================================================== */
/* Structure CLIENT ...