Amélioration de l'affichage verbeux sur +eurs fichiers
This commit is contained in:
		
							parent
							
								
									6cea8e8db5
								
							
						
					
					
						commit
						3aef7806cd
					
				|  | @ -54,14 +54,16 @@ double* _createFrequencies(const char* filepath) { | |||
| } | ||||
| 
 | ||||
| void compress(const char* filepath) { | ||||
|     printVerbose("Calcul des fréquences d'apparition de chaque caractère\n"); | ||||
|     printVerbose("Compression du fichier '%s'...\n", filepath); | ||||
|     printVerbose("Calcul des fréquences d'apparition des caractères.\n"); | ||||
| 
 | ||||
|     double* frequencies = _createFrequencies(filepath); | ||||
| 
 | ||||
|     if (isVerbose()) { | ||||
|         printFrequenciesTable(frequencies, NUM_CHARS); | ||||
|     } | ||||
| 
 | ||||
|     printVerbose("\nConstruction de l'arbre de Huffman\n"); | ||||
|     printVerbose("\nConstruction de l'arbre de Huffman.\n"); | ||||
|     HufTree tree = createTree(frequencies); | ||||
| 
 | ||||
|     free(frequencies); | ||||
|  | @ -71,7 +73,7 @@ void compress(const char* filepath) { | |||
|         printTree(tree); | ||||
|     } | ||||
| 
 | ||||
|     printVerbose("\nÉtiquetage des feuilles de l'arbre\n"); | ||||
|     printVerbose("\nÉtiquetage des feuilles de l'arbre.\n"); | ||||
|     char** labels = createTreeLabels(tree); | ||||
| 
 | ||||
|     freeTree(tree); | ||||
|  | @ -81,4 +83,5 @@ void compress(const char* filepath) { | |||
|     } | ||||
| 
 | ||||
|     freeTreeLabels(labels); | ||||
|     labels = NULL; | ||||
| } | ||||
|  |  | |||
|  | @ -74,44 +74,44 @@ int _maxDepth(HufVertex vert) { | |||
| } | ||||
| 
 | ||||
| void printFrequenciesTable(double* table, size_t size) { | ||||
|     printf("╭─┬───┬─────────╮\n"); | ||||
|     printf("│C│num│fréquence│\n"); | ||||
|     printf("├─┼───┼─────────┤\n"); | ||||
|     printf("┌─┬────┬─────────┐\n"); | ||||
|     printf("│C│code│fréquence│\n"); | ||||
|     printf("├─┼────┼─────────┤\n"); | ||||
| 
 | ||||
|     double sum = 0; | ||||
| 
 | ||||
|     for (size_t i = 0; i < size; i++) { | ||||
|         if (table[i] != 0) { | ||||
|             printf("│%c│%3d│%9lf│\n", _safeChar(i), (int) i, table[i]); | ||||
|             printf("│%c│%4d│%9.4lf│\n", _safeChar(i), (int) i, table[i]); | ||||
|             sum += table[i]; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     printf("├─┴───┼─────────┤\n"); | ||||
|     printf("│Total│%9lf│\n", sum); | ||||
|     printf("╰─────┴─────────╯\n"); | ||||
|     printf("├─┴────┼─────────┤\n"); | ||||
|     printf("│ Total│%9.4lf│\n", sum); | ||||
|     printf("└──────┴─────────┘\n"); | ||||
| } | ||||
| 
 | ||||
| void printLabelsTable(char** table, size_t size) { | ||||
|     printf("╭─┬───┬────────────────╮\n"); | ||||
|     printf("│C│num│       étiquette│\n"); | ||||
|     printf("├─┼───┼────────────────┤\n"); | ||||
|     printf("┌─┬────┬────────────────┐\n"); | ||||
|     printf("│C│code│       étiquette│\n"); | ||||
|     printf("├─┼────┼────────────────┤\n"); | ||||
| 
 | ||||
|     double total_length = 0; | ||||
|     size_t label_count = 0; | ||||
| 
 | ||||
|     for (size_t i = 0; i < size; i++) { | ||||
|         if (table[i] != 0) { | ||||
|             printf("│%c│%3d│%16s│\n", _safeChar(i), (int) i, table[i]); | ||||
|             printf("│%c│%4d│%16s│\n", _safeChar(i), (int) i, table[i]); | ||||
| 
 | ||||
|             total_length += strlen(table[i]); | ||||
|             label_count++; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     printf("├─┴───┴────┬───────────┤\n"); | ||||
|     printf("│Long. moy.│%11lf│\n", total_length / label_count); | ||||
|     printf("╰──────────┴───────────╯\n"); | ||||
|     printf("├─┴────┴───┬────────────┤\n"); | ||||
|     printf("│Long. moy.│%12.4lf│\n", total_length / label_count); | ||||
|     printf("└──────────┴────────────┘\n"); | ||||
| } | ||||
| 
 | ||||
| char _safeChar(char input) { | ||||
|  |  | |||
|  | @ -81,5 +81,10 @@ int main(int argc, char** argv) { | |||
|     while (*filepath != NULL) { | ||||
|         compress(*filepath); | ||||
|         filepath++; | ||||
| 
 | ||||
|         // Ligne de séparation entre les différents fichier
 | ||||
|         if (*filepath != NULL) { | ||||
|             printVerbose("\n"); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue