Atelier de Programmation en Langage C

Transcription

Atelier de Programmation en Langage C
Le 15-5-2013
1 IM
Projets à faire en Langage C pendant les vacances
d’été
Aux étudiants : C’est à vous de choisir le projet que vous voulez réaliser. Les projets sont de
difficultés similaires. L’objectif de ces projets est, d’une part, de revoir ce que vous avez vu tout au
long de cette année côté algorithmique et côté programmation en langage C mais aussi
d’apprendre à faire des recherches (pour comprendre comment se déroule un jeu donné, pour
connaître de nouvelles structures de données, etc.) afin de résoudre des problèmes donnés et de
montrer une vision innovatrice et nouvelle pour la résolution d’un problème. Ne vous contentez
donc pas de résoudre un problème de la plus basique des manières mais faites en sorte de trouver
des solutions innovatrices. Cela ne pourra que vous être bénéfique pour la suite!
Projet 1 : Gestion de files de véhicules
Dans ce projet, il vous est demandé de réaliser une simulation d’un péage d’une autoroute. A cet
égard, la simulation doit permettre à l’utilisateur d’ajouter des véhicules à la file des véhicules qui
vont payer les frais de l’autoroute. Par ailleurs, chaque véhicule ayant payé les frais quitte la file. A
chaque passage d’un véhicule par le péage, il faudra afficher les informations concernant le
véhicule (marque, immatriculation, type : voiture, camion, camionnette, etc.) ainsi que les frais du
péage qui lui est associé et qui est indiqué suivant son type. Par ailleurs, à chaque passage d’un
véhicule, il faudra aussi afficher le montant total cumulé gagné jusqu’à lors (c’est-à-dire depuis le
début de la simulation) par la compagnie des autoroutes. Le programme doit aussi, à chaque
demande de l’utilisateur, indiquer le type de véhicules qui est le plus passé par le péage et affiche le
nombre de voitures ayant payés les frais du péage pour chaque type.
L’utilisation des files peut être utile pour réaliser cette simulation. Une première version de ce
projet doit être réalisée avec les tableaux. Une deuxième version doit être réalisée avec les listes
chaînées. Le candidat doit en plus ajouter d’autres manipulations de son choix.
Dans un second temps, le programme doit permettre de gérer non seulement une file mais N files
(N > 1), c'est-à-dire qu’il s’agit de gérer plusieurs péages à la fois et non un seul.
Projet 2 : Gestion commerciale
Dans ce projet, il vous est demandé de réaliser un programme de gestion comptable d’un
commerçant. Le programme doit permettre d’ajouter des articles au magasin en stockant leurs prix
d’achat des fournisseurs, de vendre des articles en considérant la quantité en stock et en leur
affectant des prix supérieurs au prix d’achat, d’alerter le commerçant à chaque fois que le nombre
d’articles en stock atteint une valeur inférieure à un seuil que vous fixez suivant votre choix en
affichant la quantité qui reste en stock ainsi que les coordonnés du fournisseur associé (le nom de la
société, adresse, téléphone, etc.), etc. Le programme doit aussi indiquer le nombre d’articles vendus
pour un mois donné ainsi que le gain du commerçant pour une période donnée, etc.
Il est à noter que les informations doivent être sauvegardées dans des fichiers sur disque. Ces
informations seront chargées dès le démarrage du programme de gestion commerciale et
manipulées au fur et à mesure.
Projets de stage d’été en Langage C
-1-
Eté 2013
Une première version de ce projet doit être réalisée avec les tableaux. Une deuxième version doit
être réalisée avec les listes chaînées. Le candidat doit en plus ajouter d’autres manipulations de
son choix.
Projet 3 : Simulation des algorithmes de tri
Il s’agit de développer une application contenant des interfaces graphiques permettant de simuler
six algorithmes de tri (tri Shell, tri à bulles, tri par tas, tri sélection, tri rapide et tri par insertion).
L’utilisateur remplit un tableau et choisit un des six algorithmes et l’application lui fournit une
interface lui permettant de suivre toutes les itérations du tri (une par une) jusqu’à arriver à un
tableau complètement trié avec la possibilité d’enregistrer le tableau trié dans fichier sur son disque.
Projet 4 : Développement de l’algorithme de Dijkstra
Développer une application graphique qui sert à résoudre le problème du plus court chemin en
ayant recours à l’algorithme de Dijkstra. L’utilisateur de l’application construit un graphe dont les
nœuds présentent les villes et les arêtes déterminent les distances entre les nœuds. L’application
affiche le graphe résultat. Par la suite, l’utilisateur choisit la ville de départ et la ville d’arrivée et
l’application lui affiche le plus court chemin trouvé en appliquant l’algorithme de Dijkstra.
Projet 5 : Développement du jeu « Puissance 4 »
Le but du jeu Puissance 4 est d'aligner 4 pions sur une grille comptant 6 rangées et 7 colonnes.
Chaque joueur dispose de 21 pions d'une couleur (par convention, en général jaune ou rouge). Tour
à tour les deux joueurs placent un pion dans la colonne de leur choix, le pion coulisse alors jusqu'à
la position la plus basse possible dans ladite colonne suite à quoi c'est à l'adversaire de jouer. Le
vainqueur est le joueur qui réalise le premier un alignement (horizontal, vertical ou diagonal) d'au
moins quatre pions de sa couleur. Si alors que toutes les cases de la grille de jeu sont remplies,
aucun des deux joueurs n'a réalisé un tel alignement, la partie est déclarée nulle.
Projet 6 : Développement du jeu « La marelle »
La marelle se joue à deux sur un plateau de 24 points dont certains sont reliés trois par trois en
"moulins". Chaque joueur dispose, au départ, de 9 pions d'une couleur.
La partie se déroule en trois phases successives :
- La pose : Dans la première phase, les joueurs posent chacun à son tour l'un de leurs pions sur l'un
des points vides du plateau. Si l'un des joueurs parvient à "fermer" un moulin en alignant trois de
ses jetons, il ôte l'un des pions de son adversaire choisi parmi ceux qui ne font pas partie d'un
moulin fermé.
- Les déplacements : Lorsque les joueurs ont posé tous leurs jetons, débute la seconde phase du jeu.
Les joueurs doivent à présent pousser l'un de leurs jetons sur un point voisin auquel le point de
départ est relié par un moulin. Le but reste d'essayer fermer un moulin pour prendre un des pions de
l'adversaire ou de bloquer les pions de l'adversaire qui perd la partie si aucun de ses pions ne peut
bouger.
Projets de stage d’été en Langage C
-2-
Eté 2013
- Les sauts : Lorsque l'un des joueurs n'a plus que trois pions, il peut "sauter" c'est à dire déplacer
l'un de ses pions sur l'un quelconque des points libres du jeu. Un joueur qui n'a plus que deux pions,
ou qui ne peut plus se déplacer lorsque c'est à son tour de jouer a perdu.
Projet 7 : Développement du jeu « Serpent (Snake) »
Développer le jeu Snake en graphique: Un serpent qui grandit au fur et à mesure qu'il avale des
pommes sur son chemin. Le jeu contient 2 niveaux de difficultés, le premier est sans labyrinthe et le
deuxième
étant
avec
labyrinthe.
L'objectif est d'avaler toutes les pommes en se guidant avec les touches directionnelles du clavier,
sans que le serpent ne se morde la queue et sans qu’il ne touche un labyrinthe. L’utilisateur choisit
un des deux niveaux avant de commencer le jeu.
Projet 8 : Développement du jeu « Taquin »
Développer le jeu Taquin en graphique : un grand carreau est composé de 15 petits carreaux
numérotés de 1 à 15 qui glissent dans un cadre prévu pour 16. Il consiste à remettre dans l'ordre les
15 carreaux à partir d'une configuration initiale quelconque.
Projet 9 : Développement du jeu « Démineur »
Développer une application graphique du jeu Démineur : ce jeu consiste à localiser
des mines cachées dans un champ virtuel en indiquant seulement le nombre de mines dans les zones
adjacentes. Le jeu contient deux niveaux de difficultés. Le deuxième niveau contient plus de mines
et un champ plus grand que le premier niveau.
Projet 10 : Développement du jeu « Tetris »
Le but est de simuler le fameux jeu Tetris. Il s’agit de créer des pièces de formes différentes de
votre choix et décider comment représenter les pièces créées. Ensuite, le programme doit permettre
à l’utilisateur d’aligner ses pièces dans un délai précis et avec un nombre fini de pièces.
Projet 11 : Développement du jeu « Vache-Taureau »
Le but de cet exercice est de réaliser le jeu Vache-Taureau avec interface graphique. Ce jeu
nécessite deux joueurs (par exemple le PC et un joueur). Chacun d'eux choisit un nombre (entier
positif) qui doit se composer nécessairement de 4 chiffres. L’autre joueur (son adversaire) tentera de
le deviner (le découvrir) en donnant des propositions. Chaque proposition est comparée au nombre
à deviner pour donner les taureaux et le nombre de vaches issus de cette comparaison. Il est à noter
que :
-
Un taureau : veut dire que le chiffre existe et qu’il est placé au bon endroit,
Une vache : veut dire que le chiffre existe mais il est mal placé.
Le jeu se termine quand l’un des deux joueurs devine (trouve) le nombre choisi par l’autre.
Projet 12 : Développement du jeu « de Dame »
Projets de stage d’été en Langage C
-3-
Eté 2013
Le principe du jeu de Dame est de permettre à l’utilisateur de jouer contre la machine avec la
possibilité d’afficher le score, le temps écoulé et le joueur gagnant à la fin d’une partie du jeu de
Dame ainsi que l’enregistrement du score (c’est-à-dire le nombre de coût ayant permis à un joueur
de gagner) dans un fichier sur disque, dédié au stockage des scores obtenus.
Projet 13 : Développement du jeu « d’Echec»
Le principe du jeu d’Echec est de permettre à l’utilisateur de jouer contre la machine avec la
possibilité d’afficher le score, le temps écoulé et le joueur gagnant à la fin d’une partie d’échec ainsi
que l’enregistrement du score (c’est-à-dire le nombre de coût ayant permis à un joueur de gagner),
dans un fichier stocké sur disque, dédié au stockage des scores obtenus.
Travail à rendre : Il vous est demandé de fournir pour chaque projet réalisé :
1- un rapport détaillé contenant le code source des différentes parties implémentées avec les
argumentations des choix effectués en matière de structures de données, etc. Ce rapport doit
refléter une recherche effectuée pour comprendre d’une manière claire le but du projet (par
exemple, un candidat peut se référer à Internet pour comprendre comment se déroule un jeu
demandé, etc.).
Le rapport doit contenir les chapitres/parties suivantes à savoir :
- Introduction
- Présentation générale
o
Définition du problème
o
Objectifs du projet
o
Cadre du projet et environnement choisi
- Analyse et conception
o
Recherche comparative des structures de données
o
Description des sous-programmes utilisés
- Réalisation
o
Environnement matériel
o
Environnement logiciel
o
Imprimés écran de quelques interfaces de l’application réalisée
avec les commentaires associés
o
Code sources du projet
- Conclusion
- Bibliographie et Nétographie
A ne pas oublier d’ajouter la table des matières ainsi que la table des figures et la liste
des tableaux.
2- un CD contenant les codes sources associés et l'exécutable généré de l’application réalisée.
Il est à noter que les idées personnelles et innovatrices seront appréciées. Par ailleurs, l’utilisation
des sous-programmes ainsi que des structures de données diverses est nécessaire. L’utilisation
Projets de stage d’été en Langage C
-4-
Eté 2013
d’une interface graphique est obligatoire quelque soit le sujet. L’ajout des effets sonores est par
ailleurs apprécié.
Le projet ne peut être réalisé qu'individuellement sachant que l'évaluation du projet tiendra compte
de l’effort déployé et de l’innovation apportée par l’étudiant dans la réalisation du projet.
Le rapport et le CD seront à remettre selon un planning qu’on vous indiquera
ultérieurement.(Septembre 2013)
Attention : Une fois la date de la remise du rapport et du CD affichée, aucune
remise du travail ne sera acceptée au delà de cette date.
Toute tentative de fraude sera sanctionnée par un ZERO.
En cas de besoin et pour plus d’informations, contactez:
-
[email protected]
Projets de stage d’été en Langage C
-5-
Eté 2013

Documents pareils