圖3
窗口中的兩個文本框為Txt_time和Txt_player,分別用于錄入提交答案的時間和選手編號。組合列表框Combol提供題目編號(A~H),錄入時從中選擇。檢查框Chk_yn用于輸入解答是否正確信息。當(dāng)單擊"確定"按鈕(Cmd_comfirm)時,錄入的提交信息加入列表框Listl中,排名情況在列表框List2輸出。單擊"關(guān)閉"按鈕時退出應(yīng)用程序。
在開發(fā)過程中,需要編寫的部分程序代碼如下:
【程序】
Private Type Info
No As Integer′選手編號
Num As Integer′完成題目數(shù)量
Time As Integer′完成題目的總用時
d (8) As Integer′d用于記錄提交第i個題目錯誤答案的次數(shù)
a (8) As Boolean′a用于記錄第i個題目是否已經(jīng)提交正確答案
End Type
Dim R(201)As info′R[j]用于統(tǒng)計編號為j的選手提交答案的情況
Dim MaxIndex As Integer′MaxIndex記錄提交答案的選手中編號最大者
Private Sub Form_Load()
For i=1 to 8
Combo1.AddItem chr( (1) )
Next
Combo1.Text=Combo1.List(0):txt_time.Text="":txt_player.Text=""
For i=1 To 200
R(i).num=0:R(i).time=0:R(i).no=i
Forj=1 To 8
R(i).d(j)=0:R(i).a(chǎn)(j)=False
Next j,i
End Sub
Private Sub cmd_confirm_Click()
Dim 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 error1
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的選手的提交信息記錄在下標(biāo)為k的數(shù)組元素中
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
Else If R(k).a(chǎn)(m)<>True Then′已經(jīng)提交正確的題目的解答不再計算
R(k).a(chǎn)(m)=true:R(k).num=R(k).num+1
R(k).time=R(k).time+ (5)
Call statistic′調(diào)用過程statistic進行實時排名和輸出
End If
Exit Sub
error1:MsgBox"錄入信息有錯誤!",vbOKOnly
End Sub
●試題八
閱讀以下說明和C++程序,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
設(shè)計一個日期類Date包括年、月、日等私有數(shù)據(jù)成員。要求實現(xiàn)日期的基本運算,如某日期加上天數(shù)、某日期減去天數(shù)、兩日期相差的天數(shù)等。
在Date類中設(shè)計如下重載運算符函數(shù):
Date operator+(int days):返回某日期加上天數(shù)得到的日期。
Date operator-(int days):返回某日期減去天數(shù)得到的日期。
int operator-(Date&b):返回兩日期相差的天數(shù)。
【程序】
#include<iostream.h>
int day tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};
∥day_tab二維數(shù)組存放各月天數(shù),第一行對應(yīng)非閏年,第二行對應(yīng)閏年class Date
{
int year,month,day;∥年,月,日
int leap(int);∥判斷是否為閏年
int dton(Date&);
Date ntod(int);
public:
Date(){}
Date(int y,int mint d){year=y;month=m;day=d;}
void setday(intd){day=d;}
void setmonth(int m){month=m;}
void setyear(int y){year=y;}
int getday(){return day;}
int getmonth(){return month:}
int getyear(){return year;)
Date operator+(int days)∥+運算符重載函數(shù)
{
static Date date;
int number= (1) ;
date=ntod(number);
return date;
}
Date operator-(int days)∥-運算符重載函數(shù)
{
staffs Date date;
int number= (2) ;
number-=days;
date=ntod(number);
return date;
}
int operator-(Date &b)∥-運算符重載函數(shù)
{
int days= (3) ;
return days;
}
void disp()
{
cout<<year<<"."<<month<<"."<<day<<endl;
}
};
int Date::leap(int year)
{if( (4) )∥是閏年
return 1;∥不是閏年
else
return0:
}
希望與其他軟考考生進行交流?點擊進入軟考論壇>>>
更多信息請訪問:考試吧軟件水平考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |