Pergunta

Eu apenas o download OpenSTV depois de ver o recente post mais SO blog, sobre os resultados da eleição moderador. Jeff escreveu que ele usou OpenSTV para conduzir a eleição, e forneceu um arquivo de votação (.blt) junto com ele que contém os dados de votação.

A minha pergunta é: como é que se crie um arquivo .blt em C #

Aqui estão duas maneiras que eu posso pensar que a página de votação fez isso:

  • A página de votação adicionado cada voto em um banco de dados SQL, e em seguida, de alguma forma, estes votos foram exportados para um arquivo .blt após votação tinha terminado. Como embora? Como posso fazer isso?
  • Ou, a página de votação criou o arquivo e, em seguida, adicionado a ele cada vez que alguém votou. Tenho certeza de que isto não é como a página de votação funcionou, porque é completamente unscalable, mas como eu poderia fazer isso em C #?

Estou interessado em descobrir como as duas possibilidades de trabalho e como eu posso fazer isso em C #. Desde já, obrigado. Oh, e eu espero Jeff vê esta questão, porque ele provavelmente teria uma grande resposta ...

Foi útil?

Solução

A melhor explicação do formato de arquivo BLT é aqui:

    4 2          # four candidates are competing for two seats
    -2           # Bob has withdrawn (optional)
    1 4 1 3 2 0  # first ballot
    1 2 4 1 3 0
    1 1 4 2 3 0  # The first number is the ballot weight (>= 1).
    1 1 2 4 3 0  # The last 0 is an end of ballot marker.
    1 1 4 3 0    # Numbers in between correspond to the candidates
    1 3 2 4 1 0  # on the ballot.
    1 3 4 1 2 0
    1 3 4 1 2 0  # Chuck, Diane, Amy, Bob
    1 4 3 2 0
    1 2 3 4 1 0  # last ballot
    0            # end of ballots marker
    "Amy"        # candidate 1
    "Bob"        # candidate 2
    "Chuck"      # candidate 3
    "Diane"      # candidate 4
    "Gardening Club Election"  # title

Tudo o que fiz foi

  1. Realizar uma consulta ad-hoc no SQL Management Studio para obter os resultados da votação
  2. resultados em um arquivo de texto (saída por padrão delimitado por tabulações é)
  3. Copiar-colar
  4. escreveu um pequeno 50 linha C # aplicativo para converter a consulta para o formato BLT
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top