实验室预约系统设计与实现

news2024/10/7 4:26:25

实验室预约系统的设计

摘  要

目前各大学的实验项目日益繁多,如何合理预约实验室,已经成为当今各个大学实验室课程预约的难题。因此,这个实验室预约系统就是研究实验室预约的相关问题。实验室预约系统的设计主要是基于B/S模型,在Windows系统下,运用ASP.NET平台和SQLServer2000数据库实现实验室预约功能。该设计主要实现了实验室的预约和管理功能。预约功能包括老师对实验室信息、实验项目和实验预约情况的查询以及对实验室的预约;学生对老师预约情况和实验项目预约情况的查询以及学生对实验的预约。管理功能包括教师、学生、管理员三者的登录、注册、个人资料管理,管理员对实验室的管理与对学生和教师预约信息的删除功能。最后通过调试、完善该系统,基本实现了高校实验室预约、管理功能,为各大学的实验室预约系统提供有用的模版参考。

关键词实验室预约;B/S;SQL Server2000数据库;VB.NET。

The Design of Laboratory Reservation System

Abstract

At present, the laboratory courses of every university are growing day by day. How to arrange the laboratory courses reasonably has become the serious problem of the Course Scheduling of laboratories in university. Therefore, the laboratory reservation system should do some related study about the appointment about laboratory courses. The B/S model is used by the system based on Windows, and the system implements the functions of laboratory appointment and the inquiries through ASP.NET and SQLServer2000. The functions of Lab's reservation and administration have been realized in this design .The functions of Lab's reservation include lab’s information, experiment items and information of laboratory reservation which can be queried and requested by teachers, and the teacher booking information and experiment project booking information which can be queried by students. There are four functions in administration module. They are logging, registering, data management and deleting information about library and teacher’s querying. Finally, this system is tested and debugged, and there is no problems existed. The basic functions of Lab's reservation and administration are realized. The design is very useful about the model of every university similar system designed.

Key words: Laboratory reservation; B/S; SQL Server2000 database;VB.NET.

目  录

                                                       

1 引言

1.1 课题背景

1.2 课题研究的目的

1.3 本课题研究的意义

1.4 本课题的研究方法

1.5 研究内容

2 功能描述

2.1 学生功能

2.2 教师功能

2.3 管理员功能

2.4 实验室预约系统的流程图

3 开发环境和工具

3.1 环境要求

3.2 开发工具简介

3.2.1 .NET平台简介

3.2.2 SQL Serser2000简介

3.3 非开发性要求

4 数据库详细设计

4.1 逻辑设计

4.2 物理结构设计

5 预约系统详细设计

5.1 登录页面设计

5.1.1 登录页面

5.1.2 注册页面

5.2 管理页面设计

5.2.1 教师管理主页面

5.2.2 学生管理主页面

5.2.3 管理员管理主页面

5.3 预约页面的实现

5.3.1 学生预约页面

5.3.2 教师预约页面

5.4 其它页面的实现

5.4.1 个人资料管理页面

5.4.2 退出系统功能的实现

5.5 主页面格调代码实现

6 系统测试

    

参考文献

    

    

  1. 引言
    1. 课题背景

现在B/S模式的设计与研发在网上十分流行,大学学校的资源也都通过这种形式展现出来,实验室预约系统就是各种B/S模式之中最明显的一个例子。实验室预约系统是通过服务器和客户端浏览器来实现数据的传输,它通过客户端实现管理、申请、提交用户信息,来完成实验项目的预约、查询、资料管理等各种功能。随着计算机应用水平和Internet网的迅速发展,各种资源实现网络化,已经成为必然趋势。实验室预约系统利用这个优势,来完成繁琐的人工操作,从而既改变了过去实验室传统的管理模式又提高办事的效率。

现在网上已经有这方面的材料,但具体问题要具体分析,不同的学校有不同的环境。

    1. 课题研究的目的

(1)掌握B/S模式的结构和框架,了解B/S模式存在的优势和必然原因。

(2)熟悉ASP.NET编程语言及.net平台的应用。

(3)熟悉一种或几种图画制作工具,并且把它运用在实际当中。

(4) 进一步熟悉SQL server2000数据库的功能,合理利用数据库。

(5)认真培养自学和独立能力,从大量资料中能够选取所需资料。

    1. 本课题研究的意义

实验课已经是各个高等学校不可缺少的一部分,如何充分利用学校现有的实验室资源是一个排课难题,也是本课题研究的主题。实验室预约系统的设计主要是通过学生和老师对实验资源的网上预约,实现实验室资源的合理利用,在有限的资源里充分发挥各个学校现有实验室资源的优势。

    1. 本课题的研究方法

实验室预约系统的设计采用的是B/S结构。基于Windows平台下,采用.net技术+SQL Server2000数据库完成的设计。首先本文先从分析实验室预约系统实现的功能入手,简单地描述出实验室预约系统准备实现的各种功能。其次是对开发环境和工具的介绍、了解、熟悉及掌握使用它们的方法,再次运用以往学过的知识和现在准备的知识进行对数据库的逻辑设计和物理结构的设计。最后,在.net平台下,选择熟悉的语言进行实验室预约系统的详细设计,对本课题进行系统的测试,找出问题,总结经验。记录所有的这一切过程,为毕业论文的规划和书写打下坚实的基础。本资料来源于 http://www.bylw168.com 毕业设计论文资料网

    1. 研究内容

运用以往学到的知识,开发一个实验室预约系统。它主要实现老师和学生对实验室的预约、查询等服务。研究的内容简要概括如下:

(1)各个级别的人实现对自己的内容的管理和修改,侧重数据库的合理利用。

(2)学生和老师对实验的时间预约,主要从简单明了入手。

(3)在系统设计开发中,学生和老师在系统中的查询是重点之一。

(4)学生、管理员、教师对资料的管理和管理员对实验室的管理和预约情况的管理。

  1. 功能描述

本课题主要研究对象有三个:学生、教师、管理员。

    1. 学生功能

学生主要是四个功能。注册功能、查询功能、预约功能、学生资料管理功能。

(1)注册功能。学生进入登录界面后,如果没有注册,要先注册。注册的用户名是学生的学号。注册后才可以登录,学生在此功能里还能够修改、删除个人资料。

(2)查询功能。学生在进入主界面后,能够对想预约的课程查询或教师查询。由于老师可能教多个课程,所以有个二级选择目录。

(3)预约功能。当学生查询好信息后,就要对想要预约的实验开始预约。

(4)学生资料管理功能。学生在注册后,可以通过登录,修改自己的个人信息。

    1. 教师功能

教师也有四个功能。注册功能、查询功能、预约功能,教师的资料管理功能。只是教师和学生所使用功能的方式不一样。

(1)注册功能。老师进入登录界面后,如果没有账号,也要先注册账号,同时可以对自己的资料进行修改、删除、填加。

(2)查询功能。教师的查询功能主要是对实验室类别、项目、预约情况的查询。类别查询主要是查询实验室房间的信息;项目查询主要是查看能实验该项目的房间信息;预约查询主要是对实验室预约状况的查询,以便预约。

(3)预约功能。当老师查询好预约信息后,就可以开始实验室预约了。

(4)教师的资料管理。管理教师自己的个人资料。

    1. 管理员功能

管理员的功能有三个,资料管理功能、房间信息管理功能、实验预约信息管理功能。

(1)资料管理功能。管理员不需要注册,资料管理功能就是对管理员自己的资料管理。

(2)房间信息管理功能。管理员通过页面对房间的信息进行添加,修改,从而实现对房间的管理。

(3)预约信息管理功能。管理员对已经预约的信息进行管理,包括单个房间、多个房间、教师、学生预约情况的管理。

    1. 实验室预约系统的流程图

实验室预约系统主要是学生和老师通过网络对实验资源的管理,主要功能流程图如图1。在首页开始里有两部分,注册、登录。注册分教师和学生两类;登录分学生、教师、管理员三类。当登录成功后将进入相应的界面进行属于自己权限范围内的应用范畴。学生主要是对个人资料的管理、实验信息的查询及预约功能。教师也是资料管理、实验信息查询、实验时间的预约,和学生的类似,只不过侧重点不同。管理员主要是管理实验室的各种各样资料。

图1 实验室预约系统流程图 本资料来源于 http://www.bylw168.com 毕业设计论文资料网

  1. 开发环境和工具
    1. 环境要求

本课题的开发主要是基于.NET2003平台,运用Asp.net和vb.net语言实现功能的主体开发。本系统由于是在服务器上运行的,所以服务器上的软件环境是IIS5.0和SQL Server2000,对硬件的要求不高,但CPU的处理速度要快,来增加访问速度。

    1. 开发工具简介
      1. .NET平台简介

.NET 是 Microsoft研发的,用于创建 XML Web 服务的平台,该平台将信息、设备和人以一种统一的、个性化的方式联系起来。借助于 .NET 平台,可以创建和使用基于 XML 的应用程序、进程和 Web 站点以及服务,它们之间可以按设计、在任何平台或智能设备上共享和组合信息与功能,以向单位和个人提供定制好的解决方案。.NET 是一个全面的产品家族,它建立在行业标准和 Internet 标准之上,提供开发(工具)、管理(服务器)、使用(构造块服务和智能客户端)以及 XML Web 服务体验(丰富的用户体验)。.NET 将成为您今天正在使用的 Microsoft 应用程序、工具和服务器的一部分,同时,新产品不断扩展 XML Web 的服务能力以满足您的所有业务需求。

      1. SQL Serser2000简介

SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。

SQL Server 2000, 是Microsoft 公司推出的SQL Server 数据库管理系统的新版本。该版本继承了SQL Server 7.0 版本的优点,同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点。可跨越从运行Microsoft Windows 98 的膝上型电脑,到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。

    1. 非开发性要求

本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括可读性、可修改性、可测试性等含义。可靠性通常包括正确性和健壮性。开发过程中,在各种矛盾的目标之间作权衡,并在一定的限制条件下(时间、可用的软、硬件资源等),使上述各方面最大限度的得到满足。

  1. 数据库详细设计
    1. 逻辑设计

根据系统需求分析定义系统实体,本系统主要涉及到的用户角色有学生、教师、管理员。系统涉及的实体有实验、班级、教室。

    1. 物理结构设计

根据要求设计预约系统需求的数据表

(1)学生注册数据库表:存储学生的注册信息,有学号、注册姓名(本人真实姓名)、注册密码、注册邮箱、联系电话、系别班级、籍贯7列。学生的学号是主键,注册邮箱、联系电话、籍贯三者允许为空,详细信息如表1。

表1  学生信息表(Student_information)

列名

类型

长度

是否为空

主键

是否外键

备注

S_ID

char

10

Y

学生学号

S_name

varchar

6

注册姓名

S_pwd

varchar

15

注册密码

S_mail

varchar

15

Y

注册邮箱

S_phone

char

10

Y

联系电话

S_class

char

15

系别班级

S_native

varchar

5

Y

籍贯

(2)教师注册数据库表:存储教师的个人信息,有教师ID、注册昵称、真实姓名、注册密码、注册邮箱、联系电话6列。其中教师ID是主键,并且由系统自动生成的,注册邮箱和联系电话两者允许为空,详细信息如表2。

表2  教师信息表(Teacher_information)

列名

数据类型

长度

可否为空

是否主键

是否外键

备注

T_ID

int

4

Y

教师ID

T_name

varchar

10

注册昵称

True_name

varchar

15

真实姓名

T_pwd

varchar

15

注册密码

T_mail

varchar

15

Y

注册邮箱

T_phone

char

10

Y

联系电话

(3)管理员信息数据库表:由于管理员只是少数几个教师,所以可以不需要注册,设计几个固定的用户名,供管理员使用。在该数据库表里有管理员ID、管理员的注册姓名、管理员的注册密码、管理员的注册邮箱和管理员的联系电话5列。管理员的ID 也是系统自动生成的 ,它被设成主键。同上,管理员的注册邮箱和联系电话允许为空,详细信息如表3。

表3  管理员信息表(Administrator_information)

列名

数据类型

长度

可否为空

是否主键

是否外键

备注

A_ID

int

4

Y

ID

A_name

char

10

注册姓名

A_pwd

varchar

15

注册密码

A_mail

char

15

Y

注册邮箱

A_phone

char

10

Y

联系电话

(4)实验室房间信息数据库表格:存储实验室的基本情况和最新更新的情况,包括实验室的房间号(如6304)、实验室类别(如网络实验室)、可用设备数目、允许的实验项目、容纳的人数、备注6列。房间号是主键。并且在查询过程中,可用设备数要小于总人数,备注可以为空,详细信息如表本资料来源于 http://www. bylw168 .com 毕业设计论文资料网4。

表4  实验室信息表(Lab_information)

列名

数据类型

长度

可否为空

是否主键

是否外键

备注

L_ID

char

15

Y

房间号

L_class

char

20

实验室类别

L_equip

char

10

可用设

备台数

L_ exper

varchar

800

实验项目

L_number

char

10

总人数

L_mem

varchar

150

Y

备注

(5)教师预约数据库信息表格:该表里包括房间号、预约课程的星期、课节信息、预约的实验项目、预约实验的教师姓名、完成的周次、授课的班级和预约的时间。其中房间号,星期和课节信息为组合主键,同时房间号是外键。完成周次是实验项目结束的时间,详细如表5。

表5  教师预约信息表(Tbooking_ information)

列名

数据类型

长度

可否为空

是否主键

是否外键

备注

L_ID

char

4

Y

Y

房间号

L_week

char

10

Y

星期

L_lesson

char

10

Y

课节信息

L_ exper

Varchar

30

实验项目

True_name

Varchar

15

预约教师

L_achtime

char

10

完成周次

S_class

char

30

班级

B_date

datatime

8

预约时间

(6)学生预约数据库表格:该表格包括课程名、教师姓名、房间号、学生学号、预约时间5列。课程名和教师名为组合主键,详细信息如表6。

表6  学生预约表(Sbooking_information)

列名

数据类型

长度

可否为空

是否主键

是否外键

备注

L_exper

 char

30

Y

课程名

True_name

varchar

30

Y

教师名

L_ID

char

15

房间号

S_ID

char

10

学生学号

B_date

datetime

8

预约时间

  1. 预约系统详细设计
    1. 登录页面设计
      1. 登录页面

该页面是一个简单的登录界面,如图2。

图2 登录界面

当用户来到开始页面,输入用户名和密码,并且要在底下选择相应的登录身份,教师、学生还是管理员,然后点击登录。就开始执行登录检测代码,当代码在数据库搜索到信息时,就返回消息,登录成功,进入相应的界面,如果未搜索到消息,也返回一个信息。该页面通过简单的查询比较语句实现学生、教师、管理员三者的登录功能。在页面的右边有一个注册链接。当用户(教师,学生)进入登录界面时,如果没有账号,要先注册账号。首先选择注册身份,点击“注册”按钮,进入相应的注册界面。实现登录主要代码是通过一个IF语句实现三者身份的判断。部分代码如下:

        Dim conn As New SqlConnection

        Dim cmd As New SqlCommand

        Dim objReader As System.Data.SqlClient.SqlDataReader

        conn.ConnectionString = "Data Source=localhost;Initial Catalog=Booking;Integrated Security=SSPI;Packet Size=4096;User ID=sa;Password=''"

        conn.Open()

        cmd.Connection = conn         

………………

以上代码段是打开数据库代码,在以下的程序中经常用到。

        Dim name As String = TextBox1.Text

        Dim pwd As String = TextBox2.Text

        If RadioButtonList1.Items(0).Selected = True Then

            cmd.CommandText = "Select * from Teacher_information"

            objReader = cmd.ExecuteReader()

            Do While objReader.Read()

                Dim sqlname As String = objReader.GetString(1).Trim()

                Dim sqlpwd As String = objReader.GetString(3).Trim()

                If sqlname = name And sqlpwd = pwd Then

                    Session("names") = TextBox1.Text

                    Session("pwds") = TextBox2.Text

                    Response.Redirect("admintea.aspx")

                    Exit Do

                End If

            Loop

            Response.Redirect("error.aspx")

………………

以上这段是查询数据库里的数据进行比较,并且用一个Session控件记录用户名和密码,上面的代码是实现教师登录的代码段。实现学生、教师、管理员三者登录的选择要用到一个IF语句。当判断正确后,转到相关的页面。

      1. 注册页面

教师的注册代码和学生的注册代码及页面都相类似,主要都是实现数据信息的插入到数据库表格里。不同之处在于学生的用户名是学生的学号,这是一个唯一标识,不需要再自己起名字,并且他有一定的长度限制6-12之间,在这个长度区间内的值才是有效的,要是想输入固定长度值,可以修改代码信息来完成。用户名、密码、真实姓名,都是学生和老师必填字段,而学生还有一个必填字段,就是系别班级,它是教师授课预约里的一个字段。由于老师可能有重名的时候,所以老师的用户名是自己起的。在填写老师用户名后,可以检查是否已经被人用过,如果没用过可以继续使用,填写其他信息,如果用户名已存在数据库里就会弹出个提示,要重新输入用户名。当填写好信息后,点击提交就可以注册账号了,如果不小心填错一些信息,可以点击“重填”按钮,重新填写资料。把注册信息数据插入到数据库表格里的代码如下:

If S_ID.Text.Length < 5 Or S_ID.Text.Length > 13 Or S_name.Text.Length < 1 Or S_pwd.Text.Length < 1 Or S_class.Text.Length < 1 Then

            Label1.Visible = True

        Else

            cmd.CommandText = "Insert into Student_information values(@S_ID,@S_name,@S_pwd,@S_mail,@S_phone,@S_class,@S_native)"

            cmd.Parameters.Add(New SqlParameter("@S_ID", SqlDbType.Char, 10))

            cmd.Parameters.Add(New SqlParameter("@S_name", SqlDbType.VarChar, 6))

            cmd.Parameters.Add(New SqlParameter("@S_pwd", SqlDbType.VarChar, 15))

            cmd.Parameters.Add(New SqlParameter("@S_mail", SqlDbType.VarChar, 15))

            cmd.Parameters.Add(New SqlParameter("@S_phone", SqlDbType.Char, 10))

            cmd.Parameters.Add(New SqlParameter("@S_class", SqlDbType.Char, 15))

            cmd.Parameters.Add(New SqlParameter("@S_native", SqlDbType.VarChar, 5))

            cmd.Parameters("@S_ID").Value = Request("S_ID")

            cmd.Parameters("@S_name").Value = Request("S_name")

            cmd.Parameters("@S_pwd").Value = Request("S_pwd")

            cmd.Parameters("@S_mail").Value = Request("S_mail")

            cmd.Parameters("@S_phone").Value = Request("S_phone")

            cmd.Parameters("@S_class").Value = Request("S_class")

            cmd.Parameters("@S_native").Value = Request("S_native")

            cmd.ExecuteNonQuery()

            conn.Close()

            Label2.Text = "你已经注册成功"

            fh.Visible = True

        End If

注册界面如图3。

图3  注册界面

    1. 管理页面设计
      1. 教师管理主页面

该页面如图4。

图4  老师主页面

页面最上面一排显示用户的用户类别、用户名。下面是老师能够操作的各种功能,主要是各种查询功能。老师有三种信息查询功能:一是实验室信息查询。该查询主要是查询实验室房间信息,有什么设备、可以做什么样的实验项目、能容纳多少人、可用设备的台数等信息,为老师预约房间提供参考;二是实验项目查询,该查询就是查找某个实验项目能在哪些实验室里做实验,即显示能做某个项目的房间个别信息;三是实验室预约查询,就是当老师查到某个实验室时,想了解该房间已经预约的具体情况的操作,该房间里哪些课节已经预约了,哪些课节空闲。三个功能的实现代码都类似,都是通过SQL 语句来查找数据库里的相关信息,然后把查到的信息通过绑定控件显示到页面上,供查询者了解信息。同时还有几个链接按钮,用来跳转到实验预约,修改资料,信息查询等相关页面。

实验室信息查询的代码如下:本资料来源于 http://www. bylw168 .com 毕业设计论文资料网

cmd.CommandText = "Select * from Lab_information"

        objReader = cmd.ExecuteReader()

        Do While objReader.Read()

            Dim LabID As String = objReader.GetString(0).Trim()

            If LabID = TextBox1.Text Then

                name = LabID

                Exit Do

            End If

        Loop

        If TextBox1.Text = name Then

            bindlist1()

        Else

            Label2.Text = "此实验室尚未添加"

        End If

…………Datalist绑定代码如下:

Sub bindlist1()

        Dim conn As New SqlConnection

        Dim cmd As New SqlCommand

        Dim ds As New DataSet

        conn.ConnectionString = "Data Source=localhost;Initial Catalog=Booking;Integrated Security=SSPI;Packet Size=4096;User ID=sa;Password=''"

        conn.Open()

        cmd.Connection = conn

        Dim sqlstr As String = "select * from Lab_information where L_ID='" & Session("L_ID") + "'"

        cmd.CommandText = sqlstr

        Dim objadpt As New SqlDataAdapter(cmd)

        Dim tablename As String = "L_ID"

        objadpt.Fill(ds, tablename)

        Lab1.DataSource = ds.Tables(tablename)

        Lab1.DataBind()

        conn.Close()

End Sub

      1. 学生管理主页面

学生的这个界面主要是查询,是对老师和课程预约情况的查询。不过还有预约功能也在此页面实现,预约功能在后面5.3.1节介绍。学生管理页面如图5。

图5  学生主页面

最上面同样是学生的身份、学生的唯一标识。下面是查询功能选项卡,学生的查询主要有两个方面:一个是对实验项目的查询,它主要是查询某个实验项目的信息,主要包括有哪几位老师正在上这门实验课、都在什么实验室、什么时间上课这门课等等。二是老师查询,当知道了上某一门实验课的老师是哪一位时,就可以通过此项查询。由于现在大多数老师都不仅仅教授一门课程,所以有可能有多样的实验课,如老师既教数据库知识,又教操作系统,做实验时就既有操作系统实验课,又有数据库实验课,这时需要一个二级目录的查询,当先输入老师名字时,在后面就会用下拉表单列出老师实验课的信息,然后选择要查的实验课,电击“查询”按钮,才在底下显示具体信息,操作如图6。该操作的代码和老师的查询代码类似,只是在操作中有个下拉菜单的操作。由于要打开数据库,所以涉及数据库打开数据库代码如5.1.1节所叙述,此处不在重复。

图6  学生查询教师实验二级目录的实现

下拉菜单实现的代码如下:

Dim objReader As System.Data.SqlClient.SqlDataReader

        Session("True_name") = TextBox1.Text

      

        cmd.CommandText = "Select * from Tbooking_information"

        objReader = cmd.ExecuteReader()

        Do While objReader.Read()

            Dim sqlname As String = objReader.GetString(4).Trim()

            Dim sqlexper As String = objReader.GetString(3).Trim()

            If sqlname = TextBox1.Text Then

                exper.Items.Add("" & sqlexper + "")

            End If

        Loop

        TextBox2.Visible = False

            exper.Visible = True    

      1. 管理员管理主页面

管理员的这个页面主要有三个功能,一是添加房间信息,二是修改房间信息,三是删除学生和老师的预约信息。

(1)添加房间信息。在该页面,要输入实验室房间的详细信息,主要有房间号、实验室类别、总人数(总的计算机台数)、可用设备数(能够做实验的计算机台数)、都能够实现哪些项目的上机操作和备注,这一些必要的字段。此页面有三个按钮:一个是提交、一个是重填、一个是继续添加。提交就是把浏览器里输入的信息插入到数据库表格里,重填就是信息的清除,继续添加也是类似信息的清除。从操作过程知道此操作的代码段主要是信息的插入,所以在此不在列出此段代码。本资料来源于 http://www. bylw168 .com 毕业设计论文资料网

(2)修改房间信息界面主要是实现对实验室的信息单项修改。要先填写房间号,系统根据这个填写的信息继续做后面的操作,可以修改实验室类别、总人数、可用设备数(上机人数)、实验项目、备注等各项。页面如图7。

图7  房间修改信息界面

(3)删除预约信息。页面如图8。

图8  管理员删除界面

此操作是按分类操作的,分四类:一个删除房间信息,它又分删除一个房间信息和删除多个房间信息,当填写房间号或房间号的区间时,就可以执行此操作。二是删除房间的预约信息,可以删除一个房间或多个房间的预约信息。三是删除老师的预约信息,当输入老师姓名时就删除老师的预约信息。四是删除学生的预约信息,删除学生预约信息通常是一个班或一个专业的,所以主要是使用区间,删除一段学号的学生预约信息。当点击删除时,如果成功就会在后面显示删除成功。否则,就提示输入错误字段。在页面下面是简单的介绍如何操作删除功能的。

此页面有个‘继续操作’按钮,当点击它时,就会清空上面的填入信息,同时还有个链接按钮,用来返回到管理员的主界面。删除功能很简单,就是先打开数据库,用一条delete语句,删除相应的数据库表格里的某一列字段或整个字段,就可以完成此操作。代码如下:

Dim conn As New SqlConnection

        Dim cmd As New SqlCommand

        Dim ds As New DataSet

        conn.ConnectionString = "Data Source=localhost;Initial Catalog=Booking;Integrated Security=SSPI;Packet Size=4096;User ID=sa;Password=''"

        conn.Open()

        cmd.Connection = conn

        cmd.CommandText = "delete  from Lab_information where L_ID >='" & TextBox8.Text + "'and L_ID<='" & Textbox9.Text + "'"

        Label3.Text = "删除成功"

        cmd.ExecuteNonQuery()

        conn.Close()

    1. 预约页面的实现
    1. 学生预约页面

这个在学生的管理主页面上,如图5学生主页面。主要是向数据库里学生预约表格里填加一些学生预约信息。在输入框里输入学生要预约的房间号,授课教师的真实姓名,学生的学号,实验项目,执行此操作的时间,点提交就可以实现学生的预约。下面有三个按钮,一个是重填,一个是预约,一个是取消预约,当点取消预约时,系统会根据当前用户输入的信息(用户名或学号等)执行预约信息删除操作。

    1. 教师预约页面

教师预约的页面是一个单独的页面,在此页面上方同样是用户类别和用户标识,下面输入框是要预约所填写的必要信息字段,有预约实验室的房间号、上课的星期、课节、实验项目名称、教师真实姓名、完成实验项目的上课周次、预约信息的时间、教师授课的班级。星期和课节字段是两个下拉框的表格,通过下拉框选择是星期几,第几节课。代码也是插入数据的代码,在此不在重复代码段。页面如图9。

图9  教师预约界面

    1. 其它页面的实现
  1. 个人资料管理页面

此功能是学生、教师、管理员三者都需要实现的。所以他们实现的方式相同,管理资料的页面也相同。如管理员的个人资料管理页面如图10。

图10  管理员资料管理界面

密码框里要填入旧的密码,新密码和对新密码的确认,才能修改信息。邮箱和电话是当用户登录后就显示出来的,你可以根据自己信息对它们进行相关的修改,点修改按钮,进行此操作,无论成功与否都有提示,实现代码如下:

If pwd1.Text = Session("pwds") Then

            If pwd2.Text = pwd3.Text Then

                cmd.CommandText = "UPDATE Teacher_information SET T_pwd='" & pwd2.Text + "' where T_name='" & Session("names") + "'"

                Label1.Text = "修改成功"

            Else

                Label1.Text = "密码不一致"

            End If

        Else

            Label1.Text = "旧密码不正确"

        End If

  1. 退出系统功能的实现

此操作就是删除在登录记录的Session值,学生、教师、管理员的退出系统功能都是如此实现。把Session的值设置为空,返回到开始界面即可。代码简单明了,如管理员的代码如下:

Session("namea") = ""

        Session("pwda") = ""

        Response.Redirect("homepage.aspx")

    1. 主页面格调代码实现

主页面的格调主要是用HTML代码实现。它主要包括实现主题背景的颜色、图片的插入、各种表格属性的设计和嵌套、字体的对齐方式等各方面内容。

  1. 系统测试

经过几次的修改,实验室预约系统的设计终于得以完成,通过这段时间的努力,实验室预约系统完成了它的基本功能。在登录页面输入账户和密码选择身份后,单击“登录”按钮能够成功登录。在学生和老师管理页面里输入相应的查询信息,通过操作,能够清晰地显示查询结果。三者的管理页面通过输入要修改的自己信息,能够修改自己的信息。管理员的删除功能通过输入的房间和预约信息达到删除各种信息的功能。数据库表格内容设计的简单明了,能从中了解整个系统的数据库思路,并且各个模块的协调性比较融洽,相互制约。

结    论

通过一段时间的设计和编写,终于完成了实验室预约系统的设计。这个系统实现了学生和老师的注册功能;学生、老师和管理员三者的登录和资料管理功能;学生对教师实验的查询和对实验项目的查询功能;教师对实验室资料的查询、对实验项目的查询以及对实验预约情况的查询功能;管理员主要实现了对实验室资料的管理以及对教师和学生预约实验室情况的管理,可以删除、增加、修改实验室信息等。但是还存在许多问题,这主要是优化方面的问题。

(1)由于在研究本课题时,它被看成一个独立的系统。所以对用户的注册没有具体的限制(即是本校师生,还是校外的人),不过如果可以连接到教务处数据库,就可以通过一个数据库Select语句把它设置一下。

(2)冲突问题,当几个老师同一时间预约同一个课节上课时,就会发生冲突,这个问题,由于时间原因没有解决,可以通过一个退让算法来解决这个问题

(3)由于上课的周次填写是固定的,就不能活泛的利用实验室资源,这个如果要是在实际操作中要给予重点考虑。

(4)学生预约管理问题,当预约某一时间段的人过多时,可以由老师分配到别的时间段(在本次研究中就是这么考虑的。)但是如果要是在大学的网站,可以通过系统自动调整,既把超过某个实验室的学生调整到其他也做该实验的老师课节里。

参考文献

[1] 肖金秀,冯沃辉,陈少涌.ASP.NET程序设计教程[M].北京:冶金工业出版社,2003。

[2] 林锦雀.最新XML入门与应用[M].武汉:中国铁路出版社,2001。

[3] 吉根林,崔海源. ASP.NET程序设计教程[M].北京:电子工业出版社,2004.8。

[4] 方睿,刁仁宏,吴四九.网络数据库原理及应用[M].成都:四川大学出版社,2005.8。

[5] 李印清. Visual Basic.NET程序设计实用教程[M].北京:清华大学出版社,2006.5。

[6] 周洪政,陈斌. Dreamweaver MX网页制作全新教程[M].上海:上海科学普及出版社,2004.5。

[7] 普悠玛.ASP.NET程序设计示例导学[M].北京:北京科海电子出版社,2003.2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1017732.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL--MySQL索引事务

事务的概念 事务指逻辑上的一组操作&#xff0c;组成这组操作的各个单元&#xff0c;要么全部成功&#xff0c;要么全部失败。 在不同的环境中&#xff0c;都可以有事务。对应在数据库中&#xff0c;就是数据库事务。 使用 &#xff08;1&#xff09;开启事务&#xff1a;start…

VHOST-SCSI代码分析(2)VHOST SCSI驱动分析

在HOST内核中创建/dev/vhost-scsi&#xff0c;并提供用户态相关接口&#xff0c;在文件driver/vhost/scsi.c中。 对于/dev/vhost-scsi的ioctl调用包含如下类型&#xff1a; &#xff08;1&#xff09;VRING相关的系统调用 &#xff08;2&#xff09;VHOST SCSI相关的系统调用 …

【重新定义matlab强大系列十三】直方图 bin 计数和分 bin 散点图

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

Web前端大作业html+css静态页面--掌****有限公司

文章目录 前言 一、效果图 二、代码展示 1.html 2.css部分 总结 前言 对于大一新生来说&#xff0c;期末考试和专业结课作业可能会带来很大的压力。特别是涉及到网页设计和编写的作业&#xff0c;可能让人感到无从下手。例如&#xff0c;web实训大作业、网页期末作业、web课程与…

四、C#—变量,表达式,运算符(2)

&#x1f33b;&#x1f33b; 目录 一、表达式1.1 什么是表达式1.2 表达式的基本组成 二、运算符2.1 算术运算符2.1.1 使用 / 运算符时的注意事项2.1.2 使用%运算符时的注意事项 2.2 赋值运算符2.2.1 简单赋值运算符2.2.2 复合赋值运算符 2.3 关系运算符2.4 逻辑运算符2.4.1 逻辑…

nexus 5x 刷机记录

1. 参考链接 https://d1ag0n.asia/archives/nexus5x%E5%88%B7android81root https://github.com/r0ysue/AndroidSecurityStudy/blob/master/FRIDA/A01/README.md 2. 下载工具 adb ,fastboot 官网的下载地址 &#xff1a; https://developer.android.com/studio/releases/pla…

高级视频和直播应用程序:Challenge 1.1.8 源码

您是否正在寻找高级视频和直播应用程序&#xff1f; 那么挑战就是您的完美选择。终极视频和直播挑战平台。凭借其尖端功能&#xff0c;Challenge 为用户和所有者提供了独特且引人入胜的体验。 通过购买挑战代码&#xff0c;您将可以使用以下令人兴奋的功能&#xff1a; 故事&…

学术团体的机器人相关分会和机器人相关大赛的说明

1. 中国机械工程学会 &#xff08;机器人分会&#xff09; 2017年成立&#xff0c;地点 华中科技大学 &#xff1a;中国机械工程学会机器人分会在汉成立 (huanqiu.com) 链接&#xff1a;中国机械工程学会 (cmes.org) 侧重点&#xff1a;工业机械臂、工厂和物流相关的移动机…

第 363 场 LeetCode 周赛题解

A 计算 K 置位下标对应元素的和 模拟 class Solution { public:int pop_cnt(int x) {//求x的二进制表示中的1的位数int res 0;for (; x; x >> 1)if (x & 1)res;return res;}int sumIndicesWithKSetBits(vector<int> &nums, int k) {int res 0;for (int i…

做一个有灵魂的软件测试员

有没有觉得自己每天的工作千篇一律&#xff0c;每天一上班就盼着下班&#xff1f; 一个月似乎能令自己开心的时间也就是发工资的那一天&#xff1f; 自己的工作生活总感觉被人牵着走&#xff0c;兜兜转转过了一年又一年&#xff1f; 测试员的工作性质决定了与重复、枯燥和乏…

自定义实现简易版ArrayList

文章目录 1.了解什么是顺序表2.实现哪些功能3.初始化ArrayList4.实现功能接口遍历顺序表判断顺序表是否已满添加元素指定下标添加元素自定义下标不合法异常判断顺序表是否为空查找指定元素是否存在查找指定元素返回下标获取指定下标的元素顺序表为空异常修改指定下标元素的值删…

【深度学习实验】线性模型(三):使用Pytorch实现简单线性模型:搭建、构造损失函数、计算损失值

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 定义线性模型linear_model 2. 定义损失函数loss_function 3. 定义数据 4. 调用模型 5. 完整代码 一、实验介绍 使用Pytorch实现 线性模型搭建构造损失函数计算损失值 二、…

5-1 Dataset和DataLoader

Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道。 Dataset定义了数据集的内容&#xff0c;它相当于一个类似列表的数据结构&#xff0c;具有确定的长度&#xff0c;能够用索引获取数据集中的元素。 而DataLoader定义了按batch加载数据集的方法&#xff0c;它是…

无涯教程-JavaScript - EVEN函数

描述 EVEN函数返回四舍五入到最接近的偶数整数的数字。您可以使用此功能来处理两个项目。 语法 EVEN (number)争论 Argument描述Required/OptionalNumberThe value to round.Required Notes 如果数字为非数字,则EVEN返回#VALUE!错误值。 不管数字的符号如何,当从零开始调…

VisualStudio配置驱动远程部署

目标机器开启ping命令 默认情况下&#xff0c;Windows出于安全考虑不允许外部主机对其进行Ping测试。 允许ICMP回显 设置如下&#xff1a; 打开win7防火墙设置界面 左边的菜单中选择 【高级设置】 在弹出的 【高级安全 Windows 防火墙】 界面&#xff0c;选择 【入站规则】 …

Java常见面试题(含答案,持续更新中~~)

目录 1、JVM、JRE和JDK的关系 2、什么是字节码&#xff1f;采用字节码的最大好处是什么 3、Java和C的区别与联系 4、Java和GO的区别与联系 5、 和 equals 的区别是什么&#xff1f; 6、Oracle JDK 和 OpenJDK 的对比 7、String 属于基础的数据类型吗&#xff1f; 8、fi…

VHOST-SCSI代码分析(3)数据流处理

VHOST SCSI数据流如下所示&#xff1a; IO下发过程 虚拟机中应用态程序下发IO&#xff0c;依次经过VFS/文件系统层&#xff0c;BLOCK层&#xff0c;SCSI层&#xff0c;经VIRTIO SCSI驱动virtscsi_commit_rqs访问寄存器通知HOST内核中VHOST设备&#xff08;VHOST KICK过程&#…

tolua源码分析(十一)代码生成

tolua源码分析&#xff08;十一&#xff09;代码生成 上一节我们分析了tolua中struct数据在lua和C#之间传递的过程&#xff0c;这一节我们来看一下tolua自动生成各种辅助代码的流程。 生成所有代码的入口位于ToLuaMenu.cs的GenLuaAll&#xff1a; [MenuItem("Lua/Genera…

达梦数据库-DW-国产化--九五小庞

武汉达梦数据库股份有限公司成立于2000年&#xff0c;是国内领先的数据库产品开发服务商&#xff0c;国内数据库基础软件产业发展的关键推动者。公司为客户提供各类数据库软件及集群软件、云计算与大数据等一系列数据库产品及相关技术服务&#xff0c;致力于成为国际顶尖的全栈…

读取yaml文件的值

记录一下&#xff0c;读取yaml文件中属性的值&#xff0c;这里用Kubernetes的deployment.yaml文件来举例。 读取yaml文件中的image的值 yaml文件 apiVersion: apps/v1 # 1.9.0 之前的版本使用 apps/v1beta2&#xff0c;可通过命令 kubectl api-versions 查看 kind: Deploy…