Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

danika

Linha de montagem em c com lista

Recommended Posts

Ola colegas, estou começando a programar em C, mais nunca fiz programnas com listas, filas e pilhas, preciso desenvolver um trabalho em C de uma linha de montagem, segue enunciado.
Preciso de uma ajuda para desenvolver.
Se alguém puder ajudar agradeço
Obrigada
Dani

 

As regras são as seguintes:

  • o tempo é contado em minutos (implementado por ciclos, onde cada ciclo = 1 min);
  • a linha de montagem inicia vazia e comporta até 3 carros ao mesmo tempo;
  • o tempo de montagem depende da carroceria;
  • existe apenas 1 equipamento de pintura que demora 5 minutos para pintar uma carroceria por vez;
  • o pátio pode armazenar até 5 carrocerias e pode ser usado como uma fila de espera;
  • a fila de espera não deve crescer muito devido o tamanho do pátio (para isso deve-se pensar em uma lista de prioridade);
  • caso o pátio fique cheio o tempo de montagem de uma carroceria deve ser acrescido do tempo que ela ficou parada (veja exemplo abaixo);
  • o modelo OXX é o mais vendido e tem prioridade, assim que sua carroceria chega ao pátio deve ser pintada o mais rápido possível, contudo, a prioridade das carrocerias que estão no pátio deve aumentar para não ficarem muito tempo esperando. Cada aluno deverá definir sua política de prioridade e descreve-la no relatório final (veja exemplo abaixo);
  • o sistema suportará apenas uma operação por minuto (montar ou pintar).

Entrada:

A entrada deve ser feita pela entrada padrão (stdin). O arquivo é formado por uma sequência de linhas, onde cada linha representa um carro iniciando a montagem. Cada linha tem 4 campos: o primeiro é o tempo de chegada (em min), o segundo é o tempo de montagem da carroceria (em min), o terceiro é o identificador da carroceria e o quarto o modelo do carro (uma string de no máximo 3 caracteres). Estas linhas estão ordenadas pelo primeiro campo (tempos menores no início).

Saída:

A saída deve ser feita pela saída padrão (stdout). O arquivo será composto por uma sequência de linhas. Uma linha para cada evento (montar ou pintar). O evento 'montar' significa que a carroceria entra na etapa de montagem no minuto X. O evento 'pintar' significa que a carroceria entrou no equipamento de pintura. Cada linha tem 3 campos separados por espaço (um único espaço entre cada par de campos). O primeiro campo é o tipo do evento. O segundo campo é o tempo inicial do evento (em min). E o terceiro é o identificador da carroceria.

Exemplo de arquivos com uma entrada e uma saída válida:

Entrada

Saída

2 7 A BUL

4 5 B COW

7 7 C BUL

9 3 D OXX

10 5 E COW

12 3 F OXX

14 3 G OXX

montar 2 A

montar 4 B

montar 7 C

pintar 9 A

montar 10 D

pintar 14 D

montar 15 F

pintar 19 B

montar 20 G

pintar 24 F

pintar 29 C

pintar 34 G

Exemplo 1: "2 7 A", seria 2+7 (entrada + montagem), entao "pintar 9 A". Neste ponto começa a pintura da carroceria.

Exemplo 2: "9 3 D", a carroceria D começa ser montada no tempo 10 (restrição do sistema de 1 operação por minuto) e por prioridade toma a frente das outras.

Exemplo 3: "4 5 B", a carroceria B cede a vez para D no tempo 14 e segue para pintura apenas no tempo 19, pois volta a ter prioridade pelo tempo de espera.

Requisitos mínimos:

O trabalho deve ser feito de forma que possa ser compilado e executado nas servidoras de computação do Departamento de Informática.

O nome do executável deve ser $moocars.

Não devem ter nenhuma opção de linha comando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.