Ce qui suit constitue l'énoncé du travail pratique #3 (TP3).
Étant donné les travaux effectués dans le cadre du TP2, versions «clavier», «écran» et «série», vous devrez, à l'aide de Borland C 3.1 (BC3.1), écrire un programme qui permettra:
Vous aurez le droit d'utiliser tous les outils que vous aurez développé dans le cadre des travaux pratiques précédents, dans la mesure où vous respectez les contraintes ci-après.
Votre programme devra permettre à l'utilisateur de choisir un port série et de le configurer comme bon lui semble.
Par la suite, l'écran devra être séparé en deux (2) zones (nommées ci-après partie haute et partie basse). Une ligne centrale séparera clairement ces deux zones.
Lorsque l'utilisateur enfoncera une touche du clavier, le caractère associé sera affiché à la position courante dans la partie haute de l'affichage, et le caractère en question sera envoyé sur le port série.
Lorsqu'un caractère sera reçu sur le port série:
Lorsqu'un caractère sera lu au clavier, il sera affiché dans la partie haute de l'affichage, et ce caractère sera renvoyé sur le port série.
Les caractère '\b' devra avoir l'effet attendu (effacement du caractère précédent et recul du «curseur», sans que le curseur visible n'ait à se déplacer), au moins sur la ligne courante (gérer le cas du caractère '\b' en début de ligne--lorsque la colonne courante est 0--n'est pas obligatoire).
Les caractères 10 et 13 devront tous deux provoquer l'effet combiné de nouvelle ligne et retour de chariot.
Le déroulement d'une partie d'écran devra se faire normalement, une ligne à la fois.
Le code ne devra jamais bloquer; il devra vérifier si un caractère est présent dans le tampon du clavier avant de le lire, et faire de même pour les caractères reçus du port série.
Tout sous-programme ayant trait au clavier devra se trouver dans le fichier source nommé Clavier.cpp; les prototypes de ces sous-programmes, de même que les constantes et types pertinents, devront se trouver dans le fichier d'en-tête Clavier.h.
Tout sous-programme ayant trait à l'écran devra se trouver dans le fichier source nommé Ecran.cpp; les prototypes de ces sous-programmes, de même que les constantes et types pertinents, devront se trouver dans le fichier d'en-tête Ecran.h.
Tout sous-programme ayant trait au port série devra se trouver dans le fichier source nommé Serie.cpp; les prototypes de ces sous-programmes, de même que les constantes et types pertinents, devront se trouver dans le fichier d'en-tête Serie.h.
Le programme principal devra se trouver dans un fichier source nommé TP3.cpp.
Tout autre sous-programme, constante, type, etc. de votre cru ne trouvant pas place dans l'une ou l'autre des catégories plus haut devra se trouver fichier source et un fichier d'en-tête portant un nom significatif et être documenté adéquatement.
Tout fichier source ou d'en-tête devra être correctement commenté et identifié. Les choix de nomenclature devront être clairs et conséquents. Les normes usuelles de présentation et de disposition du code s'appliquent.
La pression de la touche ÉCHAP devra faire en sorte d'envoyer le caractère ÉCHAP sur le port série et de terminer le programme. La réception du caractère ÉCHAP sur le port série devra faire en sorte de signaler clairement à l'écran la déconnexion de l'homologue et terminer le programme.
Bonne chance!