計(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)文章可咨詢客服老師,歡迎參考。
摘要:本文使用面向?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
熱門標(biāo)簽
計(jì)算機(jī)論文 計(jì)算機(jī)畢業(yè)論文 計(jì)算機(jī)技術(shù)論文 計(jì)算機(jī)教育論文 計(jì)算機(jī)專業(yè)論文 計(jì)算機(jī)教學(xué)論文 計(jì)算機(jī)基礎(chǔ)論文 計(jì)算機(jī)專業(yè)畢業(yè)論文 計(jì)算機(jī)應(yīng)用論文 計(jì)算化學(xué)論文 心理培訓(xùn) 人文科學(xué)概論