1
0
Files
Laboratori-ASD/Laboratorio 8/Esercizio 2/main.c
2024-03-22 17:37:24 +01:00

93 lines
1.6 KiB
C

// Laboratorio 8 - Esercizio 2 - main.c
// Matteo Schiff - s295565
#include<ctype.h>
#include<string.h>
#include"Graph.h"
#define MAX_LEN 30
const int MAXL = 100;
typedef enum
{
r_print,
r_adj,
r_build,
r_fine
} t_comandi;
char *toLower(char *s)
{
for (char *p = s; *p; p++)
*p = tolower(*p);
return s;
}
t_comandi leggiComando()
{
t_comandi c;
char cmd[MAXL];
char tabella[4][20] = {
"stampa", "adiacenza", "converti", "fine"};
printf("comando (stampa/adiacenza/converti/fine): ");
scanf("%s", cmd);
toLower(cmd);
c = r_print;
while (c < 4 && strcmp(cmd, tabella[c]) != 0)
c++;
return (c);
}
void menuParola(Graph G)
{
t_comandi comando;
int i, continua = 1;
while (continua)
{
comando = leggiComando();
switch (comando)
{
case r_print:
GRAPHprintOrdered(G);
break;
case r_adj:
GRAPHCheckVertexAdiacency(G);
break;
case r_build:
GRAPHbuildLadj(G);
break;
case r_fine:
continua = 0;
break;
default:
puts("Comando non valido\n");
}
}
}
int main(int argc, char const *argv[])
{
FILE * fp_read;
Graph G;
if (argc < 1) {
puts("Specifica il file tra gli argomenti");
return 1;
}
if ((fp_read = fopen(argv[1], "r")) == NULL)
{
puts("Impossibile aprire il file");
return 1;
}
G = GRAPHload(fp_read);
fclose(fp_read);
menuParola(G);
GRAPHfree(G);
return 0;
}