1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
#include <stdio.h>
#include <string.h>
void raamatu_lugemine(int arv, int arv2, char andmebaas[50][100], int pikkus);
int safe_atoi ( const char * str );
char safe_strcpy (char * str2, const char * str );
//Object, mis käsitleb raamatu infot
struct Raamat{
char Raamat[50];
char Eesnimi[50], Perekonnanimi[50];
int Ilmumisaasta, Lehtedearv;
char Keel[50];
char Hinne;
char Loetud[50];
};
//Põhiprogrammi algus
int main()
{
char sisend_rida[50];
char andmebaas [50][100];
struct Raamat Raamat;
char g[10];
int x = 0;
int y = 4;
int pikkus = -1;
FILE *SF;
SF = fopen("andmebaas.txt", "r");
// Andmete lugemine jadasse
int i;
for(i = 0; i <= 100 && ! feof(SF); i++){
fgets(sisend_rida,50, SF);
strcpy(andmebaas[i],sisend_rida);
pikkus++;
}
fclose (SF);
for( i = 0; i <= 100; i++){
strcpy(sisend_rida, andmebaas[i]);
//tutvustus
printf("\n\n");
printf("Koostasin kogumiku raamatutest, mida olen lugenud ning lisasin ka selliseid, mida soovin lugeda lähiajal.\n\n\n");
//5 esimest raamatut
raamatu_lugemine(x, y, andmebaas,pikkus);
while(1){
printf("j = 5 järgmist kirjet, e = 5 eelmist kirjet, v = väljub\n");
scanf("%s", g);
if(g =="j"){
x = x+5;
y = y+5;
raamatu_lugemine(x,y,andmebaas,pikkus);
}
if(g =="e"){
x = x-5;
y = y-5;
raamatu_lugemine(x,y,andmebaas,pikkus);
}
if(g == "v"){
break;
}
}
system("pause");
return 0;
}
}
//Andmerea töötlemine loetavale kujule
void raamatu_lugemine(int arv,int arv2, char andmebaas[50][100],int pikkus)
{
struct Raamat Raamat;
char sisend_rida[50];
int l;
for(l = arv; l <= arv2 && l <= pikkus; l++){
safe_strcpy(sisend_rida, andmebaas[l]);
safe_strcpy(Raamat.Raamat,strtok(sisend_rida, "###"));
Raamat.Ilmumisaasta = safe_atoi(strtok(NULL, "###"));
Raamat.Lehtedearv = safe_atoi(strtok(NULL, "###"));
safe_strcpy(Raamat.Eesnimi, strtok(NULL, "###"));
safe_strcpy(Raamat.Perekonnanimi, strtok(NULL, "###"));
safe_strcpy(Raamat.Keel, strtok(NULL, "###"));
safe_strcpy(Raamat.Loetud, strtok(NULL, "###"));
Raamat.Hinne = safe_atoi(strtok(NULL, "###"));
printf("Raamat '%s' ", Raamat.Raamat);
printf("[%s]; ", Raamat.Keel);
printf("%s ", Raamat.Eesnimi);
printf("%s; ", Raamat.Perekonnanimi);
printf("%d aasta; ", Raamat.Ilmumisaasta);
printf("%d lk, ", Raamat.Lehtedearv);
printf("%s ", Raamat.Loetud);
printf("(%d/10)\n\n", Raamat.Hinne);
}
}
int safe_atoi ( const char * str ){
if (str == NULL){
return -1;
}
return atoi(str);
}
char safe_strcpy (char * str2, const char * str ){
if (str == NULL){
return -1;
}
return strcpy(str2, str);
}
|