重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
我很喜歡這種題目
成都創新互聯主打移動網站、成都網站制作、做網站、網站改版、網絡推廣、網站維護、國際域名空間、等互聯網信息服務,為各行業提供服務。在技術實力的保障下,我們為客戶承諾穩定,放心的服務,根據網站的內容與功能再決定采用什么樣的設計。最后,要實現符合網站需求的內容、功能與設計,我們還會規劃穩定安全的技術方案做保障。
-------------------------------------------------------------------------
第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
Redim Preserve Arr(10,n)
通過Preserve關鍵字定義的動態數組,可以更改數組arr最末維的大小,且保留數組arr原來各個元素的值。
所以答案為:C
例如:
Dim arr()
Redim arr(1 to 1,1 to 2)
arr(1,2) = "你好"
Redim Preserve arr(1 to 1, 1 to 3)
msgbox arr(1,2) '這個時候依然可以得到arr(1,2)的值為“你好”。
而且從答案來看,Redim只可能與Preserve聯合使用。其他都無法編譯!
如果需要講詳細一點,那就加我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:用來限制遞歸函數的深度,換句話說,就是輸出元素組中的元素個數
實際測試成功,另外我對前三題很感興趣,希望能夠傳給我