模擬時(shí)鐘轉(zhuǎn)動(dòng)程序設(shè)計(jì)說(shuō)明書_第1頁(yè)
模擬時(shí)鐘轉(zhuǎn)動(dòng)程序設(shè)計(jì)說(shuō)明書_第2頁(yè)
模擬時(shí)鐘轉(zhuǎn)動(dòng)程序設(shè)計(jì)說(shuō)明書_第3頁(yè)
模擬時(shí)鐘轉(zhuǎn)動(dòng)程序設(shè)計(jì)說(shuō)明書_第4頁(yè)
模擬時(shí)鐘轉(zhuǎn)動(dòng)程序設(shè)計(jì)說(shuō)明書_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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、摘要.-0-1引言.-2-1.1選題背景.-2-1.2任務(wù)與分析.-2-2方案設(shè)計(jì).-3-3界面設(shè)計(jì).-3-4代碼設(shè)計(jì)及程序調(diào)試.-4-總結(jié)與體會(huì).-7-致謝.-9-參考文獻(xiàn).-10-摘要隨著計(jì)算機(jī)的不斷更新發(fā)展,計(jì)算機(jī)圖形操作和動(dòng)畫設(shè)計(jì)扮演著極為重要的角色,Windows環(huán)境下的VisualBasic提供了豐富的圖形功能。本文主要通過(guò)對(duì)選題背景、方案設(shè)計(jì)、界面設(shè)計(jì)、代碼編寫及調(diào)試以及軟件使用說(shuō)明等的介紹,介紹了作者利用VisualBasic對(duì)“模擬時(shí)鐘轉(zhuǎn)動(dòng)”程序的開發(fā)設(shè)計(jì)過(guò)程。關(guān)鍵詞:VisualBasic模擬時(shí)鐘轉(zhuǎn)動(dòng)-1-程序設(shè)計(jì)1引言1.1選題背景通過(guò)一年來(lái)對(duì)VisualBasic高級(jí)語(yǔ)

2、言程序設(shè)計(jì)的學(xué)習(xí),我已經(jīng)掌握了一些常用的控件的使用方法,對(duì)簡(jiǎn)單的程序設(shè)計(jì)的常用算法也有了一定的了解,還掌握了對(duì)圖形和動(dòng)畫的一些基本操作。為了進(jìn)一步加深理解、驗(yàn)證、鞏固課堂教學(xué)內(nèi)容,加深對(duì)可視化編程思想的理解,強(qiáng)化VisualBasic對(duì)程序流程控制、常用控件的屬性、事件、方法的理解和使用;為了進(jìn)一步提高編程能力、程序的調(diào)試能力,理論聯(lián)系實(shí)際的能力;鞏固所學(xué)的這些程序設(shè)計(jì)的方法,為了達(dá)到后續(xù)課程對(duì)實(shí)際編程計(jì)算能力的要求,特選定“模擬時(shí)鐘轉(zhuǎn)動(dòng)程序設(shè)計(jì)”這個(gè)寓教于樂(lè)的小題目作為課程設(shè)計(jì)實(shí)踐教學(xué)環(huán)節(jié)的題目,有助于培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力,可以充分發(fā)揮想象力和創(chuàng)新能力;有助于提高獨(dú)立思考能

3、力,自學(xué)能力和團(tuán)隊(duì)協(xié)作能力。1.2任務(wù)與分析任務(wù)的具體內(nèi)容:設(shè)計(jì)一個(gè)類似于Windows“時(shí)鐘”的程序,并用數(shù)字顯示時(shí)間。在界面顯示一個(gè)活動(dòng)時(shí)鐘,能模擬機(jī)械鐘表行走,還要準(zhǔn)確的利用數(shù)字顯示時(shí)間。任務(wù)具體要求:要求遵循面向?qū)ο蠛徒Y(jié)構(gòu)化程序設(shè)計(jì)的編程思路,設(shè)計(jì)合理的界面,設(shè)置所需控件及其屬性,編寫相應(yīng)的事件過(guò)程,并上機(jī)調(diào)試程序,在基本要求達(dá)到后,進(jìn)行一定創(chuàng)新設(shè)計(jì)。并編寫規(guī)范的設(shè)計(jì)說(shuō)明書一份。軟件的預(yù)期功能:實(shí)現(xiàn)石英鐘表式的能夠有指針運(yùn)動(dòng)的時(shí)鐘顯示。-2-2方案設(shè)計(jì)顯示一個(gè)動(dòng)畫時(shí)鐘,該時(shí)針隨著每一秒而動(dòng)態(tài)變化。與其他圖形動(dòng)畫技術(shù)一樣,每隔0.1秒(100毫秒)觸發(fā)Timer事件下的過(guò)程,首先利用PS

4、ET,LINE,CIRCLE繪圖方法繪制時(shí)鐘的表盤。然后再繪制三個(gè)指針的位置,計(jì)算指針的坐標(biāo),設(shè)計(jì)各個(gè)指針的轉(zhuǎn)動(dòng)角度和時(shí)間,這樣就實(shí)現(xiàn)了每秒走時(shí)的電子鐘。主要思路:(1)繪圖方法中的Line,Circle方法進(jìn)行表盤的設(shè)計(jì)將Form大小確定為50000*5000,通過(guò)Form大小的確定可以確定出表盤圓心的位置,即(BaseX=Me.ScaleWidth/2,BaseY=Me.ScaleHeight/2),以及圓的半徑大小R=BaseX*0.8(2)繪圖方法中的line來(lái)繪制指針通過(guò)圓心的確定就能確定指針的起點(diǎn)坐標(biāo),從而設(shè)計(jì)指針的長(zhǎng)度和兩端點(diǎn)坐標(biāo),起點(diǎn)坐標(biāo)為(BaseX+(R-15)*Sin(i

5、*PI/180),BaseY-(R-15)*Cos(i*PI/180)),終點(diǎn)坐標(biāo)為(BaseX+R*Sin(i*PI/180),BaseY-R*Cos(i*PI/180))(3)利用Timer控件來(lái)控制指針的繪制和運(yùn)動(dòng)將Timer控件的Interval屬性設(shè)為100毫秒,即是1秒觸動(dòng)一次時(shí)間,從而通過(guò)調(diào)用DrawClock,Biaopan子過(guò)程每一秒畫一次表盤(4)子過(guò)程,子函數(shù)在程序中通過(guò)DrawClock,Biaopan子過(guò)程來(lái)畫表盤和指針,每一次調(diào)用子過(guò)程,畫出下一秒的指針,以及用背景色為白色色上一秒的指針線掩蓋原來(lái)的指針。-3-3界面設(shè)計(jì)簡(jiǎn)易時(shí)鐘設(shè)計(jì)程序的模擬時(shí)鐘運(yùn)行界面如圖所示程序

6、運(yùn)行界面將Form窗口設(shè)計(jì)為5000*5000的正方形,所取的圓的直徑為窗體寬度的0.8倍,在界面中就可以依次設(shè)計(jì)出112數(shù)字label的位置,秒針每轉(zhuǎn)動(dòng)一格指針轉(zhuǎn)過(guò)的角度為6度,就可以計(jì)算出秒針末端的坐標(biāo)(BaseX+R*Sin(i*PI/180),BaseY-R*Cos(i*PI/180)-4-4代碼設(shè)計(jì)及程序調(diào)試第一步,先新建一個(gè)工程,然后用“工具箱”中的工具加入一個(gè)Timer1,將Timer1的屬性interval改為100。定義變量的代碼如下:ConstPI=3.1415926DimBaseXAsInteger,BaseYAsInteger,RAsIntegerDimr1AsInte

7、ger,r2AsInteger,r3AsInteger第二步,繪制表盤的的代碼,首先尋找圓心,將整個(gè)圓周先分為360份,每30份為1次繪制小時(shí),再利用三角函數(shù)計(jì)算出每一分鐘的刻度應(yīng)該的坐標(biāo),畫線,再沿分鐘的刻度用circle函數(shù)邊緣畫出表盤的圓圈。PrivateSubbiaopan()DimiAsIntegerBaseX=Me.ScaleWidth/2BaseY=Me.ScaleHeight/2IfBaseX>BaseYThenR=BaseX*0.8IfBaseX<BaseYThenR=BaseY*0.8以上語(yǔ)句是用于確定表盤的大小和表盤圓心的位置Fori=0To360Step6F

8、ori=0To360Step6IfiMod90=0ThenMe.DrawWidth=6DrawLineBaseX+(R-15)*Sin(i*PI/180),BaseY-(R-15)*Cos(i*PI/180),BaseX+R*Sin(i*PI/180),BaseY-R*Cos(i*PI/180),3EndIf通過(guò)一個(gè)if語(yǔ)句結(jié)構(gòu),如果在for循環(huán)中如果i能夠被90整出則畫出3、6、9、12數(shù)字label所對(duì)應(yīng)的表盤刻度IfiMod30=0ThenMe.DrawWidth=6DrawLineBaseX+(R-15)*Sin(i*PI/180),BaseY-(R-15)*Cos(i*PI/180)

9、,BaseX+R*Sin(i*PI/180),BaseY-R*Cos(i*PI/180),4EndIf通過(guò)一個(gè)if語(yǔ)句結(jié)構(gòu),如果在for循環(huán)中如果i能夠被30整出則畫出1、2、4、5、7、8、10、11數(shù)字label所對(duì)應(yīng)的表盤刻度Me.DrawWidth=5Me.Circle(BaseX,BaseY),R,vbBlue上面兩句用于畫出表盤的圓,圓心為(BaseX,BaseY)第三步,繪制時(shí)鐘的指針,先將系統(tǒng)時(shí)間中間的秒,分鐘,小時(shí)提出作為1個(gè)-5-參數(shù),再用這個(gè)參數(shù)帶入三角函數(shù)的運(yùn)算,計(jì)算出時(shí)針,分針,秒針各自時(shí)間內(nèi)應(yīng)該走過(guò)的角度,利用劃線的函數(shù)畫出各個(gè)指針。Me.DrawWidth=1Dr

10、awLineBaseX,BaseY,BaseX+(R-8)*Sin(Second*PI/30),BaseY-(R-8)*Cos(Second*PI/30),0用于畫出秒針的線條DrawLineBaseX,BaseY,BaseX+R*0.8*Sin(Minute*PI/30),BaseY-R*0.8*Cos(Minute*PI/30),1用于畫出分針的線條DrawLineBaseX,BaseY,BaseX+R*0.6*Sin(Hours+Minute/60)*PI/6),BaseY-R*0.6*Cos(Hours+Minute/60)*PI/6),2用于畫出時(shí)針的線條第四步,畫線函數(shù),用line

11、函數(shù),將坐標(biāo)定于為靜態(tài)變量,將上一次的畫線顏色設(shè)置為背景顏色,并且設(shè)置畫線的寬度。PrivateSubDrawLine(x1AsInteger,y1AsInteger,x2AsInteger,y2AsInteger,FlagAsInteger)StaticOldSX1AsInteger,OldSX2AsInteger,OldSY1AsInteger,OldSY2AsIntegerSelectCaseFlagCase0Me.DrawWidth=1Me.Line(OldSX1,OldSY1)-(OldSX2,OldSY2),BackColorMe.Line(x1,y1)-(x2,y2),vbBlu

12、eOldSX1=x1OldSX2=x2OldSY1=y1OldSY2=y2在子過(guò)程中用Static函數(shù)確定下來(lái)原來(lái)的指針坐標(biāo),下一秒畫線的時(shí)候?qū)⒃瓉?lái)的指針掩蓋第五步,調(diào)用子過(guò)程,顯示現(xiàn)在時(shí)間。PrivateSubTimer1_Timer()CallDrawClockCallDrawClockEndSubTimer每觸動(dòng)一次,調(diào)用一次DrawClock和DrawClock子過(guò)程,畫出當(dāng)前時(shí)間的指針位置。-6-總結(jié)與體會(huì)本段具體內(nèi)容為本次課程設(shè)計(jì)整體上的總結(jié)與體會(huì),可包含所設(shè)計(jì)軟件的優(yōu)點(diǎn)和不足的分析,遇到的困難及解決方法等。在這個(gè)簡(jiǎn)易時(shí)鐘設(shè)計(jì)的過(guò)程中,我是對(duì)時(shí)鐘的表盤設(shè)計(jì)和時(shí)針的設(shè)計(jì)。在課設(shè)創(chuàng)作的

13、過(guò)程中,我學(xué)會(huì)了基本的VB編程技能,對(duì)軟件制作也有了初步的了解。同時(shí)也遇到了種種困難,體驗(yàn)到了編程的艱辛。在實(shí)現(xiàn)“時(shí)鐘指針運(yùn)動(dòng)”的過(guò)程中,指針運(yùn)動(dòng)的坐標(biāo)難以計(jì)算,無(wú)法實(shí)現(xiàn)指針的機(jī)械轉(zhuǎn)動(dòng)。無(wú)法實(shí)現(xiàn)對(duì)時(shí)鐘的時(shí)間進(jìn)行修改。后來(lái),我們通過(guò)相互討論及查詢相關(guān)資料,細(xì)心檢查語(yǔ)句。不斷使邏輯和格式趨于完善。最終,問(wèn)題得以解決。軟件的制作是一件辛苦而費(fèi)力的工作,但在同學(xué)的努力下,我們不但按時(shí)完成,而且從中學(xué)到了許多課本上沒(méi)有的東西,首先是團(tuán)隊(duì)的合作精神?,F(xiàn)代軟件的制作不是一個(gè)人可以完成的,個(gè)人始終需要集體的支持。在確定制作項(xiàng)目之后,我們進(jìn)行了分工,每個(gè)人都有任務(wù)。但分工不等于對(duì)其余人的工作放手不管,在遇到困難

14、時(shí),大家集中在一起進(jìn)行分析討論,共同解決。其次是學(xué)習(xí)與實(shí)踐的關(guān)系。在課本上學(xué)到了VB程序的基礎(chǔ)知識(shí)。但在實(shí)踐中,需要大量的拓展知識(shí)。我們?cè)诶斫鈺局R(shí)的基礎(chǔ)上,查閱了大量的書籍,不僅找到了問(wèn)題的解決方法,而且優(yōu)中取優(yōu),盡量選取最簡(jiǎn)方法,從而促進(jìn)了我們VB知識(shí)的提高。在設(shè)計(jì)中會(huì)遇到很多的困難,其主要的原因如下:(1)對(duì)所學(xué)過(guò)的相關(guān)知識(shí)不是很熟練,不會(huì)靈活應(yīng)用;(2)缺乏實(shí)踐經(jīng)驗(yàn),不會(huì)理論聯(lián)系實(shí)際;(3)思維不是很靈活;(4)在設(shè)計(jì)的時(shí)候不夠認(rèn)真仔細(xì);(5)知識(shí)面不夠廣;(6)畫圖的經(jīng)驗(yàn)不足,不會(huì)應(yīng)用簡(jiǎn)單的方法;(7)對(duì)VB編程不是很熟練,有很多的方法不會(huì)應(yīng)用。通過(guò)本次的VB程序簡(jiǎn)易時(shí)鐘設(shè)計(jì),要吸

15、取一定的經(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)橹挥杏辛撕芾喂痰闹R(shí)后才能讓我們做什么事都游刃有余,胸有成竹。這次的VB程序設(shè)計(jì)的計(jì)算能力,繪圖能力,應(yīng)用VB編程的能力,應(yīng)用資料、-7-手冊(cè)、標(biāo)準(zhǔn)的能力都得到了很大的提高。雖然,在設(shè)計(jì)的過(guò)程中遇到了很多的問(wèn)題,最后每個(gè)問(wèn)題都得到解決的時(shí)候,有種如釋重負(fù)的感覺,心里充滿了成就感。此外,我還得出一個(gè)結(jié)論:知識(shí)必須通過(guò)應(yīng)用才能實(shí)現(xiàn)其價(jià)值!有些東西以為學(xué)會(huì)了,但真正到用的時(shí)候才發(fā)現(xiàn)是兩回事,所以我認(rèn)為只有到真正會(huì)用的時(shí)候才是真的學(xué)會(huì)了。-8-致謝這次能夠順利的完成這次課程設(shè)計(jì),首先我要感謝在課程設(shè)計(jì)輔導(dǎo)我的張?jiān)姴ɡ蠋?,是他在我每次感到困難的時(shí)候給予我很大的幫助,還要感謝那些在設(shè)計(jì)的時(shí)候向我提供意見的同學(xué)們,當(dāng)然還要感謝學(xué)校提供這么好的學(xué)習(xí)環(huán)境,讓我們能夠順利的完成這次課程設(shè)計(jì),感謝我的父母和朋友們給與

溫馨提示

  • 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)論