Pregunta

Acabo de descargar OpenSTV después de ver el más reciente SO entrada del blog, con respecto a los resultados de la elección del moderador. Jeff escribió que se utiliza OpenSTV para llevar a cabo la elección, y se suministra un archivo de votación (.blt) junto con él que contiene los datos de la votación.

Mi pregunta es: ¿cómo se crea un archivo .blt en C #

?

Aquí hay dos maneras en que puedo imaginar que la página de votación hizo:

  • La página de votación añadió cada voto en una base de datos SQL, y entonces de alguna manera, estos votos fueron exportados en un archivo .blt después de la votación había terminado. ¿Cómo sin embargo? ¿Cómo puedo hacer esto?
  • O, la página de votación creó el archivo y luego se añadió a ella cada vez que alguien votó. Estoy seguro de que esta no es la forma en la página de votación funcionó, porque es completamente infranqueable, pero ¿cómo podría hacer esto en C #?

Estoy interesado en saber cómo funcionan las dos posibilidades y cómo puedo hacer eso en C #. Gracias por adelantado. Ah, y espero Jeff ve esta pregunta, porque probablemente tendría una gran respuesta ...

¿Fue útil?

Solución

La mejor explicación del formato de archivo BLT está aquí:

    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

Todo lo que hice fue

  1. Realizar una consulta ad hoc en Management Studio de SQL para obtener los resultados de la votación
  2. Resultados de la copia-pega en un archivo de texto (salida está delimitado por tabuladores por defecto)
  3. escribió una pequeña línea 50 C # aplicación para convertir de la consulta a formato BLT
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top