2 pièce(s) jointe(s)
C# Erreur de null constaté System.NullReferenceException"
Bonjour,
je suis nouveau sur Developpez.com je remercie toute aide portée sur moi. merci beaucoup
j'ai vraiment besoin d'aide, je dois defendre ce pgm demain a 11h,ma preocupation est la suivant:. je suis entrain de faire um pgm Simulatin de gestion de fils d'atente em C#, sous console, j'ai donc trois classes, Fila(fil), Rutinas_Simulacao et Programa, le pgm fonctionnait deja hier., mais aujourd'huit ca présente cette erreur System.NullReferenceException"
ligne de codes: deux classe classe Program et Classe Fila la ou il rouge, c'est la ou il ya problème...Pièce jointe 439168Pièce jointe 439169
j'ai aussi annexé le .zip et .rar du dossier
class Fila
{
private Queue<double> fila =new Queue<double>(1);
public Fila()
{
System.Diagnostics.Debug.Assert(fila != null, "Assert: engine != null");
this.fila = new Queue<double>(1);
}
//---------------------------------------------------------------------
public bool vazia()
{
if (fila.Count() == 0)
return true;
return false;
}
//---------------------------------------------------------------------
public void inserir(double elemento)
{
fila.Enqueue(elemento);
}
//---------------------------------------------------------------------
public double primeiro()
{
return fila.Peek();
}
public void remover()
{
fila.Dequeue();
}
//---------------------------------------------------------------------
public double ultimo()
{
return fila.ElementAt<double>(fila.Count - 1);
}
public void mostrar()
{
System.Console.Write("{");
foreach (double elemento in fila)
{
System.Diagnostics.Debug.Assert(fila != null, "Assert: engine != null");
System.Console.Write(elemento + "; ");
}
System.Console.Write("}");
}
}
class Program
{
static void Main(string[] args)
{
Random r = new Random();
Rotinas_Simulacao rotinas_Simulacao = new Rotinas_Simulacao();
int terminar = 0;
double TempoTotalSistema = 0;
//double TempoParcial = 0;
Console.ForegroundColor = ConsoleColor.Red;
System.Console.WriteLine("\n Relogio = " + rotinas_Simulacao.getRelogio() //Para onde vamos avançar
+ "\n Tipo de Evento = " + rotinas_Simulacao.getTipoDeEvento() //Evento a ser realizado
+ "\n TempoProximaChegada =" + rotinas_Simulacao.getTempoDaProximaChegada()); //Chegada
while (true)
{
Console.ForegroundColor = ConsoleColor.White;
rotinas_Simulacao.GestaoDoTempo(); //Decidir o tipo de evento e o relógio
if (rotinas_Simulacao.getRelogio() < rotinas_Simulacao.getInfinito())
TempoTotalSistema = rotinas_Simulacao.getRelogio();
System.Console.WriteLine(""
+ "\n-------------------------Zona de Vendedores Posto A1--------------------------------------------------------------");
System.Console.Write(" FilaGeralPostoA1= "); rotinas_Simulacao.getFilaGeralPostoA1().mostrar();
System.Console.WriteLine(" TotalClientesFilaA1= " + rotinas_Simulacao.getTotalClientesFilaA1()
+ "\n TempoEsperaPostoA1= " + rotinas_Simulacao.getTempoEsperaPostoA1()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoA1= " + rotinas_Simulacao.getTempoOcupacaoPostoA1()
+ "\n EstadoDePostoA1= " + rotinas_Simulacao.getEstadoDePostoA1()
+ "\n TempoPartidaPostoA1 = " + rotinas_Simulacao.getTempoPartidaPostoA1()
+ "\n-------------------------Zona de Vendedores Posto A2--------------------------------------------------------------");
System.Console.Write(" FilaGeralPostoA2= "); rotinas_Simulacao.getFilaGeralPostoA2().mostrar();
System.Console.WriteLine(" TotalClientesFilaA2= " + rotinas_Simulacao.getTotalClientesFilaA2()
+ "\n TempoEsperaPostoA2= " + rotinas_Simulacao.getTempoEsperaPostoA2()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoA2= " + rotinas_Simulacao.getTempoOcupacaoPostoA2()
+ "\n EstadoDePostoA2= " + rotinas_Simulacao.getEstadoDePostoA2()
+ "\n TempoPartidaPostoA2 = " + rotinas_Simulacao.getTempoPartidaPostoA2()
+ "\n-------------------------Zona de Vendedores Posto A3--------------------------------------------------------------");
System.Console.Write(" FilaGeralPostoA3= "); rotinas_Simulacao.getFilaGeralPostoA3().mostrar();
System.Console.WriteLine(" TotalClientesFilaA3= " + rotinas_Simulacao.getTotalClientesFilaA3()
+ "\n TempoEsperaPostoA3= " + rotinas_Simulacao.getTempoEsperaPostoA3()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoA3= " + rotinas_Simulacao.getTempoOcupacaoPostoA3()
+ "\n EstadoDePostoA3= " + rotinas_Simulacao.getEstadoDePostoA3()
+ "\n TempoPartidaPostoA3 = " + rotinas_Simulacao.getTempoPartidaPostoA3()
+ "\n-------------------------Zona de Vendedores Posto A4--------------------------------------------------------------");
System.Console.Write(" FilaGeralPostoA4= "); rotinas_Simulacao.getFilaGeralPostoA4().mostrar();
System.Console.WriteLine(" TotalClientesFilaA4= " + rotinas_Simulacao.getTotalClientesFilaA4()
+ "\n TempoEsperaPostoA4= " + rotinas_Simulacao.getTempoEsperaPostoA4()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoA4= " + rotinas_Simulacao.getTempoOcupacaoPostoA4()
+ "\n EstadoDePostoA4= " + rotinas_Simulacao.getEstadoDePostoA4()
+ "\n TempoPartidaPostoA4 = " + rotinas_Simulacao.getTempoPartidaPostoA4()
+ "\n-------------------------Zona de Vendedores Posto A5--------------------------------------------------------------");
System.Console.Write(" FilaGeralPostoA5= "); rotinas_Simulacao.getFilaGeralPostoA5().mostrar();
System.Console.WriteLine(" TotalClientesFilaA5= " + rotinas_Simulacao.getTotalClientesFilaA5()
+ "\n TempoEsperaPostoA5= " + rotinas_Simulacao.getTempoEsperaPostoA5()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoA5= " + rotinas_Simulacao.getTempoOcupacaoPostoA5()
+ "\n EstadoDePostoA5= " + rotinas_Simulacao.getEstadoDePostoA5()
+ "\n TempoPartidaPostoA5 = " + rotinas_Simulacao.getTempoPartidaPostoA5()
+ "\n-------------------------Zona de Vendedores Posto A6--------------------------------------------------------------");
System.Console.Write(" FilaGeralPostoA6= "); rotinas_Simulacao.getFilaGeralPostoA6().mostrar();
System.Console.WriteLine(" TotalClientesFilaA6= " + rotinas_Simulacao.getTotalClientesFilaA6()
+ "\n TempoEsperaPostoA6= " + rotinas_Simulacao.getTempoEsperaPostoA6()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoA6= " + rotinas_Simulacao.getTempoOcupacaoPostoA6()
+ "\n EstadoDePostoA6= " + rotinas_Simulacao.getEstadoDePostoA6()
+ "\n TempoPartidaPostoA6 = " + rotinas_Simulacao.getTempoPartidaPostoA6()
+ "\n-------------------------Zona de Vendedores Posto A7--------------------------------------------------------------");
System.Console.Write(" FilaGeralPostoA7= "); rotinas_Simulacao.getFilaGeralPostoA7().mostrar();
System.Console.WriteLine(" TotalClientesFilaA7= " + rotinas_Simulacao.getTotalClientesFilaA7()
+ "\n TempoEsperaPostoA7= " + rotinas_Simulacao.getTempoEsperaPostoA7()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoA7= " + rotinas_Simulacao.getTempoOcupacaoPostoA7()
+ "\n EstadoDePostoA7= " + rotinas_Simulacao.getEstadoDePostoA7()
+ "\n TempoPartidaPostoA7 = " + rotinas_Simulacao.getTempoPartidaPostoA7()
+ "\n-------------------------Zona de Vendedores Posto A8--------------------------------------------------------------");
System.Console.Write(" FilaGeralPostoA8= "); rotinas_Simulacao.getFilaGeralPostoA8().mostrar();
System.Console.WriteLine(" TotalClientesFilaA8= " + rotinas_Simulacao.getTotalClientesFilaA8()
+ "\n TempoEsperaPostoA8= " + rotinas_Simulacao.getTempoEsperaPostoA8()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoA8= " + rotinas_Simulacao.getTempoOcupacaoPostoA8()
+ "\n EstadoDePostoA8= " + rotinas_Simulacao.getEstadoDePostoA8()
+ "\n TempoPartidaPostoA8 = " + rotinas_Simulacao.getTempoPartidaPostoA8()
+ "\n-------------------------Zona de Vendedores Posto Prioritário A9-------------------------------------------------");
System.Console.Write(" FilaPrioritariaPostoA9= "); rotinas_Simulacao.getFilaPrioritariaPostoA9().mostrar();
System.Console.WriteLine(" TotalClientesFilaPrioritarioA9= " + rotinas_Simulacao.getTotalClientesFilaPrioritarioA9()
+ "\n TempoEsperaPostoPrioritarioA9= " + rotinas_Simulacao.getTempoEsperaPostoPrioritarioA9()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoPrioritarioA9= " + rotinas_Simulacao.getTempoOcupacaoPostoPrioritarioA9()
+ "\n EstadoDePostoPrioritarioA9= " + rotinas_Simulacao.getEstadoDePostoPrioritarioA9()
+ "\n TempoPartidaPostoPrioritarioA9 = " + rotinas_Simulacao.getTempoPartidaPostoPrioritarioA9()
+ "\n-------------------------Zona de Vendedores Posto prioritário A10------------------------------------------------------------");
System.Console.Write(" FilaPrioritariaPostoA10= "); rotinas_Simulacao.getFilaPrioritariaPostoA10().mostrar();
System.Console.WriteLine(" TotalClientesFilaPrioritarioA10= " + rotinas_Simulacao.getTotalClientesFilaPrioritarioA10()
+ "\n TempoEsperaPostoPrioritarioA10= " + rotinas_Simulacao.getTempoEsperaPostoPrioritarioA10()
+ "\n NumClientesVendedor= " + rotinas_Simulacao.getNumClientesVendedor()
+ "\n TempoOcupacaoPostoPrioritarioA10= " + rotinas_Simulacao.getTempoOcupacaoPostoPrioritarioA10()
+ "\n EstadoDePostoPrioritarioA10= " + rotinas_Simulacao.getEstadoDePostoPrioritarioA10()
+ "\n TempoPartidaPostoPrioritarioA10 = " + rotinas_Simulacao.getTempoPartidaPostoPrioritarioA10()
//BALCÃO A
+ "\n\n-------------------------Zona de Pagamento----------------------------------------------------------");
System.Console.Write(" FilaDePagamento = "); rotinas_Simulacao.getFilaDePagamento().mostrar();
System.Console.Write("\n FilaPrioritariaDePagamento= "); rotinas_Simulacao.getFilaPrioritariaDePagamento().mostrar();
System.Console.Write("\n FilaRetornoDePagamento= "); rotinas_Simulacao.getFilaRetornoDePagamento().mostrar();
System.Console.WriteLine("\n TotalClientesFilaPagamento= " + rotinas_Simulacao.getTotalClientesFilaPagamento()
+ "\n TotalClientesFilaPagamentoPrioritario= " + rotinas_Simulacao.getTotalClientesFilaPagamentoPrioritario()
+ "\n TotalClientesFilaPagamentoRetorno= " + rotinas_Simulacao.getTotalClientesFilaPagamentoRetorno()
+ "\n NumClientesPagamento= " + rotinas_Simulacao.getNumClientesPagamento()
//+ "\n NumClientesLevantamento= " + rotinas_Simulacao.getNumClientesLevantamento()
+ "\n-------------------------Zona de Pagamento Posto B1-----------------------------------------------------------"
+ "\n TempoOcupacaoPagametoB1= " + rotinas_Simulacao.getTempoOcupacaoPagametoB1()
+ "\n EstadoDePagamentoB1= " + rotinas_Simulacao.getEstadoDePagamentoB1()
+ "\n TempoPartidaPostoB1 = " + rotinas_Simulacao.getTempoPartidaPostoB1()
+ "\n------------------------Zona de Pagamento Posto B2------------------------------------------------------------"
+ "\n TempoOcupacaoPagametoB2= " + rotinas_Simulacao.getTempoOcupacaoPagametoB2()
+ "\n EstadoDePagamentoB2= " + rotinas_Simulacao.getEstadoDePagamentoB2()
+ "\n TempoPartidaPostoB2 = " + rotinas_Simulacao.getTempoPartidaPostoB2()
+ "\n------------------------Zona de Pagamento Posto B3------------------------------------------------------------"
+ "\n TempoOcupacaoPagametoB3= " + rotinas_Simulacao.getTempoOcupacaoPagametoB3()
+ "\n EstadoDePagamentoB3= " + rotinas_Simulacao.getEstadoDePagamentoB3()
+ "\n TempoPartidaPostoB3 = " + rotinas_Simulacao.getTempoPartidaPostoB3()
+ "\n------------------------Zona de Pagamento Posto B4------------------------------------------------------------"
+ "\n TempoOcupacaoPagametoB3= " + rotinas_Simulacao.getTempoOcupacaoPagametoB4()
+ "\n EstadoDePagamentoB4= " + rotinas_Simulacao.getEstadoDePagamentoB4()
+ "\n TempoPartidaPostoB4 = " + rotinas_Simulacao.getTempoPartidaPostoB4()
//Zona de Levantamento / Postos C1 e C2
+ "\n\n-------------------------Zona de Levantamento -------------------------------------------------------------");
System.Console.Write(" FilaDePagamento = "); rotinas_Simulacao.getFilaDePagamento().mostrar();
System.Console.WriteLine("\n TotalClientesFilaPagamento= " + rotinas_Simulacao.getTotalClientesFilaPagamento()
+ "\n NumClientesBalcões= " + rotinas_Simulacao.getNumClientesPagamento()
+ "\n-------------------------Zona de Levantamento posto C1-----------------------------------------------------------"
+ "\n TempoOcupacaoLevantamentoC1= " + rotinas_Simulacao.getTempoOcupacaoLevantamentoC1()
+ "\n EstadoDeLevantamentoC1= " + rotinas_Simulacao.getEstadoDeLevantamentoC1()
+ "\n TempoPartidaPostoC1 = " + rotinas_Simulacao.getTempoPartidaPostoC1()
+ "\n------------------------BALCÃO B2------------------------------------------------------------"
+ "\n TempoOcupacaoLevantamentoC2= " + rotinas_Simulacao.getTempoOcupacaoLevantamentoC2()
+ "\n EstadoDeLevantamentoC2= " + rotinas_Simulacao.getEstadoDeLevantamentoC2()
+ "\n TempoPartidaPostoC2 = " + rotinas_Simulacao.getTempoPartidaPostoC2()
+ "\n\n-----------------------------PROXIMA ITERACAO----------------------------------------------\n"
+ " X1 = Tempo entre chegadas (desde a chegada anterior ate a proxima) \n X2 = Tempo de servico de quem entra para um servidor "); //Partida da tesuraria = abandono do sistema ou regresso aos balcões
Console.ForegroundColor = ConsoleColor.Red;
System.Console.WriteLine("\n Relogio = " + rotinas_Simulacao.getRelogio()
+ "\n Tipo de Evento = " + rotinas_Simulacao.getTipoDeEvento()
+ "\n TempoProximaChegada =" + rotinas_Simulacao.getTempoDaProximaChegada());
if (rotinas_Simulacao.getTipoDeEvento() == -1)
break; //Termina porque já não há mais chegadas nem partidas
switch (rotinas_Simulacao.getTipoDeEvento())
{ //Executar o evento mais próximo:
case 0:
rotinas_Simulacao.EventoChegadaA1();
rotinas_Simulacao.EventoChegadaA2();
rotinas_Simulacao.EventoChegadaA3();
rotinas_Simulacao.EventoChegadaA4();
rotinas_Simulacao.EventoChegadaA5();
rotinas_Simulacao.EventoChegadaA6();
rotinas_Simulacao.EventoChegadaA7();
rotinas_Simulacao.EventoChegadaA8();
rotinas_Simulacao.EventoChegadaA9();
rotinas_Simulacao.EventoChegadaA10();
break;
case 1:
rotinas_Simulacao.EventoPartidaA1();
break;
case 2:
rotinas_Simulacao.EventoPartidaA2();
break;
case 3:
rotinas_Simulacao.EventoPartidaA3();
break;
case 4:
rotinas_Simulacao.EventoPartidaA4();
break;
case 5:
rotinas_Simulacao.EventoPartidaA5();
break;
case 6:
rotinas_Simulacao.EventoPartidaA6();
break;
case 7:
rotinas_Simulacao.EventoPartidaA7();
break;
case 8:
rotinas_Simulacao.EventoPartidaA8();
break;
case 9:
rotinas_Simulacao.EventoPartidaPrioritarioA9();
break;
case 10:
rotinas_Simulacao.EventoPartidaPrioritarioA10();
break;
case 11:
rotinas_Simulacao.EventoPartidaPostoB1();
break;
case 12:
rotinas_Simulacao.EventoPartidaPostoB2();
break;
case 13:
rotinas_Simulacao.EventoPartidaPostoB3();
break;
case 14:
rotinas_Simulacao.EventoPartidaPostoB4();
break;
case 15:
rotinas_Simulacao.EventoPartidaPostoC1();
break;
case 16:
rotinas_Simulacao.EventoPartidaPostoC2();
break;
default: //= -1 podemos terminar já aqui e não precisamos passar à próxima iteração que será desnecessária
terminar = 1;
break;
}
if (terminar == 1)
break;
}
rotinas_Simulacao.ContadoresEstatisticos(TempoTotalSistema);
System.Console.ReadKey();
}
}
}