0 引言
为快速查询不同年龄、不同类别、不同等级人员体能训练标准或根据其各训练项目实际结果计算最终体能考核成绩及等级,根据目前规定的各个年龄段、各类别、各等级下的个人体能训练标准及成绩计算方法,在实际使用中需在各项目、各类别表格之间反复翻阅、查看、核对和然后根据不用方法和标准计算最终成绩和等级,查询效率和计算效率均较低,很难满足日常使用。
1. 功能设计
体能训练标准查询及成绩计算软件主要拥有两大功能,一是根据用户输入的年龄、身高、性别和身份类别、等级类别、是否新入职等基本信息,查询该限制条件下,其体能训练各项目最低标准要求,主要包含体型标准和4个专业项目标准。其功能实现流程示意图如下:
图1 查询功能实现流程示意图
第二个功能是根据用户输入的性别、年龄、身份类别、等级类别和是否新入职等基本信息,以及其实际各体能训练项目的考核成绩,计算其各项目单项成绩分数及其体能训练总分数和最终等级。其功能实现流程示意图如下:
图2 成绩计算功能实现流程示意图
2. 界面设计
软件采用友好的人机交互界面,所有操作仅需通用鼠标和键盘即可完成,软件主界面功能分区清晰,其分区情况见图3及图4。
2.1体能训练标准查询界面设计
用户在基本信息输入区内根据实际情况录入或选定基本信息,再点击【开始查询】按钮即可实现其对应的训练标准查询功能。其中不同身份类别对应不同等级类别,选中其中一种身份类别后,另一种等级类别将不可选,防止用户误操作。
图3 体能训练标准查询界面分区图
2.2体能训练成绩计算
用户在基本信息输入区内根据实际情况录入或选定基本信息后,再将各项目实际考核成绩录入到体能训练成绩输入区。信息录入完毕后,点击【开始查询】按钮即可开始成绩计算。最终各单项成绩和总成绩分数及等级均会出现在成绩结果显示区。
图4 体能训练成绩计算界面分区图
3. 功能实现
3.1数据库设计思路
由于人员性别、身份类别、项目数量和等级类别分类较多,层次较为繁琐,在数据库设计时为避免建立过多表,主要按照身份类别进行表的设计。此外由于部分项目是通过数据计算得知,而部分项目是通过查表得知,因此在表的设计中将上述两种数据的获取做了区分,可加快查询速度,减少代码量。
3.2标准查询功能具体实现的关键语句
下面是某类人员男,在“良好”标准下各项目标准的查询代码:
If Me.RadioButton1.Checked = True And Me.RadioButton5.Checked = True And Me.RadioButton11.Checked = True And Me.RadioButton4.Checked = True Then
Dim SQL As String = "Select * from WZ标准 where 1 =1 "
Dim da As DataSet = Query(SQL & "and 性别 like '%" & "男" & "%'" & "and 备注 like '" & "新入职" & "%'" & "and 项目类别 = '项目1'" & "and 分数 = '良好'")
Me.DataGridView1.DataSource = da.Tables(0)
Me.TextBox6.Text = Me.DataGridView1.Rows(0).Cells(Mycells).Value & "个"
Dim SQL1 As String = "Select * from WZ标准 where 1 =1 "
Dim da1 As DataSet = Query(SQL1 & "and 性别 like '%" & "男" & "%'" & "and 备注 like '" & "新入职" & "%'" & "and 项目类别 = '项目5'" & "and 分数 = '良好'")
Me.DataGridView1.DataSource = da1.Tables(0)
Me.TextBox8.Text = Int(Me.DataGridView1.Rows(0).Cells(Mycells).Value) & "分" & Math.Round((Me.DataGridView1.Rows(0).Cells(Mycells).Value - Int(Me.DataGridView1.Rows(0).Cells(Mycells).Value)) * 60, 2) & "秒"
Dim SQL2 As String = "Select * from WZ标准 where 1 =1 "
Dim da2 As DataSet = Query(SQL2 & "and 性别 like '%" & "男" & "%'" & "and 备注 like '" & "新入职" & "%'" & "and 项目类别 = '项目2'" & "and 分数 = '良好'")
Me.DataGridView1.DataSource = da2.Tables(0)
Me.TextBox5.Text = Me.DataGridView1.Rows(0).Cells(Mycells).Value & "个"
Me.TextBox7.Text = "WZ人员无此项"
End If
其他类别及项目的查询代码类似。
3.3 VB.NET访问ACCESS数据库的关键语句
利用VB.NET访问ACCESS数据库的关键语句如下:
Dim ConString As String
ConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\标准.mdb"
Using connection As New OleDbConnection(ConString)
Dim ds As New DataSet()
Try
connection.Open()
Dim command As New OleDbDataAdapter(SQLString, connection)
command.Fill(ds, "ds")
Catch ex As System.Data.SqlClient.SqlException
Throw New Exception(ex.Message)
End Try
Return ds
3.4成绩计算功能具体实现的关键语句
查询某项训练项目成绩的关键语句为:
If ywqz >= Me.DataGridView1.Rows(0).Cells(Mycells).Value Then
chengji1 = Me.DataGridView1.Rows(0).Cells(1).Value
ElseIf ywqz >= Me.DataGridView1.Rows(1).Cells(Mycells).Value Then
chengji1 = Me.DataGridView1.Rows(1).Cells(1).Value
ElseIf ywqz >= Me.DataGridView1.Rows(2).Cells(Mycells).Value Then
chengji1 = Me.DataGridView1.Rows(2).Cells(1).Value
ElseIf ywqz < Me.DataGridView1.Rows(2).Cells(Mycells).Value Then
chengji1 = "不及格"
Me.TextBox10.Text = "项目1不及格"
End If
4. 展望
用户可根据实际的年龄划分、类别划分和项目划分,创建合适的数据库表即可实现适用于自身的查询及计算软件。通过软件的运用可以提升标准查询和成绩计算的效率及准确性。