(填:是/否)。 (2)實(shí)現(xiàn)上述功能的VB程序如下,請(qǐng)?jiān)跈M線處填入合適的代碼。 Const n=9'總?cè)藬?shù) Const m=6'已知的親戚關(guān)系數(shù) Dim a(1 To n) As String,b(1 To n) As String Dim f(1 To n) As String'記錄不同的親戚鉤碼串成員,每條親戚鉤碼串內(nèi)互為親戚 Dim k As Integer'親戚鉤碼串的數(shù)目 Private Sub Form_Load ( ) '初始化List1和List2,生成m條親戚關(guān)系,每條親戚關(guān)系的編號(hào)對(duì)應(yīng)存儲(chǔ)在數(shù)組a(i)和b(i)'中,在List1中輸出a(i)和b(i),代碼略 End Sub Private Sub Command1_Click ( ) Dim i As Integer,x As Integer,y As Integer f(1)=a(1)+b(1)'利用a(1)、b(1)生成第一條鉤碼串存儲(chǔ)在f(1)中 k=1'k為鉤碼串編號(hào) For i=2 To m x=root(a(i),0):y=root(b(i),0)'x為調(diào)用函數(shù)獲取a(i)所在的鉤碼串編號(hào) If x=0 And y=0 Then k=k+1:①
f(k)=a(i)+b(i)
f(k)=a(i)+b(i)
'根據(jù)x與y分類討論 If x<>0 And y=0 Then f(x)=f(x)+b(i) If x=0 And y<>0 Then f(y)=f(y)+a(i) If x<>y And x<>0 And y<>0 Then'x、y在不同鉤碼串則將兩條鉤碼串合并 f(x)=f(x)+f(y):f(y)=f(k):k=k-1 End If Next i For i=1 To n'輸出每個(gè)人所在鉤碼的頂端編號(hào) x=root(CStr(i),0):y=root(CStr(i),1)'Cstr
( )
( )
函數(shù)用于去除字符前導(dǎo)空格 If x<>0 Then If y=Len(f(x)) ThenList2.AddItem Str(i)+““+CStr(i) If y<>Len(f(x)) Then List2.AddItem Str(i)+““+②
Mid(f(x),y+1,1)
Mid(f(x),y+1,1)
End If Next i End Sub '按鈕Command2的功能為判斷輸入的兩個(gè)人是否為親戚關(guān)系,代碼略 Function root(a As String,b As Integer) As Integer'參數(shù)a表示待查找目標(biāo),參數(shù)b '表示返回值類型,0表示返回目標(biāo)所在鉤碼串編號(hào),1表示返回目標(biāo)在該鉤碼串中的位置 Dim m As Integer,n As Integer,i As Integer,j As Integer m=0:n=0:i=k:j=0 Do While i>0 If a=Mid(f(i),Len(f(i))-j,1)Thenm=i:n=Len(f(i))-j:Exit Do j=j+1 If j=Len(f(i)) Then i=i-1:j=0 Loop If ③
1.大部分社交軟件都有好友推薦的功能,當(dāng)用戶 A 和用戶 B 的共同好友數(shù)量超過(guò)閾值 p 時(shí),由系統(tǒng)向用戶 A 推薦用戶 B。 編寫 VB 程序,實(shí)現(xiàn)好友推薦功能。運(yùn)行程序,列表框 Listl 中顯示用戶 id 及好友列表,在文本框 Textl 中 輸入推薦目標(biāo)用戶 id,在文本框 Text2 中輸入閾值 p,點(diǎn)擊“推薦”按鈕,在列表框List2 中顯示用戶之間的關(guān)系,在標(biāo)簽 Label5 中顯示向目標(biāo)用戶推薦的好友列表。程序運(yùn)行界面如圖: (1)根據(jù)如圖所示數(shù)據(jù),若輸入用戶 id 為“3”,輸入閾值為“3”,則推薦好友為: