計(jì)算機(jī)畢業(yè)論文:CAI教學(xué)軟件中數(shù)據(jù)的分割

時(shí)間:2022-10-08 03:52:00

導(dǎo)語:計(jì)算機(jī)畢業(yè)論文:CAI教學(xué)軟件中數(shù)據(jù)的分割一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

計(jì)算機(jī)畢業(yè)論文:CAI教學(xué)軟件中數(shù)據(jù)的分割

摘要:本文使用面向?qū)ο蟮母呒?jí)語言VisualBasic6.0設(shè)計(jì)了一套既能編輯,又能應(yīng)用于教學(xué)演示的高級(jí)cai軟件。使用本軟件,用指定的格式輸入CAI數(shù)據(jù),并在其中設(shè)置斷點(diǎn);同時(shí),用本軟件進(jìn)行播放,可實(shí)現(xiàn)模擬教學(xué)目的。本文著重論述了如何輸入數(shù)據(jù)、分割數(shù)據(jù)和顯示數(shù)據(jù)的算法。

Abstract:UsingtheadvancedlanguageObjectOriented-VisualBasic6.0,theauthordevelopedasetofadvancedCAIsoftware,whichcanbeusedindataeditingandteaching.ThissoftwarecanbeusedtoinputCAIdatainassignedformatandsetbreakpoints.Atthemeantime,itcanbeusedtodisplaydatainordertorealizetheobjectiveofsimulatedteaching.Thisarticleemphasizesonthealgorithmofdatainput,datasplitanddatadisplay.

隨著計(jì)算機(jī)的普及和網(wǎng)絡(luò)技術(shù)的發(fā)展,計(jì)算機(jī)輔助教學(xué)(CAI)越來越受到人們的重視。但縱觀目前流行的CAI軟件,大多只能進(jìn)行簡單的放映,而不具備編輯能力,為數(shù)很少的幾個(gè)能夠編輯的軟件,操作又很復(fù)雜,不能針對(duì)教學(xué)特點(diǎn)。基于此,作者設(shè)計(jì)了一個(gè)既能編輯,又能放映的CAI軟件,該軟件高度集成,易學(xué)易用。

1數(shù)據(jù)的輸入

數(shù)據(jù)的輸入采用了類似超文本語言的方法,規(guī)定了若干關(guān)鍵字。如:“\”表示一個(gè)特定的指令的開始;又如:“\titl^2、光的性質(zhì)^”,titl:表示后邊的內(nèi)容是一條標(biāo)題,位于“^……^”之間的數(shù)據(jù)為標(biāo)題的內(nèi)容,“^”為范圍限定符。

所有的符號(hào)都可以在編輯狀態(tài)下的屏幕上找到。如圖一是編輯狀態(tài)的一角,左邊圖1編輯狀態(tài)

為文字區(qū),右邊為指令區(qū)。Fig.1editstatus2數(shù)據(jù)的分割

數(shù)據(jù)的分割分為兩個(gè)步驟進(jìn)行:

第一步:把文章以字形為根據(jù)分解成段落。字形的標(biāo)識(shí)與命令標(biāo)識(shí)相關(guān)。

程序如下:

''''把整個(gè)一頁分成若個(gè)段落

PublicSubFunDivide(ByRefSourceStrAsString,ByRefDestinationAsString,ByRefPositionAsInteger,ByRefpropNameAsString)

DimControllCodeAsString

DimcodCommandAsString

1

DimssAsString

DimSourceLenAsLong

SourceLen=Len(SourceStr)

Destination=""

ControllCode=Mid(SourceStr,Position,1)

If(ControllCode="\")Then

Position=Position+1

codCommand=Mid(SourceStr,Position,4)

propName=codCommand

Position=Position+4

codCommand=Mid(SourceStr,Position,1)

IfcodCommand="^"Then

Position=Position+1

ss=Mid(SourceStr,Position,1)

DoWhiless<>"^"

ss=Mid(SourceStr,Position,1)

Ifss<>"^"Then

Destination=Destination+ss

EndIf

Position=Position+1

Loop

EndIf

EndIf

EndSub

第二步:把段落分別地分成一行一行,為向標(biāo)簽框內(nèi)填充作準(zhǔn)備。分行的依據(jù)是除去控件和圖形的區(qū)域。圖形位于右上角,用一條水平線和豎直線來分界。

''''分段為塊

PublicSubLineDivide(ByRefafterDivideAsString,ByValSourceAsString,ByValScaleLOAsInteger)

DimLLAsInteger

DimLsAsString

DimstartAsInteger

start=1

LL=Len(Source)

Do

Ls=Mid(Source,start,ScaleLO)

start=start+ScaleLO

IfafterDivide=""Then

afterDivide=Ls

2

Else

afterDivide=afterDivide+Chr(13)+Chr(10)+Ls

EndIf

LoopWhile(start<=LL)

EndSub

這兩個(gè)全局函數(shù)位于標(biāo)準(zhǔn)模塊basCommFun.bas中,同時(shí),在該模塊中定義了許多全局變量和常量,用來監(jiān)控程序的運(yùn)行狀態(tài)。如:

OptionExplicit

PublicjobStatusAsInteger''''jobStatus=0第一界面狀態(tài)

''''jobStatus=1編輯界面模式

''''jobStatus=2教學(xué)界面模式

PublicConstMargin=50

PublicConstZLF=180''''小五號(hào)字的大小Twip

PublicConstZF=210''''五號(hào)字的大小Twip。正常顯示內(nèi)容。

PublicConstZLFo=240''''小四號(hào)字的大小Twip

PublicConstZFo=285''''四號(hào)字的大小Twip

PublicConstZLT=300''''小三號(hào)字的大小Twip。標(biāo)題。

PublicConstZT=315''''三號(hào)字的大小Twip

3數(shù)據(jù)的演示

在數(shù)據(jù)顯示時(shí),首先在窗體上放置若干個(gè)標(biāo)簽框和四個(gè)圖片框,并使他們處于不可見狀態(tài)。在運(yùn)行編輯時(shí),顯示用的控件都不可見;在運(yùn)行演示時(shí),編輯用的控件都不可見。通過控制變量jobStatus來實(shí)現(xiàn)這種功能。

顯示程序如下:

PrivateSubcmdPreview_Click()

DimdspContent(2,10)AsString

DimCounterAsInteger

DimJJAsInteger

DimpicLeftsideAsInteger

DimpicBottomAsInteger

DimchrNumAsInteger

picLeftside=0

picBottom=0

DimLsStrAsString

picLeftside=

frmMainForm.Width圖2運(yùn)行狀態(tài)

picBottom=frmMainForm.TopFig2runstatus

Counter=0

ForJJ=0To3

IfpicFigure(JJ).PictureThen

3

WithfrmMainForm

.picFigure(JJ).Left=.Width-Margin–100-picFigure(JJ).Width

.picFigure(JJ).Visible=True

IfJJ=0Then

picFigure(JJ).Top=.Top+1

picBottom=picBottom+.picFigure(JJ).Top+.picFigure(JJ).Height

Else

.picFigure(JJ).Top=.picFigure(JJ-1).Top+.picFigure(JJ-1).Height

picBottom=picBottom+.picFigure(JJ).Height

EndIf

EndWith

EndIf

picLeftside=frmMainForm.picFigure(0).Left

NextJJ

以上程序段用于計(jì)算圖片框組的左邊和累加起來的底邊,分存儲(chǔ)于變量picLeftSide和pciBottom中。用這兩個(gè)變量在右上角上劃出了一個(gè)區(qū)域,以保證文本不會(huì)顯示在圖形后面。

ForJJ=0To9

frmMainForm.lblDisplayContent(JJ).Left=1

Next

frmMainForm.txtContent.Visible=False

frmMainForm.cmdPreview.Visible=False

frmMainForm.cmdPreviewClose.Visible=True

上面的語句用于切換到預(yù)覽狀態(tài)或是關(guān)閉編輯狀態(tài)。

DimLLAsString

DimstartAsInteger

start=1

4實(shí)例運(yùn)行

frmMainForm.txtContent="\titl^第一章簡諧振動(dòng)^\text^物體運(yùn)動(dòng)時(shí),如果離開平衡位置的位移(或角位移)按余弦函數(shù)(或正弦函數(shù))的規(guī)律隨時(shí)間變化,則這種運(yùn)動(dòng)稱為簡諧振動(dòng),簡稱諧振動(dòng)。簡諧振動(dòng)是一種最簡單和最基本的振動(dòng),一切復(fù)雜的振動(dòng)都可以看作是由若干個(gè)簡諧振動(dòng)合成的結(jié)果。^\text^如圖所示的彈簧振子,當(dāng)水平放置時(shí),彈簧為原長,物體所受的合力為零,處于平衡狀態(tài),此時(shí)物體所在的位置就是平衡位置,如果把物體略加位移后釋放,這時(shí)由于彈簧被拉長或壓縮,便有指向平衡位置的彈性力作用在物體上,迫使物體返回平衡位置。這樣,在彈性力的作用下,物體就在其平衡位置附近作往復(fù)運(yùn)動(dòng)。^\text^據(jù)胡克定律,物體所受的彈性力與彈簧的伸長即物體相對(duì)平衡位置的位移成正比,由此可推出彈簧振子的運(yùn)動(dòng)是簡諧振動(dòng)?!盺

1、把文件分割成段落,并顯示文本

4

LL=frmMainForm.txtContent.Text

DoWhile(Len(frmMainForm.txtContent.Text)>start)

CallFunDivide(LL,dspContent(1,Counter),start,dspContent(0,Counter))

Counter=Counter+1

Loop

2、把段落分割成行

ForJJ=0ToCounter

WithfrmMainForm

.lblDisplayContent(JJ).Left=1

3、計(jì)算行寬和判斷字號(hào)

IfdspContent(0,JJ)="titl"Then

.lblDisplayContent(JJ).FontSize=15

chrNum=(picLeftside-2*Margin-100)/ZLT

ElseIfdspContent(0,JJ)="text"Then

.lblDisplayContent(JJ).FontSize=10.5

chrNum=(picLeftside-2*Margin-100)/ZF

Else

EndIf

LsStr=""

CallLineDivide(LsStr,dspContent(1,JJ),chrNum)’分割成行

.lblDisplayContent(JJ).Caption=LsStr’裝載數(shù)據(jù)

IfJJ>0Then

.lblDisplayContent(JJ).Top=.lblDisplayContent(JJ-1).Top

+.lblDisplayContent(JJ-1).Height

EndIf

4、顯示數(shù)據(jù)

.lblDisplayContent(JJ).Visible=True

EndWith

NextJJ

EndSub

所有的數(shù)據(jù)以頁為單位存儲(chǔ)于數(shù)據(jù)中,編輯時(shí),通過“上一頁”和“下一頁”來刷新數(shù)據(jù);同理,在播放時(shí)也通過這兩種指令來刷新窗體。所不同的是編輯時(shí)可以修改數(shù)據(jù)庫,而在演示時(shí)不能修改數(shù)據(jù)庫。

本軟件很好地解決了在VB文本框中輸入文字不能設(shè)置字體,不能回車換行

的問題,并且在編輯文本和圖象時(shí)能夠通過程序控制,動(dòng)態(tài)調(diào)整界面控件位置,實(shí)現(xiàn)圖文混排,在實(shí)際運(yùn)行中取得了較好的效果。

5

參考文獻(xiàn)

[1]WangDong.ProgramDesignWithVisualBasic6.0.TsinghuaUniversityPress.2000

[2]JarolS.GuidetoDevelopMultimediaProgramWithVisualBasic.SciencePres