《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書_第1頁
《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書_第2頁
《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書_第3頁
《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書_第4頁
《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》

指導(dǎo)書

試驗(yàn)日期

試驗(yàn)111.20

試驗(yàn)2:11.27

試驗(yàn)3:12.4

適應(yīng)專業(yè):通信工程06級~08級

學(xué)時:16

執(zhí)筆人:楊崇

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

試驗(yàn)一制作圖片瀏覽器

一試驗(yàn)?zāi)康模簩W(xué)習(xí)并把握VisualBasic基本控件的使用,學(xué)習(xí)并把握VisualBasic6.0的基本語法規(guī)則,理解并把握容器的概念,把握面向?qū)ο缶幊痰幕驹砼c方法。

二試驗(yàn)內(nèi)容:

利用PicturBoxe、Image控件結(jié)合文件系統(tǒng)空間制作支持多種靜態(tài)圖片文件格式的瀏覽器。

三試驗(yàn)原理:

VisualBasic6.0支持幾乎全部的圖片格式,包括BMP,JPGGIF,CUR,ICO等格式,通過文件系統(tǒng)控件可以訪問到全部本地磁盤、軟盤、光盤、移動存儲設(shè)備以及局域網(wǎng)內(nèi)用油訪問權(quán)限的規(guī)律磁盤上的文件,通過利用FileListBox控件的文件過濾功能,將可顯示的圖片羅列出來后在Image控件中進(jìn)行顯示。

PictureBox控件是一款用來加載和處理圖片的控件,它不僅僅可以用來顯示圖片,而且可以加載上面的圖片進(jìn)行更高級的編輯,如按位操作、像素級圖像處理等,PictureBox擁有獨(dú)立的坐標(biāo)系統(tǒng),可作為容器來加載其他控件。

Image控件是一款專門用來顯示圖片的控件,它可以顯示全部圖像格式,同時由于具備Stretch屬性,可以使圖像依照Image控件的二維視圖區(qū)域進(jìn)行顯示,又由于該控件占用的內(nèi)存空間比PictureBox控件小得多,因此在不對圖像進(jìn)行處理的場合下應(yīng)優(yōu)先選擇。

加載圖像使用VB自帶的LoadPicture函數(shù),它的引用方法為:

Picture1.picture=LoadPicture(Pathname)

Image1.picture=LoadPicture(Pathname)

其中Picture1為圖片框控件PictureBox的對象引用名稱,Image1為圖像框控件Image的對象引用名稱。Pathname為圖片文件的路徑。

由于本試驗(yàn)僅僅涉及圖片的瀏覽,因此建議使用Image控件。同時,顯示過程中為了保證

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

圖像顯示的完整性,應(yīng)當(dāng)使Image控件的大小符合圖片自身的大小,在支持縮放時,圖片的高和寬兩項參數(shù)應(yīng)當(dāng)按比例同時發(fā)生變化。

在顯示圖片時,首先應(yīng)當(dāng)將Image控件的Visible屬性設(shè)置為False,Stretch屬性設(shè)置為False,此時,Image控件不可見,同時,加載圖片后,Image控件的大小與圖片的原始大小一致。為了適應(yīng)顯示窗口,需要選擇具有獨(dú)立坐標(biāo)系統(tǒng)的PictureBox控件作為顯示區(qū),并要求Image控件在PictureBox的限定范圍內(nèi)顯示全部的圖像信息。

由于圖片的自身大小各異,高寬比(Height/Width)未知,因此,為了在限定顯示區(qū)內(nèi)顯示全部圖片信息,應(yīng)當(dāng)考慮圖像自身高寬比與顯示區(qū)高寬比的關(guān)系,它們的比例關(guān)系有如下兩種狀況,見下圖:

顯示區(qū)

圖2

在圖1中,圖片的高寬比小于顯示區(qū)的高寬比,此時,為了顯示全部圖像信息,應(yīng)將圖片的高度等同于顯示區(qū)的高度,而寬度則按比例做適應(yīng)性調(diào)整。

在圖2中,圖片的高寬比大于顯示區(qū)的高寬比,此時,為了顯示全部圖像信息,應(yīng)將圖片的寬度等同于顯示區(qū)的寬度,而高度則按比例做適應(yīng)性調(diào)整。

當(dāng)然,若圖片與顯示區(qū)高寬比一致,則按上述兩種狀況之一執(zhí)行即可。當(dāng)圖片的大小小于顯示區(qū),可直接進(jìn)行顯示不必進(jìn)行調(diào)整。

另外,在對圖片進(jìn)行瀏覽、縮放時需要對圖片進(jìn)行居中調(diào)整,可使顯示效果更加美觀。圖片的TOP屬性=(顯示區(qū)域高度-圖片高度)/2

圖片Left屬性=(顯示區(qū)域?qū)挾龋瓐D片寬度)/2

具體例如代碼如下:

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

DimWHPAsSingle‘定義圖片框控件高寬比的變量

DimWHFAsSingle‘定義圖像框控件(顯示區(qū)域)高寬比的變量Image1.Visible=False‘設(shè)置圖片框不可見,避免顯示抖動Image1.Stretch=False‘設(shè)置圖片框大小等同于隨圖片大小Image1.Picture=LoadPicture(Pathname)‘加載圖片到圖片框

WHP=Image1.Width/Image1.Height‘取得圖片框即原始圖像的高寬比

WHF=Picture1.Width/Picture1.Height‘取得圖像框即顯示區(qū)域的高寬比

IfWHP=WHFThen判斷,若圖片框高寬比大于或等于圖像框高寬比Image1.Width=Picture1.Width

Image1.Height=Image1.Width/WHP‘調(diào)整圖片框?qū)挾群透叨葏?shù)

Else‘否則,若圖片框高寬比小于圖像框高寬比Image1.Height=Picture1.Height

Image1.Width=Image1.Height*WHP‘調(diào)整圖片框?qū)挾群透叨葏?shù)

EndIf

Image1.Top=(Picture1.Height-Image1.Height)/2

Image1.Left=(Picture1.Width-Image1.Width)/2‘居中調(diào)整圖片框

Image1.Stretch=True‘拉伸圖片到適合大小

Image1.Visible=True‘顯示圖片

四、試驗(yàn)步驟

1新建工程,名稱自擬。

2添加一個窗體,名稱自擬。

3添加六個Command控件,名稱自擬。添加一個Timer控件,設(shè)置它的Interval屬性為1000。4添加一個PictureBox控件,然后再將一個Image控件添加到PictureBox控件上。5添加一個DriveListBox控件,一個DirListBox控件,一個FileListBox控件。

6在DriveListBox控件、DirListBox控件的Change事件中填寫代碼使三個文件系統(tǒng)控件實(shí)

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

現(xiàn)連接互動。在FileListBox控件的Click事件中填寫加載圖片文件以及位置調(diào)整的代碼。7將六個Command控件的Caption屬性分別設(shè)置為:“上一個〞、“下一個〞、“自動播放〞、“中止〞、“放大〞、“縮小〞,并在對應(yīng)的Click事件中填寫相關(guān)處理代碼。

8選定菜單-文件-保存工程選項,保存工程后,按F5調(diào)試程序。

9打包,發(fā)布,異地安裝并運(yùn)行該程序。

10代碼部分自主編寫,可參考試驗(yàn)課例如代碼。其他可擴(kuò)展部分自擬,功能應(yīng)豐富,不拘泥于教師課堂講授的內(nèi)容。

五、試驗(yàn)中應(yīng)注意的問題與思考題:

1當(dāng)圖片大小小于顯示區(qū)間時,應(yīng)使用原來大小現(xiàn)實(shí)圖片,避免失真。

2如何保證文件列表控件顯示的文件都是可顯示文件類型?

3當(dāng)加載文件為非法格式時,程序?qū)⒊鲥e中斷,應(yīng)怎樣處理?

4如何設(shè)置慢速自動瀏覽,快速自動瀏覽及自定義瀏覽速度?

5應(yīng)用程序界面自行定義,美觀大方,不拖沓。

六、試驗(yàn)報告內(nèi)容:

1試驗(yàn)原理與要求

2試驗(yàn)步驟截圖

3程序源代碼

4試驗(yàn)結(jié)果截圖

5試驗(yàn)中遇到的問題及解決方案。

6回復(fù)思考題。

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

試驗(yàn)二制作圓盤式時鐘

一試驗(yàn)?zāi)康模?/p>

通過試驗(yàn)了解并把握VisuaBasic坐標(biāo)系統(tǒng)的特征和開發(fā)技巧,了解并把握Timer控件和Line、Shape控件的使用方法。培養(yǎng)解決實(shí)際問題時數(shù)學(xué)建模能力。

二試驗(yàn)內(nèi)容:

利用Timer控件和Line、Shape等控件利用制作一個圓盤式時鐘。要求時鐘的初始化時間與系統(tǒng)時間一致。

三試驗(yàn)原理:

坐標(biāo)系統(tǒng)

PC

Y軸正方向。如下圖

X

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

Y

圓盤式時鐘的三個指針:時針、分針、秒針均為順時針旋轉(zhuǎn)。

它們的數(shù)學(xué)關(guān)系如下:

1秒=1/60分=1/3600小時。

而對于圓盤式時鐘而言,由于圓周為2π。則秒針單位轉(zhuǎn)動增量弧度為2π/30=π/30。當(dāng)每秒鐘秒針運(yùn)行π/30時,分針的轉(zhuǎn)動增量弧度為π/(3060)=π/1800。由于圓盤式時鐘的一個圓周為12小時,則時針此時的轉(zhuǎn)動增量弧度為:

π/(180012)=π/21600。

即,每秒鐘秒針轉(zhuǎn)動π/30,分針轉(zhuǎn)動π/1800,時針轉(zhuǎn)動π/21600。當(dāng)順時針轉(zhuǎn)動時,轉(zhuǎn)動時弧度均為增量。

當(dāng)某個指針轉(zhuǎn)動一定的角度時,它的坐標(biāo)位置會隨著自身的轉(zhuǎn)動而發(fā)生改變,當(dāng)然,在這里指針的“軸〞位置(x1,y1)不會發(fā)生改變,發(fā)生改變的是指針位置的坐標(biāo)值(x2,y2)。轉(zhuǎn)動時,它們的數(shù)學(xué)關(guān)系為:x2=x1+Cos(當(dāng)前弧度)*指針長度。

當(dāng)前弧度為指針在坐標(biāo)系統(tǒng)中的弧度值,當(dāng)指針指向0點(diǎn)時,弧度為3π/2

系統(tǒng)啟動時,應(yīng)保證時鐘顯示的當(dāng)前時間與計算機(jī)系統(tǒng)的時間一致,此時應(yīng)當(dāng)應(yīng)對指針進(jìn)行一次初始化。若當(dāng)前系統(tǒng)時間為14:58:58,此時,將得到系統(tǒng)的小時、分、秒分別為14、58、58,在計算指針初始化弧度時,應(yīng)考慮三個問題:1每個指針由于當(dāng)前時間值帶來的弧度偏移量。2分針除自身時間值帶來偏移量外由于秒針偏移量帶來的微小偏移。3時針除自身時間值帶來偏移量外由于分針偏移量帶來的微小偏移。

如當(dāng)前時間為14:58:58,則分針的指示位置不應(yīng)當(dāng)為指向58分的位置,而應(yīng)當(dāng)是很接近59分的位置,同理,時針的位置不該是指向14點(diǎn)(2點(diǎn)),而應(yīng)當(dāng)很接近15點(diǎn)(3點(diǎn))的位置。由于當(dāng)指針位于零點(diǎn)時初始弧度為3π/2,因此此時它們的具體數(shù)學(xué)關(guān)系如下:

秒針偏移=秒數(shù)2π/60=秒數(shù)π/30。

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

分針偏移=分?jǐn)?shù)π/30+秒針偏移/60

時針偏移=時數(shù)π/6+分針偏移/12

秒針位置=3π/2+秒針偏移

分針位置=3π/2+分針偏移

時針位置=3π/2+時針偏移

控件簡介

Timer控件是VB集成的系統(tǒng)控件,它可在規(guī)定時間間隔內(nèi)向用戶發(fā)送中斷,用戶可在中斷處理事件中填寫相應(yīng)處理代碼以實(shí)現(xiàn)定時處理任務(wù)。Timer控件設(shè)計時可見,運(yùn)行時不可見,因此編程時可以不必考慮它在窗體的具體位置。Timer控件的Interval屬性提供給用戶設(shè)置中斷時間間隔,單位為毫秒,即1000毫秒=1秒。當(dāng)Interval屬性為0時,Timer控件中止工作。Enabled屬性可看作是它的開關(guān),當(dāng)該屬性值為True時,Teimer控件啟動,若未False,則中止工作。在本試驗(yàn)中,Timer控件的Interval屬性設(shè)置為1000。

Line控件是繪圖控件,它為用戶提供一個線型外觀,通過設(shè)置它的端點(diǎn)坐標(biāo)值(x1,y2)(x2,y2)來設(shè)置它的位置,VB沒有提供它的長度參數(shù),不過它的長度可以通過空間兩點(diǎn)距離公式求得:長度=(x1x2)2(y1y2)2

用戶可以設(shè)置它的顯示顏色以及粗細(xì)等信息,其他屬性見教材。

Shape控件是繪圖控件,它為用戶提供一個二維圖形外觀,可自由設(shè)置顯示矩形、圓、橢圓等多種顯示模型。用戶用戶可以設(shè)置它的顯示顏色以及粗細(xì)等信息,其他屬性見教材。例如代碼見試驗(yàn)課附件

四、試驗(yàn)步驟

1創(chuàng)立一個工程,名稱自擬

2添加一個窗體,名稱自擬

3在窗體上放置一個Timer控件,一個Shape控件(表盤),三個Line控件(指針)控件名稱自擬。

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

4設(shè)置Timer的中斷屬性為1000,設(shè)置Shape控件Shape屬性為3即circle。BroderWidth屬性為5,調(diào)整三個Line控件,其中秒針最修長,分針次之,時針粗短,通過設(shè)置BroderWidth可調(diào)整指針的粗細(xì),通過調(diào)整Brodercolor配置指針的顏色,配色方案自擬。

5在Form_Load事件中填寫初始化代碼

6在Timer控件的Timer事件中填寫定時修改指針位置的代碼。

7選定菜單-文件-保存工程選項,保存工程后,按F5調(diào)試程序。

8打包,發(fā)布,異地安裝并運(yùn)行該程序。

9代碼部分自主編寫,可參考試驗(yàn)課例如代碼。其他可擴(kuò)展部分自擬,功能應(yīng)豐富,不拘泥于教師課堂講授的內(nèi)容。

五、試驗(yàn)中應(yīng)注意的問題與思考題:

1放置Line控件時其初始位置對運(yùn)行結(jié)果有影響嗎,假使有如何避免這種影響?

2假使Timer控件的Interval屬性設(shè)置過小或過大,會影響顯示效果嗎,為什么?

3假使在程序執(zhí)行過程中,用戶修改系統(tǒng)時間,那么顯示效果會發(fā)生變化嗎?如何實(shí)現(xiàn)保證顯示效果與系統(tǒng)時鐘的實(shí)時性?

4π的值定為3.1416。假使取3.14會帶來什么樣的影響?

5由于時間偏移持續(xù)累加,假使程序長時間運(yùn)行,會使保存時鐘偏移的變量溢出,應(yīng)當(dāng)怎樣解決這個問題?

六、試驗(yàn)報告內(nèi)容:

1試驗(yàn)原理與要求

2試驗(yàn)步驟截圖

3程序源代碼

4試驗(yàn)結(jié)果截圖

5試驗(yàn)中遇到的問題及解決方案。

6回復(fù)思考題。

《面向?qū)ο蟪绦蛟O(shè)計試驗(yàn)》指導(dǎo)書

Command1.Caption=上線

W.SendDataxxChr(10)W.LocalIP

EndIf

EndSub

PrivateSubCommand2_Click()

T1=

EndSub

PrivateSubForm_Load()

W.Bind1000

W.RemotePort=1001

W.RemoteHost=192.168.0.41

EndSub

PrivateSubT2_KeyDown(KeyCodeAsInteger,ShiftAsInteger)

DimaAsString

IfKeyCode=13Then

IfL.Text=Then

MsgBox請選擇閑聊對象

ExitSub

EndIf

IfL.Text=W.LocalIPThen

MsgBox公共場合,請勿自言自語

ExitSub

EndIf

a=fyChr(10)W.LocalIPChr(10)L.TextChr(10)T2

W.SendDataa

T1=T1Chr(13)Chr(10)你對L.T

溫馨提示

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

最新文檔

評論

0/150

提交評論