Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifdef _MSC_VER
- #define _CRT_SECURE_NO_WARNINGS
- #endif
- #include <stdio.h> //Pouzite kniznice
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #include <ctype.h>
- typedef struct pozicka{
- char sign[15];
- char isbn[17];
- char kniha[105];
- char autor[105];
- int datum;
- int cislo;
- struct pozicka *dalsi;
- } POZICKA;
- POZICKA * funkcia_n(POZICKA *p_prv) {
- if (p_prv != NULL) {
- free(p_prv);
- }
- FILE *fr;
- char nic[70]; //Deklaracia ukazovatela na smernik
- POZICKA *p_akt;
- int n = 0, x, i;
- fr = fopen("kniznica.txt", "r"); //Otvorenie suboru na citanie
- if (fr == NULL) { //Osetrenie neotvorenia suboru
- printf("Zaznamy neboli nacitane\n");
- return 0;
- }
- while ((fgets(nic, 70, fr)) != NULL) { //Citanie po riadkoch po koniec suboru
- fgets(nic, 70, fr);
- fgets(nic, 70, fr);
- fgets(nic, 70, fr);
- fgets(nic, 70, fr);
- fscanf(fr, "%d\n", &x);
- fscanf(fr, "%d\n", &x);
- n++; //Pocet zaznamov
- }
- if ((p_prv = (POZICKA *) malloc(sizeof(POZICKA))) == NULL) {
- printf("Malo pamate.\n");
- return 0;
- }
- rewind(fr);
- fgets(nic, 20, fr);
- fgets(p_prv->sign, 15, fr);
- fgets(p_prv->isbn, 17, fr);
- fgets(p_prv->kniha, 105, fr);
- fgets(p_prv->autor, 105, fr);
- fscanf(fr, "%d", &p_prv->datum);
- fscanf(fr, "%d", &p_prv->cislo);
- p_akt = p_prv;
- for (i = 2; i <= n; i++) {
- if ((p_akt->dalsi = (POZICKA *) malloc(sizeof(POZICKA))) == NULL) {
- printf("Malo pamate.\n");
- return 0;
- }
- p_akt = p_akt->dalsi;
- fgets(nic, 20, fr);
- fgets(nic, 20, fr);
- fgets(p_akt->sign, 15, fr);
- fgets(p_akt->isbn, 17, fr);
- fgets(p_akt->kniha, 105, fr);
- fgets(p_akt->autor, 105, fr);
- fscanf(fr, "%d", &p_akt->datum);
- fscanf(fr, "%d", &p_akt->cislo);
- }
- printf("Nacitalo sa %d zaznamov\n", n);
- p_akt->dalsi = NULL;
- return p_prv;
- }
- POZICKA * funkcia_v(POZICKA *p_prv) {
- if (p_prv != NULL) {
- POZICKA *p_akt;
- p_akt = p_prv;
- int x=0;
- while (p_akt != NULL) {
- printf("%d.\n", ++x);
- printf("signatura: %s", p_akt->sign);
- printf("isbn: %s", p_akt->isbn);
- printf("nazov: %s", p_akt->kniha);
- printf("autori: %s", p_akt->autor);
- printf("datum: %d\n", p_akt->datum);
- printf("preukaz: %d\n", p_akt->cislo);
- p_akt = p_akt->dalsi;
- }
- return p_akt;
- }
- return 0;
- }
- void funkcia_p(POZICKA *p_akt) {
- int poz;
- scanf("%d", &poz);
- POZICKA *p_nov;
- printf("%d\n", poz);
- if ((p_nov->dalsi = (POZICKA *)malloc(sizeof(POZICKA))) == NULL) {
- printf("Malo pamate.\n");
- return 0;
- }
- }
- void funkcia_z() {
- char pole[30];
- int i = 0;
- scanf("%s", pole);
- while(pole[i])
- {
- putchar (toupper(pole[i]));
- i++;
- }
- printf("\n");
- //if(char *strstr(char *s1, char *s2)!= NULL)
- }
- void funkcia_h() {
- }
- void funkcia_a() {
- }
- int main() {
- char volba;
- POZICKA *p_prv=NULL, *p_akt=NULL;
- do {
- volba = getchar();
- switch (volba) {
- case 'n': p_prv = funkcia_n(p_prv); break;
- case 'v': p_akt = funkcia_v(p_prv); break; //Volanie funkcii
- case 'p': funkcia_p(p_akt); break;
- case 'z': funkcia_z(); break;
- case 'h': funkcia_h(); break;
- case 'a': funkcia_a(); break;
- }
- } while (volba != 'k');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement