Langage de programmation C (XIV). Applications I

Dans ce chapitre, nous avons l'intention de mettre en pratique la plupart des concepts analysés dans les chapitres précédents et pour cela nous programmerons une application, la gestion d'une petite bibliothèque.

La première décision qui nous intéresse est celle du registre, c'est-à-dire l'information que nous maintenons sur chaque livre. Nous pensons que les informations suivantes seront enregistrées : code de livre, titre, écrivain, année et code du type de livre. Comme cet enregistrement sera utilisé dans la plupart des fonctions, la définition de l'enregistrement sera effectuée dans le fichier libru.h (voir programme 1).

Programme 1. Définition de l'enregistrement.
Programme 2. Fonctions de base.

Avec cet enregistrement, deux opérations de base seront effectuées : lire les informations du clavier et l'écrire à l'écran. Nous compilerons ces fonctions séparément. Ils seront donc placés dans un fichier, lib_basi.c dans notre cas, comme on le voit dans le programme 2.

La manipulation de l'écran peut être améliorée. Pour ce faire, les nouveaux systèmes utilisent un système de fenêtres (windows) qui permet l'introduction de données à la fois par le clavier et la souris (souris). Malheureusement, les bibliothèques pour programmer ces systèmes ne sont pas standards et c'est pourquoi nous ne les avons pas expliquées ici.

Pensons maintenant à quel type d'opérations peuvent être effectuées dans notre base de données de livres. En principe, il devrait y avoir au moins les opérations suivantes: entrée de livres, liste de livres et consultation de livres. En ce qui concerne la consultation de livres, il faudrait tenir compte des critères suivants : code (obtenant ainsi l'information du livre unique), écrivain, année (acceptant des intervalles entre dates) et type. Ces requêtes peuvent être effectuées rapidement, d'une part, étant donné que la base de données de livres est petite et sera ramenée à la mémoire au début, pour rationaliser les requêtes, et d'autre part, construire des index à mesure que la base de données est en cours de construction dans d'autres fichiers, et lors de la consultation, lire la base de données en utilisant ces index.

Ce second est plus général et est donc utilisé dans les systèmes de base de données, mais il est hors des objectifs de cette série d'articles, car il s'agit d'un ensemble de programmes très complexe. Par conséquent, nous commencerons par le premier. Cependant, nous considérons que le code du livre est séquentiel. Ainsi la requête par code sera immédiate, car la lecture séquentielle, en mémoire ou en fichier, ne sera pas nécessaire. Par conséquent, le programme principal consistera à ouvrir un fichier avec base de données, apporter le fichier à la mémoire, afficher un menu à l'écran avec différentes options, lire une option et appeler une fonction spécialisée en fonction de l'option. Dans le programme 3 nous avons un programme qui le fait.

Programme 3. Programme principal.

Notez que les entrées, listes, kon_cod et autres fonctions ne sont pas définies dans le programme principal, mais que nous les avons définies comme externes. La définition de ces fonctions peut être effectuée dans 4 fichiers différents, 4. Comme expliqué dans le programme 5 et 6, nous n'expliquerons pas la fonction lister. La fonction garbi_display a également été configurée comme extern, puisque lib.base est dans le fichier. Il ne doit donc pas être défini. Il ne faut pas non plus l'inclure dans ce fichier, puisque le lien (linker) fera le lien.

Programme 4. Introduction aux livres.
Programme 5. Par code de consultation.
Programme 6. Routine générale de consultation.

La gestion des erreurs pourrait être beaucoup plus complexe, mais nous l'avons fait aussi rapidement que possible pour donner de l'importance aux actions principales.

Nous avons donc 6 modules: libru.h, lib.oinarri i.c, nagus.c, introduction.c, kon_kod.c et kon_beste.c. Le module listatu.c n'apparaît pas car la fonction d'écriture est similaire mais l'imprimante est gérée et contrôlée par une structure for.

La dépendance hiérarchique de ces modules est indiquée dans la figure 1. Il n'apparaît pas car le module libro.h est un fichier de titre et est donc inséré dans d'autres modules avec # include sasiord.

Figure . Interdépendances fonctionnelles.

Pour compiler d'abord, les quatre modules principaux sont compilés un à un, en obtenant les modules d'objet .0 correspondants. Ensuite, le programme principal est compilé et lié, pour ce dernier, les noms des modules d'objets obtenus précédemment sont mentionnés. À la suite du lien, les références croisées entre modules sont résolues et un seul programme exécutable est obtenu.

Remarque: Pour voir les photos correctement, aller au pdf.

Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila