/* Lessenrooster opzoek ding... */ #include #include #include #define MAANDAG 0 #define DINSDAG 1 #define WOENSDAG 2 #define DONDERDAG 3 #define VRIJDAG 4 #define ALL 5 #define ALL_UUR 9 typedef unsigned short int USHORT; struct conf { USHORT dag; USHORT uur; }; #define DAGMAX 5 static char * dagen[] = { "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "all" }; #define GODS 0 #define AARD 1 #define DUITS 2 #define ENG 3 #define FR 4 #define GESCH 5 #define LO 6 #define ZW 7 #define NED 8 #define WISK 9 #define TGT 10 #define LOT 11 #define INF 12 #define PVGT 13 #define THUIS 14 #define GET_LES(d, u) les[lessen[d][u]] static const char * les[] = { "Godsdienst", "Aardrijkskunde", "Duits", "Engels", "Frans", "Geschiedenis", "Lichamelijke opvoeding", "Zwemmen", "Nederlands", "Wiskunde", "Grafische Technologie", "Layout en ontwerp technieken", "Toegepaste informatica", "Praktijk", "Thuis..." }; static const int lessen[5][8] = { /* maandag */ { WISK, DUITS, FR, TGT, TGT, AARD, NED, ENG }, /* dinsdag */ { NED, ENG, LOT, LOT, PVGT, PVGT, PVGT, PVGT }, /* woensdag */ { LO, GODS, INF, INF, THUIS, THUIS, THUIS, THUIS, }, /* donderdag */ { PVGT, PVGT, PVGT, GODS, FR, WISK, TGT, TGT }, /* vrijdag */ { PVGT, PVGT, PVGT, ZW, LOT, LOT, TGT, GESCH } }; int conf_arg(char * argv[], struct conf *); void print_dag(USHORT dag); void usage(char * name); int conf_arg(char * argv[], struct conf * theConf) { int i, uur; for(i=0;i<=DAGMAX;i++) { if( (strcmp(argv[1], dagen[i]) == 0)) { theConf->dag = i; break; } if(i==DAGMAX) return -1; } if(strcmp(argv[2], "all") == 0) { theConf->uur = ALL_UUR; return 0; } uur = atoi(argv[2]); for(i=1;i<=8;i++) { if( uur == 0 | uur > 8) return -1; else theConf->uur = uur; } return 0; } void print_dag(USHORT dag) { int i; printf("%s:\n", dagen[dag]); for(i=1;i<=8;i++) { printf("\t%d: %s\n", i, GET_LES(dag, (i-1) )); } } void usage(char * name) { printf("usage: %s \n", name); printf("dag: geen kapitalen, mogelijkheden zijn:\n"); printf("\tmaandag\n\tdinsdag\n\tdonderdag\n\tvrijdag\n"); printf("lesuur: mogelijkheden zijn: 1, 2, 3 ... 8\n"); exit(1); } int main(int argc, char * argv[]) { int i; struct conf theConf; if(argc < 3) usage(argv[0]); if( (conf_arg(argv, &theConf)) == -1) { usage(argv[0]); } if(theConf.dag == ALL) { if(theConf.uur == ALL_UUR) { for(i=0;i<5;i++) print_dag(i); } else { printf("les uur %d:\n", theConf.uur); for(i=0;i<5;i++) printf("%s: %s\n", dagen[i], GET_LES(i, theConf.uur) ); } } else if(theConf.uur == ALL_UUR) print_dag(theConf.dag); else printf("les uur %d, %s: %s\n", theConf.uur, dagen[theConf.dag], GET_LES(theConf.dag, theConf.uur) ); return 0; }