Programozó versenyek

Programozási nyelvek 1, 2019. május 15., Sz10 ZH

2019. május 15. 10:05 – 2019. május 15. 11:50

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

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 határozza meg és írja a standard kimenetre a példa kimenetben megadott módon, hogy mekkora volt a forgalom az egyes órákban a nap folyamán! Az időpontokat (az órákat) növekvő sorrendben sorolja fel, de csak azok az időpontok jelenjenek meg a felsorolásban, amelyekben történt tényleges ki- vagy befelé történő mozgás!

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. 8: 3
  2. 9: 1
  3. 10: 1
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.