Le projet GeoNames propose gratuitement des données géographiques sous la license CreativeCommons. Elles sont utilisées dans de nombreuses applications et promeuvent par la même occasion la philosophie de l'Open data.
Le programme consiste à utiliser certaines de ces données pour afficher la liste des
villes ayant la plus grande population sur notre planète. Si on éxecute l'executable
avec, par exemple, le paramètre 10
, la liste des 10 villes les plus populées
en ordre décroissant sera affiché.
Travail accompli dans le contexte du cours Construction et maintenance de logiciels (INF3135) donnee par Serge Dogny à l'UQAM.
Le contenu du projet:
README.md
: ce fichierMakefile
: permet d'automatiser la compilationcheck.bats
: serie de testssujet.md
: sujet du travailgeonames.c
: code source.gitignore
: ignorer certains fichiers lors de la gestion des version.gitla-ci.yml
: instructions d'intégration continu avec GitLab CI/CDgithub-pandoc.css
: style CSS pour les version HTML des fichiers généré par la commandemake html
Leonid Glazyrin (GLAL77080105)
Pour faire fonctionner le projet il vous faudra vous assurez d'avoir git
installé, ainsi que make
, unzip
, pandoc
, bats
et peut-être quelques
autres programme sur votre terminal. Referez vous à la section Dépendances
pour les sites officiels.
Tout d'abord cloner le projet avec la commande :
git clone https://gitlab.info.uqam.ca/glazyrin.leonid/inf3135-tp1-a22.git
Si le projet n'est pas publique vous devrez vous authentifier.
Ensuite exécuté les commandes suivantes pour vous déplacer dans le répertoire, compiler le programme et télécharger les données nécessaires à l'exécution :
cd inf3135-tp1-a22
make
make database
Finalement pour exécuter le programme avec un chiffre n
entre 1 et 5000 :
./geonames n
Alternativement le nombre peut être passé par un fichier :
./geonames < fichier-contenant-un-nombre
Les cas d'erreur gérés sont :
n < 1
n > 5000
n
n'est pas un nombre,stdin
redirigée vers un fichier viden
fournie etstdin
redirigéen
dans le fichier est erroné par les mêmes conditions 1, 2 ou 3- Aucun argument fourni et
stdin
non redirigé - Les espaces blancs dans le fichier, avant et après le nombre, ne seront pas considérés
Cas d'erreur non gérés connus :
- S'il y a des saut de lignes avant le nombre dans le fichier
- Si le nombre est précédé de plus qu'environ 599 espaces dans le fichier étant donné
la longueur de ligne arbitraire fixée à 600 par la constante
ARBITRARY_LINE_LENGTH
Entrez make test
pour exécuter la suite de tests automatiques.
Mes résultats:
ok 1 test0 : Aucun argument
ok 2 test1 : Trop d arguments
ok 3 test2 : Nombre de ville trop petit
ok 4 test3 : Nombre de ville trop grand
ok 5 test4 : Argument caractère
ok 6 test5 : Argument chaine de caracteres
ok 7 test6 : afficher tableau de 5 villes
ok 8 test7 : affiche 1 ville
not ok 9 test8 : affiche 10 villes
not ok 10 test9 : affiche 5000 villes
not ok 11 test10 : affiche 2500 villes
8 tests réussissent, tandis 3 échouent.
Certains tests échouent étant donné que les données évoluent rapidement et donc l'ordre des villes change fréquement.