Procesare de date PERL referat






Procesare de date.

         Exemplu: Tabel cu rezultatele studentilor.

Programul produce un raport cu rezultatele studentilor la examene, combinand date din doua fisiere ce contin informatii despre studenti respectiv notele obtinute de fiecare la examene.

            Fisierul de intrare studenti are campurile delimitate prin : si contine pe fiecare linie numarul matricol, numele si anul in care este studentul.

            28602:Muresan Robert:2

            38601:Pop Ioan:3

            48000:Pop Vasile:1

            Fisierul de intrare note are campurile delimitate prin spatii si contine pe fiecare linie numarul matricol, examenul, si numarul de credite obtinute.

            28602 1 4

            38601 1 2

            48000 1 1

            28602 2 5

            38601 2 3

            Se observa ca Pop Vasile a lipsit la al 3-lea examen.

           

            Raportul afisat de program arata in felul urmator:

           

            Nr. Mat    Nume                  1    2    Total

            28602      Muresan Robert   4    5    9

            38601      Pop Ioan              2    3    5

            48000      Pop Vasile           1           1

                                           Total:     7    8   

Programul care a generat acest raport este urmatorul:

            #! usr/bin/perl

            # Catalog de Note - pentru demonstrarea lucrului cu sistemul I/O, liste asociative             # sortare si formatarea unui raport

            # Programul accepta orice numar de studenti si examene, respectiv trateaza si    # cazurile cand anumite informatii lipsesc.

            $studfile = 'studenti';

            $notfile = 'note';

            # Daca fisierele se pot deschide, atunci perl nu mai evalueaza si restul expresiei ce             # urmeaza dupa ||

            open (NUME,'<studfile') || die 'Nu pot deschide fisierul $studfile! n';

            open(NOTE,'<notfile') || die 'Nu pot deschide fisierul $notfile! n';

           

            # Construieste o lista asociativa cu informatiile despre studenti folosind ca si      # cheie, numarul matricol

           

            while(<NUME>) = $nume;

                        if (length($nume) > $maxlengthnume)

            }





            close NUME;

            # Construieste un tabel cu notele de la exemene

            while(<NOTE>) = split;

                        $nota = $nota;

                        if ($nrexam > $maxnrexam)

            }

            close NOTE;

            # Tipareste raportul cu datele citite

            printf '%6s %-$s ','Nr. Mat','Nume';

            foreach $nrexam(1..$maxnrexam)

            printf '%10snn','Total:';

           

            #  Subrutina dupanume este folosita pentru sortarea sirului %nume

            #  Functia 'sort' transmite variabilele $a si $b subrutinelor pe care le apeleaza

            # Functia ' x cmp y ' returneaza  -1 daca x < y , 0 daca x=y si 1 daca x > y.

            sub dupanume cmp $nume}

           

            # Ordoneaza numerele matricole astfel incat numele studentilor sa apara in         # ordine alfabetica

            foreach $nrmat(sort dupanume keys(%nume)){

                        # Tipareste creditele obtinute si totalul pentru fiecare student

                        printf '%6d %-$s ', $nrmat,$nume;

                        $total = 0;

                        foreach $nrexam(1..$maxnrexam){

                                    printf '%4s',$nota;

                                    $total += $nota($nrmat,$nrexam);

                                    $examtot($nrexam) += $nota($nrmat,$nrexam);

                        }

                        printf '%10dn',$total;

            }

            printf 'n%6s %$s ',' ','Total: ';

            foreach $nrexam(1..$maxnrexam);

            }

            printf 'n';

            exit(0).










Copyright © Contact | Trimite referat


Ultimele referate adaugate
Mihai Beniuc
   - Mihai beniuc - „poezii"
Mihai Eminescu Mihai Eminescu
   - Mihai eminescu - student la berlin
Mircea Eliade Mircea Eliade
   - Mircea Eliade - Mioara Nazdravana (mioriţa)
Vasile Alecsandri Vasile Alecsandri
   - Chirita in provintie de Vasile Alecsandri -expunerea subiectului
Emil Girlenu Emil Girlenu
   - Dragoste de viata de Jack London
Ion Luca Caragiale Ion Luca Caragiale
   - Triumful talentului… (reproducere) de Ion Luca Caragiale
Mircea Eliade Mircea Eliade
   - Fantasticul in proza lui Mircea Eliade - La tiganci
Mihai Eminescu Mihai Eminescu
   - „Personalitate creatoare” si „figura a spiritului creator” eminescian
George Calinescu George Calinescu
   - Enigma Otiliei de George Calinescu - geneza, subiectul si tema romanului
Liviu Rebreanu Liviu Rebreanu
   - Arta literara in romanul Ion, - Liviu Rebreanu

















Cauta referat
Scriitori romani