This is an old revision of the document!


Tema 0: Parc Auto

Obiective

  • Înțelegerea conceptului de makefile
  • Înțelegerea operațiilor pe fișiere
  • Pregătirea setup-ului pentru realizarea temelor propuse la PA

Informații

  • Deadline hard, 20.03.2022 ora 23:59 (termen limită - nu se obţin puncte pe soluţiile trimise mai târziu)
  • Checker-ul offline îl puteţi descărca de la această adresă
  • Informații despre ce este un makefile gasiți aici și aici
  • Setup-urile recomandate de către noi le găsiți aici

Descriere

Evolutia tehnologica ca ajuns si la Parcul Auto ACS. Acestia au aflat ca sarcinile simple, repetite cat si statisticile pot fi facute de catre un program software fara sa mai fie nevoie de interventie umana. Ei te-au contactat pe tine pentru a le rezolva urmatoarele cerinte de business si a livra produsul mult dorit. Ce zici, te poti descurca???

Cerințe

  1. Masinile trebuie citite dintr-un fisier de intrare si inventariate (Hint: Trebuie stocate intr-un vector).
  2. Pe baza masinilor aflate in inventar (in vector) se doreste elaborarea unei statistici in care masinile sunt grupate in functie de marca. (Vezi sectiunea Exemplu)
  3. Deoarece masinile aflate in inventar nu sunt sortate aflabetic, acestea trebuie sortate alfabetic.
  4. Se doreste implementarea unui demo folosind inventarul generat la cerinta 3.
    • Toate masinile care au marca Audi si BMW o sa fie vandute.
    • Se doreste scrierea profitului intr-un fisier.
    • Masinile ramase trebuie scrise intr-un fisier.
    • Se doreste actualizarea statisticii de la cerinta 3.

Punctaje si Detalii Tehnice

Punctaje:

  • Cerinta 1: 20%
  • Cerinta 2: 30%
  • Cerinta 3: 50%

Detalii Tehnice

  • Rezultate obtinute in urma executarii cerintelor vor fi scrise in fisierul rezultate.out
  • Pentru cerinta 2 este suficient sa salvati masinile din fisierul de date.in intr-un vector.
  • Pentru cerinta 3 trebuie sa afisati pe cate o linie marca (ordonate aflabetic) si numarul de masini din aceasta marca.
  • Pentru cerinta 4 este nevoie sa prelucrati vectorul de la cerinta 2 si sa eliminati toate masinile care au fost vandute, dupa care in fisierul de rezultate se vor scrie pe cate o linie masinile ramase si pe ultimul rand profitul generat.
masina
typedef struct Masina
{
    char* marca;
    char *model;
    char tokenMasina[11];
    int pretAchizitie;
    int pretVanzare;
}Masina;

tokenMasina este folosit un token unic pentru fiecare masina inregistrata in sistem.

Formula de calcul a profitului unei masini este: diferenta intre pretul de vanzare si pretul de achizitie.

Exemplu

Fisierele folosite de checker arata astfel:

cerinte.in
1 1 0 //se executa primele 2 cerinte
date.in
Chevrolet Malibu fuvjx4hgj4 4236 4199 //Marca Model tokenMasina pretAchizitie pretVanzare
Chevrolet Silverado wjckx944uj 7693 7494
Ford Transit iumj7qirqq 3214 9045
Volvo 850 bv55fq9ewq 2640 13400
Toyota LandCruiser fdm98gbg9j 3358 8395
Chevrolet Silverado3500HD 98kskdu1cr 1570 11285
Toyota T100 0yi1ocmlxn 4156 8313
Toyota Avalon x8fu5lo3m9 8920 3916
Audi A8 340fvt339e 4720 7764
Ford Taurus sqaybhpqj4 3013 13071
Audi S7 2qyapt359a 5705 3122
Audi RS5 nj3l315y1x 3254 11875
Chevrolet Cavalier h2uwk5jfev 8632 10334
Suzuki SX4 ikn8ntwin4 2036 6299
Ford Econoline d71a92ggfp 6788 12876
Mercedes-Benz Mercedes-AMG yx6196wdcm 5032 3670
Mercedes-Benz E-Class k6xeulilfw 5390 3272
BMW M5 lce7r3xqpr 6919 8237
BMW 1Series c36jtvjrcu 9557 11029
Toyota Tundra xx4e32mtje 4739 7576
Audi A6 amsbl4aixl 5463 8885
Chevrolet Express2500 etxita8lic 3976 11103
Chevrolet Malibu q2dip9g0uy 7012 5473
Toyota Highlander wll61s7abu 1278 7862
BMW X5 ndizj7lng2 2168 14999
Ford Taurus 1yklhcll8a 3515 9764
BMW 3Series 61lxnbay0c 6692 13222
Subaru Outback z3bohgt66y 5152 14411
Toyota RAV4 3n6wpwsbqk 6415 7899
Chevrolet 3500RegularCab ynyb4usatm 8344 10074
Suzuki Esteem qqdl4gg4r3 6926 10475
Ford Fiesta dwhod1a3w5 9995 8986
Toyota Mirai zn7jpf4dgp 5806 8925
Subaru BRZ 0ibdu3n47t 2987 3046
Chevrolet Silverado3500RegularCab di5qz4ctha 6154 9158
Ford F150SuperCrewCab btvw4mv2sp 2881 13344
Suzuki Sidekick 7s0t39eqv4 6138 9737
Audi A3 wt98fnpsku 3816 8993
Volvo V40 foi01znl24 6604 12283
Chevrolet Suburban ke07khg1wn 4121 4704
BMW 3Series 8gwhddclcg 2940 14865
BMW 5Series 8fpkfs7s9d 6058 13860
Chevrolet S10RegularCab ej39lnz1yx 1959 4909
Mercedes-Benz SLK-Class 4mq9w00wct 9604 4864
Mercedes-Benz CLK-Class paau62q56q 1477 2391
BMW 3Series b9cjvyigx8 2537 8550
Volvo S80 ecckdo9w15 6974 5722
Chevrolet Tahoe dbrxothpyq 6090 8724
Chevrolet Silverado2500ExtendedCab 8hjbf1lawn 4233 5724
Suzuki Forenza gwy39uds1x 6570 14382
Toyota Sienna 15gahw2a8m 9993 5753
BMW 7Series iwt8aj2f1e 7574 4039
Chevrolet Suburban2500 s8n1lzdhoh 5647 12661
Toyota Venza 9talylt0aw 9172 8073
BMW Z8 jtkj5yah8d 4419 3555
Chevrolet Express2500Cargo rtdzkluhzv 7121 6344
Toyota Solara qd2e31qfea 9097 3876
Chevrolet 2500HDExtendedCab fdynp19zvv 4872 11748
Mercedes-Benz GL-Class vx76yxbusp 9662 13709
Suzuki XL7 eubccl50z8 9941 8858
Audi S4 h4fypxixl3 1426 2159
Chevrolet Silverado3500HDDoubleCab 35cse4kh2g 5663 6144
Audi R8 l9yemh4o7s 2700 10268
Suzuki Sidekick vso1roz3jh 1015 12114
Chevrolet MonteCarlo hxndajs1vt 7664 4659
Ford Tempo 1zgvfh28dz 9736 5658
BMW X6M cehy5p1etb 5277 8173
Mercedes-Benz SL-Class bwf7kqwxhk 8869 2059
Chevrolet AstroPassenger v8u756ch1q 1227 6945
Volvo XC60 d74pgn1jr3 4597 9293
Chevrolet AstroPassenger oeb7nbhzz3 5484 9114
Chevrolet MonteCarlo dxicke039w 4459 2305
Chevrolet Corvette 03csuxba2j 3487 5648
BMW i3 u7oxxpbtyh 7063 11547
Mercedes-Benz S-Class 8fpbnytl97 5861 2550
Toyota Sienna fekobhuk9q 3653 10226
Audi SQ5 7xzrdl789e 8026 13481
Chevrolet Camaro 1fdvkaff97 6782 8672
Toyota TundraRegularCab qtn2cb81do 3917 9485
Toyota Yaris 0wmoet0ckn 6826 9275
Toyota T100RegularCab y1utoatdx9 7540 9268
Ford ZX2 phq6gizhai 4280 5014
Toyota TacomaAccessCab t6z75k03uk 3095 6238
BMW 5Series fd87u478yu 5683 4932
Ford AerostarCargo njplbpsu17 2316 11598
Ford EconolineE350SuperDutyPassenger 5oztzr564w 7033 14428
Chevrolet CaptivaSport eb0w6njon1 7613 14421
BMW M3 h5lu0yhf5a 7487 14686
BMW 2Series tu0hcyuull 8761 8223
BMW M5 xhufxomt2a 8498 2105
Suzuki Samurai nn3gyxfhzi 4604 5385
BMW X1 wz9scdwfub 4866 13652
Toyota Celica 8vizxavjhh 4999 9110
Ford F150SuperCrewCab xpl2sx2ems 9412 14889
Mercedes-Benz S-Class michnuq50l 6074 8807
Audi RS5 enr5upnj4i 1325 10167
Mercedes-Benz SLK-Class lrymd54qbl 3483 10785
BMW M5 mnkklofeuc 4453 12889
Volvo XC90 sj31svafqu 1759 10259
BMW i8 f8bpc93f6i 4000 13873
rezultate.out
Audi 9
BMW 18
Chevrolet 23
Ford 11
Mercedes-Benz 9
Subaru 2
Suzuki 7
Toyota 16
Volvo 5

Executabilul obținut în urma compilării va avea numele parcAuto, iar regula de rulare va fi:

./parcAuto cerinte.in date.in rezultate.out marci.in

Reguli de trimitere

  • Puteţi încărca mai multe soluţii, se va lua în considerare ultima solutie incarcata, termen limita x
  • Arhiva temei va avea numele GrupaSerie_Nume_Prenume_TemaNr.zip și va fi încărcată pe moodle.
  • Arhiva trimisă conține (direct în rădăcină):
    1. Fişierul sau fişierele (.c si .h) cu codul programului;
    2. Makefile-ul (cu regulile make build și make clean). Executabilul generat trebuie să se numească parcAuto;

Restricții

  • Implementarea se va face folosind limbajul C;
  • Nu se acceptă implementări cu tipuri de date cu memorie alocată static (se acceptă numai variabile locale de tip buffer pentru stocare temporară înainte de alocare);
  • Se va depuncta lucrul nemodularizat (functii cu mai mult de 40 de linii). Implementarea temei se face folosind funcții ce au nume sugestive - Ex: ordonareInventarAlfabetic, calculProfit, stergereMasina, etc. Orice alte manipulări de date se fac, pe cat posibil, prin funcții specializate.
  • Memoria trebuie eliberată. Dacă nu se respectă această cerință depunctarea este de pana la 10/100 pct.
  • Menţineţi cel puţin un nivel minimal de aspect al codului şi evitaţi inconsistenţa (indentare haotică, numeroase combinaţii de caractere de tip „leading/trailing whitespace“, numirea variabilelor şi a funcţiilor în ordinea literelor din alfabet);
  • Se va depuncta cu pana 15% din punctajul obtinut implementarea care nu foloseste tipuri de date specifice pentru entitiatile din cerinta (ex: Masina)
sda-ab/tema0.1647109625.txt.gz · Last modified: 2022/03/12 20:27 by ruben_gilian.udroiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0