Programozó versenyek

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

2018. május 8. 12:05 – 2018. május 8. 13:50

Érdemjegyek

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ó legalább 1, legfeljebb 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 (ezek a tömb elejétől követik egymást, az első 0 értéket követően már csak újabb 0 értékek szerepelnek a tömbben).

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 az általuk szerzett érdemjegyek darabszáma alapján rendezze csökkenő 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 (7): 3 5 2 5 3 4 2
  3. Abigail (4): 2 3 4 2
  4. Robert (4): 4 5 5 4
  5. Peter (3): 2 5 3
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.