(说明)
某学校举办了一场奥运知识竞赛,参加竞赛的选手为200名,1~200为选手编号。竞赛时间为9:00~11:00。8道竞赛题目依次从“A”~“H”编号,选手可按任意次序答题,每完成一道题目,可立即提交答案。若答案正确(Y),则选择其他题目进行解答,否则,可继续做该题目或选择其他题目进行解答,直至竞赛结束。
选手提交答案的情况及判定结果由专人即时录入,录入数据包括提交答案的时间、选手编号、题目编号(A~H)、是否正确(Y/N)等。
对竞赛情况进行统计和排名的规则如下:
1.若选手X在竞赛时提交的题目P解答正确,则解答该题目所用时间计算如下:
解答题目P的用时=提交题目P正确的时间-竞赛的开始时间+罚时,罚时=提交题目P错误解答的次数×20例如:表1中14号选手在10:27提交了题目A的正确解答,因此该选手正确解答该题目所用时间P为87分钟,由于他在09:37和09:52两次提交了题目A的错误解答,因此罚时为(2×20)分钟=40分钟,所以14号选手解答题目A的用时=(87+ 40)分钟:127分钟。
2.已经提交正确答案的题目再次提交时不再计算。
3.竞赛结束时,选手的总用时为所有解答正确的题目用时累加所得,解答不正确的题目不计时。
4.排名时,完成题目数量多者排名靠前;若完成的题目数相同,则用时少者排名靠前;若完成的题目数和所用时间均相等,则名次相同;完成题目数为。的选手不参加排名。
本应用程序的运行窗口如图3所示。
窗口中的两个文本框为Txt_time和Txt_player,分别用于录入提交答案的时间和选手编号。组合列表框Combo1提供题目编号(A~H),录入时从中选择。检查框Chk_yn用于输入解答是否正确信息。当单击“确定”按钮(Cmd_comfirm)时,录入的提交信息加入列表框List1中,排名情况在列表框List2输出。单击“关闭”按钮时退出应用程序。
在开发过程中,需要编写的部分程序代码如下:
(程序)
Private Type info
No As Integer ′选手编号
Num As Integer ′完成题目数量
Time As Integer ′完成题目的总用时
d(8)As Integer ′d用于记录提交第i个题目错误答案的次数
a(8)As Boolean ′a用于记录第i个题目是否已经提交正确答案
E.nd Type
D.im R(201)As info ′R[j]用于统计编号为j的选手提交答案的情况
D.im Maxlndex As Integer ′Maxlndex记录提交答案的选手中编号最大者
Private Sub Form_Load()
F.or i = 1 to 8
C.ombo1. Addltem chr((1))
Next
C.ombo1. Text = Combo1. List(0):txt_time.Text =" ":txt_player.Text =" "
F.or i = 1 To 200
R(i) num=0:R(i).time =0:R(i).no=i
F.orj = 1 To 8
R(i).d(j) =0:R(i).a(j) =False
Next j,i
E.nd Sub
Private Sub cmd_confirm_Click()
D.im h, m, k, time As Integer, ch, pass, s1 As String
K = Instr(txt_time, text,": "):If k<2 Then Goto error1
H. = Val(Left(txt_time. Text, k-1)):m = Val(Mid(txt_time. Text, k+1))
If h>11 Or h=11 And m>0 Or m>=60 Then goto errorl
Time=(2) ′计算答题时间,以分钟为单位
If txt_plater, text<1 or txt_player, text>200 Then Goto errorl
ch=(3)
pass = IIf(chk_yn.(4)=0,"N" ,"Y")
s1 = txt_time. Text+Space(4) + txt_player. Text
s1 = s1 + Space(10 - Len(txt_player. Text))+ch+Space(8)+pass
List1. Additem s1
K = Val(txt_player. Text) ′k为选手编号
R(k). no =k ′编号为k的选手的提交信息记录在下标为k的数组
′元素中
If k>maxindex Then maxindex = k
M =Asc(ch)-Asc("a")
If pass< >"Y" Then ′编号为k的选手提交第m个题目的解答不正确
R(k).d(m)=R(k).d(m)+1
E.lse If R(k).a(m)< >True Then ′已经提交正确的题目的解答不再计算
R(k).a(m) =true:R(k).num=R(k).num+1
R(k).time = R(k). time +(5)
C.all statistic ′调用过程statistic进行实时排名和输出
E.nd If
E.xit Sub
error1: MsgBox "录入信息有错误!" ,vbOKOnly
E.nd Sub
[试题]阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。[说明]某公司的服务器上为每位员工提供了一定大小的存储空间,用于数据的备份。下面的程序面向公司员工,提供了本地计算机与服务器端之间文件传输的功能。主要操作介绍如下:(1)连接服务器:员工需要输入用户名和口令才能连接到服务器端,checkUser函数用于检查用户名和口令是否合法,返回真假值。(2)上传文件:从本地计算机上传文件到服务器。员工可以在本地文件列表中选择一个或多个文件,这些文件通过上传操作被复制到服务器端指
[试题]阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。[说明]我国现行使用的公民身份证号码有两种,分别遵循两个国家标准:〖GB 11643-1989〗和〖GB 11643-1999〗。〖CB 11643-1989〗中规定的是15位身份证号码,排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。〖GB 11643 -1999〗中规定的是18位身份证号码,是特征组合码,它由十七位数字本体码和一位数字校验码组成。排列顺序从
[试题]阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。[说明]某银行新近开通外汇定期存款业务。为方便用户查询不同存款方式下的日利率、计算本利,特开发了日利率查询及本利计算程序,其运行窗口如下图所示。用户只要在界面上选择相应的存款方式(包括外汇币种、存期等),便可单击按钮一查询存款日利率。若输入一定数量的本金。程序还会根据所选择的存期计算并输出本利和。在开发过程中,选择币种和存期的组合框(ComboBox)名分别为Combo1和Combo2,单旋钮 (CommandBu
[试题]阅读以下应用说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。(应用说明5.1)本应用程序的窗体中有一个下拉式列表框(名称为Combo1)和两个文本框(名称分别为 Txt1和Txt2)。运行时,用户从Combo1的列表中进行选择,程序就会将选中条目的内容以及编号(从0开始)分别在文本框Txt1和Txt2中显示出来。(程序代码5.1)Private Sub Combo1_Click()Txt1.Text = Combo1. (1)Txt2.Text = Combo1. (2
[试题]阅读以下应用说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。(说明8.1)以下程序的功能是:生成20个200~300之间的随机整数,输出其中能被5整除的数并求出它们的和。(程序代码8.1)Private Sub Command1_Click()F.or i=1 To 20x=Int((1)*200+100)If (2)=0 ThenPrint xS=S+ (3)E.nd IfNext iPrint"Sum=";SE.nd Sub(说明8.2)程序8.2运行后,单击窗
[试题]阅读以下说明和Visual Basic代码,将应填入(n)处的字句写在对应栏内。(说明)以下代码实现了当用户退出界面时,判断TextEdit中的文字是否发生改变,弹出对话框判断,让用户选择是否保存文件或取消退出界面操作。阅读下面的代码,将其补充完整。(代码7-1)B.egin VB.Form. Forml//...窗体描述(略)B.egin VB.TextBox TextEditH.eight = 1830Left = 180Tablndex = 0Text = "TextEdit"Top =
[试题]阅读以下说明及Visual Basic程序代码,高尔夫球应填入(n)处的字句写在对应栏内。[说明]设某单位Acess数据库中有一张员工信息表,其中记录了员工编号、姓名、性别等基本信息。下面的应用程序利用数据控件(Data)实现了对这张表中记录的增加、删除和修改操作。其运行界面如下:在开发过程中,数据控件Data1与员工数据表相连接,各文本框、“性别”组合列表框Combo1、“政治面貌”组合列表框Combo2都分别与数据表的相应字段绑定,界面上从左到右各操作按钮分别取名为CmdAdd、CmdDel、
[试题]阅读以下应用说明及Visual Basic部分程序代码,将应填入(n)处的字句写在对应栏内。(说明)本应用程序是一个小写数字转换成大写格式的转换器,其运行窗口如图5所示。窗口中有两个标签(lblNumber和lblChinese)、两个文本框(txtNnmber和txtChinese)和一个命令按钮(cmdChange)。当单击按钮cmdChange时,将文本框txtNumber中数字转换成中文大写,并显示在文本框txtChinese中。例如,在文本框txtNumber输入0076845,单击cm
[试题]阅读以下说明和C++代码(代码13-1),将应填入(n)处的字句写在对应栏内。(说明)软件设计师东方飞龙利用UML设计了一个迷你小型复数类,其类图如图13-11所示。(代码13-l)/*___________________________________*//********* 文件 MiniComplex. h*********//*___________________________________*/include<iostream>using namespace std;class M
[试题]试题七阅读以下应用说明及Visual Basic程序代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)已知窗体上有两个名为cmdGene和cmdSort的命令按钮。单击cmdGene按钮时,随机产生10个[1,100]范围内的整数并将它们放在数组intA中;单击cmdSort按钮时,用选择法排序这10个数并输出。(程序代码)D.im intA(1 To 10)As IntegerPrivate Sub cmdGene_Click()D.im intI As IntegerRandomize