问答题

[说明] 某单位组织一次职业技术考核比赛,由十名评委对选手的现场表现打分(0到100以内的数值)。本程序接收原始评分后,去掉一个最高分、一个最低分,最后计算并输出选手最后得分。在接收输入第i个评分时,若输入数据的类型、范围不正确,程序将给出相应提示,并等待下一次输入,直至正确接收第i个评分为止。程序的运行界面如下:
在开发过程中,文本框名为Text1,界面上有上至下三个按钮分别取名为CmdMark、CmdReresh和CmdExit。 [Visual Basic代码] Private Sub CmdMark_Click() ’按钮“输入评分”的单击事件响应代码 Dim i As Integer,temp As Variant ’声明变量 Dim marks(1 To 10),maxMark,minMark,sumMark,mark As Single sumMark=0 Text1.Text=“编号”&Chr(9)&“评分”& vbCrLf For i=1 To 10 ’接收十个评分输入 Do While 1=1 ’验证并接收第i个评委的评分 temp=InputBox(“请输入”&i&“号评委的评分:”) If (1) IsNumeric(temp)Then Msg Box“数据类型错误,请重试!” ElseIf CSng(temp)<0 Or CSng(temp)>100 Then MsgBox“数值范围错误,请重试!” Else:Exit Do End If Loop marks(i)=CSng(temp) If i=1 Then maxMark= (2) :minMark= (2) If marks(i)>maxMark Then maxMark=marks(i) If minMark>marks(i)Then (3) sumMark=sumMark+marks(i) Text1.Text=Text1.Text & i & Chr(9) & marks(i) & vbCrLf输出第i个评委的评分 Next mark=( (4) )/8 ’计算选手最后得分 Text1.Text=Text1.Text &"去掉一个最高分:"&maxMark&vbCrLf&_ "去掉一个最低分:"&minMark&vbCrLf&_ "选手最后得分:"&mark End Sub Private Sub Command2_Click() ’按钮“刷新屏幕”的单击事件响应代码 (5) .Text=“单击”输入评分“按钮,开始统分……” End Sub Private Sub Command3_Click() 按钮“退出程序”的单击事件响应代码 End End Sub

【参考答案】

(1) Not (2) marks(1)或marks(i) (3) minMark=marks(i) (4) su......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)
热门 试题

问答题
[说明]本程序在3×3方格中填入1到10以内9个互不相等的整数,使所有相邻两个方格内的两个整数之和为质数。程序的输出是全部满足条件的方格。方格的序号如下图所示。程序采用试探法,从序号为0的方格开始,依次为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数;如不能为当前方格寻找一个合理的可填整数,就要后退到前一方格,调整前一方格的填入整数;当序号为8的方格也填入合理的整数后,就找到了一个解。为检查当前方格所填整数的合理性,程序引入数组CheckMatrix,存放需要进行合理性检查的相邻方格的序号。事实上,CheckMatrix中只要求第i个方格中的数向前兼容,即填写第4个方格时,只检查在它之前、与之相邻的第1,3个方格是否满足和为素数的条件。[程序]#include <stdio.h>int pos,a[9],b[11]; *用于存储方格所填入的整数* void write(int a[]) *方格输出函数* { ……}int isPrime(int m) *素数判断函数,若m为素数则返回1,否则返回0* { ……}int selectNum(int start) *找到start到10之间尚未使用过的最小的数,若没有则返回0* { int j;for(j=start;j<=10;j++) if(b[j]) return j;return0;}int check() *检查填入pos位置的整数是否合理* { int i,jint checkMatrix[][3]={{-1},{0,-1},{1,-1},{0,-1},{1,3,-1},{2,4,-1},{3,- 1},{4,6,-1},{5,7,-1}};for(i=0;(j= (1) )>=0;i++)if(! isPrime( (2) ))return 0;return 1;}void extend() *为下一方格找一个尚未使用过的整数* { (3) =selectNum(1);b[a[pos]]=0;}void change() *为当前方格找下一个尚未使用过的整数,若找不到则回溯* { int j;while(pos>=0&&(j=selectNum(a[pos]+1))= =0) b[a[pos- -]]=1;if(pos<0)return;(4) ;a[pos] =j;b[j]=0; }void find(){ int ok=1;pos=0;a[pos]=1;b[a[pos]]=0;do{if(ok)if( (5) ){write(a);change();}else extend();else change();ok=check(pos);}while(pos>=0);}void main(){ int i;for(i=1;i<=10;i++)b[i]=1;find();}