Relatório_LI3_Grupo1
-
Upload
joao-carlos-pereira -
Category
Documents
-
view
216 -
download
0
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