(17)
ElseIfmark>max1Then
(18)
EndIf
EndIf
(19)
Next
aver=(20)
MsgBox(aver)
EndSub
6、删除数组a中指定的元素。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
Dima()AsInteger={1,6,8,3,5,9,10,2,7,4},key%,i%,j%
key=InputBox("请输入要删除的值")
Fori=0ToUBound(a)
If(21)Then
Forj=i+1ToUBound(a)
(22)
Next
ReDim(23)
MsgBox("删除完成")
ExitSub
EndIf
Next
MsgBox("找不到要删除的元素")
EndSub
7、将输入的一个数插入到按递减的有序数列中,插入后该序列仍有序并显示在标签框Label1上。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
Dimi%,n%,m%
Dima()AsInteger={19,17,15,13,11,9,7,5,3,1}
Label1.Text=""
n=UBound(a)
ReDim(24)
m=InputBox("请输入需插入的数")
Fori=UBound(a)-1To0Step-1
Ifm>=a(i)Then
(25)
Ifi=0Thena(i)=m
Else
(26)
ExitFor
EndIf
Next
Fori=0To(27)
label1.text&=a(i)&""
Next
EndSub
8、随机产生15个不重复的A--Z大写英文字母,存放在字符数组中并显示在标签框Label1上。
。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
Dims(14)AsChar,cAsChar,n%,j%
Label1.Text=""
s(0)=Chr(Int(Rnd()*26+65))
Forn=1To14
re:
c=(28)
Forj=0To(29)‘若找到有重复字母,重新产生
Ifs(j)=cThen(30)
Next
s(n)=(31)‘没有重复的则加到数组中
Next
Forj=0To14
Label1.Text&=s(j)&""
Next
EndSub
9、两质数的差为2,则此对质数为质数对。
下列程序找出100以内的质数对,并在标签框上成对显示。
函数IsP判断参数m是否为质数。
PublicFunctionIsP(ByValm)AsBoolean
Dimi%
(32)
Fori=2ToInt(Math.Sqrt(m))
If(33)ThenIsP=False
Next
EndFunction
PrivateSubForm1_Click……
DimiAsInteger,p1,p2AsBoolean
Label1.Text=""
p1=IsP(3)
Fori=5To100Step2
p2=IsP(i)
If(34)ThenLabel1.Text&=i-2&""&i&","
p1=(35)
Next
EndSub
10、子过程MoveStr()是把字符数组移动m个位置。
当Tag为True,左移,则前m个字符移到字符数组尾,例如,“abcdefghij”左移三个位置后,结果为“defghijabc”;当Tag为False,右移,则后m个字符移到字符数组前,如“abcdefghij”右移三个位置后,结果为“hijabcdefg”。
SubMoveStr(ByRefa$(),ByValm%,ByValTagAsBoolean)
Dimi%,j%,t$
If(36)Then
Fori=1Tom
(37)
Forj=0To(38)
a(j)=a(j+1)
Next
(39)
Next
Else
Fori=1Tom
(40)
Forj=UBound(a)(41)
a(j)=a(j-1)
Next
(42)
Next
EndIf
EndSub
11、子过程Mysplit(s,sArray(),n)用于实现函数Split()的功能(字符分离到数组),即将数字字符串s按分隔符“,”分离到sArray数组中,分离的个数为n。
主调程序将文本框输入的数字字符串进行分离,结果在TextBox2控件中显示。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
Dimstr1AsString,num(100)AsInteger,n%,i%
str1=Trim(TextBox1.Text)
CallMySplit(str1,num,n)
TextBox2.Text=""
Fori=0Ton
TextBox2.Text&=num(i)&vbCrLf
Next
EndSub
SubMySplit(ByValstr1AsString,ByRefsn()AsInteger,ByRefnAsInteger)
Dimi%,j%,ch$
i=0
j=InStr(str1,",")
DoWhilej>0
sn(i)=Val((43))
str1=Mid(str1,j+1)
i=i+1
j=(44)
Loop
sn(i)=Val(str1)
n=(45)
EndSub
12、以下过程将一个有序数组中重复出现的数删除,删到只剩一个。
运行后结果如图。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
Dimb()AsInteger={23,45,45,60,70,70,70,90},i%,n%
label1.text=""
Callp(b,n)'n是删除后数组上界
Fori=0Ton
label1.text&=b(i)&""
Next
EndSub
Subp((46))
Dimm%,k%
n=UBound(a)
m=n
DoWhile(47)'从右往左比较
Ifa(m)=a(m-1)Then
Fork=(48)
a(k-1)=a(k)
Next
n=(49)
EndIf
m=(50)
Loop
ReDimPreservea(n)
EndSub
13、以下是一个学生成绩录入程序,功能有:
(1)文本框中能输入数字。
(2)当焦点离开文本框时,能检查录入的成绩是否有效:
若成绩不在0——100之间,则清除原输入的数据,并要求重新输入。
(3)若文本框左边的复选框未被选定,则文本框不能输入成绩且不参加计算总分和平均成绩。
PrivateSubForm1_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.KeyPreview=(51)
EndSub
PrivateSubForm1_KeyPress(ByValsenderAsObject,ByValeAs_
System.Windows.Forms.KeyPressEventArgs)HandlesMyBase.KeyPress
Ife.KeyChar<"0"Ore.KeyChar>"9"Then
(52)
EndIf
EndSub
PrivateSubCheckBox1_CheckedChanged……
TextBox1.Enabled=(53)
EndSub
PrivateSubCheckBox2_CheckedChanged……
TextBox2.Enabled=(54)
EndSub
PrivateSubCheckBox3_CheckedChanged……
TextBox3.Enabled=(55)
EndSub
PrivateSubTextBox1_Leave……
IfVal(TextBox1.Text)<0OrVal(TextBox1.Text)>100Then
TextBox1.Text=""
(56)
EndIf
EndSub
PrivateSubTextBox2_Leave……
IfVal(TextBox2.Text)<0OrVal(TextBox2.Text)>100Then
TextBox2.Text=""
(57)
EndIf
EndSub
PrivateSubTextBox3_Leave……
IfVal(TextBox3.Text)<0OrVal(TextBox3.Text)>100Then
TextBox3.Text=""
(58)
EndIf
EndSub
PrivateSubButton1_Click……
DimTotalAsInteger=0,CountAsInteger=0
IfCheckBox1.CheckedThen
Total=Total+Val(TextBox1.Text)
Count=Count+1
EndIf
IfCheckBox2.CheckedThen
Total=Total+Val(TextBox2.Text)
Count=Count+1
EndIf
IfCheckBox3.CheckedThen
Total=Total+Val(TextBox3.Text)
Count=Count+1
EndIf
(59)
TextBox5.Text=Total/Count
EndSub
14、多窗体操作、菜单操作、定时器、对话框
1)在主窗体上放置一个图像框;在主窗体上单击右键,弹出快捷菜单如下图左;
2)选择“开始移动”,图像反复从左到右移动,并弹出“统计结果”窗体(下图右);
3)选择“停止移动”,图像停止移动并关闭“统计结果”窗体;
4)选择“更换图像”,弹出“打开文件”对话框,选择新的图像;
5)在“统计结果”窗体上设置控件如图:
2个文本框、4个标签框;
6)添加模块。
ModuleModule1
Publicf2AsNewform2()
EndModule
PrivateSubMenuItem1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)Handles_
MenuItem1.Click
Timer1.Enabled=True
(60)
EndSub
PrivateSubMenuItem2_Click……
Timer1.Enabled=False
f2.Close()
EndSub
PrivateSubMenuItem3_Click……
OpenFileDialog1.(61)
PictureBox1.Image=Image.FromFile((62))
EndSub
PrivateSubTimer1_Tick(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesTimer1.Tick
Statics,tAsInteger
PictureBox1.Left=PictureBox1.Left+10
s=s+10
f2.textbox1.text=s
If(63)Then
PictureBox1.Left=-PictureBox1.Left
t=t+1
(64)
EndIf
EndSub
15、建立顺序文件c:
\stud.txt,文件内容来自文本框,每按一次回车键写入一条记录并清除文本框的内容。
当文本框内输入“END”时结束。
PrivateSubForm1_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Load
(65)
TextBox1.Text=""
EndSub
PrivateSubTextBox1_KeyDown……
If(66)Then‘检测是否按下回车键
IfTextBox1.Text="END"Then
FileClose
(1)
End
Else
(67)‘文本框内容写入文件
TextBox1.Text=""
EndIf
EndIf
EndSub
16、将文本文件c:
\stud复制成新文件c:
\new.txt。
PrivateSubForm1_Click……
DimstrasString
FileOpen(1,"c:
\stud.txt",(68))
FileOpen(2,"c:
\new.txt",(69))
DoWhile(70)'文件没有结束
(71)'按行读入到变量str中
PrintLine(2,str)
Loop
(72)'关闭所有打开的文件
EndSub
17、将文本文件c:
\stud合并到文件c:
\new.txt中。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
DimstrAsString
FileOpen(1,"c:
\stud.txt",(73))
FileOpen(2,"c:
\new.txt",(74))
DoWhileNotEOF
(1)
(75)
PrintLine(2,Str)
Loop
FileClose()
EndSub
18、若已建立随机文件c:
\stud.dat,其记录类为:
ModuleModule1
StructureStud
DimnoAsInteger
DimnameAsString
DimmarkAsSingle
EndStructure
EndModule
以下程序代码是读出5号记录,用Msgbox显示记录内容,将课程成绩加5分,写入原来的位置,再读出并显示。
PrivateSubForm1_Click(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMyBase.Click
DimsAsStud
FileOpen(1,"c:
\stud.dat",(76),,,Len(s))
(77)'读入记录号为5的记录
MsgBox(s.no&s.name&s.mark)
(78)
(79)
FileGet(1,s,5)
MsgBox(s.no&s.name&s.mark)
FileClose
(1)
EndSub
19、统计并显示文本文件中各个字母(不区分大小写)出现的次数。
要求:
用对话框打开文件,文件内容显示在左边的文本框中;统计结果显示在右边的框中。
PrivateSubButton1_Click……
DimstrAsString
TextBox1.Text=""
If(OpenFileDialog1.ShowDialog=DialogResult.OK)Then
FileOpen(1,(80),OpenMode.Input)
DoWhileNotEOF
(1)
TextBox1.Text=TextBox1.Text&LineInput
(1)&vbCrLf
Loop
FileClose
(1)
EndIf
EndSub
'统计
PrivateSubButton2_Click……
Dimi,j,s(26)AsInteger,cAsChar
Fori=1To(81)
c=UCase(Mid(TextBox1.Text,i,1))
Ifc>="A"Andc<="Z"Then
j=(82)
s(j)=s(j)+1
EndIf
Next