智能排课系统vb代码

智能排课系统vb代码
智能排课系统vb代码

Vb核心代码设计

一:输入界面与代码(以班级表为例)

Dim Conn As New ADODB.Connection '连接变量

Dim SqlString As String '查询字符串

Dim Connstring As String '连接字符串

Dim RS1 As New ADODB.Recordset '记录集变量

Dim bm '定义一个变量用来存放添加记录时原来记录的位置Dim tj As Boolean

Private Sub Command10_Click()

Form4.Hide

Form3.Show

End Sub

Private Sub Command1_Click() '移到首记录

RS1.MoveFirst

Command1.Enabled = False

Command2.Enabled = False

Command3.Enabled = True

Command4.Enabled = True

Call DispValue '显示当前记录的值

End Sub

Private Sub Command2_Click() '前移

RS1.MovePrevious

If RS1.BOF Then

RS1.MoveFirst

Command1.Enabled = False

Command2.Enabled = False

End If

Command3.Enabled = True

Command4.Enabled = True

Call DispValue '显示当前记录的值

End Sub

Private Sub Command3_Click() '后移

RS1.MoveNext

If RS1.EOF Then

RS1.MoveLast

Command3.Enabled = False

Command4.Enabled = False

End If

Command1.Enabled = True

Command2.Enabled = True

Call DispValue '显示当前记录的值

End Sub

Private Sub Command4_Click() '移到末记录

RS1.MoveLast

Command3.Enabled = False

Command4.Enabled = False

Command1.Enabled = True

Command2.Enabled = True

Call DispValue '显示当前记录的值

End Sub

Private Sub Command5_Click() '删除记录

If (MsgBox("真的要删除该记录吗?", vbQuestion + vbYesNo, "删除提示") = vbYes) Then RS1.Delete '删除

RS1.MoveNext

If RS1.EOF Then '如果删除的是末记录

RS1.MoveLast

End If

End If

Call DispValue '显示当前记录的值

End Sub

Private Sub Command6_Click() '添加记录

bm = RS1.Bookmark '用书签记下当前记录位置

RS1.AddNew '调用AddNew方法增加新记录

Call EditStatus '置按钮和文本框状态

Call EmptyText '清空文本框

tj = True '是添加新记录

End Sub

Private Sub Command7_Click() '修改记录

Call EditStatus '置按钮和文本框状态

tj = False '不是添加记录,是修改记录

End Sub

Private Sub Command8_Click() '确定操作

Call SetValue '给各字段赋值

RS1.Update '调用Update方法保存

Call OkStatus '置按钮和文本框状态

MsgBox ("保存成功") '给出保存成功提示

End Sub

Private Sub Command9_Click() '取消操作

If (MsgBox("真的要取消修改吗?", vbQuestion + vbYesNo)) = vbYes Then RS1.CancelUpdate

If tj Then '如果是增加新记录

RS1.Bookmark = bm '把记录指针移动到原来的位置

End If

Call DispValue '显示当前记录的值

Call OkStatus '置按钮和文本框状态

End If

End Sub

Private Sub Form_Load()

Connstring = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _

& "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串

'设置连接字符串

With Conn

.ConnectionString = Connstring '给ConnectionString属性赋值

.ConnectionTimeout = 10

.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接End With

MsgBox ("连接成功")

RS1.CursorType = adOpenDynamic

RS1.CursorLocation = adUseClient '游标服务的位置、默认值adUseServer。游标用于:控制记录定位、控制其他用户对数据库所作的更改的可视性、控制数据可更新性

RS1.LockType = adLockOptimistic

RS1.Open "班级信息表", Conn, 3, 3

If RS1.EOF And RS1.BOF Then '如果表为空

MsgBox "表为空,请添加记录"

Else

Call DispValue '显示当前记录的值

End If

Call TextDisable '使文本框不可用

Command8.Enabled = False

Command9.Enabled = False

End Sub

Private Sub DispV alue()

Text1.Text = RS1.Fields("班级编号")

If IsNull(Trim(RS1.Fields("班级名称"))) Then '解决课程名字段值为空移指针出错(无效使用NULL)的问题,其他字段类推。

Text2.Text = ""

Else

Text2.Text = RS1.Fields("班级名称")

End If

Text5.Text = RS1.Fields("所属系")

Text7.Text = RS1.Fields("学生人数")

End Sub

Private Sub SetValue()

RS1.Fields("班级编号") = Text1.Text

RS1.Fields("班级名称") = Text2.Text

RS1.Fields("所属系称") = Text5.Text

RS1.Fields("学生人数") = Text7.Text

End Sub

Private Sub TextEnable() '使所有的文本框可用

Text1.Enabled = True

Text2.Enabled = True

Text5.Enabled = True

Text7.Enabled = True

End Sub

Private Sub TextDisable() '使所有的文本框不可用

Text1.Enabled = False

Text2.Enabled = False

Text5.Enabled = False

Text7.Enabled = False

End Sub

Private Sub EditStatus() '设置在编辑或添加记录时的各控件状态

Command1.Enabled = False

Command2.Enabled = False

Command3.Enabled = False

Command4.Enabled = False

Command5.Enabled = False

Command6.Enabled = False

Command7.Enabled = False

Command8.Enabled = True

Command9.Enabled = True

Call TextEnable

End Sub

Private Sub EmptyText() '清空文本框

Text1.Text = ""

Text2.Text = ""

Text5.Text = ""

Text7.Text = ""

End Sub

Private Sub OkStatus() '设置不在编辑或添加记录时的各控件状态Command1.Enabled = True

Command2.Enabled = True

Command3.Enabled = True

Command4.Enabled = True

Command5.Enabled = True

Command6.Enabled = True

Command7.Enabled = True

Command8.Enabled = False

Command9.Enabled = False

Call TextDisable

End Sub

2、查看课表窗口及代码(以教室课表为例)

Dim Conn As New ADODB.Connection '连接变量

Dim SqlString As String '查询字符串

Dim Connstring As String '连接字符串

Dim RS1 As New ADODB.Recordset '记录集变量

Dim Cmd As New https://www.360docs.net/doc/955678483.html,mand

Private Sub Command1_Click()

Connstring = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _

& "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串

'设置连接字符串

With Conn

.ConnectionString = Connstring '给ConnectionString属性赋值

.ConnectionTimeout = 10

.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接End With

MsgBox ("连接成功")

Command1.Enabled = False '连接按钮不可用

Command2.Enabled = True '显示数据可用

End Sub

Private Sub Command2_Click()

Set Cmd.ActiveConnection = Conn '设置Command对象的ActiveConnection为某个打开的连接

SqlString = "Select 课程名称,教师姓名,上课教室,班级编号,上课时间from 排课表Where 上课教室like '" & Text1.Text & "' " '形成查询字符串1

https://www.360docs.net/doc/955678483.html,mandText = SqlString '设置Command对象执行的命令字符串

https://www.360docs.net/doc/955678483.html,mandType = adCmdText '设置命令类型,表示CommandText中为一命令文本,童P188

Set RS1 = Cmd.Execute '执行命令得到一个结果记录集

Call ShowData(RS1, MSFlexGrid1) '调用过程显示记录集中的数据

Command1.Visible = True

End Sub

Private Sub ShowData(Rs As ADODB.Recordset, Dgrid As MSFlexGrid)

'该过程用来在Dgrid网格中显示记录集RS中的内容

Dim RowNum As Integer

RowNum = 1 '代表MsFlexGrid控件的行数

Dgrid.Rows = RowNum '设置MsFlexGrid控件的行数

Dgrid.Cols = Rs.Fields.Count '设置MsFlexGrid控件的列数

For j = 0 To Rs.Fields.Count - 1 '遍列所有列

Dgrid.TextMatrix(0, j) = Rs.Fields(j).Name '把列名显示在设置MsFlexGrid控件的首行

Next j

Do While Not Rs.EOF '如果不是记录集的结尾

RowNum = RowNum + 1 '行数加1

Dgrid.Rows = RowNum '设置MsFlexGrid控件的行数

For j = 0 To Rs.Fields.Count - 1 '遍列所有列

If Not IsNull(Rs.Fields(j).Value) Then '如果列中的数据不为空,切记不能用如if Var1=Null来判断变量Var1的值是否为Null

Dgrid.TextMatrix(RowNum - 1, j) = Rs.Fields(j).Value '把列的数据显示在MsFlexGrid的相应网格中

End If

Next j

Rs.MoveNext '记录指针下移

Loop

Command2.Enabled = False

End Sub

Private Sub Command3_Click()

Form14.Hide

Form3.Show

End Sub

Private Sub Command4_Click()

RS1.Close '关闭记录集

Conn.Close '关闭连接

Text1.Text = ""

Command1.Enabled = True '连接按钮不可用

Command2.Enabled = True '显示数据可用

End Sub

Private Sub Command5_Click()

DataReport1.Show vbModal, Me

End Sub

3、查看初始化窗口及代码

Option Explicit

Dim SQL As String

Dim Conn As New ADODB.Connection '连接变量

Dim SqlString As String '查询字符串

Dim Connstring As String

Dim msg As String '连接字符串

Private Sub CmdSave_Click()

'进行初始化操作

Dim Counnter As Integer

Connstring = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _

& "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串

'设置连接字符串

With Conn

.ConnectionString = Connstring '给ConnectionString属性赋值

.ConnectionTimeout = 10

.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open 方法打开连接

End With

MsgBox ("连接成功")

ProgressBar1.Visible = True

ProgressBar1.Max = 200

ProgressBar1.Value = ProgressBar1.Min

msg = MsgBox("您确实要初始化这些数据吗?", vbYesNo)

If msg = vbNo Then Exit Sub

For Counnter = ProgressBar1.Min To ProgressBar1.Max

ProgressBar1.Value = Counnter

If Check1.Value = 1 Then '如果班级信息表被选中

'删除全部提醒信息数据

SQL = "delete from 班级信息表"

Conn.Execute SQL

End If

If Check2.Value = 1 Then '如果课程信息表被选中

'删除全部通讯日志数据

SQL = "delete from 课程信息表"

Conn.Execute SQL

End If

If Check3.Value = 1 Then '如果班级课程信息表被选中

'删除全部群组信息数据

SQL = "delete from 任课表"

Conn.Execute SQL

End If

If Check4.Value = 1 Then '如果教师信息表被选中

'删除全部联系人信息数据

SQL = "delete from 教师信息表"

Conn.Execute SQL

End If

If Check6.Value = 1 Then '如果排课信息表被选中

'删除全部联系人信息数据

SQL = "delete from 排课表"

Conn.Execute SQL

End If

Next Counnter

ProgressBar1.Visible = False

ProgressBar1.Value = ProgressBar1.Min

End Sub

Private Sub CmdExit_Click()

'退出操作

Form15.Hide

Form3.Show

End Sub

Private Sub Form_Unload(Cancel As Integer)

'退出操作

Form15.Hide

Form3.Show

End Sub

4、查看自动排课窗口及代码

Dim Conn As New ADODB.Connection '连接变量

Dim SqlString As String '查询字符串

Dim Connstring As String

Dim dlaytime As Integer

Private Sub Command2_Click()

Dim SQL As String

Dim sc As ADODB.Recordset

Set sc = New ADODB.Recordset

SQL = "deletel 排课表"

End Sub

Private Sub Command3_Click()

Form9.Hide

Form3.Show

End Sub

Private Sub Form_Load()

constr = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _ & "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串'定义数据库连接

With Conn

.ConnectionString = constr '给ConnectionString属性赋值

.ConnectionTimeout = 10

.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接End With

MsgBox ("连接成功")

ProgressBar1.Visible = True

ProgressBar1.Max = 200

ProgressBar1.Value = ProgressBar1.Min

End Sub

Private Sub Command1_Click() '开始

Dim SQL, sqll, sqlll As String

Dim rt As New ADODB.Recordset

Dim rm As New ADODB.Recordset

Dim rn As New ADODB.Recordset

Dim rp As New ADODB.Recordset

Dim rq As New ADODB.Recordset

Dim i As Integer

Set Rs = New ADODB.Recordset

SQL = "select * from 任课表"

Set Rs = Conn.Execute(SQL)

ProgressBar1.Max = 100

Do While ProgressBar1.Value < ProgressBar1.Max

Do Until Rs.EOF = True

i = Rs("每周节数")

Do Until i = 0

sqll = "select * from 时间表"

Set rt = Conn.Execute(sqll)

Do Until rt.EOF = True

Set rp = New ADODB.Recordset

coom = "select * from 排课表where [班级编号]='" + Rs("班级编号") + "'and [上课时间]='" + rt("上课时间") + "'"

Set rp = Conn.Execute(coom)

cool = "select * from 排课表where [上课时间]='" + rt("上课时间") + "'and [教师姓名]='" + Rs("教师姓名") + "'"

Set rq = Conn.Execute(cool)

If rp.EOF = True And rq.EOF = True Then

sqlll = "select * from 教室信息表"

Set rm = Conn.Execute(sqlll)

Do Until rm.EOF = True

coon = "select * from 排课表where [上课时间]='" + rt("上课时间") + "'and [上课教室]='" + rm("教室名称") + "'"

Set rn = Conn.Execute(coon)

If rn.EOF = True Then

SQL = "insert into 排课表([课程名称],[教师姓名],[上课教室],[班级编号],[上课时间]) values ('" + Rs("课程名称") + "','" + Rs("教师姓名") + "','" + rm("教室名称") + "','" + Rs("班级编号") + "','" + rt("上课时间") + "')"

Set rq = Conn.Execute(SQL)

Exit Do

Else

rm.MoveNext

End If

Loop

Exit Do

Else

rt.MoveNext

End If

Loop

i = i - 1

Loop

Rs.MoveNext

Loop

ProgressBar1.Value = ProgressBar1.V alue + 1

DoEvents

Loop

MsgBox "自动排课已完成", vbInformation, "提示"

End Sub

Private Sub Timer1_Timer()

If dlaytime >= 100 Then

'Timer1.Enabled = False

Load frmLogin

frmLogin.Show

Else

dlaytime = dlaytime + 1

P1.Value = dlaytime

End If

End Sub

5、查看手动调课窗口及代码

Dim Conn As New ADODB.Connection '连接变量

Dim SqlString As String '查询字符串

Dim Connstring As String

Private Sub Command2_Click()

Form11.Hide

Form3.Show

End Sub

Private Sub Command5_Click()

Dim Conn As New ADODB.Connection '连接变量

Dim SqlString As String '查询字符串

Dim Connstring As String '连接字符串

Dim RS1 As New ADODB.Recordset '记录集变量

Dim Cmd As New https://www.360docs.net/doc/955678483.html,mand

Connstring = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _ & "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串

'设置连接字符串

With Conn

.ConnectionString = Connstring '给ConnectionString属性赋值

.ConnectionTimeout = 10

.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接End With

Set Cmd.ActiveConnection = Conn '设置Command对象的ActiveConnection为某个打开

SqlString = "Select 课程名称,教师姓名,上课教室,班级编号,上课时间from 排课表" '形成查询字符串1

https://www.360docs.net/doc/955678483.html,mandText = SqlString '设置Command对象执行的命令字符串

https://www.360docs.net/doc/955678483.html,mandType = adCmdText '设置命令类型,表示CommandText中为一命令文本,童P188

Set RS1 = Cmd.Execute '执行命令得到一个结果记录集

Call ShowData(RS1, MSFlexGrid1) '调用过程显示记录集中的数据

End Sub

Private Sub Form_Load()

constr = "Driver={SQL Server};Server=PC2012110412ewr.;Database=GXPK;" _ & "uid =sa;pwd=t123" 'SQL Server普通安全模式建立到Pubs数据库的连接的连接字符串'定义数据库连接

With Conn

.ConnectionString = constr '给ConnectionString属性赋值

.ConnectionTimeout = 10

.Open '给连接的ConnectionString属性赋值,然后使用求带参数的Open方法打开连接End With

MsgBox ("连接成功")

End Sub

Private Sub Command1_Click() '调整教室

Dim rt As New ADODB.Recordset

If (Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "") Then

MsgBox ("请输入完整信息")

Else

Set Rs = New ADODB.Recordset

SQL = "select * from 排课表"

Set Rs = Conn.Execute(SQL)

If Rs("上课教室") = Text4.Text Then

MsgBox ("该时间段该教室已被占用,请重新选择")

Text4.Text = ""

Text5.Text = ""

Else

Set Rs = New ADODB.Recordset

SQL = "update 排课表set [上课教室]='" + Text4.Text + "' where [课程名称]='" + Text1.Text + "' and [教师姓名]='" + Text2.Text + "' and [上课时间]='" + Text5.Text + "'"

Set Rs = Conn.Execute(SQL)

MsgBox ("教室调整成功")

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

Text5.Text = ""

End If

End Sub

Private Sub Command3_Click() '调整时间

Dim rt As New ADODB.Recordset

If (Text1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = "" Or Text5.Text = "") Then

MsgBox ("请输入完整信息")

Else

Set Rs = New ADODB.Recordset

SQL = "select * from 排课表"

Set Rs = Conn.Execute(SQL)

If Rs("上课时间") = Text5.Text Then

MsgBox ("该教室该时间段已被占用,请重新选择")

Text4.Text = ""

Text5.Text = ""

Else

Set Rs = New ADODB.Recordset

SQL = "update 排课表set [上课时间]='" + Text5.Text + "' where [课程名称]='" + Text1.Text + "' and [教师姓名]='" + Text2.Text + "' and [教室名称]='" + Text4.Text + "'"

Set Rs = Conn.Execute(SQL)

MsgBox ("时间调整成功")

'Adodc1.Refresh

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

Text4.Text = ""

Text5.Text = ""

End If

End If

End Sub

Private Sub ShowData(Rs As ADODB.Recordset, Dgrid As MSFlexGrid)

'该过程用来在Dgrid网格中显示记录集RS中的内容

Dim RowNum As Integer

RowNum = 1 '代表MsFlexGrid控件的行数

Dgrid.Rows = RowNum '设置MsFlexGrid控件的行数

Dgrid.Cols = Rs.Fields.Count '设置MsFlexGrid控件的列数

For j = 0 To Rs.Fields.Count - 1 '遍列所有列

Dgrid.TextMatrix(0, j) = Rs.Fields(j).Name '把列名显示在设置MsFlexGrid控件的首行

Next j

Do While Not Rs.EOF '如果不是记录集的结尾

RowNum = RowNum + 1 '行数加1

Dgrid.Rows = RowNum '设置MsFlexGrid控件的行数

For j = 0 To Rs.Fields.Count - 1 '遍列所有列

If Not IsNull(Rs.Fields(j).Value) Then '如果列中的数据不为空,切记不能用如if Var1=Null来判断变量Var1的值是否为Null

Dgrid.TextMatrix(RowNum - 1, j) = Rs.Fields(j).Value '把列的数据显示在MsFlexGrid的相应网格中

End If

Next j

Rs.MoveNext '记录指针下移

Loop

End Sub

VB程序设计习题

练习一 一、选择题 1、下面列出的程序设计语言中(A )是面向问题的语言。 A、机器语言 B、汇编语言 C、高级语言 D、0、1二进制语言 解释:机器语言和汇编语言都是面向机器的语言,二进制语言为机器语言,故其为面向机器的语言 2、下面列出的程序设计语言中(C )不是面向对象的语言。 A、C B、C++ C、Java D、VB 3、下列(D )不属于VB 6.0的版本。 A、学习版 B、专业版 C、企业版 D、共享版 解释:VB6.0共有三个版本:标准版、专业版、企业版。而其中的标准版是为初学者了解基于windows的应用程序开发而设计的,也可称为学习版。 二、填空题 1、从程序设计语言发展过程的角度来分类,计算机程序设计语言分:机器语言、汇编语言和高级语言。 2、VB 6.0采用了面向对象、事件驱动(可视化编程)的编程机制。 3、启动VB 6.0后可以从“现存”选项卡选择并打开系统中现存的工程文件。 练习二 一、选择题 1、如果窗体对象的名称为Forma1,Backcolor是窗体对象的一个属性,用来设置窗体的背景色,那么设置窗体背景色为蓝色的语句正确的是( A ) A、Forma1.Backcolor=vbBlue B、Backcolor= vbBlue C、Forma1 =vbBlue D、Forma1′s Backcolor is vbBlue. 2、下面方法中,不能打开编码编辑器的是(D) A、单击“视图”菜单中的“代码窗口”命令。 B、双击窗体设计器的窗体或控件。 C、双击窗体设计器的窗体或控件,单击工程资源管理器中的“查看代码”按钮。 D、双击窗体设计器的窗体或控件,单击标准工具栏中的“代码窗口”按钮。 3 、保存VB应用程序时,下列方法中正确的是(A) A、先保存窗体文件,再保存工程文件。 B、先保存工程文件,再保存窗体文件 C、直接保存窗体文件,系统会自动按顺序先保存窗体文件再保存工程文件。 D、直接保存窗体文件,系统会自动按顺序先保存工程文件再保存窗体文件。 二、填空题 1、VB工程文件的扩展名是工程文件(*.vbp),窗体文件的扩展名是窗体文件(*.frm)。 2、选中工程资源管理器中的窗体对象,再单击按钮可打开窗体设计器。 3、在VB中,按下工具栏中的“启动”按钮或键运行程序。 练习三 一、选择题 1、在设计阶段,当双击窗体上的某个控件时,所打开的窗口是(C) A、工程资源管理器窗口 B、工具箱窗口 C、代码窗口 D、属性窗口 2、新建一个工程,将其窗体的名称属性设置为MyFirst,则默认的窗体文件名为(C) A、Form1. frm B、工程1. frm C、MyFirst.frm D、Form1.vbp 3、下列叙述中正确的是(C) A、只有窗体才是VB中的对象 B、只有控件才是VB中的对象 C、窗体和控件都是VB中的对象 D、窗体和控件都不是VB中的对象 解释:窗体时VB中最常见的对象,而控件是VB中预先定好的、程序中能够直接使用的对象。 4、设置窗体最小化时的图标可通过(A )属性来实现。 A、MouseIcon B、BackStyle C、Icon D、Picture 5、设置标签边框的属性是( B ) A、BorderStyle B、BackStyle C、AutoSize D、Alignment 6、文本框没有( D )属性。 A、Enable B、Visible C、BackColor D、Caption 7、下列操作中不能触发命令按钮的Click事件的是( B ) A、在按钮上单击鼠标左键 B、在按钮上单击鼠标右键 C、把焦点移至按钮上,然后按回车键 D、使用该按钮的快捷键

VBProject代码操作代码之常用语句

一、增加模块 1.增加一个模块,命名为“我的模块” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).Name = "我的模块" 系统常量vbext_ct_StdModule=1 2.增加一个类模块,命名为“我的类” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_ClassModule).Name = "我的类" vbext_ct_ClassModule=2 3.增加一个窗体,命名为“我的窗体” ThisWorkbook.VBProject.VBComponents.Add(vbext_ct_MSForm).Name = "我的窗体" vbext_ct_MSForm=3 二、删除模块 1.删除“模块1” ThisWorkbook.VBProject.VBComponents.Remove hisWorkbook.VBProject.VBComponents("模块1") 2.删除窗体“UserForm1” ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("UserForm1") 3.删除类模块“类1” ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("类1") 4.删除所有的窗体 Sub RmvForms() Dim vbCmp As VBComponent For Each vbCmp In ThisWorkbook.VBProject.VBComponents If vbCmp.Type = vbext_ct_MSForm Then ThisWorkbook.VBProject.VBComponents.Remove vbCmp Next vbCmp End Sub 相关: 工作表和ThisWorkbook的模块类型为vbext_ct_Document=100 三、增加代码 1.在“模块1”中插入代码 如果需要在“Sheet1”、“Thisworkbook”、或“Userform1”中操作,用只需将下面的“模块1”换成相应的名称即可。 方法1: 在模块的开始增加代码,增加的代码放在公共声明option,全局变量等后面。 Sub AddCode1() ThisWorkbook.VBProject.VBComponents("模块1").CodeModule.AddFromString _ "sub aTest()" & Chr(10) & _ "msgbox ""Hello""" & Chr(10) & _ "end sub" End Sub

课程设计(自动排课系统)

2008~2009学年度《WEB 程序设计》 课程设计 班级:05网络3班 学号:090205338 姓名:周秋艳 2008年12月17日

基于WEB的高校教师排课系统 一、用户需求分析(10分) 学校教务的管理作为高校教育信息化工作中的一项重要工作,如何构建一个具有开放性、实用性和灵活性的平台,是一个值得探讨的课题。其中,作为学校教务重点环节之一的排课系统也尤为重要。 先前,在统筹安排各班级上课的时间需要人工实现,而且经常会出现同时有多个班级要使用教室的冲突。既耗时又耗精力,随着计算机技术的不断发展,计算机技术在各领域的充分完美应用,以学校的教务管理为该系统的应用背景,开发一个教室智能排课系统。 此系统开发主要包括后台数据库的建立和前端应用程序的开发两个方面。系统采用Visual Basic 6.0开发工具和SQL Server 2000作为后台数据库开发的应用软件。该系统实现上机时间的安排,课程的安排,教室的安排,以及它们之间的不冲突和资源的高效利用;这更切合学院教学需要,降低了排课管理工作的工作量和节省了时间,同时课程安排完成后,学院可迅速获得课表情况信息,为教学工作带来方便。本系统界面友好,操作简单,使用方便。 二、系统总体设计(15分) 1.系统功能描述 1.1 基本信息管理:教师、教室、班级、课程、教学任务等数据的输入、编辑功能; 1.2 数据处理:自动排课、课表修改、删除功能;

1.3 数据输出:桌面查询教师、教室、班级课程表,报表打印教师、 教室、班级课程表; 1.4 帮助:指导用户使用该系统及其他相关说明。 2 系统功能设计 分析目前市场上流行的各种排课软件,它们都具有比较完善的功能,但在真正的排课算法上都会有些问题,因为排课算法最关键的问题是如何解决各式各样的冲突。在做需求分析的过程中,通过调查得知目前排课人员对排课算法的主要要求有: 2.1 怎样的合班组合能避免冲突? 目前采取的方式是相同或相近的专业的班级组合。 2.2 什么地方有空能排课? 对教室和班级而言是查空,对教师而言是有无排课需求。 2.3 有两个以上的空哪一个更好? 是要考虑离散和平衡问题。 2.4 排课前如何考虑教师宏观利用问题? 例如:多媒体大班课:大学英语、高等数学尽量排在上午, 思想道德修养、马克思主义哲学原理等尽量排在下午。 2.5 对于数量巨大的信息,系统仍具有较快的响应速度和较小的 系统开销。 三、系统功能模块分析(25分) 详细分析各功能模块之间的关系,以及各功能模块下的子模块构成。

智能排课系统3复习过程

综合实验报告 题目:智能排课系统 学生姓名: 专业:信息管理与信息系统 班级:信管1002班 学号: 1002100206

一、概述 (一)开发背景 随着信息技术的飞速发展,各个行业的信息化势在必行。正所谓“科学技术是第一生产力”,科技的进步大大地提高了生产率。然而,在高校这个知识密集的地方,如何才能提高办学效率,更好地完成教学任务,跟上社会发展步伐,这是一个摆在教学工作者面前的一个迫切的问题。应用信息化来改造传统的教学管理模式是一个重要途径。 近几年来,随着各高校办公自动化工作的推进,教务管理自动化也被摆上了日程。在教务工作中占有很大比重的一项就是每学期的课程排定工作。由于教工、教室和设备的相对紧张,如何进行合理地安排和分配,从而充分利用教学资源是我们不得不面对的问题。而人工进行排课不仅任务重,效率低,而且易出错,难于维护,想要排出一张各方面都满意的课表非常困难。并且随着高校规模的扩大手工排课的难度和工作量呈几何级数增长。 排课系统正是为了减轻教务人员的工作量,实现教务工作自动化,解决排课这一老大难问题的教务办公软件。尤其针对高校的排课一直都没有很好的解决方法,但是此问题又是每个学校在每个学期都会碰到的必要行政作业。本文在相关理论的指导下,在分析以往一些排课软件的基础上,提出一个高校通用排课系统的设计方法,并对一些具体的问题给出相应解决方案。但是,由于技术、经验的有限和数据量过大,目前我们很难做出一个满足所有需要的排课系统。因为它不仅要考虑到教室冲突问题和教师冲突问题,还要考虑到分段课、单双周课时的资源利用问题;另外由于高校的教学特点,还要处理合班课、分班课、体育课与选修课等特殊课程。针对这些问题,在此专门对数据库设计作了一些探索,并于架构的选择和模块的划分上经过精心调整,在菜单的设计上也体现了人性化的操作。该设计贴近用户需求,功能完整,架构合理,并用大量的框图模型体现了系统的规划。 (二)项目的任务及意义 当今学校内部没有完善的高校排课系统,管理水平差,学校课程不能得到合理分配。迫切需要提高现代化管理水平、管理质量和管理高校课程。高校排课系统的初步现代化的开发和使用,能够大大提高学校管理者的工作效率,节省成本提高经济效益。它把从事教务管理的人员从繁重的手工操作中解脱出来,用更多精力从事创造性的管理活动和其它重要的活动中去,从而达到节省人力、物力,财力的目标;它能使决策、计划和其它管理活动更加科学、精确、灵活。 本软件主要是适用于高等学校教务部门的办公软件,运用此软件,可以免去工作人员繁忙而枯燥的手工排课过程,直接通过计算机进行排课。 业务范围涉及到课程、上课班级/实验班级/上机班级、任课指导老师/周次/节次、教学场地(教室,实验室,机房等)等相关因素。 二、系统规划 (一)需求分析 自动课程编排系统需要满足来自三方面的需求,这三个方面分别是学生、教师和管理员。学生的需求是查询院系的课程情况及学生信息的修改;教师对选课系统自动排课情况进行操作,同时形成自动排课查看确认;选课管理员的功能最为复杂,包括对学生、教师、选课进行管理和统计,及系统状态的查看、维护并生成选课报表。学生可以直接查看选课情况,学

VB程序设计的常用算法填空题

VB程序设计的常用算法 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If Then Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 m=inputBox("m=") n=inputBox("n=") nm=n*m If m < n Then r=m mod n Do While m=n n=r

vb代码大全

用VB5实现窗口图象缩放、滚动技巧 成都理工学院计算机工程系 洪志全 ---- Visual Basic 是Windows 平台中最常用的应用软件开发语言, 窗口图像缩放、滚动是图像处理、多媒体数据库等应用软件开发中的基本功能。本文将介绍如何用VB 5.0 实现地窗口图像缩放和滚动技巧, 供读者在各种语言系统开发中参考。 ---- 一、获取图像 ---- 本文所介绍的图像缩放并没有对真正的图像进行缩放, 而是复制一幅窗口图像的真实画面, 对这个窗口图像附本进行局部缩放和滚动, 获取窗口图像可使用Windows 的API 函数来实现。具体来说, 实现窗口图像缩放、滚动需要用GetDeskTopWindow() 函数获取桌面窗口句柄, 再通过GetDC() 函数转换为描述表句柄, 则用BitBlt() 函数把桌面图像复制到任意图形容器控件中, 桌面图像复制完成后, 再用ReleaseDC 释放窗口描述表, 各API 函数的具体使用方法参见本文的例子程序。 ---- 本文所用的API 函数包含在WIN95/98 的GDI32.DLL 和USER32.DLL 动态链接库中, 在使用时可通过VB5.0 的TEXT VIEWER 复制到所开发的应用程序中。 ---- 二、图像缩放 ---- 图像缩放显示的基本原理就是把原图像的一部分缩放后再送入窗口的图形容器控件中, 在VB 中可用内部命令PaintPicture 来进行, 语法格式为: PaintPicture Pic,DestX,DestY,DestWidth, DestHeight,ScrX,ScrY,ScrWidth,ScrHeight ---- 其中,Pic 为图片对象, 如图形控件对象等; DestX,DestY为目标图像起始坐标; DestWidth,DestHeight为目标图像幅面尺寸; ScrX,ScrY为源图像起始坐标; ScrWidth,ScrHeight为源图像剪裁尺寸。 ---- 该命令就是把一个源图像资源任意复制到指定的区域, 其功能相当于API 函数的BitBlt, 但使用更简单, 若复制时改变源图像的ScrWidth,ScrHeight 或目标图像的DestWidth,DestHeight 可使复制后的图像尺寸发生变化, 实现窗口图像的缩放显示。若ScrWidth,ScrHeight 或

高校自动排课系统毕业设计

自动排课系统 摘要:制定一个学校的排课计划是一项非常耗时且相当辛苦的工作,而且它还得由有学校排课工作经验或者这方面知识的人才能做好。在一所高校时一个课程表的制定是一个难题,因为在有关课程表的问题上有很多的限制条件得考虑,还有大量的数据空间被挖掘,即便你的输入数据量并不是实际意义上的大批量。 课程编排系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以自动课程编排系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。 本系统经过测试,运行稳定,可投入使用。 关键字:排课管理,VB,数据库

Abstract:Formulates a school platoon class plan is an item consumes extremely when also the quite laborious work, moreover it also must by have the school row of class work experience or this aspect knowledge talented person can complete. When a university a class schedule formulation is a difficult problem, because has the very many limiting condition in the related class schedule question to result in the consideration, but also has the massive data space to excavate, even if your input data quantity is not in the practical significance mass. The curriculum arranges the system is a school essential part, Its content said regarding the school policy-maker and the superintendent all very important, Therefore the automatic curriculum arranges the system to be supposed to be able to provide the sufficient information and the quick inquiry method for the user. But the people have since always used the traditional artificial way management document file, this management way has many shortcomings, For example: The efficiency low, the secrecy is bad, Moreover the time one is long, Will produce the massive documents and the data, This regarding the search, the renewal and the maintenance has all brought many difficulties. Along with science and technology unceasing enhancement, The computer science is mature day after day, Its formidable function had profoundly known for the people, t entered the human society each domain and is playing the more and more vital role. This system after the test, the movement is stable, may put into the use. Key words: Curriculum management, VB, database

VB程序设计知识点归纳

第一章 1 从功能上讲,Visual Basic 6.0有3种版本,即:学习版、专业版、企业版 2 与传统的程序设计语言相比,Visual Basic最突出的特点是事件驱动编程机制。 3 Visual Basic 6.0集成环境的主窗口中含有标题栏、菜单栏、工具栏 4用标准工具栏中的工具按钮不能执行的操作是打印源程序。 5关于Visual Basic"方法"的概念错误的是方法是对事件的响应 6在Visual Basic中,称对象的数据为属性 7Visual Basic应用程序可以用解释方式执行也可以用编译方式执行 第二章 1 计时器控件的Interval属性用于设置Timer事件发生的时间间隔,为了暂时关闭计时器,应把该计时器的Enabled 属性设置为False ,如果要求设置定时器时间间隔为1秒钟,那么它的Interval属性值应该等于1000 2 利用Ctrl + G操作可以打开立即窗口。 3 假定窗体上有一个标签,名为Lable1。为了使该标签透明并且没有边框,则正确的属性设置为:Lable1.BackStyle = 0 Lable1.BorderStyle = 0 4在设计阶段,当双击窗体上的某个控件时,所打开的窗口是代码窗口 5 在Visual Basic中,窗体文件的扩展名为FRM 6 窗体的Name属性指定窗体的名称,用来标识一个窗体 7 改变控件在窗体中的上下位置,应修改该控件的属性是Top 8 表示滚动条控件取值范围最大值的属性是Max 9 如果要改变窗体的标题,则需要设置的属性是Caption 10 在文本框(Text)中,通过ForeColor属性来设置字体颜色 11 若要求从文本框中输入密码时在文本框中只显示*号,则应当在此文本框的属性窗口中设置Passwordchar属性值 为* 12 能够改变复选框中背景颜色的属性是Backcolor 13 图片框是不具有Picture属性的对象 14 窗体的Name属性指定窗体的名称,用来标识一个窗体 15 要想返回文本框中输入的内容则可利用text属性进行编程 第三章 1用于从字符串左边截取字符的函数是Left( ),设a="Visual Basic",使b="Basic"的语句是b=Left(a,8,5)。 2下列符号中哪个是VB程序中合法的变量名:A ab7 B 7ab C If D a*bc (A)数字开头,关键字,* 3X是小于100的非负数,用VB表达式表达正确的是0<=X and X<100 4设有如下变量声明Dim TestDate As Date 为变量TestDate正确赋值的表达方式是 TextDate=#1/1/200 2# 5表达式4 + 5 \ 6 * 7 / 8 Mod 9的值是5,设a=3,b=5,则表达式(a>b)Or(b>0)值为真。5/5.25 为1 如果除数与被除数不是整数时,系统会自动对其进行取整运算,取整是有规律的:如果整数部分为偶数,大于 0.5的就进位,小于等于0.5的就直接把小数去掉,5舍6入;如果整数部分为奇数,4舍5入。例如: 5\2.5等价于5\2 5\2.6等价于5\3 6函数String(n,"str")的功能是返回由n个字符组成的字符串 7设有如下声明: Dim X As Integer 如果Sgn(X) 的值为-1,则X的值是小于0的数Sgn(3-5)=-1 Sgn(5-3)=1 8Integer类型的数据由2字节组成,Long类型的数据由4字节组成。 9已知X<Y,A>B,正确表示它们之间关系的式子是Sgn(Y-X)-Sgn(A-B)=-2 10在一个有①逻辑运算②算术运算及③关系运算混合在一起的表达式(无括号)中,其运算顺序为②③①

vb常用程序代码

1、求半径为r的圆的面积,要求用户从键盘输入半r。 程序代码: Private Sub Form_click() Const PI = 3.14 Dim r% Dim s! r = InputBox("请输入半径r的值:", "求圆的面积") s = PI * r * r Form1.FontSize = 16 Print "半径是" + Str(r) + "的圆的面积是" + Str(s) End Sub 2、输入三个整数,从小到大顺序输出。 程序代码: Private Sub Form_click() a = InputBox("a") b = InputBox("b") c = InputBox("c") Print "排序前:"; a, b, c If a > b Then t = a: a = b: b = t If a > c Then t = a: a = c: c = t If b > c Then t = b: b = c: c = t Print "排序后:"; a, b, c End Sub 3、输入三个整数,从大到小顺序输出。 程序代码: Private Sub Form_click() a = InputBox("a") b = InputBox("b") c = InputBox("c") Print "排序前:"; a, b, c If a

VB常用命令大全

常用命令 FontStrikeThru属性是逻辑型,决定对象上正文是否加一删除线。 FontItalic属性是逻辑型,决定对象上正文是否是斜体。 窗体的其它常用属性 2.Icon 控制图标属性:返回或设置窗体左上角显示或最小化时显示的图标。 注意:此属性必须在ControlBox属性设置为Ture才有效 3.ControlBox控制菜单框属性:设置Ture为有,如设置为False则无控件菜单,同时窗体也无最大化按钮和最小化按钮,即使MaxButton属性和MinButton属性设置为Ture。 5. BorderStyle:边框风格, 通过改变BorderStyle 属性,可以控制窗体如何调整大小。 0-None:无边框; 1-Fixed Single:单线边框,不可以改变窗口大小; 2-Sizable:双线边框,可以改变窗口大小; 3-Fixed Double:双线框架,不可以改变窗口大小。 4-Fixed Tool Window:窗体外观与工具条相似。有关闭按钮,不可以改变窗口大小。 5-Sizable Tool Window:窗体外观与工具条相似。有关闭按钮,可以改变窗口大小。 6. WindowsState属性 用来设置窗体的运行状态。 0-Normal:正常窗口状态,有窗口边界; 1-Minimized:最小化状态,以图标方式运行; 2-Maximized:最大化状态,无边框,充满整个屏幕。 7. AutoRedraw属性 该属性决定窗体被隐藏或被另一窗口覆盖之后,是否重新还原该窗体被隐藏或覆盖以前的画面。即是否重画如Circle、Line、Pset和Print等方法的输出。 当为True时,重新还原该窗体以前的画面。 当为False时,则不重画AutoRedraw属性。 4 Resize事件 无论是因为用户交互,还是通过代码调整窗体的大小,都会触发一个Resize事件。 5 Activate事件:当窗体由非活动窗体变为活动窗体,即当窗体得到焦点时触发该事件。窗体常用的方法有: 打印输出Print 移动Move 清除Cls 显示Show 隐藏Hide等方法。 方法的使用的形式: [对象.]方法[参数] 1.Print方法 形式: [窗体名.]Print[{Spc(n)|Tab(n)}][表达式列表][;|,] 作用: 在对象上输出信息 Spc(n)函数:插入n个空格,允许重复使用。 Tab(n)函数:从窗体第n列开始输出,允许重复使用。 ;(分号):光标定位上一个显示的字符后(紧凑格式)。 ,(逗号):光标定位在下一个打印区的开始位置处。每个打印区占14列(标准格式)。无;,换行。

智能排课系统vb代码

Vb核心代码设计 一:输入界面与代码(以班级表为例) DimConnAsNewADODB.Connection'连接变量DimSqlStringAsString'查询字符串DimConnstringAsString'连接字符串 DimRS1AsNewADODB.Recordset'记录集变量 Dimbm'定义一个变量用来存放添加记录时原来记录的位置DimtjAsBoolean PrivateSubCommand10_Click() Form4.Hide Form3.Show EndSub PrivateSubCommand1_Click()'移到首记录 RS1.MoveFirst Command1.Enabled=False Command2.Enabled=False Command3.Enabled=True Command4.Enabled=True CallDispValue'显示当前记录的值 EndSub PrivateSubCommand2_Click()'前移 RS1.MovePrevious

IfRS1.BOFThen RS1.MoveFirst Command1.Enabled=False Command2.Enabled=False EndIf Command3.Enabled=True Command4.Enabled=True CallDispValue'显示当前记录的值 EndSub PrivateSubCommand3_Click()'后移 RS1.MoveNext IfRS1.EOFThen RS1.MoveLast Command3.Enabled=False Command4.Enabled=False EndIf Command1.Enabled=True Command2.Enabled=True CallDispValue'显示当前记录的值 EndSub PrivateSubCommand4_Click()'移到末记录 RS1.MoveLast Command3.Enabled=False Command4.Enabled=False Command1.Enabled=True Command2.Enabled=True CallDispValue'显示当前记录的值 EndSub PrivateSubCommand5_Click()'删除记录 If(MsgBox("真的要删除该记录吗?",vbQuestion+vbYesNo,"删除提示")=vbYes)Then RS1.Delete'删除 RS1.MoveNext IfRS1.EOFThen'如果删除的是末记录 RS1.MoveLast EndIf EndIf CallDispValue'显示当前记录的值 EndSub PrivateSubCommand6_Click()'添加记录 bm=RS1.Bookmark'用书签记下当前记录位置

高效智能排课系统

目录 摘要 (1) 引言 (1) 1.绪论 (1) 1.1课题背景 (1) 1.2国内外研究的现状 (2) 1.3课题设计的意义 (2) 1.4设计方法 (2) 2.系统需求分析 (3) 2.1编程的环境的选择 (3) 2.2系统功能需求分析 (3) 2.3系统模块和流程图 (3) 3.数据库设计与系统功能的设计 (7) 3.1数据库的逻辑实现 (7) 3.2数据库的创建 (7) 3.3系统整体功能的设计 (8) 3.4系统登陆界面的设计 (9)

摘要:本论文的主要工作是设计并实现高效的智能排课系统。使用计算机自动实现课程的查询、教师的查询以及教室的查询,并且能够自动生成课程表。高校智能排课系统平台采用Windows 7操作系统,数据库主要采用SQL Server 2005,并采用Java语言实现编程。本系统运用管理员、教师、学生三级授权方式,快速的实现排课的功能,大大提高了排课的工作效率。 关键词:SQL Server;Java;智能排课 引言 随着计算机科学技术的高速发展,计算机意境成为我们学习和工作中不可缺少的重要部分,它被应用于很多领域,它已经成为了人们生活中不可缺少的一部分,我们生活的各个方面都有它的存在。这是因为计算机具有以下几个特点:第一,计算机可以为人们的工作和生活提供方面;其次,使用计算机可以节省许多的纸质文件、节省了大量的存储空间;第三,计算机可以缩短人们的工作时间;第四,计算机可以对文档进行加密,让文件更安全等等。就排课工作而言,我国各个高校使用传统手动排课的管理方法,就是一件很复杂的工作,这篇论文充分利用了计算机的特点,使用Java语言开发一个相对便利的高校排课系统。 1.绪论 1.1课题背景 排课管理系统是各个大学中不可缺少的重要组成部分,它的内容的优劣对于学校的学生、老师、决策者和管理者来说都是至关重要的。智能排课管理系统必须能够做到为用户提供及时准确的课程信息、快捷的课程查询手段、快速的生成课程表的这三项基本功能。然而,一直以来各个学校都使用着最为传统的人工管理方式进行排课,这种传统的人工排课方法不但但是效率低、保密性差的特点,并且很难进行修改。再加上时间长了之后,会产生大量的课程文件和课程数据,如果人们要查找课程信息或者修改课程信息就需要查找大量的文件。现代社会,计算机技术不断的在发展,也不断的在成熟,使用计算机进行智能排课,具有着人工排课无法相比较优点。例如:查询课程信息方便、存储课程容量大、保存时

VB编程常用代码 大一练习专用

A,B,C排序由大到小 Dim a As Single,b As Single,c As Single a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) If b>a Then d=a:a=b:b=d End If If c>a Then d=a:a=c:c=d End If If c>b Then d=b:b=c:c=d End If Text4.Text=a Text5.Text=b Text6.Text=c End Sub Private Sub Command2_Click() Text1.Text="" Text2.Text="" Text3.Text="" Text4.Text="" Text5.Text="" Text6.Text="" End Sub 计算a+b Private Sub Command1_Click() Text4.Text=Val(Text2.Text)+Val(Text3.Text) Text1.Text="欢迎新同学" End Sub 清除

Private Sub Command2_Click() Text1.Text="" Text2.Text="" Text3.Text="" Text4.Text="" End Sub 奇偶数显示器 显示 Private Sub Command1_Click() Dim a As Integer a=Val(Text1.Text) If a/2=Int(a/2)Then Text2.Text="您输入的数是偶数" Else Text2.Text="您输入的数是奇数" End If End Sub 清除 Private Sub Command2_Click() Text1.Text="" Text2.Text="" End Sub 奇偶数判断 Dim a,b As Integer Dim result As Integer a=Val(InputBox("请输入一个整数","数的输入",300,400)) b=Val(InputBox("请输入一个整数","数的输入",300,400)) If a/2=Int(a/2)Then result=MsgBox("您输入的数:"&a&"是一个偶数",1,"判断结果") Form1.Print rusult Else m="您输入的数:"&a&"是一个奇数" result=MsgBox("您输入的数:"&a&"是一个奇数",1,"判断结果") Form1.Print result End If If b/2=Int(b/2)Then result=MsgBox("您输入的数:"&b&"是一个偶数",1,"判断结果") Form1.Print rusult Else result=MsgBox("您输入的数:"&b&"是一个奇数",1,"判断结果")

高校实验课排课系统的设计与研究

高校实验课排课系统的设计与研究 【摘要】为了充分利用实验室资源,提高实验室工作效率,本文设计了一个高校实验室排课系统。该系统利用Visual Basic作为开发语言,集高校实验课教学安排、实验课排课、实验室预约管理和实验课课表查询等功能为一体。系统实现了将专任教师、教授课程、上课地点这三个因素与上课时间的匹配问题,极大地优化了高校实验室资源分配。中国论文网/8/view-12933355.htm 【关键词】实验室;排课系统;Visual Basic 1 研究背景及现状 排课是高校实现教学任务顺利进行的前提。目前大学生数量与日剧增,高

校开设课程更加多元化,排课的难度变得越来远大。实验中心作为高校教学环境中重要的一环,其排课也面临着诸多问题[1]。传统手动排课多采用实验员制作表格的方式,专任教师到实验员处预约实验课程时间及地点,由实验员统一调度分配。当确定好实验课上课地点时,再由实验员通知专任教师。这种方法工作量巨大,繁琐,而且无法对整个实验中心的教室资源做整体分配,造成资源浪费。人工排课出现错误的几率极大,一旦出错,将导致实验教学任务无法顺利进行,无法维持正常的教学秩序,造成教学事故,影响教学质量[2]。 目前,已存在一些排课系统,如基于贪婪算法的排课系统[3],基于遗传算法的排课系统,人工智能排课系统[4]。这些排课系统都是针对高校基础课程的排课系统。实验课与理论课相比,具有实验课时少,上课时间零散,需按照实验项目授课等特殊性,因此,目前针对基础课的排课系统并不适用于实验课排

课。 本文针对实验课课程的特殊性,设计了一个排课系统。该系统将专任教师、教授课程、上课地点这三个因素与上课时间相匹配,充分地利用了实验室资源,实现了资源分配的最优化,极大地提高了实验室工作效率,调高了实验教学质量。 2 实验课排课系统的设计与实现 2.1 实验课排课系统的功能分析 高校实验课排课管理分为高校教务处、二级学院和实验中心三个层次。高校教务处负责下发每个学期的实验教学任务,二级学院负责审核和实验教学任务,实验中心负责实验课排课的具体安排和调度。根据高校实验课排课的管理模式,该排课系统主要分为以下几个模块:系统管理模块、教学任务准备模块、实验课程排课模块、实验室预约管理模块、实验课表查询模块、实验课工作量统计模块和冲突预警模块。各模块功能如下:

常见vb程序设计代码

常见vb程序设计代码 作者 : 窦振山 1、猴子每天吃掉的桃子是所有桃子的一半多一个,到第七天发现只剩下一个了,问最开始有几个桃子?、、 Private Sub Command1_Click() Dim m(1 To 7) m(1) = 1 For i = 2 To 7 m(i) = (m(i - 1) + 1) * 2 Next For i = 1 To 7 Print "第" & i & "天的桃数是"; m(i) Next End Sub 2、百元百鸡问题:公鸡三元一只,母鸡两元一只,小鸡一元两只,现用百元买一百只鸡Private Sub Command1_Click() Dim x As Integer Dim y As Integer For x = 1 To 100 For y = 1 To 100 If 3 * x + 2 * y + (100 - x - y) / 2 = 100 Then Print "公鸡 "; x; "母鸡"; y; "小鸡"; 100 - x - y End If Next Next End Sub 1、综合运用一维数组、二维数组、动态数组和控件数组的有关知识编写程序,要求能输入学生的学号、姓名、性别、年龄等个人简况,输入的学生人数不限,并可按学号或姓名查询。界面设计用到了三个command即“添加”、“查询”和“退出”,八个label和四个text 用来输入学号、姓名、成绩和年龄,一个frame,一个picturebox图片框用来显示结果 其程序代码设计如下: Private Type stu id As Integer nam As String sco As Single age As Integer End Type Dim students(100) As stu Dim s As Integer Private Sub Command1_Click() Static i As Integer If Text1.Text = "" Then

学生排课系统分析报告与设计

1研究背景 课程表是一个学校日常教学工作和其他各项活动的指挥调度表。它不仅是学生和教师上课的依据,对学校其他工作的统一安排也有直接影响。高校排课工作是执行教学计划、实现学校培养目标的重要一环,是学校教学教务管理工作中最基本而又非常重要的一项,它是学校建立稳定的教学秩序的最根本的保证,是学校贯彻教育方针、培养合格人才的具体体现,并对学生的学习效果和课堂的教学质量有直接的影响。它不仅可以从侧面反映出学校领导的办学思想,也能体现出学校教育教学管理的能力和水平。 课程表是地方高校开展教学活动的指令性文件。在地方高校的传统排课方式下,课表编排主要是靠手工完成的,排课人员需要花费大量的时间和精力,并且容易出错,同时手工操作也不能满足资源需求的经常变化。 当前地方高校普遍利用计算机进行自动排课,不但能使教务人员从繁杂的排课任务中解脱出来,提高教务管理工作效率,而且能改善教学管理质量,合理、高效地利用有限的教学资源,使学校的各种教学活动、教学管理及其它相关的工作能够有序、规地进行,维持正常的教学秩序,同时对推动教务管理的信息化起到非常重要的作用。由此出现了众多的计算机排课软件。 但是当前地方高校再采用计算机进行排课过程中,大多采用传统方法进行程序设计,把程序作为系统核心。系统中所使用的排课数据主要考虑了一般性排课原则,而对于不同学校的特点考虑不足,特别是学生层次的关注度不够。并且数据与程序结合过于紧密,程序的修改维护有很大难度,不便于系统扩充和升级,因此限制了系统的通用性。而且在发生特殊情形下,只能依赖于人工调整,虽然有很多地方高校先后购买过多个排课软件,但都不能圆满地解决课表编排的问题,造成了大量的浪费。同时课表编排问题涉及教师、教室、学生、课程及教学时间等多种因素的组合规划,具有规模大、约束条件复杂以及不断变化等特点,根据上文的分析,缺乏人性化,没有对学校的学生进行考虑是问题存在的原因。 2排课系统分析 2.1 排课系统业务描述 排课是每个学期都必须面临的一件繁重的日常教务工作,是为下学期教学工作能顺利组织实施的一个前提条件。排课管理是高校每个学期教学教务管理工作的一个主要容,是整个综合教学教务管理系统中必不可少的部分。排课也是一项复杂而精细的工作,需要考虑的因素很多,涉及到方方面面,归纳起来主要有五方面相互作用、相互关联的因素,即课程、教师、时间、班级以及教室。如何把各要素科学、规、高效地进行优化组合,以保证教学秩序的稳定,促进教学质量的提高,这是每所高校都面临的课题。本论文以理工大学排课为背景,对校院两级排课进行设计。 2.2排课业务流程 学院先制定各个专业的教学计划,根据教学计划的要求、实际招生人数、教师资源情况等,上报每学期要开设的课程,教务处审核学院上报的开课计划,审核通过后,根据学院上报的开课计划,将教室资源进行分配到各学院或者作为公用教室,由教务处对公共课程(包括公共英语、马列课、公共体育、计算机基础、高等数学等)进行分组分班处理,并对各公共课程教学班安排时间和教室,然后对各个专业的开课计划设置开始排课标志,由各学院在分配到各学院使用的教室资源中安排本学院专业课的上课时间和教室。其业务流程如下图所示: 2.3 排课原则 课程、时间、教师、班级、教室是排课的五大基本要素,排课实际上是对这五个组成要素进行优化组合,使之符合教育、教学规律,符合学生身心发展。编排者必须对这五要素的信息有较全面的了解: (1)课程包括课程名称、课程性质(如:学科基础课、专业必修课、专业选修课、公共必修课、通识教育课、实验课、实践课等)、总学时、理论学时、实验(实践)学时、周学时以及课程的授课方式(如:多媒体教学、普通教学、双语教学等)。 (2)时间包括每个学期的教学周数、每周上课的天数、每天上课的节次等。 (3)教师包校教师和外聘教师,公共课和专业课教师,教师的所在院系、职称、学历、进修情况等。(4)班级:所在院系、年级、专业、班级人数。 (5)各校区教室的楼房信息,如:所在校区、门牌号、所在楼层、教室容量、教室类型、所属部分情况。3排课系统管理