計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì)--時(shí)鐘程序設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩14頁(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、<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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論