Programozó versenyek

Magas szintű programozási nyelvek 1, 2018. május 8., K16 ZH

2018. május 8. 16:15 – 2018. május 8. 18:00

Hiányzások

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 grades[10];
  7. };
  8. #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 hallgatók azonosítóként szolgáló nevei és a félév során szerzett érdemjegyei találhatók. Minden hallgató pontosan 10 érdemjegyet szerezhetett a félév során. Az érdemjegyek közé a struktúra grades mezőjének azokat az értékeit számítjuk, amelyek nem 0 értékűek. A tömbbeli 0 értékek azt jelzik, hogy a hallgató nem vett részt az adott számonkérésen.

A programja először is határozza meg és írja a standard kimenetre, hogy hány hallgató adatai szerepelnek a bináris állományban, majd írja ki az adataikat is oda a példa kimenetben látható formában (az érdemjegyek tömbbeli sorrendjét megtartva)! A hallgatók adatait a számonkérésekről való hiányzásaik darabszáma alapján rendezze növekvő sorrendbe! Ha ez alapján nem tudja két hallgató sorrendjét eldönteni, akkor az ő adataikat a nevük lexikografikusan növekvő sorrendjében írja a standard kimenetre! Figyeljen oda rá, hogy a sorok végén ne szerepeljenek felesleges szóköz karakterek!

Parancssori argumentumok

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

A futtatás egy lehetséges eredménye a standard kimeneten

  1. 4
  2. Thomas (3): 3 0 5 0 2 5 3 0 4 2
  3. Abigail (6): 2 0 3 4 0 0 2 0 0 0
  4. Robert (6): 0 4 0 5 0 5 0 4 0 0
  5. Peter (7): 0 0 0 2 0 0 5 0 0 3
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.