計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì)說明書(vb時(shí)鐘程序)_第1頁
計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì)說明書(vb時(shí)鐘程序)_第2頁
計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì)說明書(vb時(shí)鐘程序)_第3頁
計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì)說明書(vb時(shí)鐘程序)_第4頁
計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì)說明書(vb時(shí)鐘程序)_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì)交通與汽車工程學(xué)院課程設(shè)計(jì)說明書課 程 名 稱: 計(jì)算機(jī)應(yīng)用基礎(chǔ)課程設(shè)計(jì) 課 程 代 碼: 6011339 題 目: 時(shí)鐘程序設(shè)計(jì) 年級(jí)/專業(yè)/班: 2011級(jí)車輛2班 學(xué) 生 姓 名: 曹安 學(xué) 號(hào): 312011080306220 開 始 時(shí) 間: 2012 年 2 月 20 日完 成 時(shí) 間: 2012 年 3 月 2 日課程設(shè)計(jì)成績:學(xué)習(xí)態(tài)度及平時(shí)成績(30)技術(shù)水平與實(shí)際能力(20)創(chuàng)新(5)說明書(計(jì)算書、圖紙、分析報(bào)告)撰寫質(zhì)量(45)總 分(100)指導(dǎo)教師簽名: 年 月 日 目 錄 (小三黑體,居中)摘要21 引言31.1問題的提出 31.2任務(wù)與分析

2、 32 設(shè)計(jì)方案42.1程序功能設(shè)計(jì) 42.1.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提供了豐富的繪圖方法。本文主要通過對(duì)選題背景、方案設(shè)計(jì)、界面設(shè)計(jì)、代碼編寫及調(diào)試以及軟件使用說明等的介紹,介紹了作者利用visual basic對(duì)“簡易時(shí)鐘程序設(shè)計(jì)”應(yīng)用軟件的開發(fā)設(shè)計(jì)過程,并分析了所開發(fā)軟件系統(tǒng)的優(yōu)點(diǎn)和不足。關(guān)鍵詞

3、:visual basic 簡易時(shí)鐘 程序設(shè)計(jì) 1 引 言 通過一年來對(duì)visual basic 高級(jí)語言程序設(shè)計(jì)的學(xué)習(xí),我已經(jīng)掌握了一些常用的控件的使用方法,對(duì)簡單的程序設(shè)計(jì)的常用算法也有了一定的了解,還掌握了對(duì)繪圖和時(shí)間控制的一些基本操作。為了進(jìn)一步加深理解、驗(yàn)證、鞏固課堂教學(xué)內(nèi)容,加深對(duì)可視化編程思想的理解,強(qiáng)化visual basic對(duì)程序流程控制、常用控件的屬性、事件、方法的理解和使用;1.1問題的提出 為了進(jìn)一步提高編程能力、程序的調(diào)試能力,理論聯(lián)系實(shí)際的能力;鞏固所學(xué)的這些程序設(shè)計(jì)的方法,為了達(dá)到后續(xù)課程對(duì)實(shí)際編程計(jì)算能力的要求,特選定“簡易時(shí)鐘程序設(shè)計(jì)”這個(gè)寓教于樂的小題目作為

4、課程設(shè)計(jì)實(shí)踐教學(xué)環(huán)節(jié)的題目,有助于培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)解決實(shí)際問題的能力,可以充分發(fā)揮想象力和創(chuàng)新能力;有助于提高獨(dú)立思考能力,自學(xué)能力和團(tuán)隊(duì)協(xié)作能力。1.2任務(wù)與分析 本任務(wù)是設(shè)計(jì)一個(gè)簡易時(shí)鐘,顯示當(dāng)前的時(shí)間。主要運(yùn)用了 visual basic 的繪圖方法和對(duì)timer控件的使用。要將繪圖方法和時(shí)間指針的走動(dòng)相結(jié)合起來,找出其內(nèi)在的聯(lián)系。2 設(shè)計(jì)方案 顯示一個(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)附給tabel

5、1的caption,這樣就顯示啦,當(dāng)前的時(shí)間。在時(shí)鐘的框架上,用繪圖方法line和circle就可以啦。 2.1程序功能設(shè)計(jì) 設(shè)計(jì)一個(gè)類似于windows“時(shí)鐘”的程序,并用數(shù)字顯示時(shí)間。2.1.1程序功能描述 1、在界面顯示一個(gè)活動(dòng)時(shí)鐘,能模擬機(jī)械鐘表行走;2、表盤上有刻度和數(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(

6、)函數(shù)返回當(dāng)前系統(tǒng)時(shí)間time()的小時(shí)、分鐘、秒數(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畫一大刻度,每隔6用line畫一小刻度,表盤上的數(shù)字用currentx, currenty屬性定位后再用print方法輸出。時(shí)針、分針、秒針隨時(shí)間變化而導(dǎo)致的位置改變同樣使

7、用line方法來實(shí)現(xiàn),代碼寫在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 int

8、eger, basex4 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() fo

9、rm2.showend 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í)公用代碼p

10、rivate sub form_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 basey then r = basey * 0.6 if basey basex

11、 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(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

12、 = 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)畫外部表盤函數(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(s

13、econd * pi / 30), basey + r1 * cos(second * pi / 30), basex + (r - 10) * sin(second * pi / 30), basey - (r - 10) * cos(second * pi / 30), 0 drawline 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

14、), 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 / 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

15、integer, flag as integer)static oldsx1 as integer, oldsx2 as integer, oldsy1 as integer, oldsy2 as integerstatic oldmx1 as integer, oldmx2 as integer, oldmy1 as integer, oldmy2 as integerstatic oldhx1 as integer, oldhx2 as integer, oldhy1 as integer, oldhy2 as integerselect case flagcase 0me.drawwid

16、th = 2me.line (oldsx1, oldsy1)-(oldsx2, oldsy2), backcolorme.line (x1, y1)-(x2, y2), vbblackoldsx1 = x1oldsx2 = x2oldsy1 = y1oldsy2 = y2case 1me.drawwidth = 4me.line (oldmx1, oldmy1)-(oldmx2, oldmy2), backcolorme.line (x1, y1)-(x2, y2), vbyellowoldmx1 = x1oldmx2 = x2oldmy1 = y1oldmy2 = y2case 2me.dr

17、awwidth = 6me.line (oldhx1, oldhy1)-(oldhx2, oldhy2), backcolorme.line (x1, y1)-(x2, y2), vbredoldhx1 = x1oldhx2 = x2oldhy1 = y1oldhy2 = y2case elseend 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 secon

18、d = datepart(s, time) minute = datepart(n, time) + jiaer hours = datepart(h, time) + jiayi a = datepart(s, 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ān)資料,與同學(xué)交流經(jīng)驗(yàn)和自學(xué),并向老師請教等方式,使自己學(xué)到了不少知識(shí),也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個(gè)設(shè)計(jì)中我懂得了許多東西,大大提高了自己的動(dòng)手能力,使我充分體會(huì)到了在創(chuàng)造過程中探索的艱難和成功時(shí)的喜悅。雖然這個(gè)設(shè)計(jì)做的也不太好,但是在設(shè)計(jì)過程中所學(xué)到的東西是這次程序設(shè)計(jì)的最大收獲和財(cái)富,使我終身受益。當(dāng)然,我也深

溫馨提示

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

評(píng)論

0/150

提交評(píng)論