·

Sistemas de Informação ·

Estrutura de Dados

Send your question to AI and receive an answer instantly

Ask Question

Preview text

Uma empresa que fabrica rolamentos possui maquinarios para produzilos requisicoes de pedidos O processo dela eh o seguinte chega um pedido de um rolamento especifico podendo ser cilindrico conico esferico de aco ou de titanio cada rolamento tem uma ordem a ser seguida nas maquinas e um tempo pra ficar la dentro sendo processada alem de uma prioridade especifica pra cada pedido As maquinas possuem filas de prioridade onde os pedidos ficam a medida que sejam requisitados somente depois de sair da ultima maquina que o pedido deveria ficar eh que finalmente o pedido fica pronto Um rolamento cilindrico possui prioridade 1 o conico possui prioridade 2 e esferico prioridade 3 Quanto maior o numero mais urgente eh o pedido a media de chegada de um pedido de rolamento cilindrico eh de 215 de um conico 191 e de um esferico 80 quando chega um pedido esferico tem 10 de chance de ser um pedido de titanio a ordem do maquinario para um rolamento cilindrico eh TORNOFRESATORNOMANDRIL a ordem do maquinario para um rolamento conico eh TORNOMANDRILTORNO a ordem do maquinario para um rolamento esferico de aco eh FRESAMANDRILTORNO a ordem do maquinario para um rolamento esferico de titanio eh FRESAMANDRILTORNOFRESATORNO PS deve ser utilizado fila e lista nesse problema fila de prioridade structs alem de TADs Flags nao serao aceitos usem DEFINE ou ENUM para simular as prioridades Ponteiro para funcao será necessario em praticamente todas structs para nao ter que saber qual tipo que foi passado e somente precisar saber suas funcoes em tempo real o tempo de estadia no mandril eh 12 21 14 e 15 para cilindrico conico aco e titanio respectivamente o tempo de estadia na fresa eh 05 05 e 06 para cilindrico aco e titanio respectivamente o tempo de estadia no torno eh 08 18 10 e 16 para cilindrico conico aco e titanio respectivamente entao resumindo tudo EstadiaMandrilCilindrico 12 EstadiaFresaCilindrico 05 EstadiaTornoCilindrico 08 EstadiaMandrilConico 21 EstadiaTornoConico 18 EstadiaMandrilEsfericoAco 14 EstadiaFresaEsfericoAco 05 EstadiaTornoEsfericoAco 10 EstadiaMandrilEsfericoTitanio 15 EstadiaFresaEsfericoTitanio 06 EstadiaTornoEsfericoTitanio 16 ChegadaMediaCilindrico 215 ChegadaMediaConico 191 ChegadaMediaEsferico 80 sequenciacilindrica eh TORNOFRESATORNOMANDRIL sequenciaconica eh TORNOMANDRILTORNO sequenciaesfericatitanio eh FRESAMANDRILTORNOFRESATORNO sequenciaesfericaaco eh FRESAMANDRILTORNO Seu objetivo eh fazer um simulador dessa empresa que usando todos os dados definidos anteriormente e recebendo como argumento de entrada do programa C um double que representará o tempo de simulacao total imprima na tela quantos rolamentos foram construidos de cada tipo e o tempo medio de construcao de cada tipo ps faca o simulador dividindo tudo em bibliotecas ou seja varios arquivos faca pouco a pouco juntar tudo de vez certamente baguncará sua cabeca e colocara ainda mais dificuldade na hora de debugar a funcao geraexponencial abaixo retorna o tempo que vai demorar para chegar outro pedido passando como argumento a media de chegada do pedido que voce quer saber include stdioh include stdlibh include mathh include timeh float GeraExponencial float avg float u0 Gera randomicamente um numero entre 0 e 1 do u floatrand float RANDMAX while u0 u1 return avg log u para saber quanto tempo o rolamento vai ficar no maquinario use a funcao abaixo float tempofloat EstadiaEquipamentoRolamento float u floatrand float RANDMAX return 20 EstadiaEquipamentoRolamento u teste pra ver funcionando soh os geradores int main srandtimeNULL obrigatorio ter uma vez apenas no seu codigo printff GeraExponencial215 printff tempo16 return 0 a entrada será apenas o numero de clicks que seu codigo rodará ex simulador 200 rodará por 200 segundos a saida deve seguir o seguinte padrao oiexe 1000000 Cilindros 2969 46768 Conicos 19220 52096 Aco 5409 124385 Titanio 10499 125468 O comando para impressao entao deve seguir o seguinte formato printftipo de rolamento 72f d variaveltempomedio variavelquantidade Uma foto com exemplos de saida esta anexada para vcs verem