Relatório_LI3_Grupo1

download Relatório_LI3_Grupo1

of 36

Transcript of Relatório_LI3_Grupo1

  • 8/16/2019 Relatório_LI3_Grupo1

    1/36

    Escola de Engenharia

    Departamento de EngenhariaInformática

    Mestrado Integrado em Engenharia

    Informática

    Laboratórios de Informática III

    Relatório de Laboratórios deInformática III

    GereVendas(Trabalho Prático de C)

    Grupo 1:

    João Martins (A68646)

    João Pereira (A75273)

    Manel Castro (A71646)

  • 8/16/2019 Relatório_LI3_Grupo1

    2/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    Índice1& M'$los $e $a$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3

    ool&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3

    *en$a&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3

    A*"&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3

    #i+os en,era$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3

    Typedefs $e n./es&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&4

    Estrtras $e $a$os e ti+os e0+orta$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&5

    n./es $a API&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&6

    Cliente&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7

    Estrtras $e $a$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7

    n./es $a API&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8

    Pro$to&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8

    Estrtras $e $a$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

    n./es $a API&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

    "trins&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1

    Estrtras $e $a$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1

    ,ero $e trins +or +ina&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&11

    n./es $a API&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&11

    CatalooClientes&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&12

    Estrtras $e $a$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&12

    n./es $a API&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&14

    CatalooPro$s&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&15

    Estrtras $e $a$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&15

    n./es $a API&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&16

    atraao9lo:al&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&17

    Maros&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&17

    Estrtras $e $a$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&17

    ;eini.ão $e ti+os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1

    n./es $a API&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1

    ilial&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&22

    Me,Utils&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&23

    n./es $a API&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&23

    "eitra&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&23

    Maros&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&23

    n./es $a API&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&244& M'$lo +rini+al (,ain&)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&24

    1

  • 8/16/2019 Relatório_LI3_Grupo1

    3/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    Estrtras $e $a$os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&24

    "eitra $os iheiros e in

  • 8/16/2019 Relatório_LI3_Grupo1

    4/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    1Módulos de dados

    !ool

    > standard C8 (ta,:?, onhei$o o,o @AI C) não $eine o ti+o bool% +elo =eo+ta,os +or riar , +e=eno iheiro $esina$o +or bool.h% on$e inlB,os asseintes $eini./es

    Este ti+o oi tiliDa$o e, to$os os ,'$los e, =e e0iste,

  • 8/16/2019 Relatório_LI3_Grupo1

    5/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    typedef enum atoralano EK% EK% ;IFL FatorBalanco

    Typedefs de fun%&es

    ;a$a a enerali$a$e $as A*"s tiliDa$as e a neessi$a$e $e o,+ara.ão entre os

  • 8/16/2019 Relatório_LI3_Grupo1

    6/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    Estruturas de dados e tipos e'portados

    o iheiro avl.c enontra-se a $eini.ão $e $as estrtras $e $a$os

    TC%'AVL!

    typedef struct #C;GA*"A*"G>;>N raiDAtaliDa$or ataliDaCo,+ara$or o,+ara;+lia$or $+lia"i:ertaro$o li:ertaint ta,anho

    L #C;GA*"

    rai# ( a+onta$or +ara a raiD $aA*"atuali#ador ! a+onta$or +ara ,an.ão =e +er,ite ataliDar o

  • 8/16/2019 Relatório_LI3_Grupo1

    7/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    AVL')%)!

    typedef struct no$oA*"

    valor ! reerHnia $o

  • 8/16/2019 Relatório_LI3_Grupo1

    8/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    (un%&es da #)I

    • #"L criaAVL *#tuali+ador atuali+a,-omparador compara,Duplicador duplica,Libertar.odo liberta

    /

    -ria uma #"L 0a+ia, ue 0ai utili+ar a fun%2o de compara%2o 3compara3 # fun%2ode compara%2o 4 obrigatória #s restantes fun%&es s2o opcionais 5e n2o forfornecida uma fun%2o de atuali+a%2o, a #"L criada admite repeti%&es 5e n2o forpassada uma fun%2o de liberta%2o de nodos, a #"L criada utili+a a fun%2o free*/para libertar cada nodo

    AVISO: 5e o utili+ador n2o passar uma fun%2o de duplica%2o, n2o 4 criada umacópia auando da inser%2o de um 0alor na #"L e as fun%&es inorderAVL()  e

    procraAVL() de0ol0em o conte6do da própria #"L7!etorna:

    Em caso de sucesso 4 retornada a #"L criada 8uando n2o 4 fornecida umafun%2o de compara%2o ou há uma falha de aloca%2o, 4 de0ol0ido .9LL

    • #"L insereAVL *#"L ar0ore, 0oid 0al/

    Insere um 0alor numa #"L pre0iamente criada -aso tenha sido passado umduplicador auando da cria%2o da ar0ore, o 0alor inserido 4 uma cópia dooriginal -aso contrário, 4 o original!etorna:

    ;r0ore com o 0alor inserido em caso de sucesso .9LL em casos de falha de

    aloca%2o

    • #"L apagaAVL *#"L ar0ore/

    Liberta a memória alocada para guardar a #"L passada como par

  • 8/16/2019 Relatório_LI3_Grupo1

    9/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

  • 8/16/2019 Relatório_LI3_Grupo1

    10/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    (un%&es da #)I

    • -liente criaCliente *char codigo-liente/

    -ria um cliente com o código passado como par liente ria$o e, aso $e sesso& U"" e, aso $e alha $e aloa.ão&

    • -liente apagaCliente *-liente c/

    Liberta a memória alocada para guardar um cliente+etorna!

    T se,+re retorna$o U""&

    • char obterCodigoCliente *-liente c/

    +etorna!E, aso $e sesso% ? $e

  • 8/16/2019 Relatório_LI3_Grupo1

    11/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    Estruturas de dados

    o iheiro produto.c enontra-se a $eini.ão $a estrtra $e $a$os a seir ilstra$a

    -roduto!

    struct +ro$to harN o$ioPro$to

    L

    codigo-roduto ! a+onta$or +ara o'$io $o +ro$to& en$o$elara$o o,o , harN% o'$io $e +ro$to +o$e ter=al=er $i,ensão% ,a

  • 8/16/2019 Relatório_LI3_Grupo1

    12/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    • int co"paraCodigosProdto *)roduto p1, )roduto p?/

    -ompara os códigos de dois produtos!etorna:

    = de0ol0ido um 0alor @ A se o código de p1 for menor ue o de p?, B A se os

    códigos de p1 e p? forem iguais e C A se o código de p1 for maior ue o dep?

    • )roduto dplicaProdto *)roduto p/

    !etorna:

    Em caso de sucesso 4 de0ol0ida uma cópia do produto passado comopar

  • 8/16/2019 Relatório_LI3_Grupo1

    13/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    Mais ,a

  • 8/16/2019 Relatório_LI3_Grupo1

    14/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    !etorna:

    = sempre retornado .9LL

    13

  • 8/16/2019 Relatório_LI3_Grupo1

    15/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    int obter$"Pag *L5trings l/

    !etorna:.6mero da página atual da LStrings passada como par

  • 8/16/2019 Relatório_LI3_Grupo1

    16/36

    H#?IJ?

    H

    H#1K1LH

    H#1KAAH   H#?IMIH

    H#KLKNH

    H#KLNMH

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    letra&

    Partin$o $a anlise e0+osta no +arrao anterior% o r+o $elaro a structcatClientes-no iheiro catalogoClientes.c% a ilstra.ão +assa,os a a+resentar

    struct atClientes A*" atalooYMAZGA*"[

    L

    1A2'AVL ! ,aro =eorres+on$e ao

  • 8/16/2019 Relatório_LI3_Grupo1

    17/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    a struct catClientes& Assi,% catalogoClientes.h te,os a e0+ressão

    typedef struct atClientesN CatClientes

    16

  • 8/16/2019 Relatório_LI3_Grupo1

    18/36

  • 8/16/2019 Relatório_LI3_Grupo1

    19/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    -atalogo)rods

    > ,'$lo catalogo-rods ? se,elhante ao ,'$lo catalogoClientes% s '$ios $e +ro$to% tal o,o os '$ios $e liente% o,e.a, +or ,a $as 26 letras,aislas $o ala:eto& Al?, $isso% o ti+o $e o+era./es =e se +reten$e realiDar so:re, atloo $e +ro$tos ? i$Hntio ao ti+o $e o+era./es eeta$as so:re , atloo $elientes% loo a estrtra.ão =e esolhe,os +ara o atloo $e +ro$tos ? i$Hntia S=e oi a+resenta$a +ara o atloo $e lientes&

    A nia $ieren.a relati

  • 8/16/2019 Relatório_LI3_Grupo1

    20/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    (un%&es da #)I

    • -at)rods criaCatProds */

    #loca espa%o e iniciali+a um no0o catálogo de produtos

    +etorna!U, atloo $e +ro$tos

  • 8/16/2019 Relatório_LI3_Grupo1

    21/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    (aturacaoGlobal

    > ,'$lo Faturacao3lobal +er,ite o:ter inor,a./es relati

  • 8/16/2019 Relatório_LI3_Grupo1

    22/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    Partin$o $a anlise ai,a $esrita% o+ta,os +ela seinte estrtra.ão $os $a$os

    21

    FatAnual-rod (no$o $a A*"to$osPro$tos)

    struct atAnalPro$char" +ro$int

    totalUni$sYGI"IAI_1[L

    prod  ! String  o, o '$io $e ,+ro$tototal9nids  ! array  =e na +osi.ão$e Bn$ie i te, o n,ero $e ni$a$es

    $o +ro$to +ro$ G*E;A[YGI"IAI_1[

    L

    prod ! String o, o '$io $o +ro$to

  • 8/16/2019 Relatório_LI3_Grupo1

    23/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    Deni%2o de tipos

    Tipos au0iliares (i&e& $eini$os e, faturacao3lobal.c)

    As structs fat1es e fatAnual-rod são estrtras a0iliares& > tiliDa$or não neessita

    $e ter onhei,ento $as ,es,as +ara o:ter as r+o o+to ta,:?, +or e0+ortar o ti+o a:strato Fat-rod1es% =e não ? ,ais $o =ea reerHnia $a struct fat-rod1es% a i,+le,enta.ão o tiliDa$or $esonhee& Assi,%no iheiro faturacao3lobal.h te,os ta,:?,

    typedef struct atPro$Mes Fat-rod1es

    A raDão +ara e0+orta,os este ti+o est relaiona$a o, a *uery 4% ,a ra% a struct fat-rod1es te, to$as essas inor,a./es% +ortanto o+ta,os +or +er,itir=e o tiliDa$or o:tenha% o, a n.ão obterFat-rod1es$&% a reerHnia $a structfat-rod1es +ara o +ro$to e ,Hs =e +reten$e& Posto isto% o tiliDa$or +o$e% o,al,as $as n./es $a API $a atra.ão lo:al% o:ter inor,a.ão relati

  • 8/16/2019 Relatório_LI3_Grupo1

    24/36

  • 8/16/2019 Relatório_LI3_Grupo1

    25/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    !etorna:

    -ópia da fatura%2o do produto p, no mPs especicado, em caso de sucesso.9LL

    em caso de falha de aloca%2o

    • (at)rodMes apaga%atProd&es *(at)rodMes f)rodMes/

    Liberta a memória alocada para guardar o resultado de obter%atProd&es()!etorna:

    = sempre retornado .9LL

    • int totalnidsProd&es *const (at)rodMes f)rodMes, $ipo"enda tipo/

    Recebe a fatura%2o de um produto num mPs *obtida com obter%atProd&es())e um tipo de 0enda!etorna:

     $otal de unidades 0endidas globalmente, ue est2o registadas em f)rodMes,

    para o tipo de 0enda escolhido• int nidsPor%ilialProd&es *const (at)rodMes f)rodMes, $ipo"enda tipo/

    Recebe a fatura%2o de um produto num mPs *obtida com obter%atProd&es())e um tipo de 0enda!etorna:

    #rra> de ue na posi%2o de Qndice i tem o n6mero de 0endas registadas emf)rodMes, para a lial i e para o tipo de 0enda escolhido

    $ota: de forma a preser0ar o encapsulamento, o arra> de0ol0ido 4 uma cópiadauele ue se encontra em f)rodMes

    • double atracaoTotalProd&es *const (at)rodMes f)rodMes, $ipo"enda tipo/

    Recebe a fatura%2o de um produto num mPs *obtida com obter%atProd&es())e um tipo de 0enda!etorna:

    (atura%2o total a nQ0el global, registada em f)rodMes, para o tipo de 0endaescolhido

    • double atracaoPor%ilialProd&es  *const (at)rodMes  f)rodMes, $ipo"endatipo/

    Recebe a fatura%2o de um produto num mPs *obtida com obter%atProd&es())e um tipo de 0enda!etorna:

    #rra> de ue na posi%2o de Qndice i tem a fatura%2o total registada emf)rodMes, para a lial i e para o tipo de 0enda escolhido

    $ota: de forma a preser0ar o encapsulamento, o array  de0ol0ido 4 uma cópiadauele ue se encontra em f)rodMes

    • int *antos$aoCo"prados *const (aturacaoGlobal fg/

    Recebe uma fatura%2o global!etorna:

    24

  • 8/16/2019 Relatório_LI3_Grupo1

    26/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    .6mero de produtos ue n2o foram comprados em nenhuma lial, durante oano

    25

  • 8/16/2019 Relatório_LI3_Grupo1

    27/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    • L5trings naoCo"pradosGlobal *const (aturacaoGlobal fg/

    Recebe uma fatura%2o global!etorna:

    Lista de Strings na0egá0el com os produtos ue n2o foram comprados emnenhuma f lial, durante o ano

    • L5trings naoCo"pradosPor%ilial *const (aturacaoGlobal fg/

    Recebe uma fatura%2o global

    Retorna:

     Array de lista de strings em que a lista na posição i tem os códigos de todosos produtos que não foram comprados durante o ano na lial i.

    • char $"aisVendidos%ilial *const (aturacaoGlobal fg, int ., int lial/

    Recebe uma fatura%2o global, uma lial e um n6mero 3.3!etorna:

     Array  com os códigos dos 3.3 produtos mais 0endidos nessa lial, ordenadosdecrescentemente pelo total de 0endas

    (ilial

    S módulo %ilial permite obter informa%&es relati0as Ts compras reali+adaspor cada cliente, discriminando os códigos dos produtos comprados porcada cliente, o mPs e a lial onde foram comprados, os tipos de comprasue foram reali+ados *) eUou ./, o total gasto na compra desses produtos eo total de unidades compradas desse produto por mPs Este módulo foiestruturado com o obFeti0o de ter uma resposta eciente Ts seguintesqueries:

    • .O total de produtos comprados pelo cliente, mPs a mPs e porlial *+er, -/V

    • Lista ordenada de códigos de cliente ue reali+aram comprasem todas as liais *+er, ./

    • -ódigos e nO total de clientes ue compraram um produto,distinguindo as compras ) das . *+er, //V

    • Lista de códigos de produto ue um cliente mais comprou*+er, 0/V

    • -alcular os . produtos mais 0endidos em todo o ano, indicandopara cada lial, o total de clientes ue o compraram e o total deunidades 0endidas*+er,12/

    • -ódigo dos K produtos em ue um cliente mais gastou dinheirodurante o ano *+er, 11/

    • .6mero de clientes ue n2o reali+aram compras e n6mero deprodutos n2o 0endidos *+er, 13/

    $ota: neste módulo só se fa+ referencia a clientes ue +eram compras e aprodutos ue foram efeti0amente comprados, de maneira a tornar aestrutura mais le0e e tornar as tra0essiasUprocuras na ár0ore mais rápidas

    Estruturas de dadosAnalisan$o as =eries% ra+i$a,ente se +ere:e =e a ha

  • 8/16/2019 Relatório_LI3_Grupo1

    28/36

  • 8/16/2019 Relatório_LI3_Grupo1

    29/36

  • 8/16/2019 Relatório_LI3_Grupo1

    30/36

  • 8/16/2019 Relatório_LI3_Grupo1

    31/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    (un%&es da #)I

    • char leLinha *char buYer, int tamanho, (ILE stream/

    LP a partir de uma stream uma linha com o tamanho especicado no ?O

    argumento e guardaa no buYer passado como 1O argumento, sem o*s/caratere*s/ de neZline 52o lidos no má'imo 3tamanho3 [ 1 carateres, porue o6tlimo carater 4 o 3\A3 5e a stream for o stdin e carem carat4res no buYer domesmo após a leitura da linha, 4 feito o ush do stdin

    !etorna:5e for lido o ES( antes de ualuer outra carater, a fun%2o leLinha*/ de0ol0e.9LL, se n2o, de0ol0e a linha lida

    • int a'ancaEspacosInicio *char str/

    Recebe uma String

    !etorna:Índice do primeiro carater da Strings passada como parpehC

    • int leInt */

    LP um 0alor inteiro do stdin e fa+ o ]ush do mesmo, se necessário!etorna:

    Inteiro lido 5e n2o for possQ0el con0erter os carateres introdu+idos para um0alor interiro, 4 de0ol0ido A

    • double le5oble */

    LP um double do stdin e fa+ o ]ush do mesmo, se necessário!etorna:

    Double lido 5e n2o for possQ0el con0erter os carateres introdu+idos para umdouble, 4 de0ol0ido A

    • int leChar */

    LP um carater do stdin e fa+ o ]ush do mesmo, se necessário!etorna:

    = de0ol0ido o carater lido, em caso de sucesso Em caso de erro ou de end of le, 4 de0ol0ido ES(

    Módulo principal *mainc/

    U,a

  • 8/16/2019 Relatório_LI3_Grupo1

    32/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    catClientes - atloo $e lientes =e ar$a os lientes $o iheiro clientes.t0tcat-rods ! atloo $e +ro$tos =e ar$a os +ro$tos $o iheiro produtos.t0tfaturacao3lobal ! reerenia to$os os +ro$tos e ar$a inor,a.ão so:re a atra.ão,ensal $e a$a +ro$to e a atra.ão $o ano to$ofiliais ! array $e o,+ri,ento 4% a +osi.ão $e Bn$ie ar$a inor,a.ão relati

  • 8/16/2019 Relatório_LI3_Grupo1

    33/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    tiliDa$or não ti

  • 8/16/2019 Relatório_LI3_Grupo1

    34/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    33

  • 8/16/2019 Relatório_LI3_Grupo1

    35/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    .a0ega%2o

    Antes $e a+resentar,os a =erV 2% on

  • 8/16/2019 Relatório_LI3_Grupo1

    36/36

    MIEI - UMinho 216 ! "I3 ! #P $e C João Martins% João Pereira% Manel Castro

    •   pagAnt$&% pro0-ag$&% prim-ag$& e ultima-ag$&  são n./es $a API $eLtrings

    •   pergunta-ag$& e imprime>nformacaoLtrings$&   são n./es a0iliares$eini$as no iheiro main.c% ,a &

    o   pergunta-ag$& +ernta ao tiliDa$or +ara =e +ina +reten$e ir e seessa +ina or