This repository has been archived by the owner on Jun 28, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.c
93 lines (71 loc) · 2.95 KB
/
main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <simulation.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
void usage(char *progname) {
printf("Usage : %s [-n duree] [-d] [-o output] filename\n",progname);
printf("-n duree : renseigne la durée de la simulation (30 par défaut)\n");
printf("-d : demande l'affichage pas par pas\n");
printf("-o output : demande l'écriture des statistiques globales dans le fichier output\n");
printf("filename doit avoir le format suivant :\n\n");
printf("moutons : nb_mo nb_ma soc fert esp_sh type_sh\n");
printf("virus : inf mort esp_vir type_vir\n\n");
printf("nb_mo : nombre initial de moutons\n");
printf("nb_ma : nombre initial de malades\n");
printf("soc : taux de sociabilité des moutons (entre 0 et 1)\n");
printf("fert : taux de fertilite des moutons (entre 0 et 1)\n");
printf("esp_sh : esperance de vie des moutons\n");
printf("type_sh : ecart type de viedes moutons\n");
printf("inf : taux d'infectiosite du virus (entre 0 et 1)\n");
printf("mort : mortalité du virus (entre 0 et 1)\n");
printf("esp_vir : duree moyenne de la maladie\n");
printf("type_vir : ecart type de la maladie\n");
}
int main (int argc, char **argv) {
int days_number=30;
int day_stats=0;
char *output_file_name=NULL;
int opt;
// lecture des options
if (argc<2) {
usage(argv[0]);
exit(1);
}
while((opt=getopt(argc, argv, "n:do::"))!=-1) {
switch(opt) {
case 'n':
days_number=atoi(optarg);
if(days_number<=0) {
fprintf(stderr, "Le nombre fourni en argument a l'option -n doit etre strictement positif\n");
exit(2);
}
break;
case 'd':
day_stats=1;
break;
case 'o':
output_file_name=optarg;
break;
default:
usage(argv[0]);
exit(3);
break;
}
}
// création de la simulation
char *filename=argv[argc-1];
simulation *sim=simulation_create(days_number, day_stats, output_file_name, filename);
// affichage du message d'accueil et exécution de la simulation
printf("=== BIENVENUE DANS CETTE SIMULATION D'EPIDEMIE ! ===\n\n");
printf("\t Cette simulation durera %d jours.\n", days_number);
if(day_stats) {
printf("\tDes statistiques seront affichees pour chaque jour.\n");
printf("Appuyez sur la touche entree pour passer au jour suivant.\n");
}
if(output_file_name!=NULL)
printf("\tLes statistiques globales seront sauvegardees dans le fichier %s.\n", output_file_name);
printf("\n");
simulation_run(sim);
simulation_destroy(sim);
return 0;
}