Advertisement
Guest User

Untitled

a guest
Mar 28th, 2015
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.24 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <errno.h> //perror, errno
  5.  
  6. void list_bikes(int station_id){
  7.     printf("ID\tS_ID\tSTATUS\n");
  8.     FILE *f;
  9.     f = fopen("OP_BIKE", "r");
  10.     if (f==NULL){perror("File opening error\n"); exit(1);}
  11.     char line[160];
  12.     int bike_id;
  13.     int bike_station_id;
  14.     char status[50];
  15.     while (!feof(f))
  16.     {
  17.         fgets(line,sizeof(line),f);
  18.         sscanf(line,"%d %d %s",&bike_id,&bike_station_id,status);
  19.             if(station_id == 0 || station_id == bike_station_id)
  20.             {
  21.                 printf("%s",line);
  22.             }
  23.         }
  24.         printf("\n");
  25.         fclose(f);
  26. }
  27.  
  28. void list_rents(char* username){
  29.     printf("ID\tNAME\tACTION\t\tTIME\n");
  30.     FILE *f;
  31.     f = fopen("OP_BIKE.RENT", "r");
  32.     if (f==NULL){perror("File opening error\n"); exit(1);}
  33.     int bike_id;
  34.     char user_name[50];
  35.     char user_action[50];
  36.     char action_time[5];
  37.     char all[] = "all_";
  38.        char line[160];
  39.        while (!feof(f))
  40.     {
  41.         fgets(line,sizeof(line),f);
  42.         sscanf(line,"%d %s %s %s",&bike_id,user_name,user_action,action_time);
  43.         if(strcmp(user_name, username) == 0 || strcmp(all, username) == 0 )
  44.         {
  45.             printf("%s",line);
  46.         }    
  47.     }
  48.        printf("\n");
  49.        fclose(f);
  50. }
  51.  
  52. void add_bike()
  53. {
  54.     FILE *f;
  55.     f = fopen("OP_BIKE","a+");
  56.    
  57.     int bike_id;
  58.     int bike_station_id;
  59.     char status[50];
  60.    
  61.     printf("Add meg a bicikli adatait:");
  62.     printf("\nBicikli azonositoja:\t");
  63.     scanf("%d",&bike_id);
  64.     printf("\nAllomas azonositoja:\t");
  65.     scanf("%d",&bike_station_id);
  66.     printf("\nBicikli statusza:\t");
  67.     scanf("%s",status);
  68.    
  69.     fprintf(f,"%d\t%d\t%s",bike_id, bike_station_id, status);
  70.    
  71.     fclose(f);
  72.     printf("Bicikli hozzaadva\r\n");
  73. }
  74.  
  75. void copy_file(const char *from,const char *to)
  76. {
  77.     FILE *f;
  78.     FILE *temp;
  79.     f = fopen(from,"r");
  80.     temp = fopen(to,"w");
  81.     int length;
  82.     char line[160];
  83.     while(fgets(line,sizeof(line),f) != NULL)
  84.     {
  85.         length = strlen(line);
  86.         printf("%d ,",length);
  87.         if( strcmp(" ",line) != 0){
  88.             fputs(line,temp);  
  89.         }
  90.     }
  91.    
  92.     fclose(f);
  93.     fclose(temp);
  94.    
  95.     remove("TEMP");
  96. }
  97.  
  98. void delete_wrong_bikes()
  99. {
  100.     FILE *f;
  101.     FILE *temp;
  102.     f = fopen("OP_BIKE","r");
  103.     temp = fopen("TEMP","w");
  104.     char line[160];
  105.    
  106.     while(fgets(line,sizeof(line),f) != NULL)
  107.     {
  108.         int bike_id;
  109.         int bike_station_id;
  110.         char status[50];
  111.         char wrong[] = "rossz";
  112.  
  113.         sscanf(line,"%d %d %s",&bike_id,&bike_station_id,status);
  114.         if( strcmp(status,wrong) != 0 )
  115.         {
  116.             fputs(line,temp);
  117.         }
  118.     }
  119.    
  120.     printf("Sikeres törles\n");
  121.     //remove("OP_BIKE");
  122.     //rename("TEMP","OP_BIKE");
  123.  
  124.     fclose(f);
  125.     fclose(temp);
  126.  
  127.     copy_file("TEMP","OP_BIKE");
  128. }
  129.  
  130. void rent_or_return_bike(int i, char* username,char* action_time)
  131. {
  132.     FILE *f;
  133.     FILE *temp;
  134.     f = fopen("OP_BIKE","r");
  135.     temp = fopen("TEMP","w");
  136.     char line[160];
  137.     int station_index;
  138.     char status_at_i[50];
  139.     int found = 0;
  140.     while(fgets(line,sizeof(line),f) != NULL)
  141.     {
  142.         int bike_id;
  143.         int bike_station_id;
  144.         char status[50];
  145.  
  146.         sscanf(line,"%d %d %s",&bike_id,&bike_station_id,status);
  147.         if(i != bike_id)
  148.         {
  149.             fputs(line,temp);
  150.         }
  151.         else
  152.         {
  153.             if(strcmp("rossz",status) != 0)
  154.             {
  155.                 found = 1;
  156.                 station_index = bike_station_id;
  157.                 strcpy(status_at_i,status);
  158.             }
  159.         }
  160.     }
  161.     remove("OP_BIKE");
  162.     rename("TEMP","OP_BIKE");
  163.  
  164.     fclose(f);
  165.     fclose(temp);
  166.    
  167.     if(found == 1)
  168.     {
  169.         FILE *f1;
  170.         FILE *f2;
  171.         f1 = fopen("OP_BIKE","a");
  172.         f2 = fopen("OP_BIKE.RENT","a");
  173.         if (strcmp(status_at_i,"szabad") != 0){
  174.             fprintf(f1,"\n%d\t%d\t%s",i, station_index, "szabad");
  175.             fprintf(f2,"\n%d\t%s\t%s\t%s",i, username, "visszahozas", action_time);
  176.             printf("Sikeres visszavétel\n");
  177.         } else {
  178.             fprintf(f1,"\n%d\t%d\t%s",i, station_index, "foglalt");
  179.             fprintf(f2,"\n%d\t%s\t%s\t%s",i, username, "kolcsonzes", action_time);
  180.             printf("Sikeres kölcsönzés\n");
  181.         }
  182.         fclose(f1);
  183.         fclose(f2);
  184.     }
  185.     else
  186.     {
  187.         printf("Nem található szabad bicikli.\n");
  188.     }
  189.     printf("\n");  
  190. }
  191.  
  192. int main()
  193. {
  194.     int exit = 0;
  195.     char c = '0';
  196.     while(exit != 'E'){
  197.         printf("1. Kerékpárok teljes listázása\n");
  198.         printf("2. Egy állomás kerékpárjainak listázása\n");
  199.         printf("3. Rossz kerékpárok törlése\n");
  200.         printf("4. Új hozzáadása\n");
  201.         printf("5. Kölcsönzése // Visszahozása\n");
  202.         printf("6. Kölcsönzések teljes listázása\n");
  203.         printf("7. Egy személy kölcsönzésének listázása\n");
  204.         printf("E. Kilépés\n\n");
  205.         scanf("%s", &c);
  206.         char name[50];
  207.         char time[50];
  208.         char all[5] = "all_";
  209.         int i;
  210.        
  211.         switch(c){
  212.             case '1':
  213.                 list_bikes(0);
  214.                 break;
  215.             case '2':
  216.                 printf("\nÁllomás azonosítóját: ");
  217.                 scanf("%d", &i);
  218.                 list_bikes(i);
  219.                 break;
  220.             case '3':
  221.                 delete_wrong_bikes();
  222.                 break;
  223.             case '4':
  224.                 add_bike();
  225.                 break;
  226.             case '5':
  227.                 printf("\nBicikli azonosítóját: ");
  228.                 scanf("%d", &i);
  229.                 printf("\nAdja meg a felhasználónevét: ");
  230.                 scanf("%s", name);
  231.                 printf("\nAdja meg a kölcsönzés vagy a visszavitel idejét (oo:pp): ");
  232.                 scanf("%s", time);
  233.                 rent_or_return_bike(i, name, time);
  234.                 break;
  235.             case '6':
  236.                 list_rents(all);
  237.                 break;
  238.             case '7':
  239.                 printf("\nAdja meg a felhasználónevét: ");
  240.                 scanf("%s", name);
  241.                 list_rents(name);
  242.                 break;
  243.             case 'E':
  244.                 exit = 'E';
  245.                 break;
  246.         }
  247.     }
  248.    
  249.     return 0;
  250. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement