計算機應用基礎課程設計--時鐘程序設計_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  交通與汽車工程學院</b></p><p><b>  課程設計說明書</b></p><p>  課 程 名 稱: 計算機應用基礎課程設計 </p><p>  課 程 代 碼: </p><p>  題

2、 目: 時鐘程序設計 </p><p>  年級/專業(yè)/班: 2011級車輛2班 </p><p><b>  課程設計成績:</b></p><p>  指導教師簽名: 年 月 日</p><p><b>  目

3、 錄 </b></p><p>  摘要……………………………………………………………………………………………2</p><p>  1 引言…………………………………………………………………………………………3</p><p>  1.1問題的提出……………………………………………………………………………… 3</p><p>

4、;  1.2任務與分析……………………………………………………………………………… 3</p><p>  2 設計方案……………………………………………………………………………………4</p><p>  2.1程序功能設計…………………………………………………………………………… 4</p><p>  2.1.1程序功能描述…………………………………………

5、……………………………… 4</p><p>  2.1.2程序功能結構分析…………………………………………………………………… 4</p><p>  2.2程序界面和代碼設計…………………………………………………………………… 5</p><p>  2.2.1工程設計框架………………………………………………………………………… 5</p>

6、<p>  2.2.2各界面及代碼設計…………………………………………………………………… 5 </p><p>  3 結果分析 ………………………………………………………………………………… 12</p><p>  結論 ………………………………………………………………………………………… 12</p><p>  致謝 ………………………………

7、………………………………………………………… 13</p><p>  參考文獻 …………………………………………………………………………………… 14</p><p><b>  摘 要 </b></p><p>  隨著計算機的不斷更新發(fā)展,計算機繪圖方法和計時器的使用扮演著極為重要的角色, Windows環(huán)境下的Visual Basi

8、c提供了豐富的繪圖方法。本文主要通過對選題背景、方案設計、界面設計、代碼編寫及調試以及軟件使用說明等的介紹,介紹了作者利用Visual Basic對“簡易時鐘程序設計”應用軟件的開發(fā)設計過程,并分析了所開發(fā)軟件系統(tǒng)的優(yōu)點和不足。</p><p>  關鍵詞:Visual Basic 簡易時鐘 程序設計 </p><p><b>  1

9、引 言 </b></p><p>  通過一年來對Visual Basic 高級語言程序設計的學習,我已經掌握了一些常用的控件的使用方法,對簡單的程序設計的常用算法也有了一定的了解,還掌握了對繪圖和時間控制的一些基本操作。為了進一步加深理解、驗證、鞏固課堂教學內容,加深對可視化編程思想的理解,強化Visual Basic對程序流程控制、常用控件的屬性、事件、方法的理解和使用;</p>

10、<p><b>  1.1問題的提出 </b></p><p>  為了進一步提高編程能力、程序的調試能力,理論聯系實際的能力;鞏固所學的這些程序設計的方法,為了達到后續(xù)課程對實際編程計算能力的要求,特選定“簡易時鐘程序設計”這個寓教于樂的小題目作為課程設計實踐教學環(huán)節(jié)的題目,有助于培養(yǎng)綜合運用所學知識解決實際問題的能力,可以充分發(fā)揮想象力和創(chuàng)新能力;有助于提高獨立思考能力,自學能

11、力和團隊協作能力。</p><p><b>  1.2任務與分析 </b></p><p>  本任務是設計一個簡易時鐘,顯示當前的時間。主要運用了 visual basic 的繪圖方法和對timer控件的使用。要將繪圖方法和時間指針的走動相結合起來,找出其內在的聯系。</p><p><b>  2 設計方案 </b>

12、;</p><p>  顯示一個動畫時鐘,該時針隨著每一秒而動態(tài)變化。與其他圖形動畫技術一樣,每隔1秒(1000毫秒)觸發(fā)Timer事件下的過程,繪制三個指針的位置,這樣就實現了每秒走時的電子鐘。而顯示當前時間則在timer事件中將當前時間(time)附給tabel1的caption,這樣就顯示啦,當前的時間。在時鐘的框架上,用繪圖方法line和circle就可以啦。 </p><p> 

13、 2.1程序功能設計 </p><p>  設計一個類似于Windows“時鐘”的程序,并用數字顯示時間。</p><p>  2.1.1程序功能描述 </p><p>  1、在界面顯示一個活動時鐘,能模擬機械鐘表行走;</p><p>  2、表盤上有刻度和數字,數字顯示當前時間;</p><p>  3、時針

14、、分針、秒針的位置與數字顯示時間一致,與計算機系統(tǒng)時間一致;</p><p>  4、用戶能修改時間并與計算機系統(tǒng)時間一致;</p><p>  2.1.2程序功能結構分析</p><p>  主要使用時鐘Timer控件的Interval屬性和 Timer事件。1小時=60分=3600秒。</p><p>  分別用Hour()函數、 Min

15、ute()函數、 Second()函數返回當前系統(tǒng)時間Time()的小時、分鐘、秒數。</p><p>  首先使用Scale方法定制用戶坐標系統(tǒng),如Picture1.Scale (X1, Y1)-(X2, Y2),定義了坐標系統(tǒng)(Picture1)的左上角(X1, Y1)和右下角(X2, Y2)的坐標值。坐標系統(tǒng)的中心在圖片框的正中,時鐘繪制在圖片框中的正中央,外圈用Pset方法或Circle方法繪制,時針、分

16、針和秒針用Line方法選擇不同的線形和顏色繪制。每隔30°用Line畫一大刻度,每隔6°用Line畫一小刻度,表盤上的數字用CurrentX, CurrentY屬性定位后再用Print方法輸出。</p><p>  時針、分針、秒針隨時間變化而導致的位置改變同樣使用Line方法來實現,代碼寫在Timer事件中。</p><p>  2.2程序界面和代碼設計 </

17、p><p>  2.2.1工程設計框架</p><p>  系統(tǒng)有兩個窗口一個模塊工程名為”我的時鐘”</p><p>  窗體名為”我的時鐘”</p><p>  2.2.2 各界面及代碼設計</p><p><b> ?。?)主界面</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)加載界面時公用代碼</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)畫指針用函數</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)畫外部表盤函數</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)工作函數</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> ?。?)信息界面</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 結果分析 </b></p><p>  運行結果 圖 3

53、 </p><p><b>  結 論 </b></p><p>  在設計過程中,我通過查閱大量有關資料,與同學交流經驗和自學,并向老師請教等方式,使自己學到了不少知識,也經歷了不少艱辛,但收獲同樣巨大。在整個設計中我懂得了許多東西,大大提高了自己的動手能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。雖然這個設計做的也不太好,但是

54、在設計過程中所學到的東西是這次程序設計的最大收獲和財富,使我終身受益。</p><p>  當然,我也深刻地體會到從理論到實踐是很難的過程,特別是在進行具體時間和指針傳動之間的怎么聯系時,遇到很大的困難,但最后還是通過上網尋求幫助,得以解決。而在怎么樣寫出鐘盤上的時間數時,則想出了一個看視比較笨的辦法(用標簽再在標簽上寫具體時間數字),但是確很實用。設計時由于自己的粗心大意帶來的錯誤也不少,所以以后再編程時一定會

55、多加注意這方面的問題。在編程的過程中學到了很多新的東西,例如:怎樣使用菜單編輯器,怎樣將某個窗體在運行時顯示為第一個。當然以前所學的很多知識也得到鞏固,例如對timer事件的使用,對繪圖方法的掌握。</p><p>  通過本次的程序設計設計,要吸取一定的經驗,在以后的學習和工作當中就要更加的認真仔細,盡量不讓不該發(fā)生的錯誤發(fā)生,也更應該增加實踐經驗和靈活的思維方法,當然,努力學習還是首要的任務,因為只有有了很牢

56、固的知識后才能讓我們做什么事都游刃有余,胸有成竹</p><p><b>  致 謝 </b></p><p>  這次課程設計的圓滿完成得到了滕老師還有同學的幫助,在此對我表示感謝.。</p><p><b>  參考文獻</b></p><p>  [1]楊明廣.王秀華. Visual Bai

57、sc程序設計教程.中國科學技術出版社,2006.11,21世紀教材;</p><p>  [2]王秀華.余建坤. Visual Baisc程序設計上機和級考實訓教程.中國科學技術出版社,2006.11,21世紀教材;</p><p>  [3]龔沛曾. Visual Baisc程序設計簡明教程(第二版).高等教育出版社,2003</p><p>  [4]曾強聰.新

溫馨提示

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

評論

0/150

提交評論