VB课程设计文本编辑器.docx
《VB课程设计文本编辑器.docx》由会员分享,可在线阅读,更多相关《VB课程设计文本编辑器.docx(14页珍藏版)》请在冰豆网上搜索。
VB课程设计文本编辑器
VB课程设计报告
——文本编辑器
学院名称
:
学生姓名
:
专业名称
:
班级
:
一、课程设计题目
用VisualBasic程序设计语言编写一个简易的文本编辑器
要求:
有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。
二、课程设计目的
虽然本学期的VisualBasic课程是自学的,相对于课堂学习有些不足,但通过平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。
3、课程设计说明
题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序
功能设计说明:
功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:
RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等,。
要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。
本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。
4.源代码
PrivateSubCommand1_Click()
DimiAsInteger
IfText2.Text<>"123456"Then
i=MsgBox("密码错误",5+vbExclamation,"警告")
Ifi<>6Then
End
Else
Text2.Text=""
Text2.SetFocus
EndIf
EndIf
Form1.Hide
Form2.Show
EndSub
PrivateSubForm_Load()
Text1.Text=""
Text1.MaxLength=6
Text2.Text=""
Text2.MaxLength=6
Text2.PasswordChar="*"
EndSub
PrivateSubText1_LostFocus()
IfNotIsNumeric(Text1.Text)Then
MsgBox"帐号必须为数字",,"警告"
Text1.Text=""
Text1.SetFocus
EndIf
EndSub
PrivateSubCommand1_Click()
Form2.Hide
Form3.Show
EndSub
PrivateSubCommand2_Click()
Form2.Hide
Form4.Show
EndSub
PrivateSubCommand3_Click()
Form2.Hide
Form5.Show
EndSub
PrivateSubColor_Click()
CommonDialog1.Action=3
Text1.ForeColor=CommonDialog1.Color
EndSub
PrivateSubCommand1_Click()
Form3.Hide
Form2.Show
EndSub
PrivateSubCopy_Click()
DimstAsString
st=Text1.SelText
EndSub
PrivateSubCut_Click()
DimstAsString
st=Text1.SelText
Text1.SelText=""
EndSub
PrivateSubExit_Click()
End
EndSub
PrivateSubFont_Click()
CommonDialog1.Flags=cdlCFBothOrcdlCFEffects
CommonDialog1.Action=4
Text1.FontName=CommonDialog1.FileName
Text1.FontSize=CommonDialog1.FontSize
Text1.FontBold=CommonDialog1.FontBold
Text1.FontItalic=CommonDialog1.FontItalic
Text1.FontStrikethru=CommonDialog1.FontStrikethru
Text1.FontUnderline=CommonDialog1.FontUnderline
Text1.ForeColor=CommonDialog1.Color
EndSub
SubNew_Click()
Text1.Text=""
Me.Caption=File
EndSub
SubOpen_Click()
CommonDialog1.Action=1
Text1.Text=""
OpenCommonDialog1.FileNameForInputAs#1
DoWhileNotEOF
(1)
LineInput#1,inputdata
Text1.Text=Text1.Text+inputdata+vbCrLf
Loop
Close#1
EndSub
PrivateSubPaste_Click()
Text1.SelText=st
EndSub
PrivateSubPrint_Click()
CommonDialog1.Action=5
Fori=1ToCommonDialog1.Copies
Printer.PrintText1.Text
Nexti
Printer.EndDoc
EndSub
PrivateSubSaveAs_Click()
CommonDialog1.FileName="vb课设用.txt"
CommonDialog1.DefaultExt="txt"
CommonDialog1.Action=2
OpenCommonDialog1.FileNameForOutputAs#1
Print#1,Text1.Text
EndSub
DimarrAsLong,sumAsLong,aAsInteger
PrivateSubCommand1_Click()
a=HScroll1.Value
Text1.Text=plus(a)
Callisprime(a)
EndSub
PrivateSubCommand2_Click()
End
EndSub
PrivateSubHScroll1_Change()
Label2.Caption=HScroll1.Value
EndSub
Subisprime(maxAsInteger)
DimxAsInteger,iAsInteger,jAsInteger
Fori=2Tomax
x=0
Forj=2Toi-1
IfiModj=0Thenx=1
Nextj
Ifx=0ThenLabel2.Caption=Label2.Caption&i&""
Nexti
EndSub
Functionplus(aAsInteger)AsLong
Fori=1Toa
sum=sum+i
Nexti
plus=sum
EndFunction
Dimx1AsInteger
Dimy1AsInteger
Dimx2AsInteger
Dimy2AsInteger
DimflagAsBoolean
PrivateSubCommand1_Click()
OnErrorResumeNext
CommonDialog1.CancelError=True
CommonDialog1.DialogTitle="颜色"
CommonDialog1.ShowColorIfErr<>32755Then
Picture1.ForeColor=CommonDialog1.Color
EndIf
EndSub
PrivateSubCommand2_Click()
Picture1.Cls
EndSub
PrivateSubCommand3_Click()
Form5.Hide
Form6.Show
EndSub
PrivateSubOption1_Click()
Picture1.DrawWidth=1
EndSub
PrivateSubOption2_Click()
Picture1.DrawWidth=2
EndSub
PrivateSubOption3_Click()
Picture1.DrawWidth=4
EndSub
PrivateSubOption4_Click()
Picture1.DrawWidth=8
EndSub
PrivateSubForm_Load()
Picture1.Scale(0,0)-(400,400)
flag=False
EndSub
PrivateSubPicture1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
flag=True
x1=X
y1=Y
EndSub
PrivateSubPicture1_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Ifflag=FalseThen
ExitSub
EndIf
Ifflag=TrueThen
x2=X
y2=Y
Picture1.Line(x1,y1)-(x2,y2)
x1=x2
y1=y2
EndIf
EndSub
PrivateSubPicture1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
flag=False
EndSub
DimctPAsSingle,ctDu()AsSingle,ctDuSAsLong
PrivateSubCommand1_Click()
Picture1.AutoRedraw=True:
ctP=3.1415926
Timer1.Interval=20:
Timer1.Enabled=NotTimer1.Enabled
EndSub
PrivateSubCommand2_Click()
Form7.Hide
Form6.Show
EndSub
PrivateSubForm_Load()
Me.Caption="旋转的椭圆":
Command1.Caption="转/停"
Text1.Text="9个":
Timer1.Enabled=False
EndSub
PrivateSubText1_Change()
ctDuS=Val(Text1.Text)
IfctDuS>200ThenText1.Text="200"
IfctDuS<1ThenctDuS=1
ReDimctDu(0ToctDuS)
EndSub
PrivateSubTimer1_Timer()
DimIAsLong
Picture1.DrawWidth=3
Picture1.Cls
ForI=0ToctDuS
ctDu(I)=ctDu(I)+ctP*0.01*I/9
IfctDu(I)>ctP*2ThenctDu(I)=ctDu(I)-ctP*2
Show1ctDu(I),&HFFFFFF/(ctDuS+1)*I*0.6
Next
DimxAsSingle,yAsSingle
StaticJAsSingle
Picture1.DrawWidth=15
x0=Picture1.ScaleWidth*0.5:
y0=Picture1.ScaleHeight*0.5
Picture1.PSet(x0,y0),255
x=1200:
y=0:
J=J-0.05
IfJ<-ctP*2ThenJ=J+ctP*2
ZhuanJ,x,y
Picture1.PSet(x0+x,y0+y),RGB(0,0,255)
EndSub
PrivateSubShow1(ToJAsSingle,SeAsLong)
DimIAsSingle,xAsSingle,yAsSingle,x0AsSingle,y0AsSingle
DimaAsSingle,bAsSingle,x1AsSingle,y1AsSingle
IfPicture1.ScaleWidtha=Picture1.ScaleWidth*0.45
Else
a=Picture1.ScaleHeight*0.45
EndIf
b=a*0.25
x0=Picture1.ScaleWidth*0.5:
y0=Picture1.ScaleHeight*0.5
x=-a:
y=0:
ZhuanToJ,x,y
x1=a:
y1=0:
ZhuanToJ,x1,y1
Picture1.Line(x0+x,y0+y)-(x0+x1,y0+y1),Se
x=0:
y=-b:
ZhuanToJ,x,y
x1=0:
y1=b:
ZhuanToJ,x1,y1
Picture1.Line(x0+x,y0+y)-(x0+x1,y0+y1),Se
ForI=0ToctP*2Step0.1
x=a*Sin(I):
y=b*Cos(I)
ZhuanToJ,x,y
Picture1.Line-(x0+x,y0+y),Se
Next
x=a*Sin(I):
y=b*Cos(I)
ZhuanToJ,x,y
Picture1.Line-(x0+x,y0+y),Se
EndSub
PrivateSubZhuan(ToJAsSingle,xAsSingle,yAsSingle)
DimSAsSingle,JAsSingle
S=Sqr(x^2+y^2)
IfS=0ThenJ=0ElseJ=y/S
IfAbs(J)>=1Then
IfJ>0ThenJ=ctP*0.5ElseJ=-ctP*0.5
Else
J=Atn(J/Sqr(-J*J+1))
EndIf
Ifx<0ThenJ=-ctP-J
x=S*Cos(J+ToJ):
y=S*Sin(J+ToJ)EndSub
PrivateSubCommand1_Click()
End
EndSub
五、运行结果
六.心得体会
通过本次课程设计,使我对VB的认识更加深入了一层,VB主要由两部分组成,一个是Visual可视化界面设计,另一个是Basic程序设计。
对于第一部分,我觉得还是比较容易的,因为它比较直观。
就目前我所学的,对于第二部分还是比较困难。
在做设计的过程中发现自己存在不少问题,由于word知识欠缺,我没有办法为我的课程设计创建目录,这让我觉得很遗憾,尤其是对VB编程语句的不熟悉而造成在运行过程的很多次出错。
具体说文本编辑器的设计,首先是控件的使用要注意,例如不能使用平时一般的Text文本框,因为其只适用于一般的文本显示,使用RichTextBox,可拥有文本的完整功能,不用再添加滚动条等控件,而是使用其自带的滚动条;其实是菜单的设计,应注意菜单的名称书写,不能出现重复现象,否则要使用索引,不仅增加麻烦更不利于程序编写,然后编写代码的时候应注意必须与菜单中的名字一一对应,否则会出现错误;最后要注意程序的完整性以及实用性、便捷性,能够有友好的UI设计,给用户最好的体验。