版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 交通與汽車工程學(xué)院</b></p><p><b> 課程設(shè)計(jì)說(shuō)明書</b></p><p> 課 程 名 稱: 計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì) </p><p> 課 程 代 碼: </p><p> 題
2、 目: 時(shí)鐘程序設(shè)計(jì) </p><p> 年級(jí)/專業(yè)/班: 2011級(jí)車輛2班 </p><p><b> 課程設(shè)計(jì)成績(jī):</b></p><p> 指導(dǎo)教師簽名: 年 月 日</p><p><b> 目
3、 錄 </b></p><p> 摘要……………………………………………………………………………………………2</p><p> 1 引言…………………………………………………………………………………………3</p><p> 1.1問題的提出……………………………………………………………………………… 3</p><p>
4、; 1.2任務(wù)與分析……………………………………………………………………………… 3</p><p> 2 設(shè)計(jì)方案……………………………………………………………………………………4</p><p> 2.1程序功能設(shè)計(jì)…………………………………………………………………………… 4</p><p> 2.1.1程序功能描述…………………………………………
5、……………………………… 4</p><p> 2.1.2程序功能結(jié)構(gòu)分析…………………………………………………………………… 4</p><p> 2.2程序界面和代碼設(shè)計(jì)…………………………………………………………………… 5</p><p> 2.2.1工程設(shè)計(jì)框架………………………………………………………………………… 5</p>
6、<p> 2.2.2各界面及代碼設(shè)計(jì)…………………………………………………………………… 5 </p><p> 3 結(jié)果分析 ………………………………………………………………………………… 12</p><p> 結(jié)論 ………………………………………………………………………………………… 12</p><p> 致謝 ………………………………
7、………………………………………………………… 13</p><p> 參考文獻(xiàn) …………………………………………………………………………………… 14</p><p><b> 摘 要 </b></p><p> 隨著計(jì)算機(jī)的不斷更新發(fā)展,計(jì)算機(jī)繪圖方法和計(jì)時(shí)器的使用扮演著極為重要的角色, Windows環(huán)境下的Visual Basi
8、c提供了豐富的繪圖方法。本文主要通過對(duì)選題背景、方案設(shè)計(jì)、界面設(shè)計(jì)、代碼編寫及調(diào)試以及軟件使用說(shuō)明等的介紹,介紹了作者利用Visual Basic對(duì)“簡(jiǎn)易時(shí)鐘程序設(shè)計(jì)”應(yīng)用軟件的開發(fā)設(shè)計(jì)過程,并分析了所開發(fā)軟件系統(tǒng)的優(yōu)點(diǎn)和不足。</p><p> 關(guān)鍵詞:Visual Basic 簡(jiǎn)易時(shí)鐘 程序設(shè)計(jì) </p><p><b> 1
9、引 言 </b></p><p> 通過一年來(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ì)程序流程控制、常用控件的屬性、事件、方法的理解和使用;</p>
10、<p><b> 1.1問題的提出 </b></p><p> 為了進(jìn)一步提高編程能力、程序的調(diào)試能力,理論聯(lián)系實(shí)際的能力;鞏固所學(xué)的這些程序設(shè)計(jì)的方法,為了達(dá)到后續(xù)課程對(duì)實(shí)際編程計(jì)算能力的要求,特選定“簡(jiǎn)易時(shí)鐘程序設(shè)計(jì)”這個(gè)寓教于樂的小題目作為課程設(shè)計(jì)實(shí)踐教學(xué)環(huán)節(jié)的題目,有助于培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力,可以充分發(fā)揮想象力和創(chuàng)新能力;有助于提高獨(dú)立思考能力,自學(xué)能
11、力和團(tuán)隊(duì)協(xié)作能力。</p><p><b> 1.2任務(wù)與分析 </b></p><p> 本任務(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)系。</p><p><b> 2 設(shè)計(jì)方案 </b>
12、;</p><p> 顯示一個(gè)動(dòng)畫時(shí)鐘,該時(shí)針隨著每一秒而動(dòng)態(tài)變化。與其他圖形動(dòng)畫技術(shù)一樣,每隔1秒(1000毫秒)觸發(fā)Timer事件下的過程,繪制三個(gè)指針的位置,這樣就實(shí)現(xiàn)了每秒走時(shí)的電子鐘。而顯示當(dāng)前時(shí)間則在timer事件中將當(dāng)前時(shí)間(time)附給tabel1的caption,這樣就顯示啦,當(dāng)前的時(shí)間。在時(shí)鐘的框架上,用繪圖方法line和circle就可以啦。 </p><p>
13、 2.1程序功能設(shè)計(jì) </p><p> 設(shè)計(jì)一個(gè)類似于Windows“時(shí)鐘”的程序,并用數(shù)字顯示時(shí)間。</p><p> 2.1.1程序功能描述 </p><p> 1、在界面顯示一個(gè)活動(dòng)時(shí)鐘,能模擬機(jī)械鐘表行走;</p><p> 2、表盤上有刻度和數(shù)字,數(shù)字顯示當(dāng)前時(shí)間;</p><p> 3、時(shí)針
14、、分針、秒針的位置與數(shù)字顯示時(shí)間一致,與計(jì)算機(jī)系統(tǒng)時(shí)間一致;</p><p> 4、用戶能修改時(shí)間并與計(jì)算機(jī)系統(tǒng)時(shí)間一致;</p><p> 2.1.2程序功能結(jié)構(gòu)分析</p><p> 主要使用時(shí)鐘Timer控件的Interval屬性和 Timer事件。1小時(shí)=60分=3600秒。</p><p> 分別用Hour()函數(shù)、 Min
15、ute()函數(shù)、 Second()函數(shù)返回當(dāng)前系統(tǒng)時(shí)間Time()的小時(shí)、分鐘、秒數(shù)。</p><p> 首先使用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í)針、分
16、針和秒針用Line方法選擇不同的線形和顏色繪制。每隔30°用Line畫一大刻度,每隔6°用Line畫一小刻度,表盤上的數(shù)字用CurrentX, CurrentY屬性定位后再用Print方法輸出。</p><p> 時(shí)針、分針、秒針隨時(shí)間變化而導(dǎo)致的位置改變同樣使用Line方法來(lái)實(shí)現(xiàn),代碼寫在Timer事件中。</p><p> 2.2程序界面和代碼設(shè)計(jì) </
17、p><p> 2.2.1工程設(shè)計(jì)框架</p><p> 系統(tǒng)有兩個(gè)窗口一個(gè)模塊工程名為”我的時(shí)鐘”</p><p> 窗體名為”我的時(shí)鐘”</p><p> 2.2.2 各界面及代碼設(shè)計(jì)</p><p><b> (1)主界面</b></p><p><b>
18、; 圖 1</b></p><p> 歡迎界面主要代碼如下:</p><p> Const PI = 3.1415926</p><p> Dim BaseX As Integer, BaseY As Integer, R As Integer</p><p> Dim basex1 As Integer, base
19、y1 As Integer, basex2 As Integer, basey2 As Integer</p><p> Dim basex3 As Integer, basey3 As Integer, basex4 As Integer, basey4 As Integer</p><p> Dim basex5 As Integer, basey5 As Integer</
20、p><p> Dim r1 As Integer, r2 As Integer, r3 As Integer</p><p> Dim jiayi As Integer</p><p> Dim jiaer As Integer</p><p> Dim Second As Integer</p><p> Di
21、m Minute As Integer</p><p> Dim Hours As Integer</p><p> Private Sub Command1_Click()</p><p><b> End</b></p><p><b> End Sub</b></p>&
22、lt;p> Private Sub Command2_Click()</p><p> Form2.Show</p><p><b> End Sub</b></p><p> Private Sub Command3_Click()</p><p> jiayi = jiayi + 1</p>
23、;<p><b> End Sub</b></p><p> Private Sub Command4_Click()</p><p> jiaer = jiaer + 1</p><p><b> End Sub</b></p><p> Private Sub Comma
24、nd5_Click()</p><p> jiayi = jiayi - 1</p><p><b> End Sub</b></p><p> Private Sub Command6_Click()</p><p> jiaer = jiaer - 1</p><p><b>
25、; End Sub</b></p><p> 2)Command7代碼</p><p> Private Sub Command7_Click()</p><p><b> jiayi = 0</b></p><p><b> jiaer = 0</b></p>
26、<p><b> End Sub</b></p><p> 3)加載界面時(shí)公用代碼</p><p> Private Sub Form_Load()</p><p> Me.ScaleMode = 3</p><p> Me.AutoRedraw = True</p><p>
27、 Me.ForeColor = vbBlack</p><p> Label16.Caption = Time</p><p> Label3.ForeColor = vbRed</p><p> Label6.ForeColor = vbRed</p><p> Label9.ForeColor = vbRed</p>
28、<p> Label12.ForeColor = vbRed</p><p> If Me.Width < 3000 Then Me.Width = 3000</p><p> If Me.Height < 3000 Then Me.Height = 3000</p><p><b> End Sub</b>&
29、lt;/p><p><b> 4)畫指針用函數(shù)</b></p><p> Private Sub Init()</p><p> Dim i As Integer</p><p> BaseX = Me.ScaleWidth / 2</p><p> BaseY = Me.ScaleHeig
30、ht / 2</p><p> If BaseX > BaseY Then R = BaseY * 0.6</p><p> If BaseY > BaseX Then R = BaseY * 0.6</p><p> r1 = R * 0.2</p><p> r2 = R * 0.1</p><p&
31、gt; r3 = R * 0.05</p><p> For i = 0 To 360 Step 6</p><p> If i Mod 30 = 0 Then</p><p> Me.DrawWidth = 5</p><p> DrawLine BaseX + (R - 3) * Sin(i * PI / 180), BaseY
32、 - (R - 3) * Cos(i * PI / 180), BaseX + (R - 8) * Sin(i * PI / 180), BaseY - (R - 8) * Cos(i * PI / 180), 3</p><p><b> Else</b></p><p> Me.DrawWidth = 3</p><p> Me.PS
33、et (BaseX + (R - 3) * Sin(i * PI / 180), BaseY - (R - 3) * Cos(i * PI / 180))</p><p><b> End If</b></p><p><b> Next i</b></p><p> Me.DrawWidth = 1</p&g
34、t;<p> Me.Circle (BaseX, BaseY), R</p><p><b> End Sub</b></p><p><b> 5)畫外部表盤函數(shù)</b></p><p> Private Sub DrawClock()</p><p> If Hours
35、> 12 Then</p><p> Hours = Hours - 12</p><p><b> End If</b></p><p> Me.DrawWidth = 1</p><p> Me.Circle (BaseX, BaseY), 4</p><p> DrawLin
36、e 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</p><p> DrawLine BaseX - r2 * Sin(Minute * PI
37、/ 30), BaseY + r2 * Cos(Minute * PI / 30), BaseX + R * 0.8 * Sin(Minute * PI / 30), BaseY - R * 0.8 * Cos(Minute * PI / 30), 1</p><p> DrawLine BaseX - r3 * Sin((Hours + Minute / 60) * PI / 6), BaseY + r3 *
38、 Cos((Hours + Minute / 60) * PI / 6), BaseX + R * 0.6 * Sin((Hours + Minute / 60) * PI / 6), BaseY - R * 0.6 * Cos((Hours + Minute / 60) * PI / 6), 2</p><p><b> End Sub</b></p><p>
39、 Private Sub DrawLine(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer, Flag As Integer)</p><p> Static OldSX1 As Integer, OldSX2 As Integer, OldSY1 As Integer, OldSY2 As Integer</p><p&
40、gt; Static OldMX1 As Integer, OldMX2 As Integer, OldMY1 As Integer, OldMY2 As Integer</p><p> Static OldHX1 As Integer, OldHX2 As Integer, OldHY1 As Integer, OldHY2 As Integer</p><p> Select
41、Case Flag</p><p><b> Case 0</b></p><p> Me.DrawWidth = 2</p><p> Me.Line (OldSX1, OldSY1)-(OldSX2, OldSY2), BackColor</p><p> Me.Line (x1, y1)-(x2, y2),
42、 vbBlack</p><p> OldSX1 = x1</p><p> OldSX2 = x2</p><p> OldSY1 = y1</p><p> OldSY2 = y2</p><p><b> Case 1</b></p><p> Me.Dr
43、awWidth = 4</p><p> Me.Line (OldMX1, OldMY1)-(OldMX2, OldMY2), BackColor</p><p> Me.Line (x1, y1)-(x2, y2), vbYellow</p><p> OldMX1 = x1</p><p> OldMX2 = x2</p&g
44、t;<p> OldMY1 = y1</p><p> OldMY2 = y2</p><p><b> Case 2</b></p><p> Me.DrawWidth = 6</p><p> Me.Line (OldHX1, OldHY1)-(OldHX2, OldHY2), BackCol
45、or</p><p> Me.Line (x1, y1)-(x2, y2), vbRed</p><p> OldHX1 = x1</p><p> OldHX2 = x2</p><p> OldHY1 = y1</p><p> OldHY2 = y2</p><p><b&
46、gt; Case Else</b></p><p> End Select</p><p><b> End Sub</b></p><p> Private Sub Form_Resize()</p><p><b> Me.Cls</b></p><p&
47、gt;<b> Call Init</b></p><p><b> End Sub</b></p><p><b> 6)工作函數(shù)</b></p><p> Private Sub Timer1_Timer()</p><p> Dim a As Integer&l
48、t;/p><p> Dim b As Integer</p><p> Dim c As Integer</p><p> Second = DatePart("s", Time)</p><p> Minute = DatePart("n", Time) + jiaer</p>&l
49、t;p> Hours = DatePart("h", Time) + jiayi</p><p> a = DatePart("s", Time)</p><p> b = DatePart("n", Time) + jiaer</p><p> c = DatePart("h&qu
50、ot;, Time) + jiayi</p><p> Call DrawClock</p><p> Dim Tt As String</p><p> Label16.Caption = c & ":" & b & ":" & a</p><p><b&g
51、t; End Sub</b></p><p><b> (2)信息界面</b></p><p><b> 圖 2</b></p><p> 界面一主要代碼如下:</p><p> Private Sub Command1_Click()</p><p>
52、;<b> Unload Me</b></p><p> Form1.Show</p><p><b> End Sub</b></p><p><b> 3 結(jié)果分析 </b></p><p> 運(yùn)行結(jié)果 圖 3
53、 </p><p><b> 結(jié) 論 </b></p><p> 在設(shè)計(jì)過程中,我通過查閱大量有關(guān)資料,與同學(xué)交流經(jīng)驗(yàn)和自學(xué),并向老師請(qǐng)教等方式,使自己學(xué)到了不少知識(shí),也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個(gè)設(shè)計(jì)中我懂得了許多東西,大大提高了自己的動(dòng)手能力,使我充分體會(huì)到了在創(chuàng)造過程中探索的艱難和成功時(shí)的喜悅。雖然這個(gè)設(shè)計(jì)做的也不太好,但是
54、在設(shè)計(jì)過程中所學(xué)到的東西是這次程序設(shè)計(jì)的最大收獲和財(cái)富,使我終身受益。</p><p> 當(dāng)然,我也深刻地體會(huì)到從理論到實(shí)踐是很難的過程,特別是在進(jìn)行具體時(shí)間和指針傳動(dòng)之間的怎么聯(lián)系時(shí),遇到很大的困難,但最后還是通過上網(wǎng)尋求幫助,得以解決。而在怎么樣寫出鐘盤上的時(shí)間數(shù)時(shí),則想出了一個(gè)看視比較笨的辦法(用標(biāo)簽再在標(biāo)簽上寫具體時(shí)間數(shù)字),但是確很實(shí)用。設(shè)計(jì)時(shí)由于自己的粗心大意帶來(lái)的錯(cuò)誤也不少,所以以后再編程時(shí)一定會(huì)
55、多加注意這方面的問題。在編程的過程中學(xué)到了很多新的東西,例如:怎樣使用菜單編輯器,怎樣將某個(gè)窗體在運(yùn)行時(shí)顯示為第一個(gè)。當(dāng)然以前所學(xué)的很多知識(shí)也得到鞏固,例如對(duì)timer事件的使用,對(duì)繪圖方法的掌握。</p><p> 通過本次的程序設(shè)計(jì)設(shè)計(jì),要吸取一定的經(jīng)驗(yàn),在以后的學(xué)習(xí)和工作當(dāng)中就要更加的認(rèn)真仔細(xì),盡量不讓不該發(fā)生的錯(cuò)誤發(fā)生,也更應(yīng)該增加實(shí)踐經(jīng)驗(yàn)和靈活的思維方法,當(dāng)然,努力學(xué)習(xí)還是首要的任務(wù),因?yàn)橹挥杏辛撕芾?/p>
56、固的知識(shí)后才能讓我們做什么事都游刃有余,胸有成竹</p><p><b> 致 謝 </b></p><p> 這次課程設(shè)計(jì)的圓滿完成得到了滕老師還有同學(xué)的幫助,在此對(duì)我表示感謝.。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]楊明廣.王秀華. Visual Bai
57、sc程序設(shè)計(jì)教程.中國(guó)科學(xué)技術(shù)出版社,2006.11,21世紀(jì)教材;</p><p> [2]王秀華.余建坤. Visual Baisc程序設(shè)計(jì)上機(jī)和級(jí)考實(shí)訓(xùn)教程.中國(guó)科學(xué)技術(shù)出版社,2006.11,21世紀(jì)教材;</p><p> [3]龔沛曾. Visual Baisc程序設(shè)計(jì)簡(jiǎn)明教程(第二版).高等教育出版社,2003</p><p> [4]曾強(qiáng)聰.新
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì)
- 程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)
- 計(jì)算機(jī)文化基礎(chǔ)課程設(shè)計(jì)
- 計(jì)算機(jī)科學(xué)基礎(chǔ)課程設(shè)計(jì)
- 計(jì)算機(jī)科學(xué)基礎(chǔ)課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)-c語(yǔ)言計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)
- 計(jì)算機(jī)技術(shù)基礎(chǔ)課程設(shè)計(jì)
- 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)vb語(yǔ)言程序設(shè)計(jì)
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)課程整體教學(xué)設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)課程設(shè)計(jì)--ping程序的實(shí)現(xiàn)
- 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)c語(yǔ)言程序設(shè)計(jì)課程教學(xué)大綱
- 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)c語(yǔ)言程序設(shè)計(jì)課程教學(xué)大綱
- 計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ)c語(yǔ)言程序設(shè)計(jì)課程教學(xué)大綱
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)課程
- 計(jì)算機(jī)組成原理課程設(shè)計(jì)(微程序設(shè)計(jì))
- 《計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)課程設(shè)計(jì)》udp
- 數(shù)字時(shí)鐘基礎(chǔ)課程設(shè)計(jì)
- 計(jì)算機(jī)基礎(chǔ)課程設(shè)計(jì)--計(jì)算機(jī)網(wǎng)頁(yè)制作實(shí)驗(yàn)報(bào)告
評(píng)論
0/150
提交評(píng)論