1、基于ASP的远程教学选课、退课功能的设计与实现摘要 结合远程教学系统开发的经历,介绍了如何利用ASP技术实现网上选课、退课功能。关键词 ASP;远程教学;选课;退课;Oracle1 引言ASP是“Active Server Pages”的简写,即“动态服务器网页”,是一种被广泛用于创建动态网页的功能强大的服务器端脚本语言。笔者参与的是邮政远程教学系统项目开发,本系统采用WindowsServer,WEB服务采用/,与后台数据库采用ODBC连接,使用ASP技术实现系统的动态页面效果。该系统主要针对邮政职工的在职远程学习、远程技术讨论和交流,并为业务管理提供支撑服务。远程教学网站将开设许多业务课、
2、技术课供学员学习,因此学员可以自由的选择一些课程来学习。下面主要介绍本系统网上选课、退课的流程设计及如何利用ASP技术实现功能。2 远程教学系统概述现代远程教育是随着现代信息技术的发展而产生的一种新型教育方式,是构筑知识经济时代人们终身学习体系的主要手段。远程教学是邮政继续教育的一个有效途径。邮政远程教学系统可以及时把邮政新技术、新业务放在网上交流探讨,网上学员可以随时随地学习、提高,一定程度上可以减轻脱产短期培训给企业造成费用支出的压力。本系统总体上定位为“基于Web的开放式多媒体远程教学系统”。这一类远程教学系统主要为窄带、非实时的应用系统,它采用WEB服务器和数据库服务器作为远程教育网的
3、服务器,用户在接入因特网的计算机上,通过浏览器连到教学系统的WEB服务器上,完成教学内容的浏览、课件下载、实时答疑等各项学习活动。同样,教师也通过浏览器以教师身份登录到WEB服务器上实施教学和答疑。系统采用目前流行的Web应用的三层B/S瘦客户体系结构,即数据层、功能层、表示层。3学员学习流程首先学员通过网络浏览远程教学网页,根据自己的需要选择不同的专业、课程,在学员将学习课程所需要的费用交纳后即可以通过该网站进行学员注册,学员输入个人的相关信息并注册成功后就成为了远程教育网的正式学员,从而可以将自己所选择的课程课件下载学习。为了解决学员在学习过程中遇到的问题,教学网安排老师在网上进行辅导,学
4、员可以通过发E-mail询问,也可以登录教学网站的交流室与其他学生或辅导老师进行讨论,或访问课程问题集锦,发表自己的问题、查看问题的答案。在学员学习完成后,如顺利通过相应考试即可结业,并且可以通过远程教育网查询成绩。 3选课、退课功能概要设计目标:为登录远程教学系统的学员提供选择学习课程的功能,要根据学员的交费情况判断课程是否可选。输入:本人资金余额,可选课程清单。加工: 学员类型、权限,禁止非法客户操作。 帐户表中查出本人帐户资金余额,若为零则禁止。 从学员选课表中,查出并显示该学员已选课程。 列出目前网站可供该学员选择的课程(该学员的已选课程出外),以及每门课程的具体信息,包括课程开课时间
5、、任课教师、学时、费用及简单的内容介绍。 接收用户选课、退课操作,如开课时间未到,学员可以把已选课程退掉,及退课。也可将新课程选中,即选课。根据员的操作,系统随时计算、显示该学员的资金余额,并随时刷新该学员已选课程列表和可选课程列表。 选课操作过程中,计算学员资金余额-所选课程费用的值,该值小于零,则选择无效、操作失败;若大于等于零,经用户确认后保存,同时把该值记入账户信息表,形成新的资金余额;退课操作完成之前,计算学员资金余额+所退课程费用的值,并把该值记入账户信息表,形成新的资金余额。 在学员选课表中添加或注销记录,资金余额写入帐户信息表,资金增减明细写入资金明细表。输出:选课结果,费用明
6、细,资金余额的更新。4选课、退课功能程序实现 选课、退课功能的实现主要采用了ORACLE数据库访问的ADO技术,ADO是ASP技术的核心之一,它集中体现了ASP技术丰富而灵活的数据库访问功能。 将学员已选课程列表显示、可选课程列表显示与选课操作的处理写成了一个应用程序,这样通过多次调用应用程序本身,可以随时刷新这两个课程列表及资金余额显示。 将学员已选课程列表显示、可选课程列表显示与退课操作的处理写成了一个应用程序,这样通过多次调用应用程序本身,可以随时刷新这两个课程列表及资金余额显示。下面以选课功能的源程序为例:选课功能部分源代码:% id=cstr(session(id) set cn=(
7、) cnstr=application(oleconn)cnstr na=(username) sqls=select suplus,class_no from account where account_no=&session(id)& set rss=(sqls)取出用户的余额 su=cint(rss(suplus) classno=trim(rss(class_no)以下是用户提交选课操作的处理if request(ch)=yy then先判断用户的资金剩余情况 if sucint(request(suplus) then end if 再判断用户是否选过此课 sql=select co
8、unt(*) from fstudent_lesson where account_no=_&id& and lesson_id=&request(lessonid)& set rs=(sql) rnum=cint(rs(0)set rs=nothing 如果用户没有选过此课,则可以选课if rnum=0 thenye=cint(request(suplus) 向选课表写入一条记录sql=insert into fstudent_lesson_&(account_no,lesson_id,completed,lesson_name,selected_time) values(_&id&,&re
9、quest(lessonid)&,n,&request(lessonname)&,sysdate) 修改资金余额sql1=update account set suplus=&ye& where account_no=&id& 写用户的费用明细流水sql2=insert into fee_&(account_no,money,opreate_time,suplus,remark) values(_&id&,&request(lessonfee)&,sysdate,&ye&,选课)sql2sqlsql1 end if显示学员的新选课表及新的可选课程列表,即刷新页面显示else如用户未提交选课 s
10、qls=select suplus from account where account_no=&id& set rss=(sqls) su=cint(rss(suplus)显示用户已选课程列表sql=select _time,b.* from fstudent_lesson a,lesson b _ &where _id=_id and _no=&session(id)&set rs=(sql) h3font color=#006699姓名:&na 你的资金余额为:&su&元!/font  
11、; font color=#339933/h3/h3 pfont color=#009966已选的课程列表:/font table cellspacing=0 cellPadding=0 bordercolor=#009966 border=1 align=center bordercolorlight=009966 bordercolordark=#FFFFFFtr align=center bgcolor=#cccccctd课程编号/tdtd课程名/tdtd学时/tdtd学分/tdtd费用/tdtd开课时间/tdtd结课时间/tdtd选课时间/td/trdo whil
12、e not loop/table/p end ifpfont color=#009966可选的课程列表:/font/判断用户是否选过课ifthensql2=select * from lesson a ,teacher_lesson b _&where _id=_id and _no=&classno& set rs2=(sql2) /判断是否有允许选的课程 ifthenfont color=red无/fontbrelsetable cellspacing=0 cellPadding=0 bordercolor=blue border=1 align=center bordercolorlig
13、ht=blue bordercolordark=#FFFFFFtr align=center bgcolor=#cccccc_&td课程编号/tdtd课程名/tdtd学时/tdtd学分/td_&td费用/tdtd开课时间/tdtd截课时间/tdtd操作/td/trdo while nottr align=centertd_&rs2(lesson_id)&/tdtd_&rs2(lesson_name)&/tdtd_&rs2(period)&/tdtd_&rs2(credit)&/tdtd_&rs2(lesson_fee)&/tdtd_&rs2(start_time)&/tdtd_&rs2(end
14、_time)&/td fy=cint(rs2(lesson_fee)fy1=su-cint(rs2(lesson_fee)if fy10 thentd align=centerimg src=images“ title=资金不足,你无法选择此课程! align=absmiddle height=25/td/trelse/资金足可以选此课,带着数据链接到本程序文件,即回到前面用户提交选课操作的处理tda href=?ch=yy&suplus=_ &fy1&lessonfee=&trim(rs2(lesson_fee)&lessonid=_ &rs2(lesson_id)&img src=imag
15、es“_ & title=你可以选择此课程! align=absmiddle height=25/td/trend ifloop/table/p end if /用户已经选过课 elsesql1=select b.* from teacher_lesson a,lesson b where _no=_ &classno& and _id=_id and _id not in_ &(select lesson_id from fstudent_lesson where account_no=&session(id)&) set rs1=(sql1)/判断用户是否还有未选的课程 5结束语 以上是笔者利用ASP技术开发邮政远程教学系统的选课、退课功能的设计与程序实现。程序实现比较巧妙,实现了页面信息的随时更新,但程序结构稍显复杂,有待于进一步做程序优化工作。参考文献:1 挑战asp与网页数据库设计邓文渊,陈惠贞,陈俊华编着 中国铁路出版社 ASP动态网页设计赵增敏编着 电子工业出版社 ASP数据库系统开发实例导航宣小平等编着 人民邮电出版社