كيف أقوم بإنشاء ملفات .BLT لانتخابات OpenSTV باستخدام C#؟

StackOverflow https://stackoverflow.com/questions/2233695

  •  19-09-2019
  •  | 
  •  

سؤال

لقد قمت للتو بتنزيل OpenSTV بعد رؤية أحدث منشور مدونة SO، فيما يتعلق بنتائج انتخاب المشرف.كتب جيف أنه استخدم OpenSTV لإجراء الانتخابات، وقدم معه ملف اقتراع (.blt) يحتوي على بيانات التصويت.

سؤالي هو:كيف يمكنك إنشاء ملف .BLT في C#؟

فيما يلي طريقتان يمكنني من خلالهما التفكير في أن صفحة التصويت فعلت ذلك:

  • أضافت صفحة التصويت كل صوت إلى قاعدة بيانات 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

كل ما فعلته هو

  1. قم بإجراء استعلام مخصص في SQL Management Studio للحصول على نتائج التصويت
  2. نسخ النتائج ولصقها في ملف نصي (يتم تحديد الإخراج بعلامات جدولة بشكل افتراضي)
  3. كتب تطبيقًا صغيرًا مكونًا من 50 سطرًا في C# للتحويل من الاستعلام إلى تنسيق BLT
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top