Blame view

main.c 4.35 KB
00160129   rsSimonin   creation main.c
1
2
3
4
5
6
  #include <stdio.h>
  #include <stdlib.h>
  #include <stdbool.h>
  #include <string.h>
  #include "arbre.h"
  
2f317645   rsSimonin   end
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
  void clearInputBuffer() // works only if the input buffer is not empty
  {
      int c;
      do 
      {
          c = getchar();
      } while (c != '\n' && c != EOF);
  }
  
  void pause()
  {
      printf("\nAppuyez sur ENTREE pour continuer...\n");
      getchar();
  }
  void bonjour(){
35bdc271   rsimonin   affichage
22
      system("clear");
1e85143f   rsimonin   modif_affichage
23
24
25
      printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
      printf("\nBonjour et bienvenue dans le projet de Programmation Avancée IMA 3\n\n");
      printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
2f317645   rsSimonin   end
26
27
28
29
30
  }
  
  
  void test_arguments(int argc, char *argv[],char mot_dico[20], char mot_fichier[20]){
      if(argc <2){     
1e85143f   rsimonin   modif_affichage
31
32
33
34
35
36
37
38
39
40
41
42
43
44
          printf("Vous n'avez pas entrée de dictionnaire ainsi que de fichier\n");
          printf("Veuillez entrez votre nom de dictionnaire\n");
          scanf("%s",mot_dico);
          printf("\n\n");
          printf("Veuillez entrez votre nom de fichier\n");
          scanf("%s",mot_fichier);
          printf("\n\n");
      }
      else if(argc <3){
          printf("Vous n'avez pas entrée de fichier\n");
          printf("Veuillez entrez votre nom de fichier\n");
          scanf("%s",mot_fichier);
          printf("\n\n");
      }
2f317645   rsSimonin   end
45
46
47
  }
  
  void lire_dico(int argc, char *argv[],char mot_dico[20], char mot_fichier[20],Dico* mondico,FILE* dico){
1e85143f   rsimonin   modif_affichage
48
      printf("==================================================================\n");
35bdc271   rsimonin   affichage
49
50
51
52
53
      if(argc >1){
          printf("chargement de votre dictionnaire \n");
          printf("nom: %s\n",argv[1]);
          dico=fopen(argv[1],"r"); 
      }
1e85143f   rsimonin   modif_affichage
54
55
56
57
58
      else {
          printf("chargement de votre dictionnaire \n");
          printf("nom: %s\n",mot_dico);
          dico=fopen(mot_dico,"r");
      }
35bdc271   rsimonin   affichage
59
60
61
  //     else dico=fopen("words-no-accents","r");
      
    	if(dico == NULL){
1e85143f   rsimonin   modif_affichage
62
          printf("Nous avons pas compris votre demande.\nNous vous chargeons le dictionnaire par default\n");
35bdc271   rsimonin   affichage
63
64
          printf("nom du dico: words-no-accents\n");
          dico=fopen("words-no-accents","r");
1e85143f   rsimonin   modif_affichage
65
66
      }
    	
35bdc271   rsimonin   affichage
67
    	
2f317645   rsSimonin   end
68
      
35bdc271   rsimonin   affichage
69
70
71
      charger_dico(dico,&mondico);
  //     affiche_dico(mondico);
      fclose(dico); 
1e85143f   rsimonin   modif_affichage
72
      printf("==================================================================\n\n\n");
2f317645   rsSimonin   end
73
  }
1e85143f   rsimonin   modif_affichage
74
  
2f317645   rsSimonin   end
75
  void lire_fichier(int argc, char *argv[],char mot_fichier[20],Dico* mondico,FILE** fichier_utilisateur){
1e85143f   rsimonin   modif_affichage
76
      printf("##################################################################\n");
35bdc271   rsimonin   affichage
77
      if(argc >2){
1e85143f   rsimonin   modif_affichage
78
          printf("Ouverture de votre fichier: %s \n",argv[2]);
2f317645   rsSimonin   end
79
          *fichier_utilisateur=fopen(argv[2],"r"); 
1e85143f   rsimonin   modif_affichage
80
81
82
      }
      else {
          printf("Ouverture de votre fichier: %s \n",mot_fichier);
2f317645   rsSimonin   end
83
84
          *fichier_utilisateur=fopen(mot_fichier,"r"); 
      
1e85143f   rsimonin   modif_affichage
85
86
87
      }
      if (fichier_utilisateur==NULL){
          printf("Nous avons pas reussi à ouvrir le fichier\n");
35bdc271   rsimonin   affichage
88
      }
1e85143f   rsimonin   modif_affichage
89
      printf("##################################################################\n");
35bdc271   rsimonin   affichage
90
      
2f317645   rsSimonin   end
91
92
93
94
95
96
97
98
99
  }
  
  void fin(Dico* mondico){
      printf("\n\n\nLe programme est fini, vous pouvez relancer une execution\nCommande: ./executable NOM-DICO NOM-FICHIER\n\nA bientôt\n");
      free_dico(mondico);    
  }
  
  void test_fichier(Dico* mondico,FILE* fichier_utilisateur){
      if (fichier_utilisateur!=NULL){
1e85143f   rsimonin   modif_affichage
100
101
           printf("\n\n¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤\n");
          printf("analyse en cours\n\n");
35bdc271   rsimonin   affichage
102
103
104
           int juste=0;
           int faux=0;
           analyse_fichier(fichier_utilisateur,mondico,&juste,&faux);
1e85143f   rsimonin   modif_affichage
105
106
           printf("Votre fichier contient %d de mots, dont %d justes et %d faux.\n",juste+faux,juste,faux);
           printf("¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤\n");
2f317645   rsSimonin   end
107
           pause();
35bdc271   rsimonin   affichage
108
       }
2f317645   rsSimonin   end
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
  }
  
  
  
  
  int main (int argc,char *argv[]){
      FILE* dico = NULL;
      char mot_dico[20]; //opti
      char mot_fichier[20];
      FILE* fichier_utilisateur = NULL;
      struct dico mondico;
      
      
      bonjour();
      
      pause();
      
      test_arguments(argc,argv,mot_dico,mot_fichier);
          
      lire_dico(argc,argv,mot_dico,mot_fichier,&mondico,dico);
      
      clearInputBuffer();
      pause();
  
      lire_fichier(argc,argv,mot_fichier,&mondico,&fichier_utilisateur);
      
          
00929a75   rsSimonin   f
136
      pause(); 
2f317645   rsSimonin   end
137
138
139
      
      test_fichier(&mondico,fichier_utilisateur);
      
35bdc271   rsimonin   affichage
140
      
35bdc271   rsimonin   affichage
141
142
143
      if (fichier_utilisateur!=NULL){
          fclose(fichier_utilisateur);
      }
2f317645   rsSimonin   end
144
      fin(&mondico);    
00160129   rsSimonin   creation main.c
145
146
      return 0;
  }