Vous êtes sur la page 1sur 29

A fila inicia com n pessoas que esto aguardando para ser atendidas.

Cada pessoa
possui um tempo diferente para o seu atendimento; tempo este calculado em
minutos.
Este simulador ir calcular o tempo total de atendimento das n pessoas, e o tempo
mdio de atendimento para cada pessoa.
A classe que implementa o simulador ser chamada de SimulaFila, que conter o
mtodo principal para a execuo da aplicao Java. A chamada desta classe possui
um parmetro que determina o nmero de pessoas que a fila conter. Por exemplo,
a chamada:
java SimulaFila 3
indica que a fila do simulador ir conter 3 (trs) pessoas. Abaixo segue-se o pseudoalgoritmo do que dever ser implementado:
Declare n,k do tipo inteiro
Declare q como sendo uma fila e a instancie
n ? o nmero de pessoas da fila
para i ? 1 at n {
COMENTARIO: k refere-se ao tempo em que a pessoa ficar na fila
k ? nmero aleatrio de 1 at 20
q.enqueue(k)
}
Declare tempoTotal do tipo inteiro
enquanto q possui elementos {
tempoTotal ? tempoTotal + q.dequeue()
}
Imprima o tempo total do atendimento
Imprima o tempo mdio do atendimento
Abaixo segue-se o exemplo de uma classe para gerar nmeros aleatrios:
public class GeradorNumero {
/**
* Gera um nmero aleatrio, baseado na data/hora
* do sistema.
* @return Um nmero aleatrio.
*/
public static long gera() {
return (new java.util.Date().getTime());
}
/**
* Gera um nmero aleatrio dentro do intervalo
* informado.
* @param intervalo Intervalo final, de 0 (zero) a
* intervalo.
* @return Nmero aleatrio entre 0 e intervalo.
*
* @throws IllegalArgumentException O nmero informado
* negativo.
*/
public static long gera(int intervalo)
throws java.lang.IllegalArgumentException
{
if (intervalo <= 0) {
throw new IllegalArgumentException("Nmero invlido: " +
intervalo);

}
return (gera() % intervalo);
}
}

A fila inicia com n pessoas que esto aguardando para ser atendidas. Cada
pessoa possui um tempo diferente para o seu atendimento; tempo este
calculado em minutos.
Este simulador ir calcular o tempo total de atendimento das n pessoas, e o
tempo mdio de atendimento para cada pessoa.
A classe que implementa o simulador ser chamada de SimulaFila, que conter
o mtodo principal para a execuo da aplicao Java. A chamada desta classe
possui um parmetro que determina o nmero de pessoas que a fila conter.
Por exemplo, a chamada:
java SimulaFila 3
indica que a fila do simulador ir conter 3 (trs) pessoas. Abaixo segue-se o
pseudo-algoritmo do que dever ser implementado:
Declare n,k do tipo inteiro
Declare q como sendo uma fila e a instancie
n ? o nmero de pessoas da fila
para i ? 1 at n {
COMENTARIO: k refere-se ao tempo em que a pessoa ficar na fila
k ? nmero aleatrio de 1 at 20
q.enqueue(k)
}
Declare tempoTotal do tipo inteiro
enquanto q possui elementos {
tempoTotal ? tempoTotal + q.dequeue()
}
Imprima o tempo total do atendimento
Imprima o tempo mdio do atendimento
Abaixo segue-se o exemplo de uma classe para gerar nmeros aleatrios:
public class GeradorNumero {
/**
* Gera um nmero aleatrio, baseado na data/hora
* do sistema.
* @return Um nmero aleatrio.
*/
public static long gera() {
return (new java.util.Date().getTime());
}

/**
* Gera um nmero aleatrio dentro do intervalo
* informado.
* @param intervalo Intervalo final, de 0 (zero) a
* intervalo.
* @return Nmero aleatrio entre 0 e intervalo.
*
* @throws IllegalArgumentException O nmero informado
* negativo.
*/
public static long gera(int intervalo)
throws java.lang.IllegalArgumentException
{
if (intervalo <= 0) {
throw new IllegalArgumentException("Nmero invlido: " +
intervalo);
}
return (gera() % intervalo);
}
}

1.
2.

public class RandomIntGenerator{


public RandomIntGenerator(int l, int h){

3.

low = l;

4.

high = h

5.

6.

public int draw(){

7.

int r = low + (int)((high-low+1)*nextRandow());

8.

return r;

9.

10.

public static void main(String[] args){

11.

RandomIntGenerator r1 = new RandomIntGenerator(1,10);

12.

RandomIntGenerator r2 = new RandomIntGenerator(0,1);

13.

int i;

14.

for (i = 1,i<=100; i++)

15.

System.out.println(r1.draw()+""+r2.draw());

16.

17.

public static double nextRandom(){

18.

int pos = (int)(java.lang.Math.randow() * BUFFER_SIZE);

19.

double r = buffer[pos];

20.

buffer[pos] = java.lang.Math.randow();

21.

return r;

22.

23.

private static final int BUFFER_SIZE = 101;

24.

private static double[] buffer = new double[BUFFER_SIZE];

25.

static{

26.

int i;

27.

for (i = 0; i<BUFFER_SIZE; i++)

28.

buffer[i] = java.lang.Math.randow();

29.

30.

private int low;

31.

private int high;

32.

1.

// OPO 3 ( FILA DE ESPERA )

2.

if (opcao == 3) {

3.

System.out.print("\nAtualizando fila de espera");

4.

for (th = 0; th < 5; th++) {

5.

System.out.print(".");

6.

Thread.sleep(300);

7.

8.

System.out.println();

9.

System.out.println("\nFila de espera:");

10.

for (e = 0; e < senhasPrioritarias.length; e++) {

11.

if (senhasPrioritarias[e] != null) {

12.

System.out.println(o + ". " + senhasPrioritarias[e] + " TIPO: PRIORITARIA");

13.

o++;

14.

15.

16.

for (f = 0; f < senhasNormais.length; f++) {

17.

if (senhasNormais[f] != null) {

18.

System.out.println((o + c) + ". " + senhasNormais[f] + "

19.

c++;

20.
21.

TIPO: NORMAL");

}
}

22. }

Minha dvida o seguinte:


- como passar esse cdigo para uma funo?
Para ficar em vez de if (opcao == 3) { [monte de codigo]
ficar soh if (opcao == 3) { [nome da funo]
Tudo num arquivo s!
Obg.!
This message was edited 2 times. Last update was at 16/06/2011 07:57:45

15/06/2011 12:04:57
Assunto: Sistema de Gerenciamento de Senhas [Duvida com funo]

drsmachado
JWizard
Membro desde: 25/09/2010 12:54:06
Mensagens: 2497
Localizao: Curitiba / So Jos dos Pinhais - PR
Offline

Este sistema que voc est fazendo em


java?
Por que, se for, voc pode criar os mtodos,
respeitando o tipo de retorno que deseja e os
parmetros necessrios, ento, fazer a
chamada.
Free Lancer - PHP / C# / ASP.NET / Java Desktop e
Web / MySQL / SQL Server 2kX / Oracle
drafahc@gmail.com

15/06/2011 16:47:40
Assunto: Re:Sistema de Gerenciamento de Senhas [Duvida com funo]

kolling
Entusiasta Java

em java sim
mas como que eu defino isso?

Membro desde: 28/04/2011 14:53:52


Mensagens: 21
Offline

15/06/2011 17:55:10
Assunto: Sistema de Gerenciamento de Senhas [Duvida com funo]

drsmachado
JWizard
Membro desde: 25/09/2010 12:54:06
Mensagens: 2497
Localizao: Curitiba / So Jos dos Pinhais - PR
Offline

Exemplo
view plaincopy to clipboardprint?

1.

public class Baguncada{

2.

public static void main(String


args[]){

3.

String usu =
JOptionPane.showInputDialog("A, B
ou C?");

4.

if(usu.toUpperCase("A")){

5.

int a = 1 + 4;

6.

System.out.println(usu + a);

7.

}else if(usu.toUpperCase("B")){

8.

int a = 1 + 3;

9.

System.out.println(usu + a);

10.

}else if(usu.toUpperCase("C")){

11.

int a = 1 + 5;

12.

System.out.println(usu + a);

13.

14. }
15. }

Fica assim
view plaincopy to clipboardprint?

1.

public class Baguncada{

2.

public static void main(String


args[]){

3.

Baguncada b = new Baguncada();

4.

b.pergunta();

5.

6.

public void pergunta(){

7.

String usu =
JOptionPane.showInputDialog("A, B
ou C?");

8.

if(usu.toUpperCase("A")){

9.
10.

executeA(usu);
}else if(usu.toUpperCase("B")){

11.
12.

executeB(usu);
}else if(usu.toUpperCase("C")){

13.
14.

executeC(usu);
}

15. }
16. public void executeA(String usu){
17.

//faz a

18. }
19. public void executeA(String usu){
20.

/faz b

21. }
22. public void executeA(String usu){
23.

//faz c

24. }
25. }

1.

To com duvida nesse trabalho que eh preciso fazer hj, ele requer uma
fila, eu tenho feita a pilha, tem como aprovetar alguma classe dela? segue o
trabalho:
1. Voc j construiu uma pilha em que o primeiro elemento que entra e o
ltimo a sair FILO (First In Last Out). Agora construa uma classe chamada
FIFO (First In First Out), ou seja, o primeiro elemento que entra o
primeiro a sair. Para esta classe de abstrao de uma FILA use referncias e
no arrays.
2. Uma agncia bancria estatal est sofrendo com o mau atendimento aos
clientes. Suas filas so gigantescas! O gerente decidiu contrat-lo para que
voc crie uma simulao do atendimento da agncia e permita que ele faa
experimentos para melhorar o atendimento. O gerente vai informar a
quantidade de minutos que ele deseja executar a simulao. Na agncia
existem 5 caixas. A cada minuto chegam de 4 a 16 clientes. Cada caixa
atende de 1 a 2 clientes por minuto. Sempre o cliente d preferncia para
alguma caixa vazia ou para uma fila com menor nmero de clientes. Para
cada cliente que entra na fila deve-se registrar o momento (tempo) que ele
entrou na fila. Quando o cliente for atendido deve-se computar a diferena
entre o tempo atual e o tempo de entrada na fila. Este dado vai servir para
calcular o tempo mdio dos clientes na fila. O programa deve informar, por
minuto, a quantidade de clientes sendo atendidos e esperando na fila para
cada caixa. No trmino da simulao deve ser informado o tempo mdio
dos clientes.
OBS1.: Use a classe FIFO da questo 1 para d suporte a questo 2;
OBS2.: Abaixo segue uma exemplo de como obter a data e hora do sistema
usando JAVA (til para questo 2) .
1.

import java.awt.event.ActionEvent;

2.

import java.awt.event.ActionListener;

3.

import java.text.DateFormat;

4.

import java.text.SimpleDateFormat;

5.

import javax.swing.JFrame;

6.

import javax.swing.JLabel;

7.

import javax.swing.SwingUtilities;

8.

import javax.swing.Timer;

9.

public class DataHoraDoSistema extends JFrame implements ActionListen


er {

10.

/*

11.

* DateFormat: usado para definir um patern de alterao

12.

* de formato de string.

13.

*/

14.

DateFormat formataData = new SimpleDateFormat(?dd/MM/yyyy?);

15.

DateFormat formataHora = new SimpleDateFormat(?HH:mm:ss?);

16.

JLabel lbData = new JLabel();

17.

JLabel lbHora = new JLabel();

18.

Timer timer = new Timer(0, null);

19.

public DataHoraDoSistema() {

20.

super(?Usando data e hora do sistema?);

21.

/*

22.

* Timer: usado para disparar a alterao dos JLabel?s

23.

* quando h alterao de tempo.

24.

*/

25.

timer.addActionListener(this);

26.

timer.setCoalesce(true);

27.

timer.start();

28.

lbData.setBounds(20, 25, 100, 20);

29.

lbHora.setBounds(120, 25, 100, 20);

30.

add(lbData);

31.

add(lbHora);

32.

33.

public static void createAndShowGui(){

34.

DataHoraDoSistema frame = new DataHoraDoSistema();

35.

frame.setLayout(null);

36.

frame.setSize(300, 100);

37.

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

38.

frame.setVisible(true);

39.

40.

public void actionPerformed(ActionEvent arg0) {

41.

/*

42.

* Bloco responsvel pela alterao das JLabel?s conforme

43.

* a data e hora do sistema.

44.

*/

45.

lbData.setText(formataData.format(System.currentTimeMillis()));

46.

lbHora.setText(formataHora.format(System.currentTimeMillis()));

47.

48.

public static void main(String[] args) {

49.

SwingUtilities.invokeLater(new Runnable(){

50.

public void run() {

51.

createAndShowGui();

52.

53.

});

54.

55.

A pilha que eu fiz:

public class Pilha {

2
3

Elemento topo;

4
5
6

public Pilha(int valor) {


push(valor);

8
9

public Pilha() {

10

11
12

public void push(int valor){

13
14

topo = new Elemento(valor, topo);


}

15
16
17

public int pop(){

18

if(topo == null)

19

return 0;

20

int aux = topo.valor;

21

topo = topo.proximo;

22

return aux;

23

24
25
26

public int peek(){

27

if(topo == null)

28

return 0;

29
30

return topo.valor;
}

31
32 }
33
34
35 public class Elemento {

36
37

int valor;

38

Elemento proximo;

39
40

public Elemento(int valor, Elemento proximo) {

41

this.valor = valor;

42

this.proximo = proximo;

43

44
45 }

1.

flavio_nc
Offline
Posts: 2

Publicado em: 09/04/2009 23:18:44

Fiz o primeiro item, falta so o segundo , nao fao ideia de como fazer,
alguem poderia me ajudar?
1.

public class FIFO {

2.
3.

Node inicio,fim;

4.

public FIFO() {

5.

6.
7.

public FIFO(Object valor){

8.
9.

fim = inicio = new Node(valor,null);


}

10.
11.

public boolean vazia(){

12.

if(inicio==null)

13.

return true;

14.

else

15.
16.

return false;
}

17.
18.

public boolean vazio_(){

19.

return inicio == null;

20.

21.

public void insert(Object valor){

22.

if(vazia())

23.

fim = inicio = new Node(valor,null);

24.

else{

25.

Node novo = new Node(valor,null);

26.

fim.proximo = novo;

27.

fim = novo;

28.

29.

30.

public Object delete(){

31.

Object aux = inicio;

32.

inicio = inicio.proximo;

33.

return aux;

34.

35.

public Object peek(){

36.

if(vazia())

37.

return null;

38.

return inicio.valor;

39.

40.

public void show(){

41.

Node temp = inicio;

42.

while(temp != null){

43.

System.out.println(temp.valor);

44.

temp = temp.proximo;

45.

46.

System.out.println("__");

47.
48.

49.
50.

1.

venyton
Offline
Posts: 21

Publicado em: 09/04/2009 23:18:44

usa o LinkedList
ele pode simula um monte de estruturas de dados
tem os metodos
addFirst() - adiciona no comeo da fila
addLast() - add no final da fila
removeFirst() - remove o item da ponta inicial
removeLast() - remove o item do final da lista
aqui tem todos os mtodos:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/LinkedList.html

//Gerencia senha

using System;
using System.Collections.Generic;
using System.Web;
namespace GridAninhado
{
public class GerenciaSenha
{
//Cuidado , desta forma est bem bsico e sem teste, so uma base,
deve ser muito melhorado, como armazenar hora de inicio de fim de
atendimento.
//As senhas devem ser apagadas da lista ou levadas para outra lista..
//Como est em List caso a aplicao seja fechada a contagem das
senhas voltar a zero.
//Bons estudos, e espero que consigo desenvolver o restante, e com
certeza o pessoal fera aqui do forum tem como auxiliar na melhoria deste
co'digo.
List<senha> _listSenha = new List<senha>();
List<senha> _listAtendida = new List<senha>();
private Int32 _ultimaSenha = 0;
private Int32 _ultimaSenhaPrioritaria = 1000;
public Int32 UltimaSenha
{
get { return _ultimaSenha; }
set { _ultimaSenha = value; }
}

public Int32 UltimaSenhaPrioritaria


{

get { return _ultimaSenhaPrioritaria; }


set { _ultimaSenhaPrioritaria = value; }
}

//Busca a proxima senha


private String ProximaSenha(enTipoAtendimento pTipoAtendimento)
{
senha _senha = new senha();
if (pTipoAtendimento == enTipoAtendimento.Prioritario)
{
//caso seja prioritario adicionado na variavel booleana.
_senha.Prioritaria = true;
}
//Pega a ultima senha e adiciona +1
_senha.Senha = UltimaSenha + 1;
//Adiciona na lista de senhas.
_listSenha.Add(_senha);
//Caso queira fazer a impresso em alguma impressora..
return _senha.Senha.ToString();
}
/// <summary>
/// Chama a proxima senha a ser atendida..
/// </summary>
/// <returns></returns>
///
//Criar um mtodo para apagar a senha da lista ou enviar para outra
lista.
private String ChamaProxima()
{
//Verifica se tem senha prioritaria.
for (int i = 0; i < _listSenha.Count; i++)
{
if (_listSenha[i].Prioritaria)
{
//caso tenha prioritaria chama ela.
return _listSenha[i].Senha.ToString();
}
}
//caso no chama a primeira senha da fila.
return _listSenha[0].Senha.ToString();
}
}
}

//Senha
using System;
using System.Collections.Generic;
using System.Web;
namespace GridAninhado
{
enum enTipoAtendimento {Normal , Prioritario};
public class senha
{
private
private
private
private

Int32 _senha;
Boolean _chamada;
DateTime _inicioAtendimento;
Boolean _prioritaria = false;

public Int32 Senha


{
get { return _senha; }
set { _senha = value; }
}
public Boolean Chamada
{
get { return _chamada; }
set { _chamada = value; }
}

public DateTime InicioAtendimento


{
get { return _inicioAtendimento; }
set { _inicioAtendimento = value; }
}
public Boolean Prioritaria
{
get { return _prioritaria; }
set { _prioritaria = value; }
}
}
}
Agora basta dar uma analisada e qualquer dvida posta aqui.

Marcado como RespostaDiego G Franasegunda-feira, 19 de setembro de


2011 20:52

o
o

Responder

Citao

Todas as Respostas

segunda-feira, 19 de setembro de 2011 15:45

Anderson Lopes BorealTech


135

0
Entrar para Votar

Ajuda em que voc quer?


Responder

Citao
segunda-feira, 19 de setembro de 2011 16:37

Diego G Frana
0

0
Entrar para Votar

dver lanar uma senha para um atendimento . e gerar estatisticas de


quantidades de pessoas atendidas,tempo medio de atendimento,quantidade de
atendimentos por caixa(atendentes).

Responder

Citao

segunda-feira, 19 de setembro de 2011 18:49

Diego G Frana
0

0
Entrar para Votar

eu tentei montar um sistema para gerar o codigo coloquei ate o lao de repetiao
so que qndo clico no botao so aparece o ultimo numero do array
private void button1_Click(object sender, EventArgs e)
{
int[] x = new int[3];
for (int i = 0; i < x.Length; i++)
{
x[i] = i + 1;
label3.Text=x[i].ToString();
}
Responder

Citao
segunda-feira, 19 de setembro de 2011 19:09

Anderson Lopes BorealTech


135

Entrar para Votar

Ola o for para voc no seria opo, j que o for executa at que a condio seja
atendida no esperando que o usuario execute uma ao, ou seja se fizer o for
em um Array no tem como falar para ele esperar um evento para executar a
segunda vez.

Como voc tem que gerar estatistica de atendimento voc vai precisar de um
repositorio de dados para armazenar esta informao certo?
Estas senhas so sequenciais ou sero aleatrias?
Vai ter atendimento prioritrio?
Onde elas sero impressas?
Responder

Citao
segunda-feira, 19 de setembro de 2011 19:20

Diego G Frana
0

0
Entrar para Votar

sim . As senhas sao de forma sequencial , vai ter atendimento prioritario ,elas
deverao ser impressas em um monitor.
eu tinha pensado em fazer um arraylist ou um list . nao sei se seria esta a
soluao.
Responder

Citao
segunda-feira, 19 de setembro de 2011 20:47

Anderson Lopes BorealTech


135

2
Entrar para Votar

Bem bsico , mas faria algo do tipo.


Criar duas classes

//Gerencia senha
using System;
using System.Collections.Generic;
using System.Web;
namespace GridAninhado
{
public class GerenciaSenha
{
//Cuidado , desta forma est bem bsico e sem teste, so uma base, deve
ser muito melhorado, como armazenar hora de inicio de fim de atendimento.
//As senhas devem ser apagadas da lista ou levadas para outra lista..
//Como est em List caso a aplicao seja fechada a contagem das senhas
voltar a zero.
//Bons estudos, e espero que consigo desenvolver o restante, e com certeza
o pessoal fera aqui do forum tem como auxiliar na melhoria deste co'digo.
List<senha> _listSenha = new List<senha>();
List<senha> _listAtendida = new List<senha>();
private Int32 _ultimaSenha = 0;
private Int32 _ultimaSenhaPrioritaria = 1000;
public Int32 UltimaSenha
{
get { return _ultimaSenha; }
set { _ultimaSenha = value; }
}
public Int32 UltimaSenhaPrioritaria
{
get { return _ultimaSenhaPrioritaria; }
set { _ultimaSenhaPrioritaria = value; }
}

//Busca a proxima senha


private String ProximaSenha(enTipoAtendimento pTipoAtendimento)
{
senha _senha = new senha();
if (pTipoAtendimento == enTipoAtendimento.Prioritario)
{
//caso seja prioritario adicionado na variavel booleana.
_senha.Prioritaria = true;
}
//Pega a ultima senha e adiciona +1
_senha.Senha = UltimaSenha + 1;
//Adiciona na lista de senhas.
_listSenha.Add(_senha);
//Caso queira fazer a impresso em alguma impressora..
return _senha.Senha.ToString();
}
/// <summary>
/// Chama a proxima senha a ser atendida..
/// </summary>
/// <returns></returns>
///
//Criar um mtodo para apagar a senha da lista ou enviar para outra lista.
private String ChamaProxima()
{
//Verifica se tem senha prioritaria.
for (int i = 0; i < _listSenha.Count; i++)
{
if (_listSenha[i].Prioritaria)
{
//caso tenha prioritaria chama ela.
return _listSenha[i].Senha.ToString();
}
}
//caso no chama a primeira senha da fila.
return _listSenha[0].Senha.ToString();
}
}
}

//Senha
using System;
using System.Collections.Generic;
using System.Web;
namespace GridAninhado
{
enum enTipoAtendimento {Normal , Prioritario};

public class senha


{
private
private
private
private

Int32 _senha;
Boolean _chamada;
DateTime _inicioAtendimento;
Boolean _prioritaria = false;

public Int32 Senha


{
get { return _senha; }
set { _senha = value; }
}
public Boolean Chamada
{
get { return _chamada; }
set { _chamada = value; }
}

public DateTime InicioAtendimento


{
get { return _inicioAtendimento; }
set { _inicioAtendimento = value; }
}
public Boolean Prioritaria
{
get { return _prioritaria; }
set { _prioritaria = value; }
}
}
}
Agora basta dar uma analisada e qualquer dvida posta aqui.

Marcado como RespostaDiego G Franasegunda-feira, 19 de setembro de


2011 20:52

o
Responder

Citao
segunda-feira, 19 de setembro de 2011 20:52

Diego G Frana
0

0
Entrar para Votar

Muito obrigado msm , eu so precisava de um empurrao msm ,acho que agora eu


dou conta de dar continuidade neste software. nem sei como agradecer.
Responder

Citao
segunda-feira, 19 de setembro de 2011 20:55

Anderson Lopes BorealTech


135

1
Entrar para Votar

Blza, qualquer coisa posta aqui.

Responder

Citao
sbado, 1 de outubro de 2011 14:30

Jair barbosa
0

0
Entrar para Votar

olah!
eu tanbm estou fazendo esse mesmo sistema de gereciamento de filas em um
banco, mas na parte de programao, cdigos eu sou muito leigo. At agora s
criei o layot com os botoes, menu strip, label, group box etc.. pra se ter uma
idria eu s conseguir fazer o codido de fexar o programa mais nada... Anderson
ou alguem que entenda se tiver disposto a ajudar add meu msn
jairbds@hotmail.com. Pesquisei muito, mas como o meu primeiro software
estou perdido.
Sugerido como RespostaNilson Penteadoquarta-feira, 5 de outubro de 2011

o
13:47

No Sugerido como RespostaNilson Penteadoquarta-feira, 5 de outubro de


2011 13:47

o
Responder

Citao
quarta-feira, 5 de outubro de 2011 14:03

Nilson Penteado
0

0
Entrar para Votar

Bom Dia Anderson Lopes , vc poderia me ajudar estou na mesma situao do Jair
Barbosa , copiei , e colei o codigo que vc colocou aqui porem da erro , o que
devo fazer ? desde ja agradeo.
Responder

Citao
quarta-feira, 5 de outubro de 2011 14:52

Diego G Frana
0

Entrar para Votar

Eu criei o programa de gerenciamento de fila mas foi diferente do nosso


colega,utilizei a classe random para isso :
criei uma classe senha e criei este metodo
public virtual string GeraSenha()
{
Random random = new Random();
string retorno =random.Next(1,DateTime.Now.Millisecond).ToString();

return
retorno;

}
la na parte para fazer a chamada eu fiz o seguinte:
private void button2_Click(object sender, EventArgs e)
{
senha novo = new senha();
novo.GeraSenha();
label1.Text = "Atendimento Prioritrio";
label2.Text =" Senha: " +novo.GeraSenha();

}
vcs precisam tambem de fazer a previsao de atendimento dos clientes?

Cdigo completo para um gerador de senhas aleatrias

/
*

Este exemplo mostra como escrever um gerador de


senhas aleatrias.
*/
static void Main(string[] args){
// nos caracteres possveis ns evitamos a letra "L"
// minscula, para que o usurio no confunda com o
// numeral "1"
string carac = "abcdefhijkmnopqrstuvxwyz123456789";
// converte em uma matriz de caracteres
char[] letras = carac.ToCharArray();
// vamos embaralhar 5 vezes
Embaralhar(ref letras, 5);
// junta as partes e forma uma senha de 8 dgitos e/ou
// caracteres
string senha = new String(letras).Substring(0, 8);
// exibe o resultado
Console.WriteLine("A senha sugerida : " + senha);
Console.WriteLine("Pressione uma tecla para sair...");
Console.ReadKey();
}
static void Embaralhar(ref char[] array, int vezes){
Random rand = new Random(DateTime.Now.Millisecond);

for(int i = 1; i <= vezes; i++){


for(int x = 1; x <= array.Length; x++){
Trocar(ref array[rand.Next(0, array.Length)],
ref array[rand.Next(0, array.Length)]);
}
}

static
char
arg1
arg2
}

using
2:
3:
4:

void Trocar(ref char arg1, ref char arg2){


strTemp = arg1;
= arg2;
= strTemp;

System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

5:
6: namespace MyLibrary.Util
7: {
8:
/// <summary>
9:
/// Classe de senha
10:
/// </summary>
11:
public static class PasswordUtil
12:
{
13:
14:
#region Metodos
15:
16:
/// <summary>
17:
/// Gera uma nova senha conforme os parametros
18:
/// </summary>
19:
/// <param name="tipo">Tipo da senha</param>
20:
/// <param name="tamanho">Tamanho da senha</param>
21:
/// <returns></returns>
22:
public static string Generate(TypePassword tipo, byte tamanho)
23:
{
24:
switch (tipo)
25:
{
26:
case TypePassword.Alfanumerico:
27:
return GeraSenhaAlfanumerico(tamanho);
28:
case TypePassword.Alfa:
29:
return GeraSenhaAlfa(tamanho);
30:
case TypePassword.Numerico:
31:
return GeraSenhaNumerico(tamanho);
32:
default:
33:
return GeraSenhaAlfanumerico(tamanho);
34:
}
35:
}
36:
37:
/// <summary>
38:
/// Gera uma senha com letras e numeros
39:
/// </summary>
40:
/// <param name="tamanho">Tamanho da senha</param>
41:
/// <returns></returns>
42:
private static string GeraSenhaAlfanumerico(byte tamanho)
43:
{
44:
var sb = new StringBuilder();
45:
var r = new Random();
46:
for (byte i = 0; i < tamanho; i++)
47:
{
48:
var c = (char)r.Next(65, 90);
49:
var n = r.Next(0, 9);
50:
var b = r.Next(-1,1);
51:
if( Convert.ToBoolean(b))
52:
sb.Append(c);
53:
else
54:
sb.Append(n);
55:
}
56:
return sb.ToString();
57:
}
58:
59:
/// <summary>
60:
/// Gera uma senha apenas com letras
61:
/// </summary>
62:
/// <param name="tamanho">Tamanho da senha</param>

63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115: }

/// <returns></returns>
private static string GeraSenhaAlfa(byte tamanho)
{
var sb = new StringBuilder();
var r = new Random();
for (byte i = 0; i < tamanho; i++)
{
var c = (char)r.Next(65, 90); // Apenas texto
sb.Append(c);
}
return sb.ToString();
}
/// <summary>
/// Gera uma senha apenas com numeros
/// </summary>
/// <param name="tamanho">Tamanho da senha</param>
/// <returns></returns>
private static string GeraSenhaNumerico(byte tamanho)
{
var sb = new StringBuilder();
var r = new Random();
for (byte i = 0; i < tamanho; i++)
{
var n = r.Next(0, 9); // Apenas numeros
sb.Append(n);
}
return sb.ToString();
}
#endregion
}
/// <summary>
/// Tipo da senha a ser gerada
/// </summary>
public enum TypePassword
{
/// <summary>
/// Letras e numeros
/// </summary>
Alfanumerico,
/// <summary>
/// Apenas letras
/// </summary>
Alfa,
/// <summary>
/// Apenas numeros
/// </summary>
Numerico
}