#include<stdio.h>
#include<time.h>
#define FILES 7
#define COLUMNES 5
int menu();
void mostrarhorari(int horari[FILES][COLUMNES],char dies[6][20]);
void dieshorescredit(int horari[FILES][COLUMNES]);
void totalhores(int horari[FILES][COLUMNES]);
void inicialitza_matriu(int horari[FILES][COLUMNES]);
void printa_dia(int);
void printa_hora(int);
int main()
{
char horari[FILES][COLUMNES];
char dies[6][20]={"Hores ", "Dilluns ", "Dimarts ", "Dimecre ", "Dijous ", "Divendres n"};
int fin,opcio;
inicialitza_matriu(horari);
do
{
opcio=menu();
fin=0;
switch(opcio)
{
case 1:
mostrarhorari(horari,dies);
break;
case 2:
dieshorescredit(horari);
break;
case 3:
totalhores(horari);
break;
case 4:
fin=1;
default:
printf("Opcio Incorrecte n");
}
if(fin==0)
{
printf("nn");
getchar();
getchar();
}
}while(fin==0);
}
int menu()
{
int op;
printf("Programa per a la creacio de un horari n");
printf("1) Mostrar Horarin");
printf("2) Dies i Hores d'un determinat creditn");
printf("3) Hores setmanals d'un determinat creditn");
printf("4) Sortir n");
do
{
printf("Escull una opción: ");
scanf("%d", &op);
if ((op != 1) && (op !=2) && (op != 3) && (op != 4))
{
printf("Opcio incorrecte n");
}
}while (op < 1 || op > 4);
return op;
}
void mostrarhorari(int horari[FILES][COLUMNES],char dies[6][20])
{
int i,j,h;
for(h=0;h<=6;h++){
printf("%s",dies[h]);
}
for(i=0;i<FILES;i++)
{
printf("%d:00",15+i);
for(j=0;j<COLUMNES;j++)
{
printf(" %s ",horari[i][j]);
h++;
}
printf("n");
}
}
void dieshorescredit(int horari[FILES][COLUMNES])
{
int i,j;
char credit[10];
printf("nnDies i hores que s'imparteix un credit n");
do
{
printf("nnEscull el credit (Introdueix la primera lletra en mayuscula): n");
printf("-Matesn-Cataln-Socian-Fisicn-Casten");
fflush(stdin);
scanf("%s", &credit);
printf("%s",credit);
if((credit!='Mates') || (credit!='Catal') || (credit!='Socia') || (credit!='Fisic') || (credit!='Caste'))
printf("Error no has escollit una opcio correcte.n RECORDA: La primera lletra te que se mayuscula.n");
}while((credit!='Mates') || (credit!='Catal') || (credit!='Socia') || (credit!='Fisic') || (credit!='Caste'));
for(i=0;i<FILES;i++)
{
for(j=0;j<COLUMNES;j++)
{
if (credit==horari[i][j])
{
printa_dia(j);
printa_hora(i);
}
}
}
}
void totalhores(int horari[FILES][COLUMNES])
{
int i,j,hora1=0,hora2=0,hora3=0,hora4=0,hora5=0;
printf("nnSuma d'hores setmanals de cada credit: nn");
for(i=0;i<FILES;i++)
{
for(j=0;j<COLUMNES;j++)
{
if (horari[i][j]=='Mates')
hora1=hora1+1;
if (horari[i][j]== 'Catal')
hora2=hora2+1;
if (horari[i][j]=='Socia')
hora3=hora3+1;
if (horari[i][j]=='Fisic')
hora4=hora4+1;
if (horari[i][j]== 'Caste')
hora5=hora5+1;
}
}
printf("El numero de hores setmanals de Matematiques es: %d horesn",hora1);
printf("El numero de hores setmanals de Catala es: %d horesn",hora2);
printf("El numero de hores setmanals de Socials es: %d horesn",hora3);
printf("El numero de hores setmanals de Fisica es: %d horesn",hora4);
printf("El numero de hores setmanals de Castella es: %d horesn",hora5);
}
void inicialitza_matriu(int horari[FILES][COLUMNES])
{
int i,j;
srand(time(NULL));
for(i=0;i<FILES;i++)
{
for(j=0;j<COLUMNES;j++)
{
horari[i][j]=rand()%5+1;
switch(horari[i][j])
{
case 1:
horari[i][j]=("Mates");;
break;
case 2:
horari[i][j]=("Catal");
break;
case 3:
horari[i][j]=("Socia");
break;
case 4:
horari[i][j]=("Fisic");
break;
case 5:
horari[i][j]=("Caste");
break;
}
}
}
}
void printa_dia(int dia)
{
switch(dia)
{
case 0:
printf("Dilluns ");
break;
case 1:
printf("Dimarts ");
break;
case 2:
printf("Dimecres ");
break;
case 3:
printf("Dijous ");
break;
case 4:
printf("Divendres ");
break;
}
}
void printa_hora(int hora)
{
switch(hora)
{
case 0:
printf("15:00n");
break;
case 1:
printf("16:00n");
break;
case 2:
printf("17:00n");
break;
case 3:
printf("18:00n");
break;
case 4:
printf("19:00n");
break;
case 5:
printf("20:00n");
break;
case 6:
printf("21:00n");
break;
}
}