我很喜歡這種題目
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名與空間、網絡空間、營銷軟件、網站建設、郊區網站維護、網站推廣。
-------------------------------------------------------------------------
第7題,問題出在兩方面
Public Function CalculateArea(ByVal SideBase As Double, ByVal Height As Double, _ Optional
ByVal AssignToArea As Boolean = False) As Double
Dim Area As Double = (SideBase * Height) / 2
中間的 _ 有問題,應該去掉
還有objShape = CType(objShape, clsTriangle) 有錯誤,不能轉換
注釋掉objShape = CType(objShape, clsTriangle)
刪除_后,得到結果
true
false
-330
--------------------------------------------------------------------------
第8題,就是以acc_grp_cust_tbl表為基礎,查找cust_tbl并輸出
一般的話使用涉及兩個表的話使用SHAPE語句(以SQL為基礎的語句)
雖然兩者使用時差不多,但是理論比較難懂,我這里也不講了,我使用ADO+SQL方法
先說明一下程序中的一個細節,也是問題比較容易忽略的
1400 0 1 2
1500 3 4
1600 5
說明一個問題Cust_id1 Cust_id2 Cust_id3 Cust_id4 字段不是數值,而是類似字符的東西(因為可能是
備注)
定義rsgrp對應acc_grp_cust_tbl ,rscust對應cust_tbl
預先設置好rsgrp和rscust的連接(使用VB的方法,可以移植到VB.NET上)
do until rscust.eof
strline=rscust(0) " "
strSQL="SELECT * FROM CUST_TBL WHERE cust_id='" RSGRP(1) "' OR CUST_ID='" RSGRP(2) "' OR CUST_ID='" RSGRP(3) "' OR CUST_ID='" RSGRP(4) "'"
RSGRP.OPEN STRSQL
if rsgrp.recordcount0 then
rsgrp.movefirst
do until rsgrp.eof
strLine=strline rscust(3) " " rscust(2) "/"
rsgrp.movenext
loop
end if
rscust.close
strline=left(strline ,len(strline)-1)
'去除最后一個"/"
console.writeline(strline)
loop
1、
For j = 3 To 19 Step 4
m += 1
Next
為循環5次
For i = 1 To 15 Step 4
Next
為循環4次
則總共循環4*5=20,m沒循環一次+1,則m=20
2、從下面這段可以看出“*”與“#”是同步的(因為走else時,會繼續循環),有“*”肯定“#”,而輸出“*”只有當i=2,4時,則有2次,為*#*#
For i = 1 To 5
If i Mod 2 = 0 Then
Console.Write("*")
Else
ContinueFor
EndIf
Console.Write("#")
Next
在加上最後次輸出:Console.WriteLine("$")
結果則為:*#*#$
如果需要講詳細一點,那就加我QQ531412815
第4題,潛在的錯誤,這里的錯誤不是常規錯誤,屬于那種只有在運行是才知道的錯誤:
Catch ex As Exception
MsgBox(ex.StackTrace)
'永遠不會查找下面的錯誤
Catch ex As ArgumentNullException
MsgBox("Input Test box cannot be null.")
Catch ex As OverflowException
MsgBox("Input Test box 2 cannot be zero!")
Catch ex As FormatException
MsgBox("Input Test box should be numeric format!")
結構化錯誤處理永遠達不到下面這里,因為Catch ex As Exception 已經處理了所有錯誤.
第5題:
00123
1000 60.50
2000 60.00
3500 59.50
---- -----
6500 60.00
00124
3000 60.50
---- -----
3000 60.50
00125
2000 59.50
1000 58.00
---- -----
3000 58.75
就是按照Ref_ID 分類,有一種方法就是按照Ref_ID 分組,也就是使用SQL語言,不過這里需要該很多,
我就不用了,那么就稍微復雜一點,使用FIND方法,不過有一點必須注意REF_ID必須排序,因為數據庫中
已經排好序了,我就不用排了。
Dim rst as ADODB.Recordset
dim refID as string
Rst = GetRecordset
Do While Not rst.EOF
refid=rst(0)
Console.writeline(rst.Fields("Ref_ID")
do
Console.writeline rst.Fields("Qty") vbcrlf rst.Fields("Price"))
rst.MoveNext()
loop while rst(0)=refid
Loop
第6題:就是從一個集合中取元素輸出的問題
比較簡單的辦法就是使用遞歸
以下是使用VB的方法(可以移植到VB.NET上,因為我對VB.NET的數組到現在還不太會,所以就將就一下)
Dim bUse() As Boolean
Dim lStr() As String * 1
Dim nCount As Byte
-----------------------------------------------------------------------------------
Public Sub Combination(lstStr As String)
Dim i As Byte
Dim j As Byte
Dim StrLen As Byte
StrLen = Len(lstStr)
ReDim bUse(1 To StrLen) As Boolean
ReDim lStr(1 To StrLen) As String * 1
For i = 1 To StrLen
lStr(i) = Mid(lstStr, i, 1)
Next
For i = 1 To StrLen
nCount = i
GoWith StrLen, 1, 0, ""
Next
End Sub
------------------------------------------------------------------------------------
Public Sub GoWith(ECount As Byte, nStart As Byte, Deep As Byte, lastStr As String)
Dim i As Byte
If Deep = nCount Then
Debug.Print lastStr
Exit Sub
End If
For i = nStart To ECount
If Not bUse(i) Then
bUse(i) = True
GoWith ECount, i, Deep + 1, lastStr lStr(i)
bUse(i) = False
End If
Next
End Sub
--------------------------------------------------------------------------------------
Private Sub Form_Load()
Combination "wxyz"
End Sub
--------------------------------------------------------------------------------------
其中GOWITH是真正的遞歸函數,而Combination是用來預處理字符的
全局變量:
BUSE:用來確定是否使用過這個元素
lSTR:用來保存字符元素
NCOUNT:用來限制遞歸函數的深度,換句話說,就是輸出元素組中的元素個數
實際測試成功,另外我對前三題很感興趣,希望能夠傳給我
分享文章:關于vb點虐
試卷及答案的信息
文章來源:http://vcdvsql.cn/article10/ddsegdo.html
成都網站建設公司_創新互聯,為您提供動態網站、定制網站、網站排名、品牌網站建設、面包屑導航、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯