首页 > 范文大全 > 正文

基于B/S模式的三层网上排课系统的实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于B/S模式的三层网上排课系统的实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:基于B/S模式三层网上排课系统,充分利用网络资源和现代计算机技术,成功解决了职业学校教务排课长期依赖于人工操作的难题,使得教学管理更加科学、方便、快捷。

关键词:B/S 模式;三层应用程序模型;网上排课

中图分类号:TP393文献标识码:A文章编号:1009-3044(2010)09-2288-03

Three-tier Online Timetable of Implementation Based on the B/S Mode

WANG Ling, SHEN Xia

(1.Anshan Third Secondary Vocational and Technical Schools,Anshan 114033, China; 2.Establishment of Software College Liaoning, Anshan 114033, China)

Abstract: Based on the b/S mode three-tier online timetable, making full use of network resources and modern computer technology, successfully solved the long-term vocational educational course scheduling depends on people-driven challenges, making teaching management more scientifically, convenient, and fast.

Key words: B/S mode; a three-tiered application model; the online timetable

随着网络基础设施与应用环境的不断发展和完善,数字化校园已初具规模。尤其是校园网络系统及校园网站的建设为学校的管理提供了高效、方便、快捷的信息交流与资源共享的平台,实现了教学管理、学习过程的优化,极大的提高了工作效率。

众所周知,由于专业的技术性和教学的特殊性,职业学校具有许多自身的特点,开设专业庞杂,专业课程门类众多,教师任课情况复杂等等。因此,其教务排课系统一直依赖于人工进行,工作烦琐、效率低下。正是由于这种情况,开发基于B/S 模式的三层应用程序模型的网上排课系统,成功解决了职业学校排课的难题,使得师生可以在互联网上浏览课程的安排情况,教务干事也可以在互联网上进行增加及删除用户或者清空当前排课记录等操作。这一系统的开发和应用,提高了教师的工作效率,方便了师生的查询。

1 网上排课系统的功能

网上排课系统是典型的B/S模式系统,开发平台采用 Microsoft Visual ,后台数据库是Microsoft SQL Server2000,WEB框架为。网页的后台代码由C#.NET语言来完成。该系统的大部分模块采用了三层应用程序设计模型,分别是数据访问层、业务逻辑层和表示层。还有一部分模块由于业务逻辑相对简单或者不太适合三层应用开发模型,故采用了在ASP 网页后台代码中直接访问数据库这种两级设计模式。系统主要完成以下功能:首先,教务干事通过Internet 安排课程,这涉及了安全和用户权限问题,任何教师(管理员除外)都不允许删除排课记录;其次,管理员管理用户的功能,为管理员提供增加用户、删除用户及修改用户信息的功能,对于没有帐号的用户只可以浏览课程安排信息,不可以修改和删除任何信息。再次就是任何人都可以进行浏览课程安排信息的功能,并能实现按日期、按周次以及按专业查询课程安排信息的功能。

2 三层应用程序设计模型

所谓的“三层应用程序模型”是将系统按照功能的逻辑层次划分的,分别是数据访问层、业务逻辑层和表示层。在大型应用程序设计过程中,这种多层应用程序体系结构使得程序代码在多个层次之间实现模块化,每个层次的代码可以重用,维护性更好,同时可以将各个层次在物理上扩展到多个层次。在解决方案管理器中建立了四个C#工程,分别命名为“Commonty”、“Data”、“Business”和“Syapasp”,其中“Commonty”工程中定义的是各层都需要使用的公共数据类型,“Data”工程中定义的是数据访问层,“Business”工程对应的是业务逻辑层,“Syapasp”工程对应的是表示层。

对于公共数据类型定义是在“Commonty”工程中完成的。“Commonty”工程中增加了三个类User、Role 和Content 作为公共数据类型,分别将用户名、角色和排课信息包含在每个不同的对象中,实现了对用户、角色、和排课信息的数据类型的封装。另外增加了一个用于字符串加密的类“StringProc”。用户的密码是非常重要的数据资料,若是明文方式存放,在银行等一些较为重要的领域可能会导致严重的后果,故应对这样的敏感数据进行加密。

2.1 数据访问层

系统通过数据访问层“Data”工程来进行数据库的所有操作。在“Data”工程中建了一个“Database”类以实现对数据库中各个存储过程的访问以及一些基本的数据库操作。Database类中的方法将被上层也就是业务逻辑层所调用,数据访问层和业务逻辑层之间的数据传递有的是通过简单数据类型的值但大多数是通过数据集DataSet 来实现的。数据访问层类中所有的方法都是通过来实现的。数据访问层所要完成的主要功能是通过 数据访问对象连接并访问数据库,通过SQL 语句或存储过程的调用返回所需的各种数据表中的数据。

2.2 业务逻辑层

业务逻辑层“Business”工程处于数据访问层和表示层之间,它调用数据访问层的类及方法实现实验课排课系统中的业务规则,并封装相应的方法以供表示层调用。在“Business”工程中建了一个“Forum”类实现系统的业务逻辑功能。

业务逻辑层除了实现业务逻辑的判断功能外,还起到一个与数据访问层和表示层相连接的作用。它调用数据访问层中类和方法实现排课系统的业务逻辑,它又封装相应自身的方法供表示层调用。

2.3 表示层

“Syapasp”工程实现的是表示层的功能,主要包括了系统的页面呈现和相关控件的代码。表示层是用户使用系统的交互界面,系统提供给用户的所有功能都是通过表示层来实现的。表示层页面和控件主要包括页眉控件Header.ascx、页脚控件Footer.ascx、用户登录页面Login.aspx、系统默认的起始页面Default.aspx、用户管理页面UserManage.aspx、安排课程页面Apsy.aspx以及任何人都可以使用的浏览实验课安排情况的页面Llsy.aspx。

在用户登录页面Login.aspx 中,ID 值为tbx_user 和ubx_upassword,分别代表用户名和密码的TextBox控件增加了一个RequiredFieldValidator控件,以限制用户必须输入一些内容。为了防止非法用户使用“SQL 注入攻击”使用带参数的存储过程来完成用户验证的过程。

2.3.1 表示层功能模块

表示层主要完成的功能是将权限允许范围内的查询结果以网页的形式显示给用户,是用户使用“网上排课系统”的交互界面。在表示层的各个页面中大部分都需要用到返回初始页面、进入浏览课程页面、用户登录页面及网页访问次数计数等功能。因此表示层中还附加了页眉控件Header.ascx 和页脚控件Footer.ascx。

2.3.2 用户登录部分

用户登录页面Login.aspx并不复杂,主要完成的功能是收集用户输入的用户

名和密码,判断用户名和用户密码是否存在及是否正确,若都正确再进一步判断相应的权限及可使用的系统功能等。

2.4 部分代码

现以用户登陆页面部分代码为例来说明。用户登录页面Login.aspx 的后台代码文件是Login.aspx.cs,所有功能都被封装在了类Login中。用户登录页面Login.aspx 的部分后台代码如下:

private void btn_submit_Click(object sender, System.EventArgs e)

{

//从文件Web.config中读取连接字符串

string strconn=ConfigurationSettings.AppSettings["ConnStr"];

//连接本地计算机的syap数据库

SqlConnection cn=new SqlConnection(strconn);

cn.Open();

//构造SQL语句,在Users表中检查用户名和密码是否正确

string mysql="SELECT * FROM userlkd WHERE username='" + tbx_uid.Text + "' and

password='" + tbx_upassword.Text + "'";

//创建Command对象

SqlCommand cm=new SqlCommand(mysql,cn);

//执行ExecuteReader()方法

SqlDataReader dr=cm.ExecuteReader();

if(dr.Read())

{

lbl_message.Text="";

//保存当前用户名及用户权限

Session["username"]=dr["username"];

Session["role_id"]=dr["role_id"];

if(Convert.ToInt32(Session["role_id"])==1)

{

//进入管理人员界面

Response.Redirect("UserManage.asp");

}

else

{

if(Convert.ToInt32(Session["role_id"])==2)

Response.Redirect("Apsy.aspx");

else

//进入学生等任何普通人员的浏览界面

Response.Redirect("Llsy.aspx");

}

}

else

{

//进入首页

Response.Redirect("Default.aspx");

}

}

3 结束语

基于三层应用程序设计模型的网上排课系统,通过测试运行,基本满足了职业学校教务排课的基本要求,系统运行稳定可靠。当然系统还有许多需要完善和扩充的地方,比如角色的编辑工作要通过友好安全的网页来完成,而不是管理员直接修改数据库等。

参考文献:

[1] 谈冉.设计模式在典型.net三层架构Web程序中的应用[J].武汉理工大学学报,2006(2).

[2] 崔杰锋.基于B/S三层模式的应用开发设计[J].齐齐哈尔大学学报,2005.

[3] 吴兴兴.网络数据库应用实例[M].北京:人民邮电出版社,2001.