版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB程序设计作业
学号:S20090679姓名:冯伟
一、基本概念题
1.VisualBasic6.0有多种类型的窗口,若要在设计时看到代码窗口,应怎样操作?
答:打开代码设计窗口的操作是:双击窗体、控件,或单击工程资源管理
器窗口的“查看代码”按钮。
2.叙述建立一个完整应用程序的过程。
答:建立一个完整应用程序的过程分为以下几个步骤:
①建立用户界面的对象;②设置对象的属性;③对象事件过程及编程;④运行和
调试程序。
3.当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块,试问该工程涉及多少
个要保存的文件?若要保存该工程中的所有文件,应先保存什么文件,在保存什么文件?
答:仅有一个窗体模块的工程涉及到需要保存的文件有窗体文件和工程文
件。
在保存该工程中的所有文件时,应先保存窗体文件后保存工程文件。
4.命令按钮的显示形式可以有标准的和图形的两种选择,它们通过什么属性设置?若选择
图形的,则通过什么属性装入图形?若已在规定的属性里装入了某个图形文件,但命令按钮
还是不能显示该图形,而显示的是Caption属性设置的文字,应怎样修改?
答:命令按钮的显示形式是通过Style属性设置的。若选择图形的,则通过
Picture属性装入图形。若已在规定的属性里装入了某个图形文件,但命令按钮
还是不能显示该图形,而显示的是Caption属性设置的文字,应将Style属性设
置为1。
5.在程序运行前,对某些控件设置属性值,除了在属性窗口中设置外,还可以通过代码设置,
这些代码一般放置在什么事件过程中?如果要将命令按钮Commandl定位在窗体的中央,试
写出事件过程代码?
答:控件属性值的代码一般放置在单击(Click)事件过程中。
要将命令按钮Commandl定位在窗体的中央,其事件过程代码为:
PrivateSubCommandl_Click()
Commandl.Top=(Forml.ScaleHeight-Commandl.Height)/2
Commandl.Left=(Forml.ScaleWidth-Commandl.Width)/2
EndSub
6.将数字字符串转换成数值,使用什么函数?判断是否是数字字符,使用什么函数?取字
符串中的某几个字符,使用什么函数?实现大小写字母转换,使用什么函数?
答:在VB中,使用Vai函数将数字字符串转换成数值,使用VarType函数
可判断是否是数字字符,取字符串中的某几个字符,使用Mid(C,Nl[,N2])函数,
实现大小写字母转换,使用LCase(C)函数。
7.Msgbox函数与Inputbox函数之间有什么区别?各自获得什么值?
答:①Inputbox函数是打开一个对话框,等待用户输入内容;Msgbox函数
是打开一个消息框,等待用户选择一个按钮。②Inputbox函数当用户单击“确
定”按钮或按回车键后函数返回输入的值,其值类型为字符串;Msgbox函数返
回用户所选按钮的整数值,决定程序执行的流程。③Msgbox函数过程没有返回
值,调用时不能有括号,作为一句独立的语句,常用于信息提示,不改变程序的
流程;Inputbox函数过程有返回值,调用时有括号。
Inputbox函数获得的事字符串,Msgbox函数获得的是用户所选按钮的整
数值。
8.什么是形参?什么是实参?什么是值引用?什么是地址引用?地址引用时,对应的实参有什
么F艮制?
答:①形参:即形式参数,是在用户自定义函数过程,子过程过程名后圆括
号中出现的变量名,只能是变量或数组名,用于在调用该函数时的数据传递;
②实参:即实际参数,是在调用函数过程时,在过程名后参数,其作用是将他们
的数据传送给被调用过程对应的形参变量;
③值引用:即值传递,按传值方式传递参数,系统将实参的值传递给对应的形参
后,实参于形参断开了联系,即使在过程体中改变形参的值,也不会影响到实参;
④地址引用:按传地址方式传递参数,要求参数必须是变量名,此时的实参于形
参变量公用一个存储单元,如果在过程中改变了形参的值,对应的实参也将发生
改变;
⑤地址引用时要求对应的实参必须是变量名。
9.怎样用Point方法比较两张图片?
答:Point方法用于返回在Form窗体或PictureBox控件上所指定值的红
绿蓝(RGB)颜色。语法:object.Point(x,y)object:可选的参数。一个对象
表达式。如果省略object,则为带有焦点的Form窗体。x,y:必要的参数。均
为单精度值,指示Form或PictureBox的ScaleMode属性中该点的水平(x轴)
和垂直(y轴)坐标。必须用括号括上这些值。利用Point方法逐点比较两张图
片,如果每个点的值都相同,则这两张图片相同,否则不相同。
10.如果要显示数据表中的照片,可使用那些控件?
答:如果要显示数据表中的照片,可使用图形框控件或图像框控件绑定到
存放图形数据的字段显示出图形。
二、应用程序设计题
1.设计适当的界面,利用If语句、SelectCase语句两种方法计算分段函数:
x2+3x+2x>20
y=i43x-210<x<20
-+|xl0<x<10
设计步骤:
(1)设计程序界面及控件属性。在窗体中添加两个文本框Textl、Text2
和一个Command1按钮,(2)在代码窗口输入如下代码
利用if语句计算的代码如下:
PrivateSubCommandlClick()
Dimx#,y#
x=Textl.Text
Ifx>20Then
y=x*x+3*x+2
EndIf
If10<=X<=20Then
y=Sqr(3*x)-2
EndIf
If0<=x<10Then
y=1/x+Abs(x)
EndIf
Text2.Text=y
EndSub
利用Select语句的代码如下:
PrivateSubCommand1Click()
Dimx#,y#
x=Text1.Text
SelectCasex
Case20To255
y=x*x+3*x+2
Case10To20
y=Sqr(3*x)-2
Case0To10
y=1/x+Abs(x)
EndSelect
Text2.Text=y
EndSub
2.利用随机函数产生20个50~100之间的随机数,显示其中的最大值,最小值和平均值。
设计步骤:
(1)设计程序界面及控件属性。在窗体中添加一个Commandl按钮,将Command1
的Caption属性设为确定(2)在代码窗口输入如下代码:
PrivateSubCommandl_Click()
Cis
DimiAsInteger,x!,max!,min!,ave!
max=50
min=100
ave=0
Fori=1To20
x=50+50*Rnd
Printx
Ifx>maxThen
max=x
EndIf
Ifx<minThen
min=x
EndIf
ave=ave+x
Nexti
ave=ave/20
Print〃最大值二〃;max
Print〃最小值二〃;min
Print〃平均值二〃;ave
EndSub
A
.
来
北⑼
松
已
局
月
灯
力
若
£得
二
和
源
火
寻
行
不
将
十
杀
寸
代
处
精
a整#:
电
我
小
满
抬
工4
仗
毛
蟀
汤
笠
电
it,犬
母
工
枣
^--电<:
如
一
rt.:
:«=;:
:.::
X
85,27737
76.6712
78.97593
64.47813
65.0974
88.73701
50.70088
88.03618
90.7245
85.4519
52.26764
70.70164
93.13097
89.524
68.67681
98,09766
93.57229
52.81184
97.47783
68,20094
最大值二98.09766
最小值二50.70088
平均值二77.9306
确定
3.自定义一个职工类型,包括职工号、姓名、工资。声明一个职工类型的动态数组,输入
n个职工的数据。要求按工资递减的顺序排序,并显示排序的结果,每个职工一行显示三项
信息。
设计步骤:
(1)设计程序界面及控件属性。在窗体中添加一个Command1按钮,将Command1
的Caption属性设为确定(2)在代码窗口输入如下代码:
Jreleasetime:28/6/2010
'purpose:自定义数据类型
'programmer:troy
OptionExplicit
PrivateSubCommand1ClickO
Me.Cis
DimworkList()AsWorkType,workTempAsWorkType
DimiAsInteger,jAsInteger,nAsInteger
n=CInt(Vai(InputBox(〃请输入需要记录的总人数〃&Chr(10)&Chr(13)
&〃troy〃,〃确定人数-troy〃)))
Ifn=0Then
MsgBox"error!”&Chr(10)&Chr(13)&〃troy〃,vbCritical
ExitSub
EndIf
Ifn=1Then
GoTolabel
EndIf
ReDimworkList(1Ton)
Fori=1Ton
workList(i).intNo=CInt(Vai(InputBox(〃第〃&i&〃位员工职工号输
入〃&Chr(10)&Chr(13)&"troy",”信息输入-troy")))
workList(i).sngWage=Vai(InputBox(〃第〃&i&〃位员工工资输入〃&
Chr(10)&Chr(13)&〃troy〃,〃信息输入-troy"))
workList(i).strName=CStr(InputBox(〃第〃&i&〃位员工名字输入〃&
Chr(10)&Chr(13)&〃troy〃,〃信息输入-troy"))
Next
Fori=1Ton-1
Forj=i+1Ton
IfworkList(j).sngWage>workList(i).sngWageThen
workTemp=workList(i)
workList(i)=workList(j)
workList(j)=workTemp
EndIf
Next
Next
Print〃名次〃,〃职工号〃,〃工资〃,〃名字〃
Fori=1Ton
Printi,workList(i).intNo,workList(i).sngWage,
workList(i).strName
Next
ExitSub
label:
workTNo=CInt(Vai(InputBox(〃第1位员工职工号输入〃,〃信息
输入〃)))
workTemp.sngWage=Vai(InputBox(〃第1位员工工资输入“,〃信息输入〃))
workTemp.strName=CStr(InputBox(〃第1位员工名字输入〃,〃信息输入
〃))
Print〃名次〃,〃职工号〃,〃工资〃,〃名字〃
Print1,workTNo,workTemp.sngWage,workTemp.strName
EndSub
X
X
第1位员工名字输入确定
troy
取消
4.利用迭代法求方程-=0的近似根,要求精度为10-5,迭代公式为:
C.+1=l(x,.+—),编制三个过程:迭代函数过程、迭代子过程和递归法函数过程。
2七
答:(1)设计程序界面及控件属性:
添加3个标签,3个文本框,3个命令按钮,LableK2、3的Caption
属性设为a=,xl=,x=,Txet1>2、3的text属性均设为空。Command1>
2、3的Caption属性设为迭代子过程、迭代子函数、递归
(2)在代码窗口输入如下代码:
OptionExplicit
PrivateSubCommandl_Click()
DimaAsSingle,xlAsSingle,x2AsSingle
a=Vai(Textl)
xl=Vai(Text2)
CallSubFunc(a,xl,x2)
Text4=x2
EndSub
PrivateSubSubFunc(aAsSingle,xlAsSingle,x2AsSingle)
DimtempAsSingle
temp=xl
DoWhileAbs(x2-temp)>0.00001
x2=(xl+a/xl)/2
temp=xl
xl=x2
Loop
EndSub
PrivateSubCommand2Click()
DimaAsSingle,xlAsSingle,x2AsSingle
a=Vai(Textl)
xl=Vai(Text2)
Text4=Func(a,xl,x2)
EndSub
PrivateFunctionFunc(aAsSingle,xlAsSingle,x2AsSingle)As
Single
DimtempAsSingle
temp=xl
DoWhileAbs(x2-temp)>0.00001
x2=(xl+a/xl)/2
temp=xl
xl=x2
Loop
Func=x2
EndFunction
PrivateFunctionRecursion(aAsSingle,xlAsSingle,x2AsSingle)
AsSingle
IfAbs(x2-xl)<=0.00001Then
Recursion=x2
Else
Recursion=Recursion(a,x2,(xl+a/xl)/2)
EndIf
EndFunction
PrivateSubCommand3_Click()
DimaAsSingle,xlAsSingle,x2AsSingle
a=Vai(Textl)
xl=Vai(Text2)
Text4=Recursion(a,xl,x2)
EndSub
PrivateSubForm_Load()
Textl.Tabindex=0
EndSub
5.在数据文件score.dat中存储有若干学生某门课的成绩(用写字板或记事本自己建立该
文件,数据之间用空格分隔或每行一个数据)。设计程序从文件中读数据,显示在窗体上,
并求标准差。
l2
S=J-~y(Xi-X)其中:n是数据的个数,亍是n个数据的平均值。
[〃T仁
设计步骤:
(1)设计程序界面及控件属性。在窗体中添加一•个Commandl按钮,将Commandl
的Caption属性设为读取文件(2)在代码窗口输入如下代码:
Jreleasetime:28/5/2010
'purpose:文件读取,并求标准差
'programmer:troy
OptionExplicit
DimmaxLineAsInteger
PrivateSubCommand1Click()
DimmyCharAsString
DimmyStrAsString
DimmyTemp()AsString
DimmyArray()AsInteger,iAsInteger
DimresultAsSingle,lengAsInteger
OpenApp.Path&"\score.dat"ForInputAs#1
DoWhileNotEOF(l)
myChar=Input(1,#1)
myStr=myStr&myChar
Loop
Close#1
PrintmyStr
myTemp=Split(myStr,vbLf)
leng=UBound(myTemp)
ReDimmyArray(UBound(myTemp))
Fori=0ToUBound(myTemp)-1
myArray(i)=CInt(Vai(myTemp(i)))
Next
result=Func(myArray(),leng)
Print"theresultis:〃;result
EndSub
PrivateSubForm_Load()
DimmyCharAsString
OpenApp.Path&〃\scorc.dat〃ForInputAs#1
DoWhileNotEOF(l)
myChar=Input(1,#1)
IfmyChar=vbLfThen
maxLine=maxLine+1
EndIf
Loop
Close#1
maxLine=maxLine+1
Label1.Caption=〃共有〃&maxLine&〃彳亍〃
EndSub
PrivateFunctionFunc(a()AsInteger,lengthAsInteger)AsSingle
DimsumAsLong,averageAsSingle,sumAAsSingle
DimiAsInteger
Fori=0Tolength-1
sum=sum+a(i)
Next
average=CSng(sum)/length
Fori=0To(length-1)
sumA=sumA+(a(i)-average)-2
Next
Func=Sqr(sumA/(length-1))
EndFunction
6.单击窗体时,用Line方法在窗体上随机产生20条长度、颜色、宽度各异的直线(左图)。
双击窗体时,用Pset方法在窗体上画200个随机彩色点,点的大小在3~6个之间变化(右
图)。
⑴单击窗体时产生20条随机直线,代码如下:
PrivateSubForm_Load()
Me.Scale(-100,100)-(100,-100)
EndSub
PrivateSubForm_Click()
Cis
DimxlAsSingle,ylAsSingle
Dimx2AsSingle,y2AsSingle
Dimi%
Randomize
Fori=1To20
DrawWidth=1+10*Rnd
xl=(-100)*Rnd
yl=200*Rnd-100
x2=100*Rnd
y2=200*Rnd-100
Forml.Line(xl,yl)-(x2,y2),RGB(255*Rnd,255*Rnd,255*Rnd)
Nexti
EndSub
(2)双击窗体时产生200个随机点,代码如下:
PrivateSubForml_DblClick()
Cis
Dimi%,x!,y!
Randomize
Fori=1To200
DrawWidth=3+30*Rnd
x=Forml.ScaleWidth*Rnd
y=Forml.ScaleHeight*Rnd
Forml.Pset(x,y),RGB(255*Rnd,255*Rnd,255*Rnd)
Nexti
EndSub
7.设计一个类似于Windows附件中的计算器,完成以下要求:①运行程序并分析代码,找
出存在的问题并设法修改;②将其扩充成为Windows附件中的标准型计算器。
R设计步骤]
⑴设计程序界面及控件属性。如图所示,在窗体中添加一个文本框,将其Text
属性设置为空,Enabled属性设置为Fa1se。添加包含11个按扭的命令按扭数组
Commandl(0)-Command1(10),将它们的Caption属性分别改为“1”、“2”…“9”、
“0”和。添加一个Caption属性为的按扭Command2。添加包含2个按
扭的命令按扭数组Command3(0)~Commands(1),将它们的Caption属性分别改为
“+”和。添加一个Caption属性分别改为“清除”的按扭Commands
⑵在代码窗口输入如下代码
OptionExplicit•.计算器-la|x|
DimaAsSingle,bAsSingle,cAsInteger
PrivateSubCommand1_C1ick(IndexAsInteger)
Text1.Text=Textl.Text+Commandl(Index).Caption
EndSub
PrivateSubCommand2_Click()
b=Textl.Text
SelectCaseindex
Case0
a=a+b
Case1
aa-b
EndSelect
Textl.Text=a
EndSub
标准计算器:
答:(1)在原有的基础上,添加命令按扭如图所示:
X
2)程序代码如下:
Dimn,c,mAsSingle
DimaAsString
PrivateSubCommandl_Click(IndexAsInteger)
Textl.Text=Textl.Text&Index'0到9的控件数
组
EndSub
PrivateSubCommand2_Click()
IfTextl.Text=〃〃Then'小数点
Textl.Text="0."
Else
Textl.Text=Textl.Text&
EndIf
EndSub
PrivateSubCommand3_Click()
n=Vai(Textl.Text)
SelectCasea
Case〃/〃
c=m/n
Case〃*〃
c=m*n
Case〃+〃
c=m+n
c〃〃
Case一
c=m-n'等号
EndSelect
Textl.Text=c
IfAbs(c)<1Then
Ifc<0Then
Textl.Text=-Textl.Text
Textl.Text=〃-0〃&(Textl.Text)
Else:Ifc>0ThenTextl.Text=〃0〃&(Textl.Text)
EndIf
EndIf
EndSub
PrivateSubCommand4_Click()
s=Len(Textl.Text)backspace
Textl.Text=Left(Textl.Text,s-1)
EndSub
PrivateSubCommand5_Click()
Textl.Text=〃〃
EndSub
PrivateSubCommand6_Click()
m=Vai(Textl.Text)
a=〃+〃'加号
Textl.Text=〃〃
EndSub
PrivateSubCommand7_Click()
m=Vai(Textl.Text)
a=〃-〃'减号
Textl.Text二〃〃
EndSub
PrivateSubCommand8_Click()
m=Vai(Textl.Text)
a=〃*〃'乘号
Textl.Text=〃〃
EndSub
PrivateSubCommand9_Click()
m=Vai(Textl.Text)
a=〃/〃
Textl.Text=〃〃'除号
EndSub
PrivateSubCommand10_Click()
Label1.Caption='MC
EndSub
PrivateSubCommand11_C1ick()
Textl.Text=Labell.Caption,MR
EndSub
PrivateSubCommandl2_Click()
Labell.Caption=Textl.Text'MS
EndSub
PrivateSubCommandl3_Click()
Labell.Caption=Vai(Labell.Caption)+Vai(Textl.Text)'M+
EndSub
PrivateSubCommand14_C1ick()
Textl.Text=Sqr(Textl.Text)'开方
EndSub
PrivateSubCommandl5_Click()
Textl.Text=Textl.Text-2'平方
EndSub
PrivateSubCommand16_C1ick()
Textl.Text=1/Vai(Textl.Text)T/x
IfAbs(Textl.Text)<1Then
IfTextl.Text<0Then
Textl.Text=-Textl.Text
Textl.Text=〃-0〃&(Textl.Text)
Else:IfTextl.Text>0ThenTextl.Text=〃0〃&(Textl.Text)
EndIf
EndIf
EndSub
PrivateSubCommandl7Click()
Textl.Text=Vai(Textl.Text)*0.01'百分号
IfAbs(Textl.Text)<1Then
IfTextl.Text<0Then
Textl.Text=-Textl.Text
Textl.Text="-0"&(Textl.Text)
Else:IfTextl.Text>0ThenTextl.Text="0"&(Textl.Text)x'
EndIf
EndIf
EndSub
8.设计学生信息管理系统(参照第十章例题,界面自己规划设计)
主要的数据表:
学生基本情况表,学生成绩表,课程表等,表结构自己确定。
主要功能模块:
实现学生基本情况的录入、修改、删除等基本操作。
对学生基本信息提供灵活的查询方式。
完成一个班级的学期选课功能。
实现学生成绩的录入、修改、删除等基本操作。
能方便的对学生各个学期成绩进行查询。
具有成绩统计、排名等功能。
解答•
设计在程如卜.:
Forml:
□X
程序代码:
Dimi,j,nAsInteger
DimsqlAsString
PrivateDeclareFunctionGetKeyStateLib〃user32〃
(ByVainVirtKeyAsLong)AsInteger
PublicjeAsInteger'记忆菜单上次数值,实现数据传送
PrivateSubacg_Click()
CallasPopup7_Click(False)
EndSub
PrivateSubaddcg_Click()
CallasPopup6Click(False)
EndSub
PrivateSubaddstudent_Click()
CallasPopup2_Click(Faise)
EndSub
PrivateSubasPopupl_Click(CancelAsBoolean)
Gridl.Visible=True
Grid2.Visible=False
tkbase=〃学生信息〃
fnumber=13
sql="select*from〃&tkbase&〃orderby学号desc〃
gridlpz'执行gridl的分配空间任务
datagrid'按要求读取数据空间
EndSub
PrivateSubgridlpz()'处理gridl的操作
Gridl.Cols=fnumber+1
Gridl.Column(1).Width=120
Gridl.Column(2).Width=100
Gridl.Column(3).Width=80
Gridl.Column(4).Width=40
Gridl.Column(5).Width=80
Gridl.Column(6).Width=30
Gridl.Column(7).Width=50
Gridl.Column(8).Width=80
Gridl.Column(9).Width=60
Gridl.Column(lO).Width=80
Gridl.Column(ll).Width=100
Gridl.Column(12).Width=100
Gridl.Column(13).Width=100
Gridl.Column(4).CellType=cellComboBox
Gridl.ComboBox(4).Clear
Gridl.ComboBox(4).Additem〃男〃
Gridl.ComboBox(4).Additem〃女〃
Gridl.Column(5).CellType=cellCalendar
Gridl.Column(2).CellType=cellComboBox
Gridl.ComboBox(2).Clear
Setqy2=cnn.Execute(z,select班级名称from班级〃)
DoWhileNotqy2.EOF
Gridl.ComboBox(2).Additemqy2.Fields(0)
qy2.MoveNext
Loop
Gridl.Column(9).CellType=cellComboBox
Gridl.ComboBox(9).Clear
Gridl.ComboBox(9).Additem〃团员〃
Gridl.ComboBox(9).Additem〃党员〃
Gridl.ComboBox(9).AddItem〃无〃
Gridl.Column(1).Locked=True
EndSub
PrivateSubasPopuplO_Click(CancelAsBoolean)
Dimfo2AsCTranslucentForm
Setfo2=NewCTranslucentForm
fo2.hWnd=Form6.hWnd
fo2.Alpha=90/100*255
Me.WindowState=vbMinimized
LoadForm6
Form6.Show1
EndSub
PrivateSubasPopup2_Click(CancelAsBoolean)
Gridl.Visible=True
Grid2.Visible=False
tkbase=〃学生信息〃
fnumber=13
Setqyl=cnn.Execute("select*from〃&tkbase)
gridlpz
Fori=1Tofnumber
Gridl.Cell(0,i).Text=qyl.Fields(i-1).Name
Next
Gridl.Column(1).Locked=False
Gridl.Rows=1
Gridl.Rows=21
gridsave=True'允许保存
griddelete=False拒绝删除
gridedit=False
EndSub
PrivateSubasPopup3_Click(CancelAsBoolean)
Dimfo2AsCTranslucentForm
Setfo2=NewCTrans1ucentForm
fo2.hWnd=Form2.hWnd
fo2.Alpha=90/100*255
Me.WindowState=vbMinimized
LoadForm2
Form2.Show1
EndSub
PrivateSubasPopup4_Click(CancelAsBoolean)
Dimfo2AsCTranslucentForm
Setfo2=NewCTranslucentForm
fo2.hWnd=Form4.hWnd
fo2.Alpha=90/100*255
Me.WindowState=vbMinimized
LoadForm4
Form4.Show1
EndSub
PrivateSubasPopup5_Click(CancelAsBoolean)
Frame2.Visible=True
EndSub
PrivateSubasPopup6_C1ick(Cance1AsBoolean)
Gridl.Visible=False
Grid2.Visible=True
tkbase=〃学生与课程〃
fnumber=6
gridpz2
Setqyl=cnn.Execute(z,select*from〃&tkbase)
Fori=1Tofnumber
Grid2.Cell(0,i).Text=qyl.Fields(i-1).Name
Next
Grid2.Rows=1
Grid2.Rows=21
gridsave=True
gridedit=False
griddel=False
Grid2.Column(1).Locked=False
Grid2.Column(2).Locked=True
Grid2.Column(3).Locked=False
Grid2.Column(4).Locked=True
EndSub
PrivateSubasPopup7_Click(CancelAsBoolean)
Gridl.Visible=False
Grid2.Visible=True
tkbase=〃学生与课程〃
fnumber=6
sql="select*from〃&tkbase&"orderby学号asc〃
gridpz2
datagrid
gridsave=False
gridedit=True
griddel=True
Grid2.Column(1).Locked=True
Grid2.Column(2).Locked=True
Grid2.Column(3).Locked=True
Grid2.Column(4).Locked=True
EndSub
PrivateSubgridpz2()
Grid2.Cols=8
Grid2.Column(1).Width=120
Grid2.Column(3).Width=120
Grid2.Column(1).CellType=cellComboBox
Setqy1=cnn.Execute(^select*from课程〃)
Grid2.ComboBox(1).Clear
DoWhileNotqyl.EOF
Grid2.ComboBox(1).AddItemqyl.Fields(0)&〃-〃&qyl.Fields(1)
qyl.MoveNext
Loop
Grid2.Column(3).CellType=cellComboBox
Setqyl=cnn.Execute(z,select学号,名字from学生信息〃)
Grid2.ComboBox(3).Clear
DoWhileNotqyl.EOF
Grid2.ComboBox(3).Additemqyl.Fields(0)&〃-〃&qyl.Fields(1)
qyl.MoveNext
Loop
EndSub
PrivateSubasPopup8_Click(CancelAsBoolean)
Dimfo2AsCTranslucentForm
Setfo2=NewCTrans1ucentForm
fo2.hWnd=Form7.hWnd
fo2.Alpha=85/100*255
LoadForm7
Form7.Show1
EndSub
PrivateSubasPopup9_Click(CancelAsBoolean)
End
EndSub
PrivateSubcl_Click(IndexAsInteger)'提交内容到函数执行,4为当前
菜单(0-4),index是按钮数组名称
cmove4,Index
EndSub
PrivateSubcmove(sAsInteger,iAsInteger)'菜单智能移动函数代码
S代表菜单的总数,i代表当前移动的是数组名称
DimjAsInteger
Dimx,y,z,xl,ylAsInteger
x=s'将x,y,z,xl赋于菜单总数,x存放frame1的固定值
y=s'y存放的是移动后的按钮的固定值
z=s'Z没用上
xl二s'XI没用上
j=0'j计算按钮的宽度
DoWhiles>0'这里是通过重复计算来计算按钮所需移动的总高度
Ifje>iThen
DoWhilex>i
DoWhiley>二x
j=j+360'360是每个按钮的高度
y=y-1
Loop
cl(x).Top=Frei.Height-j
x=x-1
Loop
Else
’向上代码
Forx=0Toi
Fory=0Tox
j=j+360
Next
cl(x).Top=j-360
J=0
Next
EndIf
s=s-1
Foryl=0Toxl
Ifyl=iThen
Fre2(yl).Visible=True
Fre2(yl).Top=cl(yl).Top+cl(yl).Height
Ifyl<>zThen
Fre2(yl).Height=cl(yl+1).Top-Fre2(yl).Top
Else
Fre2(yl).Height=Frei.Height-cl(yl).Top-cl(yl).Height
EndIf
Else
Fre2(yl).Visible=False
EndIf
Next
Loop
je=i'这里是记忆上次移动的按钮数组编号
EndSub
PrivateSubcgdel_Click()
CallXPButton6_Click
EndSub
PrivateSubcgedit_Click()
CallXPButton4Click
EndSub
PrivateSubde1student_Click()
CallXPButton6_Click
EndSub
PrivateSubeditstudent_Click()
CallXPButton4_Click
EndSub
PrivateSubfindcg_Click()
Ifhang=0Then
ExitSub
EndIf
Gridl.Visible=False
Grid2.Visible=True
tkbase=〃学生与课程〃
fnumber=5
sql="select*from学生与课程where学号二'〃&Gridl.Cell(hang,
D.Text&〃'〃
gridpz2
datagrid
gridsave=False
gridedit=True
griddel=True
Grid2.Column(1).Locked=True
Grid2.Column(2).Locked=True
Grid2.Column(3).Locked=True
EndSub
PrivateSubGridl_MouseUp(ButtonAsInteger,ShiftAsInteger,xAs
Single,yAsSingle)
IfButton=2Then
Ifgridsave=TrueThen
savestudent.Enabled=True
Else
savestudent.Enabled=False
EndIf
Ifgridedit=TrueThen
editstudent.Enabled=True
Else
editstudent.Enabled=False
EndIf
Ifgriddel=TrueThen
delstudent.Enabled=True
Else
delstudent.Enabled=False
EndIf
Ifadmin=FalseThen
addstudent.Enabled=False
savestudent.Enabled=False
editstudent.Enabled=False
delstudent.Enabled=False
EndIf
PopupMenustudent
EndIf
EndSub
PrivateSubGridlRowColChange(ByVaiRowAsLong,ByVaiColAsLong)
hang=Row
Ifgridsave=TrueAndCol=5Then'确认默认年龄在20岁左右
IfRow<>0Then
Gridl.Cell(Row,5).Text=Date-7300
EndIf
EndIf
EndSub
PrivateSubGridlValidate(CancelAsBoolean)'设定TAB键切换
DimnActiveRowAsLong,nActiveColAsLong
ConstVK_TAB=9
IfGetKeyState(VK_TAB)<0Then
nActiveRow=Gridl.ActiveCell.Row
nActiveCol=Gridl.ActiveCell.Col
IfnActiveCol<Gridl.Cols-1Then
Gridl.Range(nActiveRow,nActiveCol1,
nActiveRow,nActiveCol1).Selected
EndIf
Cancel=True
EndIf
EndSub
PrivateSubForm_Load()
OnErrorGoTofinish
Gridl.SetRegisterInformation〃CNwinndy〃,
Z,W]vyY-nonvk-u\nty-Zbl_e-'hms进行注册
Grid2.SetRegisterInformation"CNwinndy”,
〃W]vyY-nonvk-u\nty-Zbl_e-hms八〃'进行注册
Label2.Caption=〃今天是“&Year(Date)&〃年〃&Month(Date)&〃月〃&
Day(Date)&〃日,欢迎您进入!〃
Frame2.Visible=False
forml.BackColor=RGB(167,111,177)
’管理员验证
Ifadmin=FalseThen
cl(3).Enabled=False
asPopup2.Enabled=False'增加学生
asPopup4.Enabled=False'课程管理
asPopup6.Enabled=False'输入成绩
XPButton4.Enabled=False
XPButton5.Enabled=False
XPButton6.Enabled=False
EndIf
WithGridl
,AllowUserResizing=True
.DisplayFocusRect=False
.ExtendLastCol=True
.Appearance=Flat
.FixedRowColStyle=Flat
.ScrollBarStyle=Flat
.DefaultFont.Name=〃Tahoma〃
.DefaultFont.SIZE=8
.BackColorFixed=RGB(84,201,134)
.BackColorFixedSel=RGB(167,111,177)
.BackColorBkg=RGB(198,229,211)
.BackColorScrollBar=RGB(167,111,177)
.BackColorl=RGB(231,235,247)
.BackColor2=RGB(198,229,211)
.GridColor=RGB(148,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年机场口岸离境退税验核点布局与海关核验流程
- 2026年集成电路测试方法与可测性设计
- 2026年产业转移与产业升级“齐头并进”:从产能平移向价值链协同转型路径
- 2026届甘肃省定西市安定区初三第三次诊断性考试生物试题含解析
- 2026年广东省佛山市南海中学初三第三次调研化学试题试卷含解析
- 2026年江苏省徐州市云龙区重点中学中考模拟最后十套:化学试题(七)考前提分仿真卷含解析
- 2026届内蒙古巴彦淖尔市临河区八校联盟初三第二次联合调研考试化学试题含解析
- 湖南长沙长郡教肓集团2026年初三生物试题中考冲刺七含解析
- 浙江省吴兴区七校联考2026年初三下学期模拟(五)生物试题含解析
- 福建省永定二中等三校2025-2026学年初三质量检查生物试题含解析
- 二年级生命生态安全课件
- 2025年生长激素相关肝硬化诊治专家共识解读课件
- 【《磷矿浮选工艺研究的国内外文献综述》11000字】
- 丫丫厨娘企业策划方案
- 物业写字楼装修管理培训
- 2026年长沙职业技术学院单招职业倾向性测试必刷测试卷附答案
- 2025年荞麦绿色防控技术体系与病虫害监测报告
- 坝身埋石混凝土施工方案
- ISO 9001(DIS)-2026《质量管理体系要求》中英文标准对照版(2025年9月)
- 《反窃电电子数据提取与固定技术规范》
- 最近时事政治课件
评论
0/150
提交评论