vb综合上机实验报告.docx

上传人:b****7 文档编号:8691895 上传时间:2023-02-01 格式:DOCX 页数:18 大小:333.44KB
下载 相关 举报
vb综合上机实验报告.docx_第1页
第1页 / 共18页
vb综合上机实验报告.docx_第2页
第2页 / 共18页
vb综合上机实验报告.docx_第3页
第3页 / 共18页
vb综合上机实验报告.docx_第4页
第4页 / 共18页
vb综合上机实验报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

vb综合上机实验报告.docx

《vb综合上机实验报告.docx》由会员分享,可在线阅读,更多相关《vb综合上机实验报告.docx(18页珍藏版)》请在冰豆网上搜索。

vb综合上机实验报告.docx

vb综合上机实验报告

实验报告

实验课程名称

实验项目名称

年级

班级

学生姓名

学号

学院:

实验时间:

年月日

◆实验相关信息

实习主题

VB综合教程

实验时间

学年学期周

学生姓名

学号

班级

实验地点

设备号

 

指导教师

 

◆界面及源代码

主界面

PrivateSubForm_Load()

EndSub

PrivateSubno1_Click()

Form2.Show

EndSub

PrivateSubno2_Click()

Form3.Show

EndSub

PrivateSubno3_Click()

Form4.Show

EndSub

PrivateSubno4_Click()

Form5.Show

EndSub

PrivateSubno5_Click()

Form6.Show

EndSub

PrivateSubno6_Click()

Form7.Show

EndSub

PrivateSubno7_Click()

Form8.Show

EndSub

PrivateSubno8_Click()

Form9.Show

EndSub

PrivateSubno9_click()

Form10.Show

EndSub

PrivateSubno10_Click()

Form11.Show

EndSub

PrivateSubno11_Click()

Form12.Show

EndSub

PrivateSubno12_Click()

Form13.Show

EndSub

PrivateSubno13_Click()

Form14.Show

EndSub

PrivateSubno14_Click()

Form15.Show

EndSub

PrivateSubno15_Click()

Form16.Show

EndSub

一、基础题

1.编程实现在包含10个元素的一维数组中寻找前n(n<=10)个元素中的最大数及位置,在文本框中显示出来。

界面(一,1)

PrivateSubCommand1_Click()

DimNAsInteger,kAsInteger,a(1To10)AsInteger

N=1

k=1

Max=0

IfN>=2Then

N=Val(InputBox("请输入n的值",N))

EndIf

Fori=1To10

a(i)=Int(Rnd*100)

Printa(i);

Ifa(i)>MaxThen

Max=a(i)

k=i

EndIf

Nexti

Label1.Caption="最大值:

"&"第"&k&"个"

EndSub

2.求出10000以内的所有完数,并显示在窗体上。

所谓完数,是指一个数恰好等于它的所有因子之和,例如:

6的所有因子为1,2,3,而6=1+2+3,所以6是完数。

界面(一,2)

PrivateSubCommand1_Click()

Print"10000以内的所有完数:

"

DimbAsDouble

DimiAsDouble,jAsDouble,kAsDouble

Fori=2To10000

k=0

Forj=2ToSqr(i)

IfiModj=0Thenk=k+i/j+j

Nextj

k=k+1

Ifk=iThen

Print

PrintCStr(i)&"=";

fenjie(i)

EndIf

DoEvents

Nexti

EndSub

Functionfenjie(nAsDouble)

DimjAsDouble

Forj=1Ton\2

Ifn/j=n\jThen

PrintCStr(j)&IIf(j=n\2,"","+");

EndIf

Nextj

EndFunction

 

3.随机生成10个20到50范围内的正整数,显示它们的最大值和平均值。

界面(一,3)

PrivateSubForm_Click()

Dima(10)AsInteger

s=0:

ave=0

Fori=1To10

a(i)=Int(Rnd*30+20)

Printa(i)

s=s+a(i)

Nexti

max=a

(1)

Fori=1To10

Ifa(i)>maxThen

max=a(i)

EndIf

Nexti

ave=s/10

Print"最大值:

";max

Print"平均值:

";ave

EndSub

4.设计程序,求出S=(1+1)+(1+2)+(1+2+3)+。

(1+2+3+4。

+N)的值。

界面(一,4)

PrivateSubCommand1_Click()

DimNAsInteger

N=Val(InputBox("请输入N:

"))

DimsAsLong,iAsInteger,StAsLong

s=1

a=0

Fori=1ToN

a=a+i

s=s+a

Next

Prints

EndSub

5. 程序启动运行时,显示画面如图1;单击“开始”按钮Command1之后,在窗体上显示一个矩形,矩形那的填充颜色按每秒1次的速度随机变化,如图2所示;单击窗体,恢复到图1。

界面(一,5)

 

DimiAsInteger

PrivateSubCommand1_Click()

Timer1.Interval=1000

Timer1.Enabled=True

EndSub

PrivateSubForm_Click()

Form1.Cls

Timer1.Enabled=False

EndSub

PrivateSubTimer1_Timer()

i=Int(Rnd*16)

Line(1000,1000)-(2000,1700),QBColor(i),BF

EndSub

6.程序启动运行时,显示画面如图1:

单击“开始”按钮Command1之后,在标签Label1中显示当前时间性,并按每秒1次的速度随机变化文字颜色,如图2所示:

单击窗体,恢复到图1

界面(一,6)

DimiAsInteger

PrivateSubCommand1_Click()

Timer1.Interval=1000

Timer1.Enabled=True

EndSub

PrivateSubTimer1_Timer()

Label1.Caption=Time

i=Int(Rnd*256)

Label1.ForeColor=RGB(i,i,i)

EndSub

PrivateSubForm_Click()

Timer1.Enabled=False

Form1.Cls

EndSub

7.编写下图所示的四则运算程序,输入第一个数和第二个数之后,单击图中任意一个单选按钮,就能按单选按钮的指示完成计算,并在“计算结果”文本框中输出结果(当第二个数为0,并且选择除法运算时,则在“计算结果”文本框中显示“除数为0,计算无效”)。

界面(一,7)

PrivateSubOption1_Click()

Text3.Text=Val(Text1.Text)+Val(Text2.Text)

EndSub

PrivateSubOption2_Click()

Text3.Text=Val(Text1.Text)-Val(Text2.Text)

EndSub

PrivateSubOption3_Click()

Text3.Text=Val(Text1.Text)*Val(Text2.Text)

EndSub

PrivateSubOption4_Click()

IfVal(Text2.Text)<>0Then

Text3.Text=Val(Text1.Text)/Val(Text2.Text)

Else

Text3.Text="除数为零,计算无效"

EndIf

EndSub

8.设计程序界面如图所示,程序运行时,单击“生成矩阵”按钮Command1,在图片框picture1中生成2位正整数的5×7矩阵;随后单击“查找最小值”按钮command2,在图片框picture2中生成矩阵的最小值。

界面(一,8)

DimiAsInteger,jAsInteger

Dima(1To5,1To7)AsInteger

PrivateSubCommand1_Click()

Fori=1To5

Forj=1To7

a(i,j)=Int(Rnd*90+10)

Picture1.Printa(i,j);

Nextj

Picture1.Print

Nexti

EndSub

PrivateSubCommand2_Click()

DimminAsInteger

min=100

Fori=1To5

Forj=1To7

Ifa(i,j)

min=a(i,j)

EndIf

Nextj

Nexti

Picture2.Print"最小值=";min

EndSub

二、简单应用题

1.某应用的运行窗口如下:

                       

当用户单击“开始”按钮后,文本框中就会显示计数值的变化(每隔0.3秒增加1);当单击“暂停”按钮时,文本框中的计数就会停止;当单击“清除”按钮时,文本框中的计数值就会清0。

界面(二,1)

PrivateSubCommand1_Click()

Timer1.Enabled=True

Text1.Text=Text1.Text+1

Timer1.Interval=300

EndSub

PrivateSubCommand2_Click()

Timer1.Enabled=False

EndSub

PrivateSubCommand3_Click()

Timer1.Enabled=False

Text1.Text="0"

i=0

EndSub

PrivateSubTimer1_Timer()

Timer1.Enabled=True

Text1.Text=Text1.Text+1

Text1.Text=Str(Text1.Text)

EndSub

2.在窗体有三个复选框,名称分别为Ch1、Ch2和Ch3,标题依次为"体育"、"音乐"、"美术",还有一个命令按钮,名称为C1,标题为"显示"。

要求程序运行后,如果选中某个复选框,则当单击"显示"命令按钮时,则显示相应的信息。

例如,如果选取中"体育"和"音乐"复选框,则单击"显示"命令按钮后,在窗体上显示"我的爱好是体育音乐";而如果选中"体育"、"音乐"和"美术"复选框,则单击"显示"按钮后,在窗体上显示"我的爱好是体育音乐美术"。

界面(二,2)

PrivateSubc1_click()

Label1.Caption="我的爱好是:

"

Ifch1.Value=1Andch2.Value=0Andch3.Value=0Then

Label1.Caption=Label1.Caption&ch1.Caption

ElseIfch1.Value=1Andch2.Value=1Andch3.Value=0Then

Label1.Caption=Label1.Caption&ch1.Caption&ch2.Caption

ElseIfch1.Value=1Andch2.Value=0Andch3.Value=1Then

Label1.Caption=Label1.Caption&ch1.Caption&ch3.Caption

ElseIfch1.Value=1Andch2.Value=1Andch3.Value=1Then

Label1.Caption=Label1.Caption&ch1.Caption&ch2.Caption&ch3.Caption

ElseIfch1.Value=0Andch2.Value=1Andch3.Value=0Then

Label1.Caption=Label1.Caption&ch2.Caption

ElseIfch1.Value=0Andch2.Value=1Andch3.Value=1Then

Label1.Caption=Label1.Caption&ch2.Caption&ch3.Caption

ElseIfch1.Value=0Andch2.Value=0Andch3.Value=1Then

Label1.Caption=Label1.Caption&ch3.Caption

Else

Label1.Caption=0

EndIf

EndSub

3.在窗体上建立一个名称为Text1的文本框和一个名称为Cmd1,标题为"计算"的命令按钮。

程序运行后,单击"计算"命令按钮,通过在对话框输入整数12,放入整形变量a中,然后计算a!

,(提示:

运算结果应放入double型变量中)

界面(二,3)

PrivateSubcmd1_Click()

DimjcAsDouble

DimiAsInteger

DimjAsInteger

DimnAsInteger

n=InputBox("请输入n=")

jc=1

Fori=1Ton

jc=jc*i

Next

Text1=jc

EndSub

4.在窗口中有两个名称分别为COMSTART,COMEXIT,标题分别为"开始"、"退出"的命令按钮。

要求程序运行后,单击"开始"按钮后,能在窗体中打印出如下图所示的三角形,执行完毕"开始"按钮,变成"完成",且无效(变灰)。

 

 界面(二,4)

PrivateSubCommand2_Click()

End

EndSub

PrivateSubCOMSTART_Click()

Dima(4)AsString

Dimb(4)AsString

DimkAsInteger

Fork=1To4

a(k)=String$(k*2-1,"A")

b(k)=String$(k*2-1,"B")

Nextk

Fork=1To4

Print,a(k)

Nextk

Fork=4To1Step-1

Print,b(k)

Nextk

Close#1

COMSTART.Caption="完成"

COMSTART.Enabled=False

EndSub

5.模拟打字机过程。

单击窗体,程序按每秒2个字符的速度,逐个地将“2010级上机实习”显示在标签Label1中。

当所有字符全部显示以后,将其清除,重复以上过程。

(注:

所有控件的属性都必须在程序代码中设置,打字速度由定时器控制)

界面(二,5)

DimsAsString:

DimiAsInteger

PrivateSubForm_Load()

Timer1.Interval=500

s="2010级上机实习"

EndSub

PrivateSubTimer1_Timer()

i=i+1

Label1.Caption=Left(s,i)

Ifi>Len(s)Then

i=0

Label1.Caption=""

EndIf

EndSub

6.在窗体中左右两边各放置一个列表框ListBox的控件List1和List2,在List1中竖排显示内容“第一题、第二题、第三题、第四题、第五题”这五项。

在两个列表框中间竖排四个命令按钮,标题分别为“<”、“>”、“<<”、“>>”。

界面如下图所示,实现程序功能:

1)点击“<”将List1中所选中的项添加到List2中,并将List1中的项删除。

 2)点击“>”将List2中所选中的项添加到List1中,并将List2中的项删除。

  3)点击“<<”将Lixt1中所有的选项添加到List2中,并将List1中的项清空。

  4)点击“>>”将List2中所有的选项添加到List1中,并将List2中的项清空。

界面(二,6)

PrivateSubCommand1_Click()

IfList1.Text<>""Then

List2.AddItemList1.Text

List1.RemoveItemList1.ListIndex

EndIf

EndSub

PrivateSubCommand2_Click()

IfList2.Text<>""Then

List1.AddItemList2.Text

List2.RemoveItemList2.ListIndex

EndIf

EndSub

PrivateSubCommand3_Click()

Fori=0ToList1.ListCount-1

List2.AddItemList1.List(0)

List1.RemoveItem0

Next

EndSub

PrivateSubCommand4_Click()

Fori=0ToList2.ListCount-1

List1.AddItemList2.List(0)

List2.RemoveItem0

Next

EndSub

PrivateSubForm_Load()

List1.AddItem"第一题"

List1.AddItem"第二题"

List1.AddItem"第三题"

List1.AddItem"第四题"

List1.AddItem"第五题"

List1.AddItem"第六题"

EndSub

三、综合应用题

1.设计一个“简单通讯录”程序,用Access数据库存储数据,数据库中包含两张表,人员基本信息表:

人员编号、姓名、部门、住宅电话、移动电话、工作单位地址、家庭地址等;部门信息表:

部门编号、部门名称;两张表的关系如图1-1,

图1-1

程序界面可参考图1-2,也可自行设计,编程实现以下基本功能:

从数据库中取得部门信息填入下拉列表框中,当用户在下拉列表框中选择某一部门后,将该部门所属人员加入下面的列表框中,从列表框中选中一个人员后,将其基本信息显示在下面的各文本框中,其显示的基本信息由选项中的复选框是否选中来决定。

例如,当用户选择或者取消“住宅电话”复选框后,将显示或隐藏“住宅电话”文本框和标签。

界面(三,1)

◆程序调试分析

起初在编写程序时非常顺利,特别是前面几个基础题,但是在简单应用题中就往往会出现那种程序只有一部分能运行,经过反复的调试,才发现原来犯了几个很基本的错误,比如说忘记修改窗口中相应控件的名称,导致程序出错;还有就是对if语句的使用出现错误等,结果当然也调试成功了。

◆测试结果

所有题目做完之后存在少部分程序出错,而经过不断的调试后,除了最后一题还存在一点问题之外,其他的程序都能够正常运行。

◆实验心得体会以及建议

一、心得体会

通过一学期《VB程序设计》的理论学习以及多次系统化的实验训练,我深刻地体会到“理论与实践相结合”的重要性。

起初,我只注重《VB程序设计》的理论课程,而且是仅仅关注其中的几个章节。

当一遇到需要自己动手编写程序的题目时就显得很苍白无力。

每次上机操作又不好好把握时机请教老师,时间也就这样浪费掉了,直到上学期二级考试才从中体会到上机操作的乐趣,当然也从一个个程序的成功运行中找到了学习的乐趣,也就是从那一刻起,我迷恋上了程序设计。

之后便是经常练习VB操作,当然期末考试的VB机考也是轻松通过,但是理论课程的分数却并不怎么好,这让我想起自从迷恋VB上机操作后,就忽略了理论课程的学习,所以才酿成了这样的结果。

  VB程序设计本身并不复杂,主要研究的就是变量,函数,条件语句,循环语句等概念。

但要真正能进行程序设计,需要必须深入理解这些概念。

因此,在程序入门阶段我们应该重视相关概念的学习。

程序设计入门及后期都要注重上机实践操作的能力的培养,只有自己亲自操作过实验,才能从中明白哪些知识是自己掌握了的,哪些又是自己还未曾掌握到的。

总之,学习VB程序设计必须将理论和实际操作相结合,这样才能达到预期的效果,否则只会是空谈。

保持良好的学习心态有助于克服畏难情绪,树立良好的学习程序设计的信心,养成良好的学习习惯。

在实验上机操作中,我们还要多思考,多练习,所谓没有做不到,只有想不到就是这个道理了。

二、建议

1、首先,学习态度必须得端正。

2、不要盲目地进行程序编写,一定得在理解的基础上操作。

3、勤加练习,每个程序的成功编制都是靠积累起来的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1