版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、交通與汽車(chē)工程學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)課 程 名 稱: 計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì) 課 程 代 碼: 6011339 題 目: 時(shí)鐘程序設(shè)計(jì) 年級(jí)/專(zhuān)業(yè)/班: 2011級(jí)車(chē)輛2班 學(xué) 生 姓 名: 曹安 學(xué) 號(hào): 220 開(kāi) 始 時(shí) 間: 2012 年 2 月 20 日完 成 時(shí) 間: 2012 年 3 月 2 日課程設(shè)計(jì)成績(jī):學(xué)習(xí)態(tài)度及平時(shí)成績(jī)(30)技術(shù)水平與實(shí)際能力(20)創(chuàng)新(5)說(shuō)明書(shū)(計(jì)算書(shū)、圖紙、分析報(bào)告)撰寫(xiě)質(zhì)量(45)總 分(100)指導(dǎo)教師簽名: 年 月 日 目 錄 (小三黑體,居中)摘要21 引言31.1問(wèn)題的提出 31.2任務(wù)與分析 32 設(shè)計(jì)方案42.1程序功能設(shè)計(jì) 42.1.
2、1程序功能描述 42.1.2程序功能結(jié)構(gòu)分析 42.2程序界面和代碼設(shè)計(jì) 52.2.1工程設(shè)計(jì)框架 52.2.2各界面及代碼設(shè)計(jì) 5 3 結(jié)果分析 12結(jié)論 12致謝 13參考文獻(xiàn) 14 摘 要 隨著計(jì)算機(jī)的不斷更新發(fā)展,計(jì)算機(jī)繪圖方法和計(jì)時(shí)器的使用扮演著極為重要的角色, Windows環(huán)境下的Visual Basic提供了豐富的繪圖方法。本文主要通過(guò)對(duì)選題背景、方案設(shè)計(jì)、界面設(shè)計(jì)、代碼編寫(xiě)及調(diào)試以及軟件使用說(shuō)明等的介紹,介紹了作者利用Visual Basic對(duì)“簡(jiǎn)易時(shí)鐘程序設(shè)計(jì)”應(yīng)用軟件的開(kāi)發(fā)設(shè)計(jì)過(guò)程,并分析了所開(kāi)發(fā)軟件系統(tǒng)的優(yōu)點(diǎn)和不足。關(guān)鍵詞:Visual Basic 簡(jiǎn)易時(shí)鐘 程序設(shè)計(jì)
3、1 引 言 通過(guò)一年來(lái)對(duì)Visual Basic 高級(jí)語(yǔ)言程序設(shè)計(jì)的學(xué)習(xí),我已經(jīng)掌握了一些常用的控件的使用方法,對(duì)簡(jiǎn)單的程序設(shè)計(jì)的常用算法也有了一定的了解,還掌握了對(duì)繪圖和時(shí)間控制的一些基本操作。為了進(jìn)一步加深理解、驗(yàn)證、鞏固課堂教學(xué)內(nèi)容,加深對(duì)可視化編程思想的理解,強(qiáng)化Visual Basic對(duì)程序流程控制、常用控件的屬性、事件、方法的理解和使用;1.1問(wèn)題的提出 為了進(jìn)一步提高編程能力、程序的調(diào)試能力,理論聯(lián)系實(shí)際的能力;鞏固所學(xué)的這些程序設(shè)計(jì)的方法,為了達(dá)到后續(xù)課程對(duì)實(shí)際編程計(jì)算能力的要求,特選定“簡(jiǎn)易時(shí)鐘程序設(shè)計(jì)”這個(gè)寓教于樂(lè)的小題目作為課程設(shè)計(jì)實(shí)踐教學(xué)環(huán)節(jié)的題目,有助于培養(yǎng)綜合運(yùn)用所
4、學(xué)知識(shí)解決實(shí)際問(wèn)題的能力,可以充分發(fā)揮想象力和創(chuàng)新能力;有助于提高獨(dú)立思考能力,自學(xué)能力和團(tuán)隊(duì)協(xié)作能力。1.2任務(wù)與分析 本任務(wù)是設(shè)計(jì)一個(gè)簡(jiǎn)易時(shí)鐘,顯示當(dāng)前的時(shí)間。主要運(yùn)用了 visual basic 的繪圖方法和對(duì)timer控件的使用。要將繪圖方法和時(shí)間指針的走動(dòng)相結(jié)合起來(lái),找出其內(nèi)在的聯(lián)系。2 設(shè)計(jì)方案 顯示一個(gè)動(dòng)畫(huà)時(shí)鐘,該時(shí)針隨著每一秒而動(dòng)態(tài)變化。與其他圖形動(dòng)畫(huà)技術(shù)一樣,每隔1秒(1000毫秒)觸發(fā)Timer事件下的過(guò)程,繪制三個(gè)指針的位置,這樣就實(shí)現(xiàn)了每秒走時(shí)的電子鐘。而顯示當(dāng)前時(shí)間則在timer事件中將當(dāng)前時(shí)間(time)附給tabel1的caption,這樣就顯示啦,當(dāng)前的時(shí)間。在
5、時(shí)鐘的框架上,用繪圖方法line和circle就可以啦。 2.1程序功能設(shè)計(jì) 設(shè)計(jì)一個(gè)類(lèi)似于Windows“時(shí)鐘”的程序,并用數(shù)字顯示時(shí)間。2.1.1程序功能描述 1、在界面顯示一個(gè)活動(dòng)時(shí)鐘,能模擬機(jī)械鐘表行走;2、表盤(pán)上有刻度和數(shù)字,數(shù)字顯示當(dāng)前時(shí)間;3、時(shí)針、分針、秒針的位置與數(shù)字顯示時(shí)間一致,與計(jì)算機(jī)系統(tǒng)時(shí)間一致;4、用戶能修改時(shí)間并與計(jì)算機(jī)系統(tǒng)時(shí)間一致;2.1.2程序功能結(jié)構(gòu)分析 主要使用時(shí)鐘Timer控件的Interval屬性和 Timer事件。1小時(shí)=60分=3600秒。分別用Hour()函數(shù)、 Minute()函數(shù)、 Second()函數(shù)返回當(dāng)前系統(tǒng)時(shí)間Time()的小時(shí)、分鐘、
6、秒數(shù)。首先使用Scale方法定制用戶坐標(biāo)系統(tǒng),如Picture1.Scale (X1, Y1)-(X2, Y2),定義了坐標(biāo)系統(tǒng)(Picture1)的左上角(X1, Y1)和右下角(X2, Y2)的坐標(biāo)值。坐標(biāo)系統(tǒng)的中心在圖片框的正中,時(shí)鐘繪制在圖片框中的正中央,外圈用Pset方法或Circle方法繪制,時(shí)針、分針和秒針用Line方法選擇不同的線形和顏色繪制。每隔30°用Line畫(huà)一大刻度,每隔6°用Line畫(huà)一小刻度,表盤(pán)上的數(shù)字用CurrentX, CurrentY屬性定位后再用Print方法輸出。時(shí)針、分針、秒針隨時(shí)間變化而導(dǎo)致的位置改變同樣使用Line方法來(lái)實(shí)現(xiàn),代
7、碼寫(xiě)在Timer事件中。2.2程序界面和代碼設(shè)計(jì) 2.2.1工程設(shè)計(jì)框架系統(tǒng)有兩個(gè)窗口一個(gè)模塊工程名為”我的時(shí)鐘”窗體名為”我的時(shí)鐘”2.2.2 各界面及代碼設(shè)計(jì)(1)主界面 圖 1歡迎界面主要代碼如下:Const PI = 3.1415926Dim BaseX As Integer, BaseY As Integer, R As IntegerDim basex1 As Integer, basey1 As Integer, basex2 As Integer, basey2 As IntegerDim basex3 As Integer, basey3 As Integer, basex4
8、 As Integer, basey4 As IntegerDim basex5 As Integer, basey5 As IntegerDim r1 As Integer, r2 As Integer, r3 As IntegerDim jiayi As IntegerDim jiaer As IntegerDim Second As IntegerDim Minute As IntegerDim Hours As IntegerPrivate Sub Command1_Click()EndEnd SubPrivate Sub Command2_Click() Form2.ShowEnd
9、SubPrivate Sub Command3_Click()jiayi = jiayi + 1End SubPrivate Sub Command4_Click()jiaer = jiaer + 1End SubPrivate Sub Command5_Click()jiayi = jiayi - 1End SubPrivate Sub Command6_Click()jiaer = jiaer - 1End Sub2)Command7代碼Private Sub Command7_Click()jiayi = 0jiaer = 0End Sub3)加載界面時(shí)公用代碼Private Sub F
10、orm_Load() Me.ScaleMode = 3 Me.AutoRedraw = True Me.ForeColor = vbBlack Label16.Caption = Time Label3.ForeColor = vbRed Label6.ForeColor = vbRed Label9.ForeColor = vbRed Label12.ForeColor = vbRed If Me.Width < 3000 Then Me.Width = 3000 If Me.Height < 3000 Then Me.Height = 3000End Sub4)畫(huà)指針用函數(shù)Pr
11、ivate Sub Init()Dim i As Integer BaseX = Me.ScaleWidth / 2 BaseY = Me.ScaleHeight / 2 If BaseX > BaseY Then R = BaseY * 0.6 If BaseY > BaseX Then R = BaseY * 0.6 r1 = R * 0.2 r2 = R * 0.1 r3 = R * 0.05 For i = 0 To 360 Step 6 If i Mod 30 = 0 Then Me.DrawWidth = 5 DrawLine BaseX + (R - 3) * Sin
12、(i * PI / 180), BaseY - (R - 3) * Cos(i * PI / 180), BaseX + (R - 8) * Sin(i * PI / 180), BaseY - (R - 8) * Cos(i * PI / 180), 3 Else Me.DrawWidth = 3 Me.PSet (BaseX + (R - 3) * Sin(i * PI / 180), BaseY - (R - 3) * Cos(i * PI / 180) End If Next i Me.DrawWidth = 1 Me.Circle (BaseX, BaseY), REnd Sub5)
13、畫(huà)外部表盤(pán)函數(shù)Private Sub DrawClock() If Hours > 12 Then Hours = Hours - 12 End If Me.DrawWidth = 1 Me.Circle (BaseX, BaseY), 4 DrawLine BaseX - r1 * Sin(Second * PI / 30), BaseY + r1 * Cos(Second * PI / 30), BaseX + (R - 10) * Sin(Second * PI / 30), BaseY - (R - 10) * Cos(Second * PI / 30), 0 DrawLine
14、BaseX - r2 * Sin(Minute * PI / 30), BaseY + r2 * Cos(Minute * PI / 30), BaseX + R * 0.8 * Sin(Minute * PI / 30), BaseY - R * 0.8 * Cos(Minute * PI / 30), 1 DrawLine BaseX - r3 * Sin(Hours + Minute / 60) * PI / 6), BaseY + r3 * Cos(Hours + Minute / 60) * PI / 6), BaseX + R * 0.6 * Sin(Hours + Minute
15、/ 60) * PI / 6), BaseY - R * 0.6 * Cos(Hours + Minute / 60) * PI / 6), 2End SubPrivate Sub DrawLine(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer, Flag As Integer)Static OldSX1 As Integer, OldSX2 As Integer, OldSY1 As Integer, OldSY2 As IntegerStatic OldMX1 As Integer, OldMX2 As Integer
16、, OldMY1 As Integer, OldMY2 As IntegerStatic OldHX1 As Integer, OldHX2 As Integer, OldHY1 As Integer, OldHY2 As IntegerSelect Case FlagCase 0Me.DrawWidth = 2Me.Line (OldSX1, OldSY1)-(OldSX2, OldSY2), BackColorMe.Line (x1, y1)-(x2, y2), vbBlackOldSX1 = x1OldSX2 = x2OldSY1 = y1OldSY2 = y2Case 1Me.Draw
17、Width = 4Me.Line (OldMX1, OldMY1)-(OldMX2, OldMY2), BackColorMe.Line (x1, y1)-(x2, y2), vbYellowOldMX1 = x1OldMX2 = x2OldMY1 = y1OldMY2 = y2Case 2Me.DrawWidth = 6Me.Line (OldHX1, OldHY1)-(OldHX2, OldHY2), BackColorMe.Line (x1, y1)-(x2, y2), vbRedOldHX1 = x1OldHX2 = x2OldHY1 = y1OldHY2 = y2Case ElseE
18、nd SelectEnd SubPrivate Sub Form_Resize() Me.Cls Call InitEnd Sub6)工作函數(shù)Private Sub Timer1_Timer()Dim a As IntegerDim b As IntegerDim c As Integer Second = DatePart("s", Time) Minute = DatePart("n", Time) + jiaer Hours = DatePart("h", Time) + jiayi a = DatePart("s&q
19、uot;, Time) b = DatePart("n", Time) + jiaer c = DatePart("h", Time) + jiayi Call DrawClock Dim Tt As StringLabel16.Caption = c & ":" & b & ":" & aEnd Sub(2)信息界面 圖 2界面一主要代碼如下:Private Sub Command1_Click()Unload Me Form1.ShowEnd Sub3 結(jié)果分析 運(yùn)行結(jié)果 圖 3 結(jié) 論 在設(shè)計(jì)過(guò)程中,我通過(guò)查閱大量有關(guān)資料,與同學(xué)交流經(jīng)驗(yàn)和自學(xué),并向老師請(qǐng)教等方式,使自己學(xué)到了不少知識(shí),也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個(gè)設(shè)計(jì)中我懂得了許多東西,大大提高了自己的動(dòng)手能力,使我充分體會(huì)到了在創(chuàng)造過(guò)程中探索的艱難和成功時(shí)的喜悅。雖然這個(gè)設(shè)計(jì)做的也不太好,但是在設(shè)計(jì)過(guò)程中所學(xué)到
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Windows Server網(wǎng)絡(luò)管理項(xiàng)目教程(Windows Server 2022)(微課版)3.2 DHCP-任務(wù)1 安裝DHCP服務(wù)器
- 醫(yī)院感控新視野-從理論到實(shí)踐的全面掌握
- 高中語(yǔ)文第4單元古代傳記第11課廉頗藺相如列傳課件新人教版必修
- 2024-2025學(xué)年八年級(jí)上學(xué)期地理期中模擬試卷(湘教版+含答案解析)
- 江蘇省揚(yáng)州市寶應(yīng)縣2023-2024學(xué)年八年級(jí)上學(xué)期期中語(yǔ)文試卷(含答案解析)
- 小學(xué)假期安全教育教案
- 二級(jí)建造師施工管理課件第3章題
- 高中語(yǔ)文第6單元觀察與批判13林教頭風(fēng)雪山神廟裝在套子里的人課件新人教版必修下冊(cè)
- 高中語(yǔ)文唐宋詞5第十一課一蓑煙雨任平生-抒志詠懷課件語(yǔ)文版選修唐宋詩(shī)詞鑒賞
- 2024至2030年中國(guó)擦手紙盒數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024-2025學(xué)年八年級(jí)上學(xué)期地理期中模擬試卷(湘教版+含答案解析)
- 基于數(shù)據(jù)挖掘的高職學(xué)情分析與課堂教學(xué)質(zhì)量提升研究
- 期中測(cè)試(二)-2024-2025學(xué)年語(yǔ)文六年級(jí)上冊(cè)統(tǒng)編版
- 期中 (試題) -2024-2025學(xué)年譯林版(三起)英語(yǔ)四年級(jí)上冊(cè)
- 2024人教版道法七年級(jí)上冊(cè)第二單元:成長(zhǎng)的時(shí)空大單元整體教學(xué)設(shè)計(jì)
- 2024注冊(cè)安全工程師安全生產(chǎn)管理-考前押題卷
- 聊城市職工工傷事故快報(bào)表
- 鋼筋混凝土Ⅱ級(jí)管施工方案(完整版)
- 配送應(yīng)急預(yù)案-蔬菜配送應(yīng)急預(yù)案措施
- 園林植物遺傳育種學(xué)-第9章選擇育種(芽變選種).ppt
- 克魯格曼國(guó)際貿(mào)易的ppzz模型PPT課件
評(píng)論
0/150
提交評(píng)論