太原理工大学vb考试试题_第1页
太原理工大学vb考试试题_第2页
太原理工大学vb考试试题_第3页
太原理工大学vb考试试题_第4页
太原理工大学vb考试试题_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论