《軟件設(shè)計(jì)基礎(chǔ)(VB)》簡(jiǎn)單科學(xué)計(jì)算器課程設(shè)計(jì)報(bào)告書(shū)_第1頁(yè)
《軟件設(shè)計(jì)基礎(chǔ)(VB)》簡(jiǎn)單科學(xué)計(jì)算器課程設(shè)計(jì)報(bào)告書(shū)_第2頁(yè)
《軟件設(shè)計(jì)基礎(chǔ)(VB)》簡(jiǎn)單科學(xué)計(jì)算器課程設(shè)計(jì)報(bào)告書(shū)_第3頁(yè)
《軟件設(shè)計(jì)基礎(chǔ)(VB)》簡(jiǎn)單科學(xué)計(jì)算器課程設(shè)計(jì)報(bào)告書(shū)_第4頁(yè)
《軟件設(shè)計(jì)基礎(chǔ)(VB)》簡(jiǎn)單科學(xué)計(jì)算器課程設(shè)計(jì)報(bào)告書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、河北聯(lián)合大學(xué) ?軟件設(shè)計(jì)根底VB?課程設(shè)計(jì)報(bào)告設(shè)計(jì)名稱: 簡(jiǎn)易科學(xué)計(jì)算器 姓 名: 學(xué) 號(hào): 專業(yè)班級(jí): 學(xué) 院: 設(shè)計(jì)時(shí)間: 設(shè)計(jì)地點(diǎn): 成績(jī):指導(dǎo)教師評(píng)語(yǔ): 指導(dǎo)教師簽字: 年 月 日目 錄1.課程設(shè)計(jì)目的32.課程設(shè)計(jì)任務(wù)與要求33.課程設(shè)計(jì)說(shuō)明書(shū)44.課程設(shè)計(jì)成果205.程序調(diào)試過(guò)程236.設(shè)計(jì)問(wèn)題的缺乏和改良方案237.課程設(shè)計(jì)心得248.附錄249.參考文獻(xiàn) 241課程設(shè)計(jì)目的?軟件設(shè)計(jì)根底VB?課程設(shè)計(jì)是這門課程的實(shí)踐性教學(xué)環(huán)節(jié)之一,本次設(shè)計(jì)結(jié)合實(shí)際應(yīng)用的要求,使課程設(shè)計(jì)既覆蓋VB的知識(shí)點(diǎn),又接近工程實(shí)際需要。目的是通過(guò)課程設(shè)計(jì)的綜合訓(xùn)練,培養(yǎng)學(xué)生實(shí)際分析問(wèn)題、解決問(wèn)題的能力,以

2、及編程和動(dòng)手能力,最終目標(biāo)是通過(guò)課程設(shè)計(jì)這種形式,幫助學(xué)生系統(tǒng)掌握VB這門課程的主要內(nèi)容,養(yǎng)成良好的編程習(xí)慣,更好的完成教學(xué)任務(wù)。2課程設(shè)計(jì)任務(wù)與要求:要求:本次課程設(shè)計(jì)利用?軟件設(shè)計(jì)根底VB?課程中所學(xué)到的編程知識(shí)和編程技巧,完成具有一定難度和工作量的程序設(shè)計(jì)題目,幫助學(xué)生掌握編程、調(diào)試的根本技能,獨(dú)立完成所布置的任務(wù)。要求:1、對(duì)系統(tǒng)進(jìn)行功能需求分析2、設(shè)計(jì)合理的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)框架3、界面設(shè)計(jì)美觀、清楚、合理4、編程簡(jiǎn)練,程序功能齊全,能正確運(yùn)行5、具有一定的創(chuàng)新性6、說(shuō)明書(shū)、流程圖要清楚7、課題完成后必須按要求提交課程設(shè)計(jì)報(bào)告任務(wù):能夠完成數(shù)字的連續(xù)運(yùn)算和函數(shù)的求值根本要求:1能夠完成數(shù)

3、值常數(shù)的四那么運(yùn)算,不要求支持運(yùn)算符的優(yōu)先級(jí)。2能夠進(jìn)行如下函數(shù)的求值運(yùn)算,包括sin, cos, tan, exp, log, ln, sqr, 1/x,以及常數(shù)e和園周率。3設(shè)置5個(gè)存貯鍵,以便將中間運(yùn)算結(jié)果存入,在需要的時(shí)候取出參與運(yùn)算。4支持鍵盤快捷運(yùn)算僅要求數(shù)字及運(yùn)算符。5ON進(jìn)行初始化,去除內(nèi)存中的數(shù),OFF退出,CE去除顯示。6因?yàn)榭丶?shù)目較多,要求采用控件數(shù)組,以減少事件處理的復(fù)雜程度,使程序簡(jiǎn)潔高效。7出錯(cuò)處理:操作數(shù)如果不符合數(shù)學(xué)上的定義,應(yīng)該給出錯(cuò)誤信息。例:0做除數(shù),負(fù)數(shù)或0做真數(shù)等情況。創(chuàng)新要求:如支持運(yùn)算符的優(yōu)先級(jí),或者增加新的函數(shù)等。3課程設(shè)計(jì)說(shuō)明書(shū) = 1 *

4、GB2 功能描述窗體通過(guò)窗體命令按鈕或鍵盤輸入數(shù)字實(shí)現(xiàn)根本的數(shù)學(xué)運(yùn)算,使用窗體的功能按鈕計(jì)算某些特殊函數(shù)概要設(shè)計(jì)模塊結(jié)構(gòu)圖: 根據(jù)功能分析,建立系統(tǒng)的體系結(jié)構(gòu),即將整個(gè)系統(tǒng)分解成假設(shè)干子模塊,用框圖表示各功能模塊之間的接口關(guān)系如下列圖。輸入數(shù)字賦值給變量輸入運(yùn)算符及num2,由功能函數(shù)求值求值 簡(jiǎn)易科學(xué)計(jì)算器功能框圖詳細(xì)設(shè)計(jì) 總體流程圖:開(kāi)始 輸入num1輸入運(yùn)算符opttype輸入num2判斷是否有足夠的數(shù)運(yùn)算,有那么運(yùn)算并賦值給num1,無(wú)那么取出num2輸出結(jié)果結(jié)束各功能模塊流程圖:開(kāi)始1.數(shù)字按鈕:輸入數(shù)字結(jié)束開(kāi)始2功能函數(shù):計(jì)算函數(shù)結(jié)束開(kāi)始3.運(yùn)算符結(jié)束輸入并存儲(chǔ)運(yùn)算符開(kāi)始4.存儲(chǔ)鍵

5、結(jié)束取出數(shù)值代碼實(shí)現(xiàn)詳細(xì)說(shuō)明各功能模塊的實(shí)現(xiàn)過(guò)程,所用到的算法、技巧等附上代碼。如:本系統(tǒng)總共1個(gè)窗體:form1詳細(xì)如下:form1作用:“進(jìn)入應(yīng)用程序。所用控件:1個(gè)文本框,2個(gè)框架,數(shù)個(gè)命令按鈕,2個(gè)單項(xiàng)選擇按鈕和1個(gè)菜單項(xiàng)設(shè)計(jì)思路:用文本框顯示輸入的數(shù)字并將結(jié)果顯示在文本框中,用命令按鈕來(lái)計(jì)算和輸入數(shù)字。詳細(xì)內(nèi)容: command1(0-9)為數(shù)字的控件數(shù)組,command2(0-7)為功能函數(shù)的控件數(shù)組,command5(0-4)為記憶按鈕,command6(0-3)為運(yùn)算符的控件數(shù)組。代碼如下:Dim lastinput As String 定義輸入標(biāo)志 Dim num1 As D

6、ouble 第一個(gè)數(shù)Dim num2 As Double 第二個(gè)數(shù)Dim opttype As Integer 運(yùn)算符Dim optnum As Integer 點(diǎn)擊運(yùn)算符次數(shù)Dim i(5) As DoubleDim eqvnum As Integer 點(diǎn)擊等號(hào)次數(shù)Function calc(num1, opttype, num2) As Double自定義運(yùn)算過(guò)程Select Case opttypeCase 0選擇/運(yùn)算If num2 = 0 Then除數(shù)為0提示出錯(cuò) Text1.Text = Error 程序設(shè)計(jì)界面MsgBox 0不能做除數(shù), 48, 提示Elsecalc = num

7、1 / num2End IfCase 1 選擇*運(yùn)算calc = num1 * num2Case 2 選擇-運(yùn)算calc = num1 - num2Case 3 選擇+運(yùn)算calc = num1 + num2End SelectIf Text1.Text Error Then Text1.Text = Trim(Str(calc)除數(shù)為0重新輸入num1 = 0num2 = 0lastinput = eqvopttype = -1End FunctionPrivate Sub Command1_Click(Index As Integer)0-9運(yùn)算數(shù)的輸入If Len(Text1.Text)

8、 16 Then Exit Sub num1的輸入If Text1.Text = 0 Or lastinput = eqv Then Text1.Text = Text1.Text = Text1.Text & Indexlastinput = numIf lastinput = opt Then num2的輸入Text1.Text = Text1.Text = Text1.Text & Indexlastinput = numEnd IfCommand1(0).SetFocus0獲得焦點(diǎn)End SubPrivate Sub Command10_Click()OFF按鈕,關(guān)閉程序EndEnd

9、SubPrivate Sub Command11_Click()CE按鈕,去除If Len(Text1.Text) = 1 ThenText1.Text = Left(Text1.Text, Len(Text1.Text) - 1)ElseMsgBox 已經(jīng)是最后一位, 48, 提示 End IfEnd SubPrivate Sub Command12_Click()-/+按鈕Text1.Text = Trim(-Val(Text1.Text)End SubPrivate Sub Command13_Click()x2按鈕Text1.Text = Text1.Text 2End SubPriv

10、ate Sub Command14_Click()八進(jìn)制按鈕Text1.Text = Oct(Text1.Text)End SubPrivate Sub Command2_Click(Index As Integer)功能函數(shù)按鈕Const pi As Single = 3.14159265358979 將x轉(zhuǎn)化為角度制Dim x As Doublex = Val(Text1.Text) If Option2.Value = ture Then x = x * pi / 180 計(jì)算三角函數(shù)時(shí)判斷條件Select Case IndexCase 0 計(jì)算sin ,以特定格式輸出Text1.Tex

11、t = Format(Sin(x), 0.#)lastinput = numCase 1 計(jì)算expText1.Text = 10 Text1.Text lastinput = numCase 2 計(jì)算sqr If Text1.Text 0 ThenText1.Text = Format(Sqr(Val(Text1.Text), #.#)lastinput = numElseMsgBox 被開(kāi)方數(shù)不能為負(fù)數(shù), 48, 提示Text1.Text = Text1.SetFocusEnd IfCase 3 計(jì)算cosText1.Text = Format(Cos(x), 0.#)lastinput

12、= numCase 4 計(jì)算logText1.Text = Log(text1.text) / Log(10)lastinput = num Case 5 計(jì)算1/x If x = 0 ThenMsgBox 數(shù)據(jù)輸入不正確, 48, 提示ElseText1.Text = 0 & 1 / Val(x)lastinput = numEnd IfCase 6 計(jì)算tanText1.Text = Format(Tan(x), 0.#)lastinput = numCase 7 計(jì)算lnText1.Text = Log(Text1.Text)lastinput = numEnd SelectEnd Su

13、bPrivate Sub Command3_Click() 按鈕Text1.Text = 3.1415926 直接輸出lastinput = numEnd SubPrivate Sub Command4_Click()e按鈕 Dim e As Double, i As Integer, j As Integer j作為內(nèi)循環(huán)的循環(huán)變量 Dim dblFact As Double 存放階乘結(jié)果的變量 e = 2 i = 1 Do i = i + 1 dblFact = 1 初始化階乘結(jié)果變量 For j = 1 To i 內(nèi)嵌套循環(huán),求階乘 dblFact = dblFact * j Next

14、e = e + 1 / dblFact Loop Until 1 / dblFact 1 / 10 16 直至第i項(xiàng)的值 16 Or InStr(1, Text1.Text, .) 0 And lastinput eqv Then Exit SubIf lastinput = opt Or lastinput = eqv Or lastinput = neg ThenText1.Text = Text1.Text + 0.ElseText1.Text = Text1.Text + .End Iflastinput = numEnd SubPrivate Sub Command9_Click()

15、初始化Call Form_Loadoptnum = 0End SubPrivate Sub copy_Click()菜單項(xiàng)的代碼Clipboard.Clear 清空剪貼板Clipboard.SetText Text1.Text 將文本框內(nèi)容放入剪貼板End SubPrivate Sub form_KeyPress(KeyAscii As Integer)0-9和“.鍵盤輸入Text1.SetFocusText1.Text = Dim i As IntegerIf KeyAscii = Asc(0) Theni = 0 Call Command1_Click(i)ElseIf KeyAscii

16、= Asc(1) Theni = 1Call Command1_Click(i)ElseIf KeyAscii = Asc(2) Theni = 2Command1_Click (i)ElseIf KeyAscii = Asc(3) Theni = 3Command1_Click (i)ElseIf KeyAscii = Asc(4) Theni = 4Command1_Click (i)ElseIf KeyAscii = Asc(5) Theni = 5Command1_Click (i)ElseIf KeyAscii = Asc(6) Theni = 6Command1_Click (i)

17、ElseIf KeyAscii = Asc(7) Theni = 7Command1_Click (i)ElseIf KeyAscii = Asc(8) Theni = 8Command1_Click (i)ElseIf KeyAscii = Asc(9) Theni = 9Command1_Click (i)ElseIf KeyAscii = Asc(.) ThenCommand8_ClickEnd IfEnd SubPrivate Sub Form_Load()窗體加載事件Form1.Picture = LoadPicture(App.Path + 1.jpg) 為窗體設(shè)置背景圖片num1

18、 = 0num2 = 0opttype = -1Text1.Text = 0lastinput = eqvoptnum = 0eqvnum = 0End SubPrivate Sub paste_Click()菜單項(xiàng) 粘貼 按鈕Text1.Text = Clipboard.GetText 將剪貼板內(nèi)容取出End SubPrivate Sub Text1_Click()Text1.Text = End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)運(yùn)算符鍵盤輸入Select Case KeyAscii Case Asc(+) 按下加號(hào)鍵 Co

19、mmand6_Click (3) 調(diào)用運(yùn)算符單擊事件過(guò)程 Text1.Text = Case Asc(-) 按下減號(hào)鍵 If Text1.Text Then 假設(shè)文本框不空,看作減號(hào),否那么看作負(fù)號(hào) Command6_Click (2) 調(diào)用減號(hào)按鈕單擊事件過(guò)程 KeyAscii = 0 按鍵不再影響文本框 End If Text1.Text = Case Asc(*) 按下乘號(hào)鍵 Command6_Click (1) Case Asc(/) 按下除號(hào)鍵 Command6_Click (0) Case Asc(=)按下=鍵 num2 = Val(Right(Text1.Text, Len(Te

20、xt1.Text) - 1) Text1.Text = calc(num1, opttype, num2) lastinput = eqv optnum = 0Select Case eqvnumM1-M5在鍵盤輸入的代碼Case 0i(0) = Val(Right(Text1.Text, Len(Text1.Text) - 1)Case 1i(1) = Val(Right(Text1.Text, Len(Text1.Text) - 1)Case 2i(2) = Val(Right(Text1.Text, Len(Text1.Text) - 1)Case 3i(3) = Val(Right(T

21、ext1.Text, Len(Text1.Text) - 1)Case 4i(4) = Val(Right(Text1.Text, Len(Text1.Text) - 1)End Selecteqvnum = eqvnum + 1 End SelectEnd SubPrivate sub command15_click 清空按鈕Text1.text=0” 文本框內(nèi)容顯示為0Lastinput=eqv 標(biāo)志顯示為“=標(biāo)志4課程設(shè)計(jì)成果 1.程序加載的效果見(jiàn)右圖:2.程序運(yùn)行效果如右圖:3.各種提示信息如下列圖: 5.程序調(diào)試過(guò)程寫出程序調(diào)試步驟,及遇到的問(wèn)題。在程序調(diào)試設(shè)置斷點(diǎn),通過(guò)變量賦值尋找其中錯(cuò)誤,逐條檢查,修改其中的錯(cuò)誤。程序調(diào)試時(shí)遇到的錯(cuò)誤是:1.鍵盤輸入不正確2.不能連續(xù)運(yùn)算3.記憶按鈕功能無(wú)法實(shí)現(xiàn)6.設(shè)計(jì)問(wèn)題的缺乏和改良方案設(shè)計(jì)問(wèn)題的缺乏之

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論