当前位置:首页 > (完整版)计算机实验室排课系统的设计与实现毕业设计
姓名 教师编号
字符型 字符型
30 15
表 3.5 学生信息表
是 是
字段名称 身份 班级号 学号 姓名 密码
数据类型 整型 整型 字符型 字符型 字符型
长度 4 4 15 10 15
主键 是
允许空 否 是 是 是 是
表 3.6 课表
字段名称 身份 日期 学期 教师编号 教室编号 班级编号
数据类型 整型 整型 整型 字符型 字符型 字符型
长度 4 4 4 15 15 15
表 3.7 管理员信息表
字段名称 身份 用户名
主键 是
允许空 否 是 是 是 是 是
数据类型 整型 字符型
长度 4 16
主键 是
允许空 否 是
用户密码 字符型 16 是
4 系统实现
4.1 系统开发平台介绍
开发工具:Microsoft Visual Basic 6.0 中文企业版,VS2010 数据库管理系统(DBMS): SQL server2008 4.2 系统具体实现
4.2.1 系统登录主界面的实现
系统登录界面供三种权限的用户登录:管理员,教师,学生,以及可实现对实验室课表的查询和打印。管理员在输入自己的帐号和密码之后进入系统,可对整个排课业务进行操作,待排课都完成后,教师输入自己的名称和密码,可进去查询自己的课表,并可对该课表进行打印;学生根据自身的权限,可进入系统查询和打印自己班级的课表[10]。教师,学生还可以查询和打印某个实验室的课表。
该页面文件为Login.aspx,其界面如图4.1所示。
图 4.1 实验室排课系统登录主界面图
管理员输入自己帐号和密码后点击“登录”按钮触发事件如下:
Sub login_Click(ByVal sender As Object, ByVal As EventArgs) If username.Text = \ msg.Text = \帐号和密码不能为空\ Else
Dim MyCommand As New SqlCommand(InsertCmd, myConnection)
Dim dr As SqlDataReader MyCommand.Connection.Open()
dr = MyCommand.ExecuteReader() If dr.Read() Then
if Trim(dr(\ Dim cookie As HttpCookie
cookie = New HttpCookie(\ Response.AppendCookie(cookie)
Dim MyCookie As New HttpCookie(\ MyCookie.Value = dr(\ MyCookie.Expires = DateTime.Now.AddHours(1) Response.Cookies.Add(MyCookie) Response.Redirect(\ Else msg.Text = \密码错误\ End If
Else msg.Text = \帐号错误\ MyCommand.Connection.Close() End If End Sub
4.2.2课表自动编排的实现
该页面为实验课表自动编排页面,再经过对排课基本信息的录入,确保无误之后,排课算法可自动生成一个初排课表。在该课表中,显示出了实验课程编排后包含的一些必须因素,如上课地点,上课班级,授课教师
和上课时间(包括星期和节次)。考虑到周末教师和学生需要时间来休息或者处理自己的一些事情,故周六和周日不安排实验课;同时考虑到学校第一大节课都是排一些公共课或是一些理论知识课,基本上不排实验课,故排课时先从第二大节到第五大节排起,若2—5大节已经排满,再排第一大节。其界面如图4.2所示。
图 4.2 课表自动编排实现界面图
实现如下:先定义三个函数IsPkOver,IsPkOver1,IsPkOver2来判断课表中有无重复记录,再定义函数IntoPk来往课表中插入排课数据。函数IntoPk代码如下:
Function IntoPk(ByVal strtblTeacherID As String, ByVal strRoomNo As String, ByVal ClassNo As Integer) As Boolean
ExeSql(\ from tblTime where TeacherNo = \& strtblTeacherID & \and RoomNo=\
Dim strSql As String Dim D, s
If intDay = 0 Then intDay = 1 If intDay >= 6 Then intDay = 1 For D = intDay To 5 For s = 2 To 5
If IsPkOver(D, s, strRoomNo, ClassNo) = False Then If IsPkOver1(D, s, ClassNo)=False then If IsPkOver2(D, s, strRoomNo)=False then If s <> sTemp Then
共分享92篇相关文档