Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include <errno.h> //perror, errno
- void list_bikes(int station_id){
- printf("ID\tS_ID\tSTATUS\n");
- FILE *f;
- f = fopen("OP_BIKE", "r");
- if (f==NULL){perror("File opening error\n"); exit(1);}
- char line[160];
- int bike_id;
- int bike_station_id;
- char status[50];
- while (!feof(f))
- {
- fgets(line,sizeof(line),f);
- sscanf(line,"%d %d %s",&bike_id,&bike_station_id,status);
- if(station_id == 0 || station_id == bike_station_id)
- {
- printf("%s",line);
- }
- }
- printf("\n");
- fclose(f);
- }
- void list_rents(char* username){
- printf("ID\tNAME\tACTION\t\tTIME\n");
- FILE *f;
- f = fopen("OP_BIKE.RENT", "r");
- if (f==NULL){perror("File opening error\n"); exit(1);}
- int bike_id;
- char user_name[50];
- char user_action[50];
- char action_time[5];
- char all[] = "all_";
- char line[160];
- while (!feof(f))
- {
- fgets(line,sizeof(line),f);
- sscanf(line,"%d %s %s %s",&bike_id,user_name,user_action,action_time);
- if(strcmp(user_name, username) == 0 || strcmp(all, username) == 0 )
- {
- printf("%s",line);
- }
- }
- printf("\n");
- fclose(f);
- }
- void add_bike()
- {
- FILE *f;
- f = fopen("OP_BIKE","a+");
- int bike_id;
- int bike_station_id;
- char status[50];
- printf("Add meg a bicikli adatait:");
- printf("\nBicikli azonositoja:\t");
- scanf("%d",&bike_id);
- printf("\nAllomas azonositoja:\t");
- scanf("%d",&bike_station_id);
- printf("\nBicikli statusza:\t");
- scanf("%s",status);
- fprintf(f,"%d\t%d\t%s",bike_id, bike_station_id, status);
- fclose(f);
- printf("Bicikli hozzaadva\r\n");
- }
- void copy_file(const char *from,const char *to)
- {
- FILE *f;
- FILE *temp;
- f = fopen(from,"r");
- temp = fopen(to,"w");
- int length;
- char line[160];
- while(fgets(line,sizeof(line),f) != NULL)
- {
- length = strlen(line);
- printf("%d ,",length);
- if( strcmp(" ",line) != 0){
- fputs(line,temp);
- }
- }
- fclose(f);
- fclose(temp);
- remove("TEMP");
- }
- void delete_wrong_bikes()
- {
- FILE *f;
- FILE *temp;
- f = fopen("OP_BIKE","r");
- temp = fopen("TEMP","w");
- char line[160];
- while(fgets(line,sizeof(line),f) != NULL)
- {
- int bike_id;
- int bike_station_id;
- char status[50];
- char wrong[] = "rossz";
- sscanf(line,"%d %d %s",&bike_id,&bike_station_id,status);
- if( strcmp(status,wrong) != 0 )
- {
- fputs(line,temp);
- }
- }
- printf("Sikeres törles\n");
- //remove("OP_BIKE");
- //rename("TEMP","OP_BIKE");
- fclose(f);
- fclose(temp);
- copy_file("TEMP","OP_BIKE");
- }
- void rent_or_return_bike(int i, char* username,char* action_time)
- {
- FILE *f;
- FILE *temp;
- f = fopen("OP_BIKE","r");
- temp = fopen("TEMP","w");
- char line[160];
- int station_index;
- char status_at_i[50];
- int found = 0;
- while(fgets(line,sizeof(line),f) != NULL)
- {
- int bike_id;
- int bike_station_id;
- char status[50];
- sscanf(line,"%d %d %s",&bike_id,&bike_station_id,status);
- if(i != bike_id)
- {
- fputs(line,temp);
- }
- else
- {
- if(strcmp("rossz",status) != 0)
- {
- found = 1;
- station_index = bike_station_id;
- strcpy(status_at_i,status);
- }
- }
- }
- remove("OP_BIKE");
- rename("TEMP","OP_BIKE");
- fclose(f);
- fclose(temp);
- if(found == 1)
- {
- FILE *f1;
- FILE *f2;
- f1 = fopen("OP_BIKE","a");
- f2 = fopen("OP_BIKE.RENT","a");
- if (strcmp(status_at_i,"szabad") != 0){
- fprintf(f1,"\n%d\t%d\t%s",i, station_index, "szabad");
- fprintf(f2,"\n%d\t%s\t%s\t%s",i, username, "visszahozas", action_time);
- printf("Sikeres visszavétel\n");
- } else {
- fprintf(f1,"\n%d\t%d\t%s",i, station_index, "foglalt");
- fprintf(f2,"\n%d\t%s\t%s\t%s",i, username, "kolcsonzes", action_time);
- printf("Sikeres kölcsönzés\n");
- }
- fclose(f1);
- fclose(f2);
- }
- else
- {
- printf("Nem található szabad bicikli.\n");
- }
- printf("\n");
- }
- int main()
- {
- int exit = 0;
- char c = '0';
- while(exit != 'E'){
- printf("1. Kerékpárok teljes listázása\n");
- printf("2. Egy állomás kerékpárjainak listázása\n");
- printf("3. Rossz kerékpárok törlése\n");
- printf("4. Új hozzáadása\n");
- printf("5. Kölcsönzése // Visszahozása\n");
- printf("6. Kölcsönzések teljes listázása\n");
- printf("7. Egy személy kölcsönzésének listázása\n");
- printf("E. Kilépés\n\n");
- scanf("%s", &c);
- char name[50];
- char time[50];
- char all[5] = "all_";
- int i;
- switch(c){
- case '1':
- list_bikes(0);
- break;
- case '2':
- printf("\nÁllomás azonosítóját: ");
- scanf("%d", &i);
- list_bikes(i);
- break;
- case '3':
- delete_wrong_bikes();
- break;
- case '4':
- add_bike();
- break;
- case '5':
- printf("\nBicikli azonosítóját: ");
- scanf("%d", &i);
- printf("\nAdja meg a felhasználónevét: ");
- scanf("%s", name);
- printf("\nAdja meg a kölcsönzés vagy a visszavitel idejét (oo:pp): ");
- scanf("%s", time);
- rent_or_return_bike(i, name, time);
- break;
- case '6':
- list_rents(all);
- break;
- case '7':
- printf("\nAdja meg a felhasználónevét: ");
- scanf("%s", name);
- list_rents(name);
- break;
- case 'E':
- exit = 'E';
- break;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement