11级-计算机科学与技术VB-实验指导书_第1页
11级-计算机科学与技术VB-实验指导书_第2页
11级-计算机科学与技术VB-实验指导书_第3页
11级-计算机科学与技术VB-实验指导书_第4页
11级-计算机科学与技术VB-实验指导书_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

可视化程序设计课程实验指导书撰写人:***日期:2014年3月12日实验一一个简单VB应用程序的创建和命令按钮、标签及文本框的应用日期:2月23日实验目的与要求:1.掌握VB应用程序的创建步骤;2.了解VB应用程序的组成;3.掌握命令按钮、标签和文本框三个基本控件的属性、事件和方法的使用。实验内容:设计一程序,当程序运行后,在窗体中显示"你好!请输入姓名",焦点定在其下的文本框中,如图1-1所示界面。图1-1当用户输入姓名并单击"确定"按钮后,在窗体的正中间用黑体、三号、红色显示"XXX同学,你好!祝你学好VB程序设计",同时窗体上出现两个命令按钮"继续"和"结束",其中"XXX"是用户输入的姓名。例如:当用户输入"王五",单击"确定"按钮后,出现另如图1-2所示界面,如果单击"继续"按钮,则又回到初始运行状态;单击"结束"按钮即结束程序运行.图1-2实验器材:微机+windows操作系统+VB6.0实验步骤:(1)设计应用程序的界面:在窗体上创建三个命令按钮Command1、Command2和Command3、两个标签Label1和Label2、一个文本框Text1。(2)设置对象的属性对象名称属性名称属性值Form1Caption实验1-1Command1Caption确定

Command2Caption继续Command3Caption结束Label1Caption你好!请输入你的姓名Label2Caption空串Text1Text空串(3)编写事件代码:PrivateSubForm_Load()Command2.Visible=FalseCommand3.Visible=FalseLabel2.Visible=FalseEndSubPrivateSubCommand1_Click()Command1.Visible=FalseText1.Visible=FalseLabel1.Visible=FalseLabel2.Visible=TrueLabel2.AutoSize=TrueLabel2.FontName="黑体"Label2.ForeColor=vbRedLabel2.Caption=Text1.Text&"同学,你好!祝你学好VB程序设计"Command2.Visible=TrueCommand3.Visible=TrueEndSubPrivateSubCommand2_Click()Command2.Visible=FalseCommand3.Visible=FalseLabel1.Visible=TrueLabel2.Visible=FalseCommand1.Visible=TrueText1.Visible=TrueEndSubPrivateSubCommand3_Click()EndEndSub(4)程序的运行及保存。实验结果:在文本框中输入:王五单击“确定”按钮后,则显示如下:实验小结:(要能回答如下问题)创建VB应用程序的步骤是什么?窗体常用属性、事件和方法有哪些?命令按钮、标签和文本框控件的常用属性、事件和方法有哪些?实验二VB顺序结构程序设计应用日期:2月23日一、实验目的与要求:1. 了解VB顺序结构程序设计的特点;2. 掌握常用VB运算符及表达式和相关内部函数的使用。实验内容:1、编写程序,界面如图2-1所示。使得单击一次按钮可以产生一个[60,90]之间的随机数并显示在标签Label1上,再求出该数的正弦值,将结果写在标签Label2上。2、编写一个华氏温度F与摄氏温度C之间转换的应用程序,界面如图2-2所示。其中F与C之间的关系为:。实验器材:微机+windows操作系统+VB6.0实验步骤:实验1:(1)设计应用程序的界面:在窗体上创建一个命令按钮Command1、两个标签Label1和Label2。(2)设置对象的属性对象名称属性名称属性值Form1Caption随机数的正弦值Command1Caption下一个随机数Label1Caption

Label2Caption

(3)编写事件代码:PrivateSubCommand1_Click()

Dimx!,y!

Randomize

x=Rnd*31+60

y=Sin(x)

Label1.Caption="随机数(60-90):"&Str(x)

Label2.Caption="正弦值

:"&Str(y)EndSub(4)程序的运行及保存。实验2:(1)设计应用程序的界面:在窗体上创建两个命令按钮Command1和Command2、两个标签Label1和Label2、两个文本框Text1和Text2。(2)设置对象的属性对象名称属性名称属性值Form1Caption温度转换Command1Caption>

Command2Caption<

Label1Caption华氏温度Label2Caption摄氏温度Text1Text

空串Text2Text

空串(3)编写事件代码:PrivateSubCommand1_Click()

Dimf!,c!

f=Val(Text1.Text)

c=(f-32)*5/9

Text2.Text=Str(c)EndSub

PrivateSubCommand2_Click()

Dimf!,c!

c=Val(Text2.Text)

f=9/5*c+32

Text1.Text=Str(f)EndSub(4)程序的运行及保存。实验结果:已经显示在窗体上。实验小结:(要能回答如下问题)怎样产生一个[60,90]之间的随机数?怎样求正弦值?怎样防止两次运行程序的随机数序列相同?实验三VB选择结构程序设计应用日期:2月23日实验目的与要求:1.了解VB选择结构程序设计的特点;2.掌握If语句的格式及其使用;3.掌握SelectCase语句的格式及其使用。实验内容:1、设计一个求解一元二次方程ax2+bx+c=0的根的程序,要求考虑实根、虚根情况。界面如下所示:2、设计"健康称"程序,具体要求如下:(1)将两个文本框的文字对齐方式均设置为右对齐,最多接收3个字符;(2)两个文本框均不接收非数字字符;(3)单击"健康状况"按钮后,根据计算公式将相应提示信息通过标签显示。计算公式为:标准体重=身高-105体重高于体重的1.1倍为偏胖,提示"偏胖,注意饮食";体重低于标准体重的90%为偏瘦,提示"偏瘦,增加营养";其他为正常,提示"正常,继续保持".实验器材:微机+windows操作系统+VB6.0实验步骤:实验1:(1)设计应用程序的界面:在窗体上创建一个命令按钮Command1、五个标签Label1、Label2、Label3、Label4和Label5、五个文本框Text1、Text2、Text3、Text4和Text5.(2)设置对象的属性对象名称属性名称属性值Form1Caption一元二次方程Command1Caption求解Label1Caption

x2+Label2Caption

x+Label3Caption=0Label4Captionx1Label5Captionx2Text1Text空串Text2Text空串Text3Text空串Text4Text空串Text5Text空串(3)编写事件代码:PrivateSubCommand1_Click()Dima!,b!,c!,x1!,x2!,disc!a=Val(Trim(Text1.Text))b=Val(Trim(Text2.Text))c=Val(Trim(Text3.Text))disc=b*b-4*a*cIfdisc>=0Then'实根情况x1=(-b+Sqr(disc))/(2*a)x2=(-b-Sqr(disc))/(2*a)Text4.Text=Str$(x1)Text5.Text=Str$(x2)Else'虚根情况x1=-b/(2*a)x2=Sqr(Abs(disc))/(2*a)Text4.Text=Str$(x1)&"+"&Str$(x2)&"i"Text5.Text=Str$(x1)&"-"&Str$(x2)&"i"EndIfEndSub(4)程序的运行及保存。实验2:(1)设计应用程序的界面:在窗体上创建一个命令按钮Command1、五个标签Label1、Label2、Label3、Label4和Label5、两个文本框Text1和Text2。(2)设置对象的属性对象名称属性名称属性值Form1Caption健康称Form1BorderStyle3-FixedDialogCommand1Caption健康状况Label1Caption身高:Label2Caption体重:Label3CaptioncmLabel4CaptionkgLabel5Caption空串Text1Text空串Text2Text空串(3)编写事件代码:PrivateSubCommand1_Click()DimbzhAsSinglebzh=Val(Text1.Text)-105IfVal(Text2.Text)>bzh*1.1ThenLabel5.Caption="偏胖,注意饮食"ElseIfVal(Text2.Text)<bzh*0.9ThenLabel5.Caption="偏瘦,增加营养"ElseLabel5.Caption="正常,继续保持"EndIfEndSub(4)程序的运行及保存。实验结果:已经显示在窗体上。实验小结:(要能回答如下问题)If语句的格式是什么?SelectCase语句的格式是什么?将实验2改写成SelectCase语句的格式。怎样设置窗体的标题栏上不显示最小化和最大化按钮?实验四VB循环结构程序设计应用日期:2月23日实验目的与要求:1.了解VB循环结构程序设计的特点;2.掌握For…Next语句、Do…Loop语句和While…Wend语句的格式及其使用;3.学会使用InputBox函数和MsgBox函数进行输入和输出。实验内容:编程实现:在窗体上,打印由数字组成的如下图所示的金子塔图案。实验器材:微机+windows操作系统+VB6.0实验步骤:(1)设计应用程序的界面:在窗体上创建一个命令按钮Command1、一个标签Label1、一个文本框Text1.(2)设置对象的属性对象名称属性名称属性值Form1Caption金字塔图案Command1Caption确定Label1Caption输入一个整数n(n大于0、小于10)Text1Text空串(3)编写事件代码:PrivateSubCommand1_Click()Dimi%,j%,n%Form1.Clsn=Val(Text1.Text)Ifn<=0Orn>=10ThenMsgBox"输入错误,请重新输入",vbInformation,"提示信息"Text1=""Text1.SetFocusExitSubEndIfFori=1Ton'外循环控制打印行数Ifi<=n/2ThenPrintTab(10-i);'每行起始打印位置Forj=1To2*i-1'内循环控制打印个数PrintTrim(Str(i));'打印内容NextjPrintElsek=n-i+1PrintTab(10-k);Forj=1To2*k-1PrintTrim(Str(i));NextjPrintEndIfNextiEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Then'按回车键调用"判断"命令按钮CallCommand1_ClickExitSubEndIfSelectCaseChr(KeyAscii)Case"0"To"9",",",Chr(8)CaseElseKeyAscii=0EndSelectEndSub(4)程序的运行及保存。实验结果:已经显示在窗体上。实验小结:(要能回答如下问题)怎样在窗体上打印或输出表达式的结果?怎样改写代码用InputBox函数和MsgBox函数进行输入和输出?怎样禁止在文本框中只能输入0到9之间的数字字符?实验五VB一维数组和二维数组的应用日期:2月23日实验目的与要求:1.掌握一维数组和二维数组的定义格式和引用;2.掌握一维数组和二维数组的基本操作(输入、输出、求最大值、排序等);3.学会使用一维数组或二维数组解决相关问题。实验内容:编写一个双色球摇号程序要求:(1)随机生成6个1到33之间的正整数和一个1到16之间的正整数(2)6个红色球不能相同,且从小到大排好序.实验器材:微机+windows操作系统+VB6.0实验步骤:(1)设计应用程序的界面:在窗体上创建一个命令按钮Command1、两个标签Label1和Label2、七个文本框Text1、Text2、Text3、Text4、Text5、Text6和Text7.(2)设置对象的属性对象名称属性名称属性值Form1Caption双色球摇号程序Command1Caption摇号Label1Caption红色球:(1-33)Label1ForeColorvbredLabel2Caption蓝色球:(1-16)Label2ForeColorvbblueText1Text空串Text2Text空串Text3Text空串Text4Text空串Text5Text空串Text6Text空串Text7Text空串(3)编写事件代码:PrivateSubCommand1_Click()Dima(5)AsInteger,xAsIntegerDimiAsInteger,jAsIntegerRandomize'生成6个不同的1到33之间的随机整数存放于a数组中a(0)=Int(Rnd*33)+1Fori=1To5L1:x=Int(Rnd*33)+1Forj=0Toi-1Ifx=a(j)ThenGoToL1ExitForEndIfNextja(i)=xNextiFori=0To4'对a数组中6个元素进行从小到大排序Forj=i+1To5Ifa(i)>a(j)Thent=a(i)a(i)=a(j)a(j)=tEndIfNextjNextiText1.Text=a(0)Text2.Text=a(1)Text3.Text=a(2)Text4.Text=a(3)Text5.Text=a(4)Text6.Text=a(5)Text7.Text=Int(Rnd*16)+1'生成一个1到16之间的随机整数EndSub(4)程序的运行及保存。实验结果:已经显示在窗体上。实验小结:(要能回答如下问题)1.怎样随机产生6个完全不相同的1到33之间的正整数?2.怎样对数组中的6个数进行从小到大排序?(选择排序或冒泡排序)3.怎样使用控件数组?将上述实验改写成用控件数组来实现。实验六VB动态数组的应用日期:2月23日实验目的与要求:1.掌握动态数组的定义格式和引用;2.掌握与数组操作相关的几个函数的应用;3.学会使用动态数组设计相关应用程序。实验内容:输入一系列英文单词,按升序排列输出。要求:(1)在文本框text1中每输入一个英文单词,按回车键后即把该单词存放到数组中,并输出在排序前的文本框text2中;(2)单击“排序”命令按钮,字符数组升序排序,并在排序后的文本框text3中输出。(3)程序运行后窗体界面如下所示:实验器材:微机+windows操作系统+VB6.0实验步骤:(1)设计应用程序的界面:在窗体上创建一个命令按钮Command1、三个标签Label1、Label2和Label3、三个文本框Text1、Text2和Text3。(2)设置对象的属性对象名称属性名称属性值Form1Caption单词排序Command1Caption排序Label1Caption输入单词:Label2Caption排序前:Label3Caption排序后:Text1Text空串Text2Text空串Text2MultiLineTrueText2ScrollBars2-VerticalText3Text空串Text3MultiLineTrueText3ScrollBars2-Vertical(3)编写事件代码:Dima()AsString,n%PrivateSubCommand1_Click()Fori=1Ton-1Forj=i+1TonIfa(i)>a(j)Thent=a(i)a(i)=a(j)a(j)=tEndIfNextjNextiFori=1TonText3.Text=Text3.Text&a(i)&vbCrLfNextiEndSubPrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13Thenn=n+1ReDimPreservea(n)'动态存储数组a增加1个元素,前n-1个元素值保持不变。a(n)=Text1.TextText2.Text=Text2.Text+Text1.Text&vbCrLfText1.Text=""EndIfEndSub(4)程序的运行及保存。实验结果:已经显示在窗体上。实验小结:(要能回答如下问题)1.怎样定义动态数组?2.定义动态数组时,Preserve的作用是什么?3.怎样对各个字符串进行排序?实验七VB过程与函数的应用举例日期:2月23日实验目的与要求:1.掌握Sub过程和函数过程的定义格式及调用;了解过程之间的参数传递(传址和传值);3.掌握过程与变量的作用域。实验内容:自定义一Sub过程:实现把一个给定数插入到有序数列中,插入后数列仍然有序。编程:针对窗体的单击事件中编写程序代码,验证上述过程的正确性。实验器材:微机+windows操作系统+VB6.0实验步骤:(1)设计应用程序的界面:新建一新工程即可,无需添加任何控件。(2)编程分析:设n个有序数(从小到大)存放在数组a(1)-a(n)中,要插入的数为x。首先,确定x插在数组中的位置p,假设要在一个具有n个升序排列元素的一维数组中插入一个新的元素k,算法如下:①从第1个元素开始逐个与k比较,一旦发现第p个元素大于x,则确定插入的位置为p,如果所有元素均小于x,则确定插入的位置为n+1。②重新定义数组大小,从第n个元素到第p个元素逐一向后移动一个位置。③将x赋值给第p个元素,完成插入操作。(3)编写自定义过程和窗体的单击事件代码:(4)程序的运行及保存。OptionBase1PrivateSubInstert(a(),xAsSingle)Dimp%,n%,i%n=UBound(a)ReDimPreservea(n+1)'让数组长度增加1,以便存放插入的数p=1DoWhilex>a(p)Andp<=n'确定x应插入的位置p=p+1LoopFori=nTopStep-1a(i+1)=a(i)Nextia(p)=xEndSubPrivateSubForm_Click()DimiAsInteger,x()DimyAsSingle,kAsIntegerx=Array(1,4,8,10,20,30,40,46,50,55,60,64)Fori=LBound(x)ToUBound(x)'打印输出插入前的数据Printx(i);NextiPrinty=Val(InputBox("输入要插入的数"))CallInstert(x,y)'调用插入子过程实现插入操作Fori=LBound(x)ToUBound(x)'打印输出插入后的数据Printx(i);NextiEndSub实验结果:原序列为:1,4,8,10,20,30,40,46,50,55,60,64插入为:7则输出为:1,4,7,8,10,20,30,40,46,50,55,60,64实验小结:(要能回答如下问题)1.若n个有序数(从大到小)存放在数组中,如何改写Insert()过程?2.如何改写Insert()过程,使其既适合数组由小到大排序又适合由大到小排序的情况?3.如果调用时,数组x无序,则程序运行后出现什么情况?实验八VB常用控件的应用(一)日期:2月23日实验目的与要求:1.掌握单选按钮、复选框、框架及组合框、列表框等控件的属性、事件和方法的使用;2.学会使用各种常用控件设计相关VB实用应用程序。实验内容:设计一个个人资料输入窗口,使用单选按钮选择“性别”,组合框选择“民族”和“职业”,检查框选择“爱好”,当单击“确定”按钮,列表框列出个人资料信息,程序运行界面如下:实验器材:微机+windows操作系统+VB6.0实验步骤:(1)设计应用程序的界面:在窗体上创建三个命令按钮Command1、Command2和Command3、五个标签Label1、Label2、Label3、Label4和Label5、两个文本框Text1和Text2、两个组合框Combo1和Combo2、一个列表框List1、两个单选按钮Option1和Option2、两个框架Frame1和Frame2、四个检查框Check1、Check2、Check3和Check4。(2)设置对象的属性对象名称属性名称属性值Form1Caption个人资料Command1Caption确定Command2Caption重选Command2Caption上交Label1Caption姓名:Label2Caption民族:Label3Caption个人资料:Label4Caption年龄:Label5Caption职业:Text1Text空串Text2Text空串Combo1Text汉族Combo2Text学生List1List空串Option1Caption男Option2Caption女Frame1Caption性别Frame2Caption爱好Check1Caption上网Check2Caption篮球Check3Caption音乐Check4Caption交友(3)编写事件代码:PrivateSubCommand1_Click()List1.AddItemText1IfOption1ThenList1.AddItem"男"ElseList1.AddItem"女"EndIfList1.AddItemText2List1.AddItemCombo1List1.AddItemCombo2List1.AddItem"爱好:"IfCheck1ThenList1.AddItem"上网"EndIfIfCheck2ThenList1.AddItem"篮球"EndIfIfCheck3ThenList1.AddItem"音乐"EndIfIfCheck4ThenList1.AddItem"交友"EndIfEndSubPrivateSubCommand2_Click()List1.ClearEndSubPrivateSubCommand3_Click()EndEndSub(4)程序的运行及保存。实验结果:已经显示在窗体上。实验小结:(要能回答如下问题)1.单选按钮和检查框控件常用属性和事件有哪些?2.组合框和列表框控件的常用属性和事件、方法有哪些?它们有什么不同?3.框架控件的作用是什么?实验九VB常用控件的应用(二)日期:2月23日实验目的与要求:1.掌握滚动条、时钟控件的属性、事件和方法的使用;2.学会使用键盘和鼠标事件的使用;3.学会使用各种控件设计相关VB实用应用程序。实验内容:设计一个字号设置程序,要求如下:在文本框中输入1-100范围内的数值后,滚动条的滚动框会滚动到相应位置,同时标签的字号也会相应改变;当滚动条的滚动框的位置改变后,文本框中也会显示出相应的数值,标签的字号也会相应改变。设计一个倒计时程序,要求如下:程序运行后,通过单选按钮选择计时时间,单击“计时开始”按钮进行倒计时;在标签中显示计时情况,计时结束后在标签中显示“时间到”;单选按钮和“计时开始”按钮在计时开始后被禁用,直到计时结束后才可以使用。实验器材:微机+windows操作系统+VB6.0实验步骤:实验1:(1)设计应用程序的界面:在窗体上创建一个框架Frame1、一个标签Label1、一个水平滚动条hsbFontSize、一个文本框Text1.(2)设置对象的属性对象名称属性名称属性值Form1Caption字号设置Label1Caption学Frame1Caption示例文字hsbFontSizeNameText1Text空串(3)编写事件代码:PrivateSubForm_Load()'窗体初始化过程lblDisp.FontSize=10hsbFontSize.Min=1hsbFontSize.Max=100hsbFontSize.SmallChange=1hsbFontSize.LargeChange=5hsbFontSize.Value=10txtFontSize.Text="10"EndSubPrivateSubhsbFontSize_Change()'滚动条的Change事件过程lblDisp.FontSize=hsbFontSize.ValuetxtFontSize.Text=Str(hsbFontSize.Value)EndSubPrivateSubtxtFontSize_Change()'文本框的Change事件过程'判断数据有效性IfIsNumeric(txtFontSize.Text)AndVal(txtFontSize.Text)>=hsbFontSize.MinAndVal(txtFontSize.Text)<=hsbFontSize.MaxThen'lblDisp.FontSize=hsbFontSize.ValuehsbFontSize.Value=Val(txtFontSize.Text)ElsetxtFontSize.Text="无效数据"EndIfEndSub(4)程序的运行及保存。实验2:(1)设计应用程序的界面:在窗体上创建一个框架Frame1、三个单选按钮Option1、Option2、Option3、一个标签Label1、一个命令按钮Command1、一个时钟控件Timer1.(2)设置对象的属性对象名称属性名称属性值Form1Caption倒计时Label1Caption1分0秒Label1BorderStyle1Label1Alignment2Frame1Caption选择时间Option1Caption1分钟Option2Caption5分钟Option3Caption10分钟Timer1Interval1000Timer1EnabledFalse(3)编写事件代码:DimpretimeAsIntegerDimmmAsInteger,ssAsIntegerPrivateSubCommand1_Click()'开始倒计时Command1.Enabled=FalseFrame1.Enabled=FalseTimer1.Enabled=TrueEndSubPrivateSubForm_Load()Timer1.Enabled=FalseOption1(1).Value=Truepretime=300EndSubPrivateSubOption1_Click(IndexAsInteger)SelectCaseIndexCase0pretime=60Case1pretime=300Case2pretime=600EndSelectmm=pretime\60ss=pretimeMod60Label1.Caption=Str(mm)&"分"&Str(ss)&"秒"EndSubPrivateSubTimer1_Timer()mm=pretime\60'计算分ss=pretimeMod60'计算秒Label1.Caption=Str(mm)&"分"&Str(ss)&"秒"Ifmm=0Andss=0ThenTimer1.Enabled=FalseEndIfpretime=pretime-1EndSub(4)程序的运行及保存。实验结果:实验1运行结果为:实验2运行结果为:实验小结:(要能回答如下问题)1.针对实验1,程序运行时,哪些操作能触发滚动条的Change事件?2.针对实验1,如何使程序最终通过文本框的Change事件过程来改变标签字号?3.针对实验2,同样是有规律地重复执行特定的操作,循环结构与Timer事件过程有什么区别?4.针对实验2,为什么要将pretime、mm、ss定义为窗体级变量?实验十VB绘图实例应用日期:2月23日实验目的与要求:1.掌握三个重要的图形控件的使用;2.掌握VB绘图的常用方法;3.学会使用VB绘图的方法绘制简单的图形。实验内容:设置一个模拟行星围绕太阳运动的程序。编程分析:行星运动的椭圆方程为:x=x0+rx*cos(alfa),y=y0+ry*sin(alfa).其中,x0,y0为椭圆圆心坐标,rx为水平半径,ry为垂直半径,alfa为圆心角。实验器材:微机+windows操作系统+VB6.0实验步骤:(1)设计应用程序的界面:在窗体上创建两个形状控件Shape1和Shape2、一个时钟控件Timer1.(2)设置对象的属性对象名称属性名称属性值Form1Caption行星运行模拟Shape1Shape3Shape2Shape3Timer1Interval200Timer1EnabledTrue(3)编写事件代码:DimrxAsSingle,ryAsSingle'定义窗体级变量DimalfaAsSinglePrivateSubForm_Load()'窗体最大化充满屏幕,窗体的宽度、高度与屏幕同宽、同高Form1.Left=0Form1.Top=0Form1.Width=Screen.WidthForm1.Height=Screen.Height'让Shape1位于窗体中央Shape1.Left=Form1.ScaleWidth/2-Shape1.Width/2Shape1.Top=Form1.ScaleHeight/2-Shape1.Height/2rx=Form1.ScaleWidth/2-Shape2.Width/2'计算椭圆轨道的水平半径ry=Form1.ScaleHeight/2-Shape2.Height/2'计算椭圆轨道的垂直半径'画行星的运行轨迹Circle(Form1.ScaleWidth/2,Form1.ScaleHeight/2),rx,,,,ry/rx'将shape2的起始位置定位在水平轴的0度位置上Shape2.Left=Form1.ScaleWidth/2+rx-Shape2.Width/2Shape2.Top=Form1.ScaleHeight/2-Shape2.Height/2EndSubPrivateSubTimer1_Timer()alfa=alfa+0.05x=Form1.ScaleWidth/2+rx*Cos(alfa)'椭圆的x坐标y=Form1.ScaleHeight/2+ry*Sin(alfa)'椭圆的y坐标Shape2.Left=x-Shape2.Width/2Shape2.Top=y-Shape2.Height/2EndSub(4)程序的运行及保存。五、实验结果:程序运行界面如下:六、实验小结:(要能回答如下问题)1.为什么要将rx、ry定义为模块级变量?2.如果在窗体上添加“启动”和“停止”两个命令按钮,来控制小球运动,如何修改程序?3.小球运动轨迹与设计时小球的初始位置是否有关?实验十一一个简易的文本编辑器的开发日期:2月23日实验目的与要求:1.掌握常用对话框控件的使用;2.掌握菜单的设计与应用;3.掌握状态栏的设计与应用;4.学会使用以上技术进行简易的文本编辑器的设计。实验内容:设计一个类似于Windows“写字板”的简易的文本编辑器程序。设计界面如下:实验器材:微机+windows操作系统+VB6.0实验步骤:(1)界面设计(a)多文档窗体主要控件:commonDialog、ImageList。菜单项属性设置:标准工具栏设置:常用工具栏设置:状态栏设置:(b)查找窗体(c)文档子窗体(2)代码清单如下:'多文档窗口程序代码:'建立通用过程,创建并打开一个文档窗口PrivateSubShowDoc(strCapAsString)DimfrmDAsNewFrmDoc'创建一个文档窗口frmdoc的实例frmDfrmD.Caption=strCapfrmD.ShowEndSub'建立通用过程,创建并打开一个新的文档窗口PrivateSubShowNewDoc()DimfrmCapAsStringDocCount=DocCount+1frmCap="文档"&str(DocCount)ShowDocfrmCapIfDocCount=1ThenMDIForm1.fmnuenableTrue'窗体总数为无时,调用MDIForm1中的fmnuenable过程EndSubPrivateSubMDIForm_Activate()DimYnAsBooleanYn=FalseIfClipboard.GetFormat(vbCFText)ThenYn=TrueIfClipboard.GetFormat(vbCFBitmap)ThenYn=TrueIfClipboard.GetFormat(vbCFDIB)ThenYn=TrueIfClipboard.GetFormat(vbCFRTF)ThenYn=TrueMDIForm1.Toolbar1.Buttons(6).Enabled=YnEndSubPrivateSubMnufont_Click()'实现设置字体功能CDg1.CancelError=True'通用对话框取消时出错OnErrorGoToErr'错误处理当有错时程序能继续运行下去DimiAsByteWithMDIForm1.ActiveForm'把当前选定的文本格式赋给字体对话框CDg1.Flags=cdlCFBothOrcdlCFEffectsIf.DocBox.SelBold<>NullThenCDg1.FontBold=.DocBox.SelBoldIf.DocBox.SelItalic<>NullThenCDg1.FontItalic=.DocBox.SelItalicIf.DocBox.SelStrikeThru<>NullThenCDg1.FontStrikethru=.DocBox.SelStrikeThruIf.DocBox.SelUnderline<>NullThenCDg1.FontUnderline=.DocBox.SelUnderlineIf.DocBox.SelFontSize<>NullThenCDg1.FontSize=.DocBox.SelFontSizeIf.DocBox.SelFontName<>NullThenCDg1.FontName=.DocBox.SelFontNameIf.DocBox.SelColor<>NullThenCDg1.color=.DocBox.SelColorCDg1.ShowFont'打开字体对话框'把格式字体对话框里的字体格式赋给当前选定的文本.DocBox.SelBold=CDg1.FontBold.DocBox.SelItalic=CDg1.FontItalic.DocBox.SelStrikeThru=CDg1.FontStrikethru.DocBox.SelUnderline=CDg1.FontUnderline.DocBox.SelFontName=CDg1.FontName.DocBox.SelFontSize=CDg1.FontSize.DocBox.SelColor=CDg1.colorEndWithErr:EndSubPrivateSubCombo1_Click()'实现字体设置功能'把组合框选中的字体赋给选定的文本MDIForm1.ActiveForm.DocBox.SelFontName=Combo1.TextEndSubPrivateSubCombo1_KeyPress(KeyAsciiAsInteger)'实现字体设置功能OnErrorGoToErr'当字体不存在时,转到Err语名IfKeyAscii=13ThenMDIForm1.ActiveForm.DocBox.SelFontName=Combo1.TextExitSubErr:MsgBox"对不起,此字号不存在",vbOKOnly,"非法操作!"Combo1.Text=""EndSubPrivateSubCombo2_Click()'实现字号设置功能'把组合框选中的字体大小赋给选定的文本MDIForm1.ActiveForm.DocBox.SelFontSize=Combo2.TextEndSubPrivateSubCombo2_KeyPress(KeyAsciiAsInteger)OnErrorGoToErr'当字号不存在时,转到Err语名IfKeyAscii=13ThenMDIForm1.ActiveForm.DocBox.SelFontSize=Combo2.TextExitSubErr:MsgBox"对不起,此字号不存在",vbOKOnly,"非法操作!"Combo2.Text=""EndSubPrivateSubMnucolor_Click()'设置颜色DimcolorAsLongCDg1.CancelError=True'通用对话框取消时出错OnErrorGoToErr'出错时跳转到Err语句CDg1.ShowColor'打开颜色对话框color=CDg1.colorMDIForm1.ActiveForm.DocBox.SelColor=colorErr:EndSubPrivateSubMDIForm_Load()DimiAsInteger'将字体名赋值给“字体”列表框Fori=0ToScreen.FontCount-1Combo1.AddItemScreen.Fonts(i),iNextiDocCount=0ShowNewDocMDIForm1.Toolbar1.Buttons(4).Enabled=FalseMDIForm1.Toolbar1.Buttons(5).Enabled=FalseMDIForm1.Toolbar1.Buttons(6).Enabled=FalseEndSubPrivateSubMDIForm_Unload(CancelAsInteger)UnloadMeEndEndSubPrivateSubmnunew_Click()'新建一个文档窗口ShowNewDocEndSubPrivateSubmnuopen_Click()'打开文件DimFNameAsStringCDg1.FileName="*.RTF"CDg1.Filter="RTF文件(*.RTF)|*.RTF|文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"CDg1.CancelError=True'通用对话框取消时出错OnErrorGoToErr'出错时跳转到Err语句CDg1.ShowOpen'打开撕开对话框FName=CDg1.FileNameShowNewDoc'新建一个窗体MDIForm1.ActiveForm.DocBox.LoadFile(FName)'打开文件到活动窗体的文本框里MDIForm1.ActiveForm.Caption=FNameMDIForm1.ActiveForm.Boolmnusave=TrueMDIForm1.ActiveForm.Boolsave=TrueExitSubErr:ExitSubEndSub(4)程序的运行及保存。实验结果:程序运行界面如下:实验十二一个简易的学生成绩管理系统的创建日期:2月23日实验目的与要求:1.掌握Data控件和ADOData控件的基本用法;了解在VisualBasic中使用SQL的基本方式;3.综合运用以前所学知识设计一个简易的学生成绩管理系统。二、实验内容:设计一个简易的学生成绩管理系统。设计界面如下:实验器材:微机+windows操作系统+VB6.0实验步骤:1、数据库应用系统的开发应该遵循软件工程的开发步骤:分析、设计编码和测试。开发的第一步是需求分析,一方面分析整个系统需要哪些数据,另一方面还要分析系统应用具备哪些功能,这一步直接决定将来设计出的数据库以及在此基础上开发的应用程序的适用性。它需要获得学号、姓名、性别和相关课程的成绩等数据,应具备浏览、输入、修改、删除、查询、统计等功能。2、数据库如下:学生(学号、姓名、新别)课程(课程号、课程名、学时、学分)成绩(学号、课程号、成绩)3、设计实现如下:(1)主窗体代码:'成功登录系统前禁用编辑命令和查询命令PrivateSubMDIForm_Load()mnuEdit.Enabled=FalsemnuQuery.Enabled=FalseEndSub'打开编辑窗体PrivateSubmnuEdit_Click()frmEdit.ShowfrmEdit.WindowState=vbMaximizedEndSub'打开登录窗体PrivateSubmnuLogin_Click()frmLogin.ShowfrmLogin.WindowState=vbMaximizedEndSub'退出系统PrivateSubmnuLogout_Click()EndEndSub'打开查询窗体PrivateSubmnuQuery_Click()frmQuery.ShowfrmQuery.WindowState=vbMaximizedEndSub

(2)登录窗体代码:OptionExplicitConstUSERNAMEAsString="admin"'定义窗体级常量表示用户名ConstPASSWORDAsString="welcome"'定义窗体级常量表示密码PrivateSubcmdCancel_Click()Me.HideEndSubPrivateSubcmdOK_Click()'检查正确的用户名和密码IftxtUserName=USERNAMEAndtxtPassword=PASSWORDThenMe.HideMDIfrmMain.mnuEdit.Enabled=TrueMDIfrmMain.mnuQuery.Enabled=TrueElseMsgBox"无效的密码,请重试!",,"登录"txtPassword.SetFocusSendKeys"{Home}+{End}"EndIfEndSub(3)编辑窗体代码:'"添加"按钮的单击事件过程PrivateSubcmdAdd_Click()'根据当前按钮的标题进行不同的操作SelectCasecmdAdd.CaptionCase"添加"'向当前选项卡所对应表中添加记录SelectCaseSSTab1.TabCase0datStudent.Recordset.AddNewCase1datCourse.Recordset.AddNewCase2datScore.Recordset.AddNewEndSelect'在添加操作完成前禁止进行其他操作SSTab1.TabEnabled(0)=FalseSSTab1.TabEnabled(1)=FalseSSTab1.TabEnabled(2)=FalsecmdAdd.Caption="确定"cmdEdit.Enabled=FalsecmdDel.Enabled=FalsecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalseCase"确定"SelectCaseSSTab1.TabCase0datStudent.UpdateRecordCase1datCourse.UpdateRecordCase2datScore.UpdateRecordEndSelectSSTab1.TabEnabled(0)=TrueSSTab1.TabEnabled(1)=TrueSSTab1.TabEnabled(2)=TruecmdAdd.Caption="添加"cmdEdit.Enabled=TruecmdDel.Enabled=TruecmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=TruecmdLast.Enabled=TrueEndSelectEndSub'"删除"按钮的单击事件过程PrivateSubcmdDel_Click()DimiAsIntegeri=MsgBox("确定要删除此记录?",vbYesNo+vbExclamation+vbDefaultButton1,"编辑")Ifi=vbYesThen'删除当前选项卡所对应表中的记录SelectCaseSSTab1.TabCase0datStudent.Recordset.DeletedatStudent.RefreshCase1datCourse.Recordset.DeletedatCourse.RefreshCase2datScore.Recordset.DeletedatScore.RefreshEndSelectEndIfEndSub'"修改"按钮的单击事件过程PrivateSubcmdEdit_Click()'根据当前按钮的标题进行不同的操作SelectCasecmdEdit.CaptionCase"修改"'修改当前选项卡所对应表中的记录SelectCaseSSTab1.TabCase0datStudent.Recordset.EditCase1datCourse.Recordset.EditCase2datScore.Recordset.EditEndSelect'在修改操作完成前禁止进行其他操作SSTab1.TabEnabled(0)=FalseSSTab1.TabEnabled(1)=FalseSSTab1.TabEnabled(2)=FalsecmdEdit.Caption="确定"cmdAdd.Enabled=FalsecmdDel.Enabled=FalsecmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=FalsecmdLast.Enabled=FalseCase"确定"SelectCaseSSTab1.TabCase0datStudent.UpdateRecordCase1datCourse.UpdateRecordCase2datScore.UpdateRecordEndSelectSSTab1.TabEnabled(0)=TrueSSTab1.TabEnabled(1)=TrueSSTab1.TabEnabled(2)=TruecmdEdit.Caption="修改"cmdAdd.Enabled=TruecmdDel.Enabled=TruecmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=TruecmdLast.Enabled=TrueEndSelectEndSub'"首记录"按钮的单击事件过程PrivateSubcmdFirst_Click()SelectCaseSSTab1.TabCase0datStudent.Recordset.MoveFirstCase1datCourse.Recordset.MoveFirstCase2datScore.Recordset.MoveFirstEndSelectcmdFirst.Enabled=FalsecmdPrev.Enabled=FalsecmdNext.Enabled=TruecmdLast.Enabled=TrueEndSub'"尾记录"按钮的单击事件过程PrivateSubcmdLast_Click()SelectCaseSSTab1.TabCase0datStudent.Recordset.MoveLastCase1datCourse.Recordset.MoveLastCase2datScore.Recordset.MoveLastEndSelectcmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndSub'"下一条"按钮的单击事件过程PrivateSubcmdNext_Click()SelectCaseSSTab1.TabCase0datStudent.Recordset.MoveNextIfdatStudent.Recordset.EOFThendatStudent.Recordset.MoveLastcmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndIfCase1datCourse.Recordset.MoveNextIfdatCourse.Recordset.EOFThendatCourse.Recordset.MoveLastcmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=FalsecmdLast.Enabled=FalseEndIfCase2datScore.Recordset.MoveNextIfdatScore.Recordset.EOFThendatScore.Recordset.MoveLastcmdFirst.Enabled=TruecmdPrev.Enabled=TruecmdNext.Enabled=False

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论