某地选考赋分规则如下:
●划分赋分等级:将考生每门选考科目的原始成绩从高到低划分为A、B+、B、C+、C、D+、D、E共8个等级,各等级人数所占比例分别为3%、7%、16%、24%、24%、16%、7%、3%,如下表所示。
等级 | A | B+ | B | C+ | C | D+ | D | E |
比例 | 3% | 7% | 16% | 24% | 24% | 16% | 7% | 3% |

转换公式如下:t=t2+(s-s2)*(t1-t2)/(s1-s2),其中t表示转化后的赋分成绩,t1表示该档最高转化分,t2表示该档最低转化分,s表示原始分,s1表示该档最高原始分,s2表示该档最低原始分。
比如选择物理的学生有20000人,小明物理卷面分90分,排名为1800名,则他在物理学科中的比例是9%。按照赋分等级表可知他所处等级为B+。若原始分4%-10%区间的最高分为94,最低分为88,B+区间分数为81-90分。小明转化后的赋分成绩为81+(90-88)*(90-81)/(94-88)=84分。
编写一个VB程序计算某校学生某科目成绩的赋分,功能如下:从数据库中读入学生学号、姓名、班级和原始成绩,并在列表框List 1中显示,单击“赋分”按钮Comnand1,在列表框List2中按原始成绩从高到低显示赋分等级和赋分成绩。赋分时,先按原始成绩从高到低排序,再根据人数比例计算切分位置,最后对落入同一等级的学生进行赋分。若切分位置有相同分数学生,则归为同一个等级。例如,某等级切分位置是第100位,但第101位学生的原始成绩和第100位相同,则这两名学生的赋分等级相同。程序运行界面如图b所示。
实现上述功能的VB程序如下,请回答下列问题:
(1)分析程序,可知存放学生成绩的数据表为
stu_info
stu_info
。(2)请在横线处填上合适的代码。
Const max=1000
Dim n As Integer’存放学生人数
Dim xh(1 To max) As String,xm(1 To max) As String
Dim bj(1 To max) As Integer’fs(0 To max) As Single
Dim ffcj(1 To max) As Integer’数组ffdj存储学生的赋分等级
Dim ffdj(0 To max) As String’数组ffcj存储学生的赋分成绩
Private Sub Form_Load
( )
( )
Dim i As Integer,km As String
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString=“provider=microsoft.ace.jye.ai.12.0;data source=“+App.Path+“\student.jye.ai”
conn.Open
Set rs.ActiveConnection=conn
rs.Open“select*from stu_info“
’本过程其它代码从数据库中读入学生学号、姓名、班级和原始成绩存储到数组xh、xm、bj和fs中,并在List1中显示。学生数存储在变量n中。
Loop
End Sub
Private Sub Command1_Click
( )
( )
Dim q(1 To max) As Integer’p(1 To 8)As Single,dj(1 To 8)As String
Dim i As Integer,j As Integer,t As Integer,pos As Integer,last As Integer
Dim t1 As Integer,t2 As Integer,s1 As Single,s2 As Single
p(1)=0.03:p(2)=0.07:p(3)=0.16:p(4)=0.24
p(5)=0.24:p(6)=0.16:p(7)=0.07:p(8)=0.03
dj(1)=“A“:dj(2)=“B+“:dj(3)=“B“:dj(4)=“C+“
dj(5)=“C“:dj(6)=“D+“:dj(7)=“D“:dj(8)=“E“
For i=2 To 8
p(i)=
p(i)+p(i-1)
p(i)+p(i-1)
’计算到该等级累计所占比例Next i
Fori=1Ton
q(i)=i
Next i
For i=1 Ton-1
For j=n To i+1 Step-1
If fs(q(j))>fs(q(j-1)) Then
t=q(j):q(j)=q(j-1):q(j-1)=t
End If
Next j
Next i
pos=1
t1=100:t2=91
For i=1 To 8
last=Int(n*p(i)+0.5)
Do While
fs(q(last+1))=fs(q(last))
fs(q(last+1))=fs(q(last))
last=last+1’处理切分位置的同分数学生
Loop
s1=fs(q(pos)):s2=fs(q(last))
Do While pos<=last
ffdj(q(pos))=i
ffdj(q(pos))=i
ffcj(q(pos))=t2+(fs(q(pos))-s2)/(s1-s2)*(t1-t2)
pos=pos+1
Loop
t1=t1-10:t2=t2-10
Next i
For i=1 Ton
List2.AddItem xh(q(i))+xm(q(i))+Str(bj(q(i)))+dj(ffdj(q(i)))+Str(ffcj(q(i)))
Next i
End Sub
【考点】应用程序的试运行和保存.
【答案】stu_info;( );( );p(i)+p(i-1);fs(q(last+1))=fs(q(last));ffdj(q(pos))=i
【解答】
【点评】
声明:本试题解析著作权属菁优网所有,未经书面同意,不得复制发布。
发布:2024/4/20 14:35:0组卷:2引用:1难度:0.2
相似题
-
1.大部分社交软件都有好友推荐的功能,当用户 A 和用户 B 的共同好友数量超过阈值 p 时,由系统向用户 A 推荐用户 B。
编写 VB 程序,实现好友推荐功能。运行程序,列表框 Listl 中显示用户 id 及好友列表,在文本框 Textl 中 输入推荐目标用户 id,在文本框 Text2 中输入阈值 p,点击“推荐”按钮,在列表框List2 中显示用户之间的关系,在标签 Label5 中显示向目标用户推荐的好友列表。程序运行界面如图:
(1)根据如图所示数据,若输入用户 id 为“3”,输入阈值为“3”,则推荐好友为:
(2)实现上述功能的 VB 程序如下,请在横线处填入合适的代码。发布:2025/1/2 10:30:2组卷:0引用:1难度:0.3 -
2.小明用python语言中对大小为100*100像素的图像“上.jpg”(如图所示)进行简单处理,部分代码如图:
程序执行后的图像效果是( )发布:2024/12/20 9:30:2组卷:3引用:5难度:0.4 -
3.某学校开展了艺术节活动,数组a中存储了n个节目的编号和得分数据,数组存储结构如图所示:
小明使用选择排序思想对上述n个节目按得分进行降序排序(得分相同的按编号升序排列),并依据得分插入各个节目的排名信息,处理后数组a的存储结构如图所示:
程序运行时,单击命令按钮Command1后读取数据到数组a中并显示在列表框List1中,单击命令按钮Command2后将节目按照上述规则进行排序,并将排名结果显示在列表框List2中。
实现上述功能的VB程序如下,请回答下列问题:
(1)已知窗体名称为Forml,要使程序加载时,窗体标题自动显示为“第15题程序”,则可在
(2)请在横线处填入合适的代码。
(3)加框处代码有误,请改正。发布:2025/1/2 10:30:2组卷:0引用:1难度:0.3