Jump to content

Specifications Sample Transport Simulator


FredTeixeira

Recommended Posts

boas,

estou encalhado neste se me puderem ajudar agradecia.

aqui vai o exercicio.

Specifications Sample Transport Simulator

O objectivo é a criação de um simulador de trabalho para um sistema que transporta as amostras na fila da fila para a pipeta, em que a pipeta é baixada para dentro do frasco de amostra.

O sistema de transporte é também capaz de limpar a pipeta, por conseguinte, um recipiente de resíduos pequeno será colocada por baixo da pipeta.

Estas funcionalidades são incorporadas ao simulador como tarefas que levam algum tempo e depois ligar de volta que a tarefa seja concluída.

Preparations

Um conjunto de interfaces e classes predefinidos ou para ser usado por um pedaço de software que faz a simulação:

/// <summary>Base class for a task on the sample tranport system.
/// </summary>
public abstract class BaseTask
{
}

/// <summary>Delegate for the transport system task event.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="e">The event arguments.</param>
public delegate void TaskDelegate(ISampleTransporter sender, TaskEventArgs e);

/// <summary>Event arguments for the <see cref="T:TaskStarted"/> event.
/// </summary>
public class TaskEventArgs : EventArgs
{
	 /// <summary> Creates a new instance of <see cref="T:TaskStartedEventArgs"/>
	 /// </summary>
	 public TaskEventArgs(BaseTask task)
	 {
			 this.Task = task;
	 }

	 /// <summary>Gets or sets the task involved with the action.
	 /// </summary>
	 /// <value>The task.</value>
	 public BaseTask Task {
get;
private set; }
}

/// <summary>Interface for the sample transport system.
/// </summary>
public interface ISampleTransporter
{
	 /// <summary>Queues a task on the transporter system.
	 /// </summary>
	 /// <param name="task">The task to queue.</param>
	 void QueueTask(BaseTask task);

	 /// <summary>Aborts all queued tasks.
	 /// </summary>
	 void AbortAllTasks();

	 /// <summary>Occurs when a task is started.
	 /// </summary>
	 event TaskDelegate TaskStarted;

	 /// <summary>Occurs when a task is finished.
	 /// </summary>
	 event TaskDelegate TaskFinished;
}

Additional specifications:

- A tarefa de transportar um samlpe de A para B consiste nas seguintes etapas:

o Etapa 1: Recolha pipeta da amostra: 250ms de duração.

o Passo 2: Mova a amostra: 500ms de duração.

o Passo 3: Coloque a pipeta para o frasco seguinte: 250ms de duração.

- A opção de auto-limpeza existe uma das seguintes etapas:

o recipiente Extrato: 1s de duração.

Recolher o recipiente: 1s de duração.

- Quando abortar as tarefas (AbortAllTasks é chamado), a tarefa atualmente em execução será concluída, mas as tarefas subsequentes serão removidos da fila de tarefas.

The simulator

Criar um simulador, esta deve ser uma classe que implementa a interface: ISampleTransporter.

Para testar o simulador, criar um aplicativo de console para controlar a instância do simulador, através da interface ISampleTransporter:

- Ao pressionar 'M' ou 'm' a tarefa de transporte de amostra é adicionado a uma fila no simulador, que será executado quando todas as tarefas anteriores terminar.

- Ao pressionar 'C' ou 'c' uma tarefa de limpeza é enfileirado.

- 'A' ou 'a' aborta as tarefas.

- Pressionando Fuga faz o programa para sair.

- Toda vez que uma tarefa começa ou termina, uma linha com algumas informações sobre a tarefa deve ser impresso para a tela.

Você pode usar o seguinte código para lidar com teclas no aplicativo de consola.

ConsoleKeyInfo? keyInfo = null;
while (!keyInfo.HasValue || keyInfo.Value.Key != ConsoleKey.Escape)
{
	 keyInfo = Console.ReadKey(true);
	 switch (keyInfo.Value.Key)
	 {
			 case ConsoleKey.A:
					  ...
					  break;
			 default:
					  break;
	 }
}

obrigado

Link to comment
Share on other sites

O que ja fizeste???

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.