Baixe o app para aproveitar ainda mais
Prévia do material em texto
ESTRUTURAS AVANÇADAS DE DADOS E ANÁLISES RIO DE JANEIRO, JUNHO DE 2023 A2 Equipe Professor Eduardo Pareto Andre Antunes de Mesquita Ferraz - 1150100650 Daniel Abdo Roale - 1210200049 Ivan Ramalho Tonial - 1210101588 O Projeto Análise de etapas existentes em uma loja virtual; Elaboração do grafo no papel; Análise e definição dos pesos das etapas; Temática: E-commerce Desenvolvimento da aplicação; Implementação do algoritmo PERT/CPM que resulta no caminho crítico do grafo; Design Home PLP Search Wishlist Account Checkout ShippingAddress ShippingMethod creditcard applepay Etapas Filter PDP Bag Login Logged Register Paypal Boleto Pix ConfirmationPage OrderDetails Legenda: 1 – Visual Design; 2 – Homepage; 3 – Filter; 4 – PLP; 5 – Search; 6 – Wishlist; 7 – Account; 8 – PDP; 9 – Bag; 10 – Login; 11 – Logged; 12 – Register; 13 – Checkout; 14 – Shipping Address; 15 – Shipping Method; 16 – Creditcard; 17 – Apple Pay; 18 – PayPal; 19 – Boleto; 20 – Pix; 21 – Confirmation Page; 22 – Order Details; Grafo Arquivo de texto contendo os dados das conexões das arestas, contendo o vértice inicial, vértice final e o peso (em dias). Arquivo de entrada Design Home 30 Design PLP 45 Design Search 15 Design Wishlist 15 Design Account 35 Home Filter 15 Home PDP 40 PLP Filter 15 PLP PDP 40 PLP Bag 35 PLP Search 7 Search PDP 40 Wishlist PDP 40 Wishlist Bag 35 Account Login 7 Filter PDP 40 Login Logged 10 Login Register 20 Register Logged 10 Logged Bag 35 Logged Checkout 21 PDP Bag 35 Bag Checkout 21 Checkout ShippingAddress 7 ShippingAddress ShippingMethod 15 ShippingMethod Creditcard 30 ShippingMethod Applepay 14 ShippingMethod Paypal 14 ShippingMethod Boleto 20 ShippingMethod Pix 16 Creditcard ConfirmationPage 7 Applepay ConfirmationPage 7 Paypal ConfirmationPage 7 Boleto ConfirmationPage 7 Pix ConfirmationPage 7 ConfirmationPage OrderDetails 14 Código importação de algumas bibliotecas que fornecem funcionalidades extras para o programa. Essas bibliotecas são usadas para lidar com arquivos, alocar memória dinamicamente, trabalhar com valores booleanos e manipular strings Código Função lerGrafo(): Essa função é responsável por ler as informações do grafo a partir de um arquivo, lêndo cada linha e extraindo as informações de cada atividade (vértice inicial, vértice final e peso). Em seguida, verifica se os vértices já existem no array de vértices. Código Função lerGrafo(): Se algum vértice não existir, ele é adicionado ao array. Depois, a função aloca memória para o array de arestas, atualiza o número de vértices e arestas no grafo e preenche o array de arestas com as informações lidas do arquivo. Código Código Função imprimirCaminhoCritico(): Essa função encontra o caminho crítico no grafo utilizando o algoritmo PERT/CPM. O caminho crítico é o conjunto de atividades que não podem sofrer atrasos sem afetar o prazo final do projeto. A função aloca memória para arrays que serão utilizados para armazenar os tempos máximos, caminho máximo e os vértices visitados. Em seguida, inicializa esses arrays com valores iniciais. Depois, percorre todas as arestas do grafo e calcula os tempos de chegada para cada vértice final. Código Função imprimirCaminhoCritico(): Se o tempo de chegada for maior que o tempo máximo registrado, atualiza o tempo máximo e o caminho máximo. Por fim, percorre o caminho máximo a partir do vértice final e armazena os nomes das atividades críticas. Então, imprime o caminho crítico na ordem correta. Código Função main(): A principal função do programa. Tem como objetivo inicializar o grafo e chamar a função lerGrafo() para ler as informações do grafo a partir de um arquivo. Em seguida, imprime o número de vértices e arestas do grafo. Por fim, chama a função imprimirCaminhoCritico() para imprimir o caminho crítico do grafo e libera a memória alocada para o array de arestas. CONCLUSÃO O trabalho demonstrou a importância de uma boa organização e planejamento na execução de projetos de desenvolvimento de software. Através do uso do grafo orientado e ponderado, determinamos o caminho crítico do projeto e o resultado foi um planejamento e tomada de decisões efetivas para garantir o cumprimento dos prazos e a entrega de um software de qualidade aos usuários. OBRIGADO!
Compartilhar