#include #include #include #include //Prototipoak void TaulaHasieratu (float *erak, int lerro, int zutabe); void TaulaPantailaratu (float *erak, int lerro, int zutabeak); void main () { //ALDAGAI ERAZAGUPENA int auk, i, j, taldea, ikaslea; int Gai, EzGai, Aurkeztu, EzAurkeztu; float NotakT [100][4], nota; //0 zutabea: laborategi-nota //1 zutabea: lan-nota //2 zutabea: azterketa-nota //3 zutabea: nota finala clrscr(); TaulaHasieratu (&NotakT[0][0], 100, 4); do{ //do1 puts ("\nSakatu tekla bat"); getch(); TaulaPantailaratu (&NotakT[0][0], 100, 4); do{ //do2 puts ("\n\n1.- AZTERKETA NOTAK"); puts ("2.- LABORATEGI-TALDE BATEN NOTAK"); puts ("3.- LANEN NOTAK"); puts ("4.- IKASLE BATEN NOTA FINALA"); puts ("5.- LABORATEGI-TALDE BATEN NOTA GUZTIAK"); puts ("6.- AZTERKETA ESTATISTIKAK"); puts ("7.- PROGRAMATIK IRTEN"); puts ("\tAukeratu bat:"); scanf ("%i", &auk); }while (auk <1 || auk > 7); //do2 bukaera clrscr(); switch (auk) {case 1: { ////////////////////////// /* Ikasle GUZTIEN azterketa nota gorde */ for (i = 0; i < 100; i++) { do{ printf ("%d ikasleak ze azterketa nota du? ", i+1); scanf ("%f", &NotakT[i][2]); }while ((NotakT[i][2] < 0 || NotakT[i][2] > 10) && NotakT[i][2] != -1); } break;} case 2: { ////////////////////////// /* Laborategi talde baten laborategi-notak gorde */ do{ puts ("Emaidazu talde zenbakia:"); scanf ("%i", &taldea); }while (taldea < 1 || taldea >5); for (i = (taldea -1) * 20; i <= (taldea-1)* 20 + 20-1; i++) { do{ printf ("%d ikasleak ze laborategi nota du? ", i+1); scanf ("%f", &NotakT[i][0]); }while ((NotakT[i][0] < 0 || NotakT[i][0] > 10) && NotakT[i][0] != -1); } break; } case 3: { ////////////////////////// /* Lanen-notak gorde */ ikaslea = 1; while (ikaslea != 0) {do{ puts ("Ikasle eta lan-nota adierazi"); scanf ("%d %f", &ikaslea, ¬a); }while ((ikaslea < 0 || ikaslea > 100) || ((nota<0||nota>10) && nota!=-1)); if (ikaslea !=0) { NotakT[ikaslea-1][1] = nota;} } break; } case 4: { ////////////////////////// /* Ikasle baten Nota Finala kalkulatu */ clrscr(); printf("\n\tIkasle baten zenbakia zehaztu (1 - 100): "); scanf("%d",&ikaslea); while (ikaslea<1 || ikaslea>100) /* datua baieztatu */ { printf("\t\tOker. Sakatu berriro: "); scanf("%d",&ikaslea); } if (NotakT[ikaslea-1][2] == -1) //Azterketa-nota { NotakT[ikaslea-1][3] = 0; } else { NotakT[ikaslea-1][3] = 0.7 * NotakT[ikaslea-1][2]; } if (NotakT[ikaslea-1][1] == -1) //Lana { NotakT[ikaslea-1][3] += 0; } else { NotakT[ikaslea-1][3] += 0.2 * NotakT[ikaslea-1][1]; } if (NotakT[ikaslea-1][0] == -1) //Laborategi-nota { NotakT[ikaslea-1][3] += 0; } else { NotakT[ikaslea-1][3] += 0.1 * NotakT[ikaslea-1][0]; } printf ("\n\t%d ikaslearen nota finala %f da.\n", ikaslea, NotakT[ikaslea-1][3]); break; } case 5: { ////////////////////////// /* Laborategi-talde bateko nota guztiak pantailaratu */ do{ puts ("Emaidazu talde zenbakia:"); scanf ("%i", &taldea); }while (taldea < 1 || taldea >5); puts ("\n\n\t\tLabo Lana Azterketa Finala"); for (i = (taldea -1) * 20; i <= (taldea-1)* 20 + 20-1; i++) { printf("%d ikaslea:",i+1); for (j=0; j<4; j++) { printf("%10.2f",NotakT[i][j]); } puts(""); } break; } case 6: { /////////////////////////// /* Azterketa estatistikak */ clrscr(); printf("\n\tAzterketaren notak aztertuz ... \n"); for (EzAurkeztu=0, Aurkeztu=0, EzGai=0, Gai=0, ikaslea=0; ikaslea<100; ikaslea++) { if (NotakT[ikaslea][2] == -1) { EzAurkeztu ++; } else { Aurkeztu++; if (NotakT[ikaslea][2] < 5) { EzGai++; } else { Gai++; } } } printf("\n\n\tEz Aurkeztutakoak: %d (ikasle guztien %% %0.2f).", EzAurkeztu, (EzAurkeztu*100.0/(Aurkeztu+EzAurkeztu))); printf("\n\tAurkeztutakoak: %d (ikasle guztien %% %0.2f).", Aurkeztu, (Aurkeztu*100.0/(Aurkeztu+EzAurkeztu))); if (Aurkeztu != 0) { printf("\n\t\tEz Gaiditutakoak: %d (aurkeztutakoen %% %0.2f).", EzGai, (EzGai*100.0/Aurkeztu)); printf("\n\t\tGainditutakoak: %d (aurkeztutakoen %% %0.2f).", Gai, (Gai*100.0/Aurkeztu)); } break; } default: { puts ("\n AGUR..."); } }//switch bukaera }while (auk != 7); //do1 bukaera puts ("\nSakatu tekla bat"); getch(); } //main bukaera void TaulaPantailaratu (float *erak, int lerro, int zutabe) {int i, j; puts ("\n\n\t Labo Lana Azt Finala"); for (i=0; i < lerro; i ++) {printf ("\n%3d. ikaslea: ", i+1); for (j=0; j < zutabe; j ++) {printf ("%6.2f", *erak); erak++; } } } void TaulaHasieratu (float *erak, int lerro, int zutabe) {int i, j; for (i=0; i < lerro; i ++) {for (j=0; j < zutabe; j ++) {*(erak)= -1; erak++;} } }