SDA Tema 2

De la WikiLabs
Jump to navigationJump to search

În medicină, există aplicații software, de tip daemon (rezidente în memorie) care anunță personalul medical dacă detectează, după anumite euristici, că un pacient are risc crescut pentru o anumită afecțiune. Aceste aplicații monitorizează o bază de date care este în permanență actualizată cu rezultate de analize și diagnostice.

Pentru această temă, veți realiza o variantă foarte simplă a acestui sistem.

Cerință

Să se scrie o aplicație software care să poată verifica o listă de pacienți, și să printeze o listă cu toți pacienții care îndeplinesc anumite condiții.

Informații suplimentare

O înregistrare de tip ”pacient” trebuie să conțină următoarele informații:

  • nume;
  • vărstă;
  • CNP;
  • telefon;
  • o mulțime (set) de fanioane care să specifice dacă pacientul suferă de următoarele afecțiuni:
    • presiune arterială mare (PA);
    • obezitate (O);
    • nivel scăzut al fierului în sânge (Fe-);
    • nivel ridicat de glicemie în sânge (Gl+);
    • nivel ridicat de acid uric în sânge (UA+);

Se vor face următoarele verificări și se va specifica dacă pacientul prezintă riscul specificat:

  • vârsta > 25 și obezitate și presiune arterială mare -> risc de infart;
  • nivel scăzut al fierului în sânge -> anemie;
  • obezitate și nivel ridicat de glicemie în sânge -> risc de diabet;
  • vârsta > 40 și nivel ridicat de acid uric în sânge -> risc de gută;

Date de intrare

În fișierul pacients.csv (Comma Separated Values) se află pe fiecare linie o înregistrare de forma:

nume prenume,varsta,telefon,fanion_1,fanion_2,..,fanion_n

Exemplu:

Vasile Adrian,38,1831111111111,0711111111,O,PA
Ghita Marian,20,1831111111112,0711111112,Fe-
Vasile Adina,41,2851111111111,0711111111,UA+
Micsunel Ion,7,1901111111111,0712121212,O,Gl+
Fanel Bosu,18,1881111111111,0712121213,O,Fe-,Gl+

Date de ieșire

Pentru fiecare afecțiune se va creea un fișier separat în care se vor scrie pacienții suspectați.

Exemplu:

  • infart.csv
Vasile Adrian,38,1831111111111,0711111111,O,PA
  • anemie.csv
Ghita Marian,20,1831111111112,0711111112,Fe-
Fanel Bosu,18,1881111111111,0712121213,O,Fe-,Gl+
  • diabet.csv
Micsunel Ion,7,1901111111111,0712121212,O,Gl+
Fanel Bosu,18,1881111111111,0712121213,O,Fe-,Gl+
  • guta.csv
Vasile Adina,41,2851111111111,0711111111,UA+

Restricții

  • Pentru a stoca informațiile despre pacienți, se va folosi o listă simplu înlănțuită.

Livrabile

Tema submisă va conține: unul sau mai multe fișiere .cpp/.c/.h care să fie compilabile pe cel puțin o platformă (sistem de operare + compilator), și un document pdf care să conțină o analiză a complexității în timp și spațiu și o listă cu sugestii de optimizare.

Modalitatea de submitere

Tema va fi submisă pe e-mail, la adresa homework@dcae.pub.ro. Subiectul va fi [SDA-2][NUME][GRUPA]. Fișierele vor fi atașate mesajului, NEARHIVATE.

Atenție: Singurul fișier binar va fi documentul pdf. Orice alt binar (executabil, dll, so, etc.) atașat mesajului va face ca acesta să fie respins de server-ul de e-mail și în consecintă să nu primiți nici un punct pe temă.

Atenție: Temele vor fi verificate anti-plagiat cu soft-uri specializate. Orice temă copiată va fi penalizată (atât sursa cât și copia) cu 100% din punctaj, fără posibilitate de refacere.