VB课程设计报告——文本编辑器学院名称:学生姓名:专业名称:班级:一、课程设计题目用Visual Basic程序设计语言编写一个简易的文本编辑器要求:有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。
二、课程设计目的虽然本学期的Visual Basic课程是自学的,相对于课堂学习有些不足,但通过平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB 应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。
三、课程设计说明题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序功能设计说明:功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等,。
要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。
本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。
四.源代码Private Sub Command1_Click()Dim i As IntegerIf Text2.Text<>"123456"Theni=MsgBox("密码错误",5+vbExclamation,"警告")If i<>6ThenEndElseText2.Text=""Text2.SetFocusEnd IfEnd IfForm1.HideForm2.ShowEnd SubPrivate Sub Form_Load()Text1.Text=""Text1.MaxLength=6Text2.Text=""Text2.MaxLength=6Text2.PasswordChar="*"End SubPrivate Sub Text1_LostFocus()If Not IsNumeric(Text1.Text)Then MsgBox"帐号必须为数字",,"警告" Text1.Text=""Text1.SetFocusEnd IfEnd SubPrivate Sub Command1_Click()Form2.HideForm3.ShowEnd SubPrivate Sub Command2_Click()Form2.HideForm4.ShowEnd SubPrivate Sub Command3_Click()Form2.HideForm5.ShowEnd SubPrivate Sub Color_Click() CommonDialog1.Action=3Text1.ForeColor=CommonDialog1.Color End SubPrivate Sub Command1_Click()Form3.HideForm2.ShowEnd SubPrivate Sub Copy_Click()Dim st As Stringst=Text1.SelTextEnd SubPrivate Sub Cut_Click()Dim st As Stringst=Text1.SelTextText1.SelText=""End SubPrivate Sub Exit_Click()EndEnd SubPrivate Sub Font_Click()CommonDialog1.Flags=cdlCFBoth Or cdlCFEffects CommonDialog1.Action=4Text1.FontName=CommonDialog1.FileNameText1.FontSize=CommonDialog1.FontSizeText1.FontBold=CommonDialog1.FontBoldText1.FontItalic=CommonDialog1.FontItalicText1.FontStrikethru=CommonDialog1.FontStrikethru Text1.FontUnderline=CommonDialog1.FontUnderline Text1.ForeColor=CommonDialog1.ColorEnd SubSub New_Click()Text1.Text=""Me.Caption=FileEnd SubSub Open_Click()CommonDialog1.Action=1Text1.Text=""Open CommonDialog1.FileName For Input As#1Do While Not EOF(1)Line Input#1,inputdataText1.Text=Text1.Text+inputdata+vbCrLfLoopClose#1End SubPrivate Sub Paste_Click()Text1.SelText=stEnd SubPrivate Sub Print_Click()CommonDialog1.Action=5For i=1To CommonDialog1.CopiesPrinter.Print Text1.TextNext iPrinter.EndDocEnd SubPrivate Sub SaveAs_Click()CommonDialog1.FileName="vb课设用.txt" CommonDialog1.DefaultExt="txt" CommonDialog1.Action=2Open CommonDialog1.FileName For Output As#1 Print#1,Text1.TextEnd SubDim arr As Long,sum As Long,a As IntegerPrivate Sub Command1_Click()a=HScroll1.ValueText1.Text=plus(a)Call isprime(a)End SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub HScroll1_Change()Label2.Caption=HScroll1.ValueEnd SubSub isprime(max As Integer)Dim x As Integer,i As Integer,j As IntegerFor i=2To maxx=0For j=2To i-1If i Mod j=0Then x=1Next jIf x=0Then Label2.Caption=Label2.Caption&i&"" Next iEnd SubFunction plus(a As Integer)As LongFor i=1To asum=sum+iNext iplus=sumEnd FunctionDim x1As IntegerDim y1As IntegerDim x2As IntegerDim y2As IntegerDim flag As BooleanPrivate Sub Command1_Click()On Error Resume NextCommonDialog1.CancelError=True CommonDialog1.DialogTitle="颜色" CommonDialog1.ShowColorIf Err<>32755Then Picture1.ForeColor=CommonDialog1.Color End IfEnd SubPrivate Sub Command2_Click()Picture1.ClsEnd SubPrivate Sub Command3_Click()Form5.HideForm6.ShowEnd SubPrivate Sub Option1_Click()Picture1.DrawWidth=1End SubPrivate Sub Option2_Click()Picture1.DrawWidth=2End SubPrivate Sub Option3_Click()Picture1.DrawWidth=4End SubPrivate Sub Option4_Click()Picture1.DrawWidth=8End SubPrivate Sub Form_Load()Picture1.Scale(0,0)-(400,400)flag=FalseEnd SubPrivate Sub Picture1_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single) flag=Truex1=Xy1=YEnd SubPrivate Sub Picture1_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single) If flag=False ThenExit SubEnd IfIf flag=True Thenx2=Xy2=YPicture1.Line(x1,y1)-(x2,y2)x1=x2y1=y2End IfEnd SubPrivate Sub Picture1_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single) flag=FalseEnd SubDim ctP As Single,ctDu()As Single,ctDuS As LongPrivate Sub Command1_Click()Picture1.AutoRedraw=True:ctP=3.1415926Timer1.Interval=20:Timer1.Enabled=Not Timer1.EnabledEnd SubPrivate Sub Command2_Click()Form7.HideForm6.ShowEnd SubPrivate Sub Form_Load()Me.Caption="旋转的椭圆":Command1.Caption="转/停"Text1.Text="9个":Timer1.Enabled=FalseEnd SubPrivate Sub Text1_Change()ctDuS=Val(Text1.Text)If ctDuS>200Then Text1.Text="200"If ctDuS<1Then ctDuS=1ReDim ctDu(0To ctDuS)End SubPrivate Sub Timer1_Timer()Dim I As LongPicture1.DrawWidth=3Picture1.ClsFor I=0To ctDuSctDu(I)=ctDu(I)+ctP*0.01*I/9If ctDu(I)>ctP*2Then ctDu(I)=ctDu(I)-ctP*2Show1ctDu(I),&HFFFFFF/(ctDuS+1)*I*0.6NextDim x As Single,y As SingleStatic J As SinglePicture1.DrawWidth=15x0=Picture1.ScaleWidth*0.5:y0=Picture1.ScaleHeight*0.5 Picture1.PSet(x0,y0),255x=1200:y=0:J=J-0.05If J<-ctP*2Then J=J+ctP*2Zhuan J,x,yPicture1.PSet(x0+x,y0+y),RGB(0,0,255)End SubPrivate Sub Show1(ToJ As Single,Se As Long)Dim I As Single,x As Single,y As Single,x0As Single,y0As Single Dim a As Single,b As Single,x1As Single,y1As SingleIf Picture1.ScaleWidth<Picture1.ScaleHeight Thena=Picture1.ScaleWidth*0.45Elsea=Picture1.ScaleHeight*0.45End Ifb=a*0.25x0=Picture1.ScaleWidth*0.5:y0=Picture1.ScaleHeight*0.5x=-a:y=0:Zhuan ToJ,x,yx1=a:y1=0:Zhuan ToJ,x1,y1Picture1.Line(x0+x,y0+y)-(x0+x1,y0+y1),Sex=0:y=-b:Zhuan ToJ,x,yx1=0:y1=b:Zhuan ToJ,x1,y1Picture1.Line(x0+x,y0+y)-(x0+x1,y0+y1),SeFor I=0To ctP*2Step0.1x=a*Sin(I):y=b*Cos(I)Zhuan ToJ,x,yPicture1.Line-(x0+x,y0+y),SeNextx=a*Sin(I):y=b*Cos(I)Zhuan ToJ,x,yPicture1.Line-(x0+x,y0+y),SeEnd SubPrivate Sub Zhuan(ToJ As Single,x As Single,y As Single) Dim S As Single,J As SingleS=Sqr(x^2+y^2)If S=0Then J=0Else J=y/SIf Abs(J)>=1ThenIf J>0Then J=ctP*0.5Else J=-ctP*0.5ElseJ=Atn(J/Sqr(-J*J+1))End IfIf x<0Then J=-ctP-Jx=S*Cos(J+ToJ):y=S*Sin(J+ToJ)End Sub Private Sub Command1_Click()EndEnd Sub五、运行结果六.心得体会通过本次课程设计,使我对VB的认识更加深入了一层,VB主要由两部分组成,一个是Visual 可视化界面设计,另一个是Basic程序设计。