Skip to content

Shows n most populated cities in the world

Notifications You must be signed in to change notification settings

leonidglazyrin/GeoNames

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TP1: GeoNames

Description

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 fichier
  • Makefile: permet d'automatiser la compilation
  • check.bats: serie de tests
  • sujet.md: sujet du travail
  • geonames.c: code source
  • .gitignore: ignorer certains fichiers lors de la gestion des version
  • .gitla-ci.yml: instructions d'intégration continu avec GitLab CI/CD
  • github-pandoc.css: style CSS pour les version HTML des fichiers généré par la commande make html

Contraintes du travail

Auteur

Leonid Glazyrin (GLAL77080105)

Fonctionnement

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 :

  1. n < 1
  2. n > 5000
  3. n n'est pas un nombre,
  4. stdin redirigée vers un fichier vide
  5. n fournie et stdin redirigée
  6. n dans le fichier est erroné par les mêmes conditions 1, 2 ou 3
  7. Aucun argument fourni et stdin non redirigé
  8. 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 :

  1. S'il y a des saut de lignes avant le nombre dans le fichier
  2. 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

Tests

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.

Dépendances

Références

About

Shows n most populated cities in the world

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published