Advertisement
Guest User

Untitled

a guest
May 30th, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.55 KB | None | 0 0
  1. /*
  2.  * main.c
  3.  *
  4.  *  Created on: 31-05-2015
  5.  *      Author: Piotrek
  6.  */
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include <string.h>
  10.  
  11. /*
  12.  * TO SA FUNKCJE KRZYSKA, PRZEKLAIŁEM JE ZEBY DZIALALO
  13.  * TU NIC NIE ZMIENIAJ AŻ DO NAPISU: "TUTAJ SIE ZACZYNAJA TWOJE FUNKCJE"
  14.  * */
  15.  
  16. struct flight{
  17.     char flight_id[20];
  18.     char flight_from[50];
  19.     char flight_to[50];
  20.     char flight_start_date[11];
  21.     char flight_start_time[6];
  22.     char flight_finish_date[11];
  23.     char flight_finish_time[6];
  24.     char flight_max_seats[20];
  25.     //char flight_status[20];
  26.  
  27.     //char test[255];
  28. } Tab[200];
  29. int number_of_flights;
  30.  
  31. void loadDataFromFile()
  32. {
  33.    number_of_flights=0;
  34.    int i;
  35.    static const char filename[] = "flights_db.txt";
  36.    FILE *file = fopen ( filename, "r" );
  37.    if ( file != NULL )
  38.    {
  39.  
  40.         for(i=0; i<200; ++i)
  41.         {
  42.            if (fscanf(file, "%[^;;];;%[^;;];;%[^;;];;%[^;;];;%[^;;];;%[^;;];;%[^;;];;%s\n",
  43.             Tab[i].flight_id,
  44.             Tab[i].flight_from,
  45.             Tab[i].flight_to,
  46.             Tab[i].flight_start_date,
  47.             Tab[i].flight_start_time,
  48.             Tab[i].flight_finish_date,
  49.             Tab[i].flight_finish_time,
  50.             Tab[i].flight_max_seats) <=0)
  51.              break;
  52.              ++number_of_flights;
  53.  
  54.  
  55.         }
  56.       fclose ( file );
  57.    }
  58.    else
  59.    {
  60.       perror ( filename ); /* why didn't the file open? */
  61.    }
  62. }
  63.  
  64. void printFlight(int struct_id)
  65. {
  66.    printf("Lot nr %s z %s do %s.\n", Tab[struct_id].flight_id, Tab[struct_id].flight_from, Tab[struct_id].flight_to);
  67.    printf("Odlot z %s w dniu %s o godz. %s\n", Tab[struct_id].flight_from, Tab[struct_id].flight_start_date, Tab[struct_id].flight_start_time);
  68.    printf("Przylot do %s w dniu %s o godz. %s\n", Tab[struct_id].flight_to, Tab[struct_id].flight_finish_date, Tab[struct_id].flight_finish_time);
  69.    printf("Maksymalna liczba miejsc: %s\n\n", Tab[struct_id].flight_max_seats);
  70. }
  71.  
  72. void printAllFlights()
  73. {
  74.      int i;
  75.      for(i=0; i<number_of_flights; ++i)
  76.         {
  77.            printFlight(i);
  78.         }
  79. }
  80.  
  81.  
  82.  
  83.  
  84. /*
  85.  * TUTAJ SIE ZACZYNAJA TWOJE FUNKCJE
  86.  * */
  87.  
  88.  
  89.  
  90.  
  91. void save_flight_structure_to_file() {
  92.   // zapis tablicy Tab do pliku
  93.     // pętla po wszystkich elementach identycznie jak w funkcji find_flight_by_id()
  94.     // i w każdym obiegu zapis linijki do pliku
  95. }
  96.  
  97. int find_flight_by_id(char* id) { // zwraca indeks tablicy, w ktorym znajduje sie szukany rekord
  98.  
  99.     int i;
  100.     for(i=0; i<number_of_flights; ++i)
  101.        {
  102.           if (strcmp(id, Tab[i].flight_id) ==0) //strings match
  103.           {
  104.              return i;
  105.           }
  106.        }
  107.     return -1;
  108. }
  109.  
  110. int main(void)
  111. {
  112.     loadDataFromFile(); // funkcja Krzyska, laduje z pliku do tablicy wszystkie loty
  113.     printAllFlights();  // funkcja Krzyska, wyswietla wczytana tablice z lotami
  114.  
  115.     char id[20] = "6";  // id rekordu, który chcemy usunąć albo wyedytować
  116.     int index = find_flight_by_id(id);
  117.  
  118.     printf("%d", index);  // to nam wywietli indeks tablicy Tab, w którym znajduje się ten rekord
  119.  
  120.  
  121.     // mozna się teraz do niego dostać :
  122.     // Tab[index].flight_id
  123.     // Tab[index].flight_date
  124.     // itd..
  125.     // można w ten sposób podmienić wartoci tych pol
  126.  
  127.     // jesli zas bedzie usuwanie, to mozna wszystkie pola tego elementu wykasować
  128.     // zrobić puste, podstawiając = "" dla każdego pola
  129.     // natomiast w funkcji save_flight_structure_to_file()
  130.     // sprawdzać w tej pętli czy biezacy element nie jest pusty
  131.     // i jesli tak - nie zapisywac go do pliku
  132.  
  133.  
  134.  
  135.     return 0;
  136. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement