C#을 사용하여 OpenSTV 선거를위한 .BLT 파일을 어떻게 생성합니까?
문제
중재자 선거 결과와 관련하여 가장 최근의 So 블로그 게시물을 본 후 OpenSTV를 다운로드했습니다. Jeff는 OpenSTV를 사용하여 선거를 수행했으며 투표 데이터가 포함 된 투표 파일 (.BLT)을 제공했다고 썼습니다.
내 질문은 : C#에서 .BLT 파일을 어떻게 만들 수 있습니까?
투표 페이지가 그렇게했다고 생각할 수있는 두 가지 방법은 다음과 같습니다.
- 투표 페이지는 각 투표를 SQL 데이터베이스에 추가 한 다음 어떻게 든 투표가 끝난 후이 투표가 .BLT 파일로 내보 렸습니다. 그래도 어떻게? 어떻게 할 수 있습니까?
- 또는 투표 페이지가 파일을 생성 한 다음 누군가 투표 할 때마다 추가했습니다. 투표 페이지가 어떻게 작동했는지가 아니라고 확신합니다. 왜냐하면 완전히 비평 할 수 없기 때문에 어떻게 C#에서이 작업을 수행 할 수 있습니까?
나는 두 가지 가능성이 어떻게 작동하는지, C#에서 어떻게 할 수 있는지 알아내는 데 관심이 있습니다. 미리 감사드립니다. 아, 그리고 제프 가이 질문을보기를 바랍니다. 아마 그는 아마도 큰 대답을했기 때문입니다 ...
해결책
BLT 파일 형식에 대한 가장 좋은 설명은 다음과 같습니다.
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
내가 한 일은
- 투표 결과를 얻으려면 SQL Management Studio에서 임시 쿼리를 수행하십시오.
- 텍스트 파일에 복사 결과를 얻은 결과 (출력은 기본적으로 탭으로 표시됩니다)
- 쿼리에서 BLT 형식으로 변환하기 위해 작은 50 라인 C# 앱을 작성했습니다.
제휴하지 않습니다 StackOverflow