Programozó versenyek

Programozási nyelvek 1, 2019. május 16., Cs14 ZH

2019. május 16. 14:05 – 2019. május 16. 15:50

A nagy testvér figyel téged! #12

Adott a következő fejlécállomány:

myheader.h

  1. #ifndef _MYHEADER_H
  2. #define _MYHEADER_H 1
  3. struct element
  4. {
  5.     char name[20];
  6.     int hour;
  7.     int minute;
  8. };
  9. #endif /* myheader.h */
letöltés szöveges állományként

Írjon programot, amelynek egyetlen parancssori argumentuma van, egy bináris állomány neve! A bináris állomány struct element típusú rekordjaiban dolgozóknak egy épületbe történő be- és kilépési idejei találhatók. A dolgozókat a nevükkel azonosítjuk, nincs két azonos nevű dolgozó. Az adatokat az épület nyitásától gyűjtjük, és feltételezhetjük, hogy az épület a nyitáskor üres volt. Amikor egy dolgozó be- vagy kilép az épületből, egy-egy újabb rekord kerül rögzítésre ebbe az állományba.

A programja írja a standard kimenetre a dolgozók neveit lexikografikusan növekvő sorrendben! Minden dolgozó neve mellett jelenítse meg a példa kimenetben látható módon azt is, hogy mikor lépték át utoljára az épület küszöbét (az mindegy, hogy melyik irányban)! Az időpont formázásánál ügyeljen rá, hogy a perc adatokat minden esetben két számjeggyel adja meg (vezető nulla számjeggyel, ha szükséges)!

Egy employees.bin bináris állományt generáló példaprogram

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "myheader.h"
  4. int main()
  5. {
  6.     struct element t[] =
  7.     {
  8.         {"Peter", 8, 0},
  9.         {"Molly", 8, 5},
  10.         {"George", 8, 10},
  11.         {"Peter", 9, 0},
  12.         {"George", 10, 15}
  13.     };
  14.     FILE *f = fopen("employees.bin", "wb");
  15.     fwrite(t, sizeof(t), 1, f);
  16.     fclose(f);
  17.     return EXIT_SUCCESS;
  18. }
letöltés szöveges állományként

Parancssori argumentumok

  1. employees.bin
letöltés szöveges állományként

A futtatás eredménye a standard kimeneten

  1. George: 10.15
  2. Molly: 8.05
  3. Peter: 9.00
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.