Vous êtes sur la page 1sur 1

Département d’Informatique

Module I132 : Algorithmique et programmation 2


Parcours MIP (S3)
(2017/2018)
Pr. S. ANTER

TP No 4
Ex.1 : On se propose d’écrire une application en langage C qui permet de gérer les factures
d’un magasin qui n’ont pas encore été payées. Chaque facture est définie selon le type
Facture ci-dessous et dont Date est une autre structure représentant une date :

1 typedef struct {
2 int jour ;
3 char mois [15];
4 int ann é e ;
5 } Date ;

1 typedef struct {
2 int num ; // Num é ro de la facture
3 char nom [30]; // Nom du client
4 float prixHT ; // Prix hors taxe à payer ( en dh )
5 Date date_limite ; // Date limite de paiement
6 } Facture ;

1. Définir la fonction Facture lire() permettant de créer et de retourner une facture


dont le numéro, nom, prix HT et date limite (jour, mois et année) sont lus au
clavier
2. En utilisant le formalisme pointeur, définir la fonction void lire tous(Facture* F,
int nf ) permettant de lire les nf factures non payées dont leurs informations sont
lues au clavier et de les stocker dans le tableau F (penser à utiliser la fonction lire
de la question Q.1).
3. En utilisant le formalisme tableau, définir la fonction void afficher tous(Facture*
F, int nf ) permettant d’afficher toutes les factures.
4. Définir la fonction void trier(Facture* F, int nf ) permettant de trier les factures
par ordre croissant du nom des clients.
5. En supposant que le tableau des factures est trié par ordre croissant des noms
des clients, et en utilisant une recherche dichotomique, définir la fonction Facture
recherche dichotomique(Facture* F, int nf, char* nom) retournant la facture cor-
respondant au client dont le nom est passé en argument et structure vide sinon
(c-à-d {0,””,0,{0,””,0}}).
6. Ecrire une fonction d’entête void maj factures(Facture* F, int nf ) qui permet d’aug-
menter de 10% par an de retard les prix HT de toutes les factures dont l’année limite
de paiement est strictement inférieure à l’année en cours (2018)
Exemple : Soit la facture ayant l’année limite de paiement 20016 et le prixHT=100dh,
le nouveau prix deviendra 121 dh. (De 2016 à 2017 on augmente le prix de 10%
soit 110, de 2017 à 2018, on augmente 110dh de 10% soit 121 dh)
7. En utilisant le formalisme pointeur, écrire une fonction d’entête float total TTC(Facture*
F, int nf ) qui retourne la somme des prix totaux TTC (Toute Taxe Comprise) de
toutes les factures dans le tableaux F. La TVA étant fixée à 20% (Prix TTC =
Prix HT + Prix HT * TVA)
8. Définir la fonction void sauvgarder(Facture* f, int nf, char* fichier) permettant de
sauvegarder toutes les factures dans le fichier dont le nom est passée en arguement.
9. Ecrire un programme principale de test

Vous aimerez peut-être aussi