基于VB的投票计票程序的开发与实现
黄洁贞 陈达成 朱 璇
price是什么意思
摘 要:本文阐述了一种通用投票计票程序的设计思想、设计方法和具体的开发步骤,同时,对软件的各个功能进行了详细的论述。该软件遵循着简单、实用、服务于用户的设计思想进行设计和开发,界面友好、操作便捷,并具有了人性化的信息提醒和容错。采用 VB 语言开发,并调用 EXCEL 作为数据记录及保存,确保记录的可查性和准确性。
关键词:VB;计票;程序
1前言
民主选举与民主评议的思想可谓是深入人心,为了充分表达人民群众的意见,很多问题我们往往采用投票表决的方式来进行最后决策。投票的统计一般有两种方法:一种是利用专门的投票统计系统进行处理;另一种是采用人工的方式进行唱票、计票和统计。前者自动化程度
高、准确率高,但是系统投资大,一般只应用于大型场合;后者则适用于中小型、无需快速统计场合。
本文设计的选举计票软件,是一个以人工方式为主导,利用计算机系统进行选票统计及汇总。采用 VB 结合 EXCEL 设计的选举计票软件,通过计算机对选举计票进行实时公开的显示,实现了自动化、透明化、公开化,有效地提高选举统计的工作效率和准确率。
2相关准备
2.1 VB 简介
20 世纪 90 年代 Microsoft 公司推出的 Visual Basic 语言是以结构化 BASIC 语言为基础,以事件驱动作为运行机制的新一代可视化程序设计语言。它比传统的程序设计语言有明显的优势,除了提供常规的编程环境外,还提供一套可视化设计工具,便于程序员建立图形对象,巧妙地把 Windows 编程的复杂性 “封装”起来,且随着版本的改进,功能越来越强大,不但可以作为多媒体软件制作工具,实现数据库管理,而且还具有网络功能等。本系统的开发环境为 Visual Basic 6.0 版本。
2.2 VB 对 EXCEL 的调用
EXCEL 作为 Microsoft 公司的一个产品成员,在 VB 里提供了对 EXCEL 表读写的自动化功能,其方法如下:
1) 在工程中引用 Microsoft Excel 类型库:
从“工程”菜单中选择“引用”项;在列表中选择 Microsoft Excel 11.0 Object Library,然后选择“确定”,则表示在工程中要引用 EXCEL 类型库。
brittle2) 声明过程中定义 EXCEL 对象:
Dim xlApp As Excel.Application Dim xlBook As Excel.WorkBook Dim xlSheet As Excel.Worksheet 3)在程序中操作 EXCEL 表常用命令:
Set xlApp = CreateObject ("Excel.Application") ' 创建 EX-
CEL 对象
Set xlBook = xlApp.Workbooks.Open("文件名") ' 打开已经存在的 EXCEL 工件簿文件
xlApp.Visible = True ' 设置 EXCEL 对象可见
Set xlSheet = xlBook.Worksheets("表名") ' 设置活动工作表 xlSheet.Cells(row, col) =值 ' 给单元格(row,col)赋值
xlBook.Clo (True) ' 关闭工作簿 xlApp.Quit ' 结束 EXCEL 对象
Set xlApp = Nothing ' 释放 xlApp 对象
2.3 VB 对文本文件的读写
在 VB 中提供多种方法对顺序文件的存取。
1) 读取文件用 Input 方式打开。
Open <pathname> For Input As [#]<filenumber>;用 Line Input# 语句把数据从文件中读入内存。
Line Input #< filenumber >,<varlist>
2) VB 根椐格式控制的不同,有 Write# 语句和 Print# 语句两种写顺序文件的方式。本文采用 Print 方式:Print #<filenum-
ber>,[<outputlist>]
本文中用到 vote.ini 文件储存待计票候选人人数及名单。
3设计思路
选举计票系统可以实时显示当前的计票结果和计票排名。投票统计前的准备工作是要把所有候选人的名单通过计票程序的菜单选项添加到待计票列表中,确认返回后则进入计票等待状态,此时候选人名单会保存在当前目录下的 vote.ini 文件中。计票程序提供全选及全不选的按钮,开始投票统计时,由唱票者读出当前选票,计票员中可根据实际情况将所有当选的候选人选中或不选中,然后去掉没当选的名单,点击[确认选票],增加一张选票。新增加的选票显示在最后一张选票处,方便监票员核对,是否录入有误,并且加入到总票数中,进行排名统计,显示名次。如果在增加新选票过程中,发现有误,可以及时点击[撤销选票],进行撤销最后一张选票的操作,[撤销选票]可连续执行。
4软件实现广东科技 2011.5. 第 10 期 53
新建一个 VB 标准 EXE 工程,设置主窗体(Form1)的基本属性,为主窗体添加制作好的背景图片。通过菜单编辑器设计本程序的相应菜单。添加 5 个 Label 控件数组、2 个 Check 控件数组用于对候选人名称、得票票数、得票排名、选票选择等。为了界面的美观性,本程序加入了用户控件 jcbutton,用于界面按键的美化。另外,建立设置窗体(Form2)以及关于窗体(Form3)。软件完成后的主界面见图 1,设置窗体见图 2。
54 广东科技 2011.5. 第 10 期
El vote_now(i) = 0
End If Next
For i = 0 To sum_of_people - 1
recentlyCheck2(i).Value = Check1(i).Value ' 更新上一张选票显示 Check2(i).BackColor = Check1(i).BackColor
Label4(i).Caption = Label4(i).Caption + vote_now(i) ' 更
新当前票数显示
vote_total_now(i) = vote_total_now(i) + vote_now(i) ' 更新当前票数后台全局函数
Check1(i).Value = 0 ' 汽车如何防盗初始化新选票项
Check1(i).BackColor = uncheckedcolor
Next
sum_of_vote = sum_of_vote + 1 ' 在线词典查询更新选票张数
Label10.Caption = "centralization第 " & sum_of_vote & " 张选票"
Label7.Caption = sum_of_vote
'==========写入 EXCEL 文档开始=========='
Set xlApp = CreateObject ("Excel.Application") ' 创建 EX-
CEL 应用类
xlApp.Visible = Fal ' 设置 EXCEL 不可见
Set xlBook = xlApp.Workbooks.Open (App.Path & "\" & filename & ".xls") ' 打开 EXCEL 工作簿
Set xlsheet = xlBook.Worksheets(1) ' 打开 北京心理咨询师培训EXCEL 工作表 xlsheet.Cells(sum_of_vote + 1,
1) = sum_of_vote
For i = 0 To sum_of_people - 1
xlsheet.Cells(sum_of_vote + 1, i + 2) = vote_now(i) Next
xlBook.Save ' 保存 EXCEL 工作簿 xlBook.Clo (True) ' 关闭 EXCEL 工作簿 xlApp.Quit ' 关闭 EXCEL Set xlApp = Nothing ' 释放 EXCEL 齿圈对象
'========写入 EXCEL 文档结束============='
End If
'=========更新票数排序===================='
Dim a() As Integer
Dim B() As Integer
Dim j As Integer
ReDim a(1 To sum_of_people) As Integer
ReDim B(1 To sum_of_people) As Integer For i = 1 To sum_of_people a(i) = vote_total_now(i - 1)
B(i) = 1商务英语口语
Next i
For i = 1 To sum_of_people
For j = 1 To sum_of_people
If a(i) < a(j) Then B(i) = B(i) + 1
Next j
Next i
For i = 0 To sum_of_people - 1
Label9(i).Caption = B(i + 1)
Next i
End Sub
5小结
本文提出的一般中小型场合投票计票需求下的计算机辅助计票程序的设计与实现,该软件在本单位的民主选举计票中取得了很好的效果,通过计算机显示屏对选举计票的过程实时显示,实现了选举的自动化、透明化、公开化,有效地提高了选票统计的工作效率和准确率。文中给出了计票程序的关键代码,有助于此类软件的开发参考。
参考文献:
[1] 范敏.选票统计的一种快捷方法[J].知识丛林,2006,11:114.
[2] 周霭如,官士鸿,林伟健.Visual Basic 程序设计[M].电子工业出版社.
2003:3.
(作者单位:黄洁贞,广东省气象科技服务中心;陈达成,广东省气象局后勤服务中心;朱璇,广东省气象信息中心)广东科技 2011.5. 第 10 期 55