If Text1.Text < 0 Then Text1.Text = -Text1.Text
Text1.Text = \
2
Else: If Text1.Text > 0 Then Text1.Text = \ End If End If End Sub
8. 设计学生信息管理系统(参照第十章例题,界面自己规划设计)
主要的数据表: 学生基本情况表,学生成绩表,课程表等,表结构自己确定。 主要功能模块:
实现学生基本情况的录入、修改、删除等基本操作。 对学生基本信息提供灵活的查询方式。 完成一个班级的学期选课功能。
实现学生成绩的录入、修改、删除等基本操作。 能方便的对学生各个学期成绩进行查询。 具有成绩统计、排名等功能。
解答:
设计过程如下: Form1:
程序代码:
Dim i, j, n As Integer Dim sql As String
Private Declare Function GetKeyState Lib \ (ByVal nVirtKey As Long) As Integer
Public je As Integer '记忆菜单上次数值,实现数据传送 Private Sub acg_Click() Call asPopup7_Click(False) End Sub
Private Sub addcg_Click()
Call asPopup6_Click(False) End Sub
Private Sub addstudent_Click() Call asPopup2_Click(False) End Sub
Private Sub asPopup1_Click(Cancel As Boolean) Grid1.Visible = True Grid2.Visible = False tkbase = \学生信息\fnumber = 13
sql = \学号 desc\grid1pz '执行grid1的分配空间任务 datagrid '按要求读取数据空间 End Sub
Private Sub grid1pz() '处理grid1的操作 Grid1.Cols = fnumber + 1 Grid1.Column(1).Width = 120 Grid1.Column(2).Width = 100 Grid1.Column(3).Width = 80 Grid1.Column(4).Width = 40 Grid1.Column(5).Width = 80 Grid1.Column(6).Width = 30 Grid1.Column(7).Width = 50 Grid1.Column(8).Width = 80 Grid1.Column(9).Width = 60 Grid1.Column(10).Width = 80 Grid1.Column(11).Width = 100 Grid1.Column(12).Width = 100 Grid1.Column(13).Width = 100
Grid1.Column(4).CellType = cellComboBox Grid1.ComboBox(4).Clear
Grid1.ComboBox(4).AddItem \男\Grid1.ComboBox(4).AddItem \女\
Grid1.Column(5).CellType = cellCalendar Grid1.Column(2).CellType = cellComboBox Grid1.ComboBox(2).Clear
Set qy2 = cnn.Execute(\班级名称 from 班级\Do While Not qy2.EOF
Grid1.ComboBox(2).AddItem qy2.Fields(0) qy2.MoveNext Loop
Grid1.Column(9).CellType = cellComboBox Grid1.ComboBox(9).Clear
Grid1.ComboBox(9).AddItem \团员\
Grid1.ComboBox(9).AddItem \党员\Grid1.ComboBox(9).AddItem \无\Grid1.Column(1).Locked = True End Sub
Private Sub asPopup10_Click(Cancel As Boolean) Dim fo2 As CTranslucentForm Set fo2 = New CTranslucentForm fo2.hWnd = Form6.hWnd
fo2.Alpha = 90 / 100 * 255 Me.WindowState = vbMinimized Load Form6 Form6.Show 1 End Sub
Private Sub asPopup2_Click(Cancel As Boolean) Grid1.Visible = True Grid2.Visible = False tkbase = \学生信息\fnumber = 13
Set qy1 = cnn.Execute(\grid1pz
For i = 1 To fnumber
Grid1.Cell(0, i).Text = qy1.Fields(i - 1).Name Next
Grid1.Column(1).Locked = False Grid1.Rows = 1 Grid1.Rows = 21
gridsave = True '允许保存 griddelete = False '拒绝删除 gridedit = False End Sub
Private Sub asPopup3_Click(Cancel As Boolean) Dim fo2 As CTranslucentForm Set fo2 = New CTranslucentForm fo2.hWnd = Form2.hWnd
fo2.Alpha = 90 / 100 * 255 Me.WindowState = vbMinimized Load Form2 Form2.Show 1 End Sub
Private Sub asPopup4_Click(Cancel As Boolean) Dim fo2 As CTranslucentForm Set fo2 = New CTranslucentForm fo2.hWnd = Form4.hWnd
fo2.Alpha = 90 / 100 * 255 Me.WindowState = vbMinimized Load Form4 Form4.Show 1 End Sub
Private Sub asPopup5_Click(Cancel As Boolean) Frame2.Visible = True End Sub
Private Sub asPopup6_Click(Cancel As Boolean) Grid1.Visible = False Grid2.Visible = True tkbase = \学生与课程\fnumber = 6 gridpz2
Set qy1 = cnn.Execute(\For i = 1 To fnumber
Grid2.Cell(0, i).Text = qy1.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 End Sub
Private Sub asPopup7_Click(Cancel As Boolean) Grid1.Visible = False Grid2.Visible = True tkbase = \学生与课程\fnumber = 6
sql = \学号 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 End Sub
Private Sub gridpz2() Grid2.Cols = 8
Grid2.Column(1).Width = 120 Grid2.Column(3).Width = 120
Grid2.Column(1).CellType = cellComboBox
Set qy1 = cnn.Execute(\课程\Grid2.ComboBox(1).Clear Do While Not qy1.EOF
Grid2.ComboBox(1).AddItem qy1.Fields(0) & \qy1.MoveNext Loop
Grid2.Column(3).CellType = cellComboBox
Set qy1 = cnn.Execute(\学号,名字 from 学生信息\Grid2.ComboBox(3).Clear Do While Not qy1.EOF
Grid2.ComboBox(3).AddItem qy1.Fields(0) & \qy1.MoveNext Loop End Sub
Private Sub asPopup8_Click(Cancel As Boolean) Dim fo2 As CTranslucentForm Set fo2 = New CTranslucentForm fo2.hWnd = Form7.hWnd
fo2.Alpha = 85 / 100 * 255 Load Form7 Form7.Show 1 End Sub
Private Sub asPopup9_Click(Cancel As Boolean) End
End Sub
Private Sub c1_Click(Index As Integer) '提交内容到函数执行,4为当前菜单(0-4),index是按钮数组名称 cmove 4, Index End Sub
Private Sub cmove(s As Integer, i As Integer) '菜单智能移动函数代码S代表菜单的总数,i代表当前移动的是数组名称 Dim j As Integer
Dim x, y, z, x1, y1 As Integer
x = s '将x,y,z,x1赋于菜单总数,x存放frame1的固定值 y = s 'y存放的是移动后的按钮的固定值 z = s 'Z没用上 x1 = s 'X1没用上
j = 0 'j计算按钮的宽度
Do While s > 0 ' 这里是通过重复计算来计算按钮所需移动的总高度