sa

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define SOUBOR "trida.csv"
#define VYSTUP "vystup.html"
#define BUFFER 300
#define ODDELOVAC ";\n"

char * rodneCislo(const char * y,const char * x) {
char den[10]="";
char mesic[10] = "";
char rok[10] = "";
char pohl[10] = "";
char rCislo[50];
den[0] = y[0];
if (y[1] == '.') {
den[0] = '0';
den[1] = y[0];
mesic[0] = y[2];
if (y[3] == '.') {
mesic[0] = '0';
mesic[1] = y[2];
rok[0] = y[6];
rok[1] = y[7];
}
else {
mesic[1] = y[3];
rok[0] = y[7];
rok[1] = y[8];
}
}
else {
den[1] = y[1];
mesic[0] = y[3];
if (y[4] == '.') {
mesic[0] = '0';
mesic[1] = y[3];
rok[0] = y[7];
rok[1] = y[8];
}
else {
mesic[1] = y[4];
rok[0] = y[8];
rok[1] = y[9];
}
}
strcpy(rCislo, rok);
strcat(rCislo, mesic);
strcat(rCislo, den);

pohl[0] = x[0];
if (pohl[0] == 'F')
return atoi( rCislo+5000);
else
return rCislo;
}



char *rosneCislo(const char *rodneCislo){
char *datumNar = (char*) malloc(11*sizeof(char));
char den[3],mesic[3],rok[5];
int i = 0;
strncpy(rok,rodneCislo,2);
rok[2]='\0';
strncpy(mesic,rodneCislo+2,2);
mesic[2]='\0';
strncpy(den,rodneCislo+4,2);
den[2]='\0';

if(atoi(mesic)>50)
itoa(atoi(mesic)-50,mesic,10);
else
itoa(atoi(mesic),mesic,10);

itoa(atoi(den),den,10);

if(atoi(rok)>=54||strlen(rodneCislo)<10)
itoa(atoi(rok)+1900,rok,10);
else
itoa(atoi(rok)+2000,rok,10);

strcpy(datumNar,den);
strcat(datumNar,".");
strcat(datumNar,mesic);
strcat(datumNar,".");
strcat(datumNar,rok);

return datumNar;
}

int main() {
typedef struct {
char prijmeni[50];
char jmeno[50];
char narozen[50];
int absence;
char trida[10];
char pohlavi[5];
}STRUKTURA;

char mujString[BUFFER];
int radek = 0;
int pozice;
int index;
char * pch;
int vetsiAbsence[50];
for (int s = 0;s < 50;s++)
vetsiAbsence[s] = 0;
int nejvetsi = 0;
STRUKTURA struktura[100];

FILE * soubor;
soubor = fopen(SOUBOR, "rt");
if (soubor == NULL)
{
printf("Soubor %s se nepodarilo otevrit\n", SOUBOR);
return -1;
}
while (fgets(mujString, BUFFER, soubor) != NULL)
{
if (radek > 0) {
pozice = 0;
pch = strtok(mujString, ODDELOVAC);
while (pch != NULL)

{
switch (pozice) {
case 0:
strcpy(struktura[radek - 1].prijmeni, pch);
break;
case 1:
strcpy(struktura[radek - 1].jmeno, pch);
break;
case 2:
strcpy(struktura[radek - 1].narozen, pch);
break;
case 3:
struktura[radek - 1].absence = atoi(pch);
break;
case 4:
strcpy(struktura[radek - 1].trida, pch);
break;
case 5:
strcpy(struktura[radek - 1].pohlavi, pch);
break;

}
pch = strtok(NULL, ODDELOVAC);
pozice++;
}

}
radek++;
}
radek--;

if (fclose(soubor) == EOF)
printf("Soubor %s nebyl uzavren", SOUBOR);

FILE * vystup;
vystup = fopen(VYSTUP, "wt");
if (soubor == NULL)
{
printf("Soubor %s se nepodarilo otevrit\n", SOUBOR);
return -1;
}

int pole[50];
for (int i = 0;i < radek;i++)
pole[i] = struktura[i].absence;
fprintf(vystup,"Prijmeni jmeno narozen absence trida pohlavi rodne Cislo");
printf(" Prijmeni jmeno narozen absence trida pohlavi rodne Cislo\n");
int k = 0;
int s = 0;
int absence = 0;
int sestupne[30];
while (k == 0) {
for (int i = 0;i < radek;i++) {
if (pole[i] > nejvetsi) {
nejvetsi = pole[i];
index = i;
}
}
vetsiAbsence[s] = nejvetsi;
nejvetsi = 0;
pole[index] = 0;
s++;
if (s == radek)
k = 2;

}
int cislo = 1;
for (int i = 0;i < radek;i++){
for (int y = 0;y < radek;y++)
if (struktura[y].absence == vetsiAbsence[i]) {
if (struktura[y].absence == 15) {
if (cislo == 1) {
printf("%10s", struktura[y].prijmeni);
printf("%10s", struktura[y].jmeno);
printf("%10s", struktura[y].narozen);
printf("%10d", vetsiAbsence[i]);
printf("%10s", struktura[y].trida);
printf("%10s", struktura[y].pohlavi);
printf("%10d\n", rodneCislo(struktura[y].narozen, struktura[y].pohlavi));
cislo = y;
}
}
else {
printf("%10s", struktura[y].prijmeni);
printf("%10s", struktura[y].jmeno);
printf("%10s", struktura[y].narozen);
printf("%10d", vetsiAbsence[i]);
printf("%10s", struktura[y].trida);
printf("%10s", struktura[y].pohlavi);
printf("%10d\n", rodneCislo(struktura[y].narozen,struktura[y].pohlavi));
}
}
absence += struktura[i].absence;
}
printf("\nCelkova absence je %d\n", absence);
for(int p=0;p<radek;p++)
if(struktura[p].absence==vetsiAbsence[0])
printf("Nejvetsi absence je %d a ma ji %s %s", vetsiAbsence[0],struktura[p].prijmeni,struktura[p].jmeno);


getchar();
return 0;
}
fprintf(pFile,"<h1>Studenti narozeni v Opave</h1>\n");
fprintf(pFile,"<table>");
fprintf(pFile,"<tr>");
fprintf(pFile,"<th>Jmeno</th>");
fprintf(pFile,"<th>Prijmeni</th>");
fprintf(pFile,"<th>Misto narozeni</th>");
fprintf(pFile,"<th>Datum narozeni</th>");
fprintf(pFile,"<th>Absence</th>");
fprintf(pFile,"<th>Prumer</th>");
fprintf(pFile,"</tr>");

for(pozice=0;pozice<radek;pozice++){
if(strcmp (studenti[pozice].mr,"Opava") == 0){
fprintf(pFile,"<tr>");
fprintf(pFile,"<td>%s</td>",studenti[pozice].jmeno);
fprintf(pFile,"<td>%s</td>",studenti[pozice].prijmeni);
fprintf(pFile,"<td>%s</td>",studenti[pozice].mr);
pch = datum(studenti[pozice].rc);
fprintf(pFile,"<td>%s</td>",pch);
free(pch);
fprintf(pFile,"<td>%d</td>",studenti[pozice].absence);
fprintf(pFile,"<td>%.2f</td>",studenti[pozice].prumer);
fprintf(pFile,"</tr>");
Last edited on
Topic archived. No new replies allowed.