您好, 访客   登录/注册

基于ASP.NET的选课管理系统开发与研究

来源:用户上传      作者:

  摘要:该文进行了基于ASP.NET的选课管理系统的设计与开发,包括选课管理系统的功能需求分析,系统客户端经由服务器访问数据库中的数据。学生选课时课程的成绩均为0,当课程结束后,教师登录本系统给所有学生评分,学生再次浏览此页面可查看到课程的成绩,若成绩合格,学生可获得对应课程的学分。同时,服务器端严格按照管理原权限进行管理,高级管理员可对管理员数据进行维护。
  关键词:选课;管理系统;ASP.NET
  中图分类号:TP315 文献标识码:A文章编号:1009-3044(2009)33-9576-03
  According to the Research of the ASP.NET Technical Elective Management System
  YANG Wen-bin
  (Taiyuan Normal University, Taiyuan 030012, China)
  Abstract: This text carried on selecting elective courses the design and development of manage the system according to the ASP.NET, including function request analysis of select elective courses the management system, system the customer carry through the data in the server interview database.In the meantime, the server carries strictly original legal power to carry on a management according to the management, the deluxe managing person can carry on a maintenance to managing person's data.
  Key words: select courses; sanage systeml; ASP.NET
  1 开发平台ASP.NET概述
  在系统的开发上,采取目前比较流行的ASP.NET服务器端脚本编程环境。它是建立在.NET Frame之上,使用Visual Basic、C++这样模块化程序设计语言,并且它要第一次使用时进行编译,之后的执行不需要重新编译就可以直接运行,所以速度和效率比ASP提高很多。同时它还具有代码的可重用性、可维护性和代码量相对较少等诸多优点。ASP.NET不仅仅是下一版本的Active Server Page(ASP);它是统一的Web开发平台,用来提供开发人员快速生成企业级Web应用程序,所需的服务ASP.NET的语法在很大程度上与ASP兼容。由于ASP本身的局限性使得系统有一些不可克服的缺陷,而采取了ASP.NET技术的系统性能上有了很大的改善:
  1) ASP.NET页面只需要一次编译后不需要重新编译,直到该页面被修改或WEB应用程序重新启动,极大提升多次访问时的速度;
  2) ASP.NET通过ADO.NET提供的DataGrid等数据库元件可以直接和数据库联系;
  3) ASP.NET采取“code-behind”方式编写代码使得代码易于编写,结构更清晰,降低了系统的开发与维护的复杂度和费用。同时它还提供一种新的编程模型和结构,用于生成更安全,可伸缩和稳定的应用程序。
  2 选课管理系统的功能需求分析
  1) 系统管理员
  设置选课时间段:系统管理员通过此项功能设置选课时段,只有在选课时间段里,学生才可以选择课程,超过次时间段,学生选课信息被自动所定,不得修改。
  录入学生与教师个人信息:通过此项功能可以实现对教师和学生的个人信息添加删除。
  录入教学楼教室信息:通过此项功能可以把学校里所有的教学楼教室的信息录入到系统中,以便教师在开设课程时候设置上课的教室。
  2) 教师用户
  显示和修改个人信息:教师用户登录系统后,可以查看和修改教师的个人信息,如姓名,电话,E-mail地址等。
  开设课程:教师用户登录系统后,可以开设课程,可以设置该课程为必修课程或则选修课程,可以设置该课程的最大人数。教师还可以为该课程设置一个前导课程,若学生没有学习或则选择前导课程则不能选择该课程。
  编辑课程上课时间:教师在开设了课程后,可以灵活地设置上课时间和地点。
  给学生分数:课程结束后,教师用户登录系统,可以为学过课程的学生给予相应的成绩,若及格,给予学生学分。
  3) 学生用户
  显示和修改个人信息:学生登录系统后,可以查看和修改学生的个人信息,如姓名,性别,电话等。
  查看必修课程:学生登录后,可以查看所有的必修课程。查看该课程的信息,上课时间地点,开课教师信息等。
  选择选修课程:学生登录系统后,在所有选修课程中可以选择至少两门选修课程。同时可以查看相关信息。
  锁定选课信息:学生登录系统,确定了所选课程后,可以锁定自己的选课信息,以防被别人或则自己不小心修改。
  查看最终选课信息:学生登录系统后,可列出已选择的课程,若选课信息未被锁定,则可以退选,若所选课程少于两门,系统会提示选择的课程少于两门。
  查看学分和成绩:课程结束后,学生登录系统可查看自己学习课程的成绩和已获的学分。
  3 选课管理系统的系统设计
  3.1 数据模型设计
  1) 登陆模块的数据流程:管理员在ASP.NET生成的界面输入登陆信息,然后点击〔登陆〕按钮,由服务器端程序向数据库发出验证请求,数据库返回验证结果,由服务器端程序生成验证结果消息框。
  2) 添加管理员模块的数据流程:高级管理员在ASP.NET生成的界面输入所要添加管理员的信息(用户名,密码,确认密码),然后点击〔确定〕按钮由服务器端程序向数据库发出验证请求,数据库返回添加结果,由服务器端程序生成添加结果消息框。
  3) 操作管理模块的数据流程:①添加用户模块的数据流程:管理员在.NET Windows Forms生成的界面输入所要添加用户的信息(学号,姓名,班级,密码,确认密码),然后点击〔确定〕按钮由服务器端程序向数据库发出验证请求,数据库返回添加结果,由服务器端程序生成添加结果消息框。②删除用户模块的数据流程:管理员在.NET Windows Forms生成的界面选中所要删除用户用户名,然后点击〔确定〕按钮由服务器端程序向数据库发出删除请求,数据库返回删除结果,由服务器端程序生成删除结果消息框。③修改用户密码模块的数据流程:管理员在.NET Windows Forms生成的界面输入所要修改用户信息(学号,原密码,新密码,确认新密码),然后点击〔确定〕按钮由服务器端程序向数据库发出修改请求,数据库返回修改结果,由服务器端程序生成修改结果消息框。
  4) 查看当前上机状态模块的数据流程:学生在客户端输入上机信息(学号,密码)单击[确认]按钮后登陆客户端,客户端将用户信息通过服务器端存储至数据库Online表中,当管理员单击查看当前上机状况模块按钮时由服务器端程序向数据库发出查看Online请求,数据库返回Online表值(当前在线用户信息),由服务器端程序生成上机状况结果消息框。
  5) 日志管理模块的数据流程:①查看管理员日志模块的数据流程:所有系统管理口志在管理员操作时已经通过服务端程序存储至数据库中的Manage log表中,管理员单击管理员日志按钮,由服务器端程序向数据库发出查看管理员日志请求,数据库返回Manage log表中的值,由服务端程序生成日志消息框。②查看用户日志模块的数据流程:所有用户操作日志在用户登陆客户端时已经由客户端通过服务端程序存储至数据库中的User log表中,管理员单击用户日志按钮,由服务器端程序向数据库发出查看用户日志请求,数据库返回User log表中的值,由服务端程序生成日志消息框。
  3.2 数据库设计
  该系统采用的是SQL SEVER2000数据库,该系统的数据库主要由学生信息表(student),管理员信息表(teacher),在线用户信息表(online),管理员日志信息表(managelog)和用户日志信息(userlog)表组成。student表记录了所有关于用户的信息,teacher表记录了所有关于管理员的信息,Online表记录了所有当前在线上机的用户信息,managelog表记录了管理员操作口志的所有信息,userlog表记录了所有上机用户的上机信息。在服务器端主程序中定义了一个DataConn类,在这个类中构造了execute()方法和getData()。当用户触发了向数据库存储(删除,更新)信息的事件模块时,那么这个事件就会调execute()方法,该方法会请求与数据库连接,若连接成功execute()方法会向数据库存储(删除,更新)相应的数据。当用户出发了向数据库查询信息的事件模块时,该事件会调用getData()方法向数据库发出查询数据请求,数据库会返回所要查询的数据或存储结构。
  1) 上机用户表(student表):用户表是客户端用户上机登陆的时候所用到的表,主要记录用户登陆名,密码,姓名,班级,此表以用户名作为主键,同时也是外键,通过这个字段与其他关联表进行通信。如表1所示,描述了student表的详细信息。
  2) 管理员表(teacher表)
  管理员表是管理员登陆服务器端主系统所要用到的表,主要记录管理员用户名和登陆密码,此表以管理员用户名作为主键,同时也是外键,通过这个字段与其他关联表进行通信。
  3) 在线用户信息表(Online)
  在线用户信息表是显示当前在线上机用户信息的表,此表以上机用户的用户名为主键,同时也是外键,通过这个字段与其他关联表进行通信。
  4) 管理员日志信息表(managelog表)
  显示记录管理员所进行的所有操作的表,此表以管理员用户名为主键,同时也是外键,通过这个字段与其他关联表进行通信。
  5) 用户日志信息表(userlog表)
  用户日志信息表是显示记录用户所进行的所有操作的表,此表以上机用户用户名为主键,同时也是外键,通过这个字段与其他关联表进行通信。如表2所示,描述了userlog表的详细信息。
  4 系统运行
  管理员登录的页面提供两个文本输入框(分别用于用户名和密码的输入),一个登陆按钮,一个取消登陆按钮,当用户输入用户名和密码,点击登陆按钮时,事件发生的顺序如下:
  1) 首先该事件会调用UserExist(),该方法首先通过调用DataConn类中的getData()向数据库查询所输入的用户名是否存在,如果存在那么密码是否相等,如果用户名不存在,则UserExist()方法返回值为-1,若用户名存在但返回密码与输入密码不相等UserExist()方法返回值为0,若用户名和密码均一致那么UserExist()方法返回值为1。
  2) 若UserExist()方法返回值为-1,登陆模块程序会向用户发出不存在该用户的消息框。
  3) 若UserExist()方法返回值为0,登陆模块程序会向用户发出密码不正确的消息框。
  4) 若UserExist()方法返回值为1,系统会告知用户登陆成功,用户直接进入系统主操作界面。
  成功登陆系统后,在“用户类型”下拉列表框中选择“学生”,单击“登录”按钮,登录选课系统。
  进入学生主页,点击“必修课程”链接,得到所有必修课程的列表,在列表中可以看到所有必修课程及课程的简单信息,如授课教师姓名、课程所占学分等。在列表中可以点课程名称,如“计算机应用基础”链接,查看课程详细信息;点教师姓名,如“李萍”链接,查看教师的详细信息;点击“查看上课时间地点”链接,查看对应课程的上课时间和地点。在页面加载的时候从数据库读取所有必修课信息,代码如下:
  string sql = "select Course.*,TName from Course,Teacher where CType like '必修' and Course.TId like Teacher.TId";//查询处所有必修课程信息
  DataSet ds = Db.ExecuteSelectSql(sql);
  if ( ds != null && ds.Tables.Count > 0 )
  {
  dgCourse.DataSource = ds.Tables[0];
  dgCourse.DataBind();//将查询结果绑定到DataGrid中
  }
  单击“选修课程”链接,查看所有选修课程列表,在列表中给出了比必修课程更多的信息,比如多了对应选修课程的前导课程、最大人数、当前已选人数等,对每个选修课程均有一个“选修该课程”的按钮,单击此按钮方可选择对应课程。主要代码如下:
  string sql = "select x.*,TName,(select CName from Course as y where y.CId = x.CPreCId) as CPreCName from Course as x,Teacher where x.CType like '选修' and x.TId like Teacher.TId";
  //查询该学生已选修的课程
  DataSet ds = Db.ExecuteSelectSql(sql);
  if ( ds != null && ds.Tables.Count > 0 )
  {dgCourse.DataSource = ds.Tables[0];
  dgCourse.DataBind();
  for ( int i = 0; i < ds.Tables[0].Rows.Count; i++ )
  {ql = "select count(*) from SC where CId = "+ds.Tables[0].Rows[i]["CId"].ToString();
  DataSet ds1 = Db.ExecuteSelectSql(sql);
  if ( ds1 != null && ds1.Tables.Count > 0 && ds1.Tables[0].Rows.Count > 0 )
  dgCourse.Items[i].Cells[6].Text = ds1.Tables[0].Rows[0][0].ToString();}}
  bool locked= bool.Parse(Session["Locked"].ToString());
  if ( ! locked )
  {lbLock.Text = "您尚未锁定选课信息!";}
  else
  {lbLock.Text = "选课信息已被锁定!";
  dgCourse.Columns[9].Visible = false;}
  在选修课程的列表中,选择“计算机密码学”、“计算机图形学”、“线性代数”三门课程后,点击“已选课程”链接查看已经选择的课程列表,在列表中除了可以看到与上一步中相同的信息外,还可以查看到课程成绩。刚才选择的三门课程的成绩均为0,当课程结束后,教师登录本系统给所有学生评分,学生再次浏览此页面可查看到课程的成绩,若成绩合格,学生可获得对应课程的学分。
  5 结论
  该文研究了基于ASP.NET的选课管理系统,系统服务器可以对客户端信息进行实时监控和管理,同时将上机者信息以及操作载入数据库保存;服务器端通过对管理员身份验证使其可以进入管理界面进行管理,实现删除添加管理员和用户,远程监控等功能。该系统基本实现了选课的设计功能,运转正常,单位对该系统的操作简便、简化手工操作给了很高的评价。
  参考文献:
  [1] 梅中辉,经亚枝.NET技术中的数据访问技术―ADO.NET[J].微计算机信息,2003,19(1):47-48.
  [2] 李瑜波,童燕青.计算机开放实验室的实现目标和管理措施[J].实验技术与管理,2003(10):137-140.

转载注明来源:https://www.xzbu.com/8/view-8702687.htm