300 likes | 396 Views
題目:管家租貸系統. 南台科技大學 機械工程系 奈米一乙 學號: 4A014059 姓名:杜弘翔. 學習重點. 學習重點: TextBox 、 ListBox 、 RadioButton 、 CheckBox 的使用方法 Now() 的使用方法 If...them...Else 選擇結構的使用方法. 題目說明:系統結帳. 當填寫完租借日期與數量後,按下計算鈕,即會顯示結帳總金額。 按「清除」按鈕,再輸入數量,並點選「老客戶* 0.9 」,再按下「計算」鈕,得到打 9 折後的那一筆總金額資料。. 附加練習.
E N D
題目:管家租貸系統 南台科技大學 機械工程系 奈米一乙 學號:4A014059 姓名:杜弘翔
學習重點 • 學習重點: • TextBox、ListBox 、 RadioButton、CheckBox的使用方法 • Now()的使用方法 • If...them...Else 選擇結構的使用方法
題目說明:系統結帳 • 當填寫完租借日期與數量後,按下計算鈕,即會顯示結帳總金額。 • 按「清除」按鈕,再輸入數量,並點選「老客戶*0.9」,再按下「計算」鈕,得到打9折後的那一筆總金額資料。
附加練習 • 當總金額達到10000元時,即會開放「滿10000(75折)」的選項,並自動以此折價計算折價後的金額。 當滿1000時...
表單(form)設計 Label22 Label23 Label24 Label25
表單(form)設計 Label26 Label2 Label13 Label14 Label15 Label16 Label17 Label18 Label3 Label19 Label20 Label21 Label1 Label4 Label5 Label6 txtHKA txtHKB txtHKC Label7 Label8 Label9 txtHAY txtHBY txtHCY Label10 Label11 Label12 txtHAM txtHBM txtHCM txtHAD txtHBD txtHCD txtHAA txtHBB txtHCC rdbold rdbsp rdben
表單(form)設計 txtlist lblmoney lblnext btncount btnclear
程式碼設計 1.Public Class Form1 2.Dim amount, addamount As Integer 3.Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 4.txtHKA.Enabled= False 5.txtHKB.Enabled= False 6.txtHKC.Enabled= False 7.Label26.Text = “基準日期:" & Format(Now(), "yyyy/MM/dd")
程式碼設計 8.txtHAY.Text= Format(Now(), "yyyy") 9.txtHBY.Text= Format(Now(), "yyyy") 10. txtHCY.Text = Format(Now(), "yyyy") 11.txtHAM.Text = Format(Now(), "MM") 12.txtHBM.Text = Format(Now(), "MM") 13. txtHCM.Text = Format(Now(), "MM") 14. txtHAD.Text = Format(Now(), "dd") 15. txtHBD.Text = Format(Now(), "dd") 16. txtHCD.Text = Format(Now(), "dd") 17.rdben.Enabled = False 18.End Sub
程式碼設計 19.Private Sub btncount_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncount.Click 20.Dim HA, HA1, HB, HB1, HC, HC1 As Integer 21.HA1 = Val(Format(Now(), "yyyy") - txtHAY.Text) * 365 + Val(Format(Now(), "MM") - txtHAM.Text) * 30 + Val(Format(Now(), "dd") - txtHAD.Text) 22. HB1 = Val(Format(Now(), "yyyy") - txtHBY.Text) * 365 + Val(Format(Now(), "MM") - txtHBM.Text) * 30 + Val(Format(Now(), "dd") - txtHBD.Text) 23. HC1 = Val(Format(Now(), "yyyy") - txtHCY.Text) * 365 + Val(Format(Now(), "MM") - txtHCM.Text) * 30 + Val(Format(Now(), "dd") - txtHCD.Text)
程式碼設計 24.If HA1 < 0 Then 25.HA1 = -HA1 26. Else 27.HA1 = HA1 28. End If 29. If HB1 < 0 Then 30.HB1 = -HB1 31. Else 32.HB1 = HB1 33. End If
程式碼設計 34.If HC1 < 0 Then 35.HC1 = -HC1 36. Else 37. HC1 = HC1 38. End If 39. HA = Val(txtHKA.Text) * HA1 * Val(txtHAA.Text) 40. HB = Val(txtHKB.Text) * HB1 * Val(txtHBA.Text) 41. HC = Val(txtHKC.Text) * HC1 * Val(txtHCA.Text) 42. amount = HA + HB + HC
程式碼設計 43.If rdbold.Checked = True Then 44.amount *= 0.9 45. ElseIfrdbsp.Checked = True Then 46. amount *= 0.8 47. ElseIf amount >= 10000 Then 48. rdben.Enabled = True 49. rdben.Checked = True 50. amount *= 0.75
程式碼設計 51.ElseIfamount < 10000 Then 52.rdben.Enabled = False 53. rdben.Checked = False 54. amount *= 1 55.Else 56. amount *= 1 57. End If
程式碼設計 58.lblmoeny.Text= "金額:" & amount & "元﹐" 59.addamount= addamount + amount 60. lblnext.Text = "累計:" & addamount & "元﹐" 61. txtHAY.Focus() 62.Dim show As String 63.show = “產品” & vbTab & “價格” & vbTab & vbTab & “期限" & vbTab & vbTab & vbTab & "數量" & vbNewLine 64.show &= “管家A” & vbTab & txtHKA.Text & “天/元” & vbTab & txtHAY.Text & “年” & vbTab & txtHAM.Text & “月” & vbTab & txtHAD.Text & “日" & vbTab & txtHAA.Text & "位" & vbNewLine
程式碼設計 65.show &= “管家B” & vbTab & txtHKB.Text & “天/元﹐” & vbTab & txtHBY.Text & “年” & vbTab & txtHBM.Text & “月” & vbTab & txtHBD.Text & “日” & vbTab & txtHBA.Text & “位" & vbNewLine 66.show &= “管家C” & vbTab & txtHKC.Text & “天/元﹐” & vbTab & txtHCY.Text & “年” & vbTab & txtHCM.Text & “月” & vbTab & txtHCD.Text & “日” & vbTab & txtHCA.Text & “位" & vbNewLine 67.show &= IIf(rdbold.Checked = True, “老客戶(9折)”, “”) & IIf(rdbsp.Checked = True, “特殊戶a (8折)”, “”) & IIf(rdben.Checked = True, “滿10000 (75折)", "") & vbNewLine 68.show &= “小計" & amount & "元﹐"
69.txtlist.TabStop= False 70.txtlist.Text= show 71.End Sub 72.Private Sub btnclear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnclear.Click 73.txtHAY.Text = Format(Now(), "yyyy") 74. txtHBY.Text = Format(Now(), "yyyy") 75. txtHCY.Text = Format(Now(), "yyyy") 76.txtHAM.Text= Format(Now(), "MM") 77. txtHBM.Text = Format(Now(), "MM") 78. txtHCM.Text = Format(Now(), "MM")
程式碼設計 79.txtHAD.Text= Format(Now(), "dd") 80 . txtHBD.Text = Format(Now(), "dd") 81. txtHCD.Text = Format(Now(), "dd") 82. txtHAA.Text = "0" 83. txtHBA.Text = "0" 84. txtHCA.Text = "0" 85. lblmoeny.Text = “金額:0元﹐" 86. txtlist.Text = ""
程式碼設計 87.rdbold.Checked = False 88. rdbsp.Checked = False 89. rdben.Checked = False 90. rdben.Enabled = False 91.End Sub 92.End Class
程式說明 • 第2行 定義amount 、accamount為整數變數 • 第4~6行 使 [管家A]、[管家B]、[管家C] 無效 • 第7行 顯示當天的年、月、日 • 第8~10行 顯示現在的年份 • 第11~13行 顯示現在的月份 • 第14~16行 顯示現在的日子 • 第17行 使 [滿10000(75折)] 按鈕無效 • 第20行 定義HA, HA1, HB, HB1, HC, HC1為整數變數
程式說明 • 第21行 [管家A租貸天數] (HA1) 等於 現在的年份 減掉 租貸的終止年份 乘 365天 加 現在的月份減掉 租貸的終止月份 乘 30天 加 現在的日子減掉 租貸的終止日子 • 第22行 [管家B租貸天數] (HB1) 等於 現在的年份 減掉 租貸的終止年份 乘 365天 加 現在的月份 減掉 租貸的終止月份 乘 30天 加 現在的日子 減掉 租貸的終止日子 • 第23行 [管家C租貸天數] (HC1) 等於 現在的年份 減掉 租貸的終止年份 乘 365天 加 現在的月份 減掉 租貸的終止月份 乘 30天 加 現在的日子 減掉 租貸的終止日子
程式說明 • 第24~28行 假如 HA1 為負數時(因日期必須為正數),HA1=-HA1(負負得正);其他 HA1 為正數時, HA1=HA1(沒有改變)。 • 第29~33行 假如 HB1為負數時, HB1=-HB1;其他 HB1為正數時, HB1=HB1。 • 第34~38行 假如 HC1為負數時, HC1=-HC1;其他 HC1為正數時, HC1=HC1。 • 第39行 [管家A的租貸金額](HA) 等於 管家的價錢 乘 [管家A的租貸天數](HA1) 乘 [管家A的數量]。 • 第40行 [管家B的租貸金額](HB)等於 管家的價錢 乘 [管家B的租貸天數](HB1)乘 [管家B的數量]。
程式說明 • 第41行 [管家C的租貸金額](HC)等於 管家的價錢 乘 [管家C的租貸天數](HC1) 乘 [管家C的數量]。 • 第42行 [全部的租貸價錢](amount) 等於 [管家A的租貸金額](HA) 加 [管家B的租貸金額](HB) 加 [管家C的租貸金額](HC) • 第43~44行 假如[老客戶(9折)]的選項被勾選時,[全部的租貸價錢](amount) 乘 0.9 • 第45~46行 其他假如[特約戶(8折)]的選項被勾選時,[全部的租貸價錢](amount) 乘 0.8 • 第47~50行 其他假如[全部的租貸價錢](amount)>10000時,[全部的租貸價錢](amount) 乘 0.75,還有[滿10000(75折)]的選項被啟用和勾選。
程式說明 • 第51~54行 其他假如[全部的租貸價錢](amount)<10000時,則[全部的租貸價錢](amount) 乘 1(不變),還有[滿10000(75折)]的選項不被啟用和勾選。 • 第55~57行 其他 [全部的租貸價錢](amount) 乘 1(不變) • 第58行 顯示[金額:" & amount & "元] • 第59行 [累計總金額](addamount) 等於 [上一次的總金額] 加 [這一次的總金額]。 • 第60行 顯示[累計:" & addamount & "元] • 第61行 游標駐點在[管家A的年份]上
程式說明 • 第62行 宣告(show)為字串 • 第63~68行 顯示你選擇後的資料,包括類別、價錢、租貸日期、數量、優惠。 • 第69行 設定此控制項沒有駐停點 • 第70行 顯示(show)的結果 • 第73~75行 回到現在的年份 • 第76~78行 回到現在的月份 • 第79~81行 回到現在的日子 • 第82~84行 數量變回0
程式說明 • 第85行 顯示[金額:0元] • 第86行 顯示空白 • 第87行 [老客戶(9折)]的勾選狀態回到尚未勾選 • 第88行 [特約戶(8折)]的勾選狀態回到尚未勾選 • 第89行 [滿10000(75折)]的勾選狀態回到尚未勾選 • 第90行 使 [滿10000(75折)] 按鈕無效 • 第91~92行 程式結束
心得感言 • 因為我曾經接觸過C++過的經驗,所以Visual Basic對我來說簡單很多,因為他不像C++全部的程式都必須一個字一個字打不像VB有圖像顯示的功能,讓我們設計起來相當得容易。 • 在設計程式的過程中碰到些許的問題,像是If...them...Else執行錯誤、宣告物件不對等,但最後經過自己不斷的嘗試與思考、請教老師後,逐一得化解掉危機,但也讓我深刻的體會VB的趣味。
參考文獻 • Visual Basic 2010 基礎必修課 林義証、蔡文龍、張傑瑞、何叡 著 吳明哲 策劃 碁峰出版社
報告完畢 謝謝各位