科技资讯科技资讯S I N &T NOLOGY I NFORM TI ON
2008N O .12
SC I ENCE &TEC HN OLO GY I NFO RM ATI O N
I T 技术
互连网的建构技术为了满足人类对WWW 的憧憬,一再推陈出新,短短几年间,从单纯展示图文的静态网页,走向了可与使用者互动的动态网页,极大地丰富了网页的内容。其中AS P 动态网页是现在在互联网上使用的最多一种网页。
A SP,全称为A ct i ve Se r ver Pa ge ,是一套微软开发的服务器端脚本运行环境。通过A S P 我们可以结合H T ML 网页、ASP 脚本和Ac t i ve X 元件建立动态、交互且高效的WE
B 服务器应用程序[1]。有了A S P 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通H T ML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
虽然AS P 技术相对于H T ML 静态网页有很多优点,但是在AS P 动态网页中一个比较难的问题就是网页
的后台编辑,不能像编辑静态网页软件(如Dr e a m we a ve r )那样实现“所见即所得”效果,排版比较困难,也不能方便地像wor d 那样,轻松地
编辑我们想要的内容。现在这个问题已经得到解决,现在网上有很多在线的文本编辑器,可以较方便地解决A S P 后台编辑比较困难的问题。其中在线文本编辑器e W e bEdi t or 是AS P 后台编辑工具之一。
在线文本编辑器e W e bE di t or 是e W e b 开发团队开发的一个开源在线网页编辑器。操作界面与wo r d 相近,通过它,我们很方便地实现在线网页的编辑,并且它开放的源代码,我们可以比较方便的增加一些功能,实现我们所需要的功能。
1需要解决的问题
在线文本编辑器e W e bEdi t or 虽然是一个使用和功能都比较强大的网页编辑工具。但是它还是有很多的地方不能满足网页的需求,还需要增强它的功能。如当编辑一篇很长的文章时,就不能像wo r d 那样能够将一篇文章自动分成几页显示出来以便浏览者更好地浏览。本文要解决地是如何在在线文本编辑器e W e b Edi t or 的开源代码的基础上增加相应的功能代码,以便和A S P 技术结合实现一篇文章内的分页显示。
2详细分析
在AS P 脚本对数据库的操作中,实现数据表记录的分页非常方便,有专门针对记录集分页属性。而要实现对一篇文章分页(即字段内容的分页),则没有专门的分页属性,实现起来比较困难。首先因为文章的添加是通过在线文本编辑器e W e bEdi t or 进行编辑并添加到数据表中的字段内,保存在字段里的内容为所编辑的源代码;其次不知道分页的具体地方,不能像对记录集分页,有专门的属性保存每页显示的记录数。如果对分页的地方正好是某个标记组的中间(例如:分页的地方正好是<t a b l e ></t a bl e >标记的中间),这样,就显示不出我们所要的分页,甚至浏览的时候还会出错。根据上面的分析主要有以下几个地方需要解决:
首先:怎样设置分页的位置;
其次:分页的位置到了,如何根据分页的位置进行文章分页((即字段内容的分页)。
想要确定分页的位置,通过A S P 代码是很难实现了,所以只好在使用在线文本编辑器e W e bEdi t or 编辑文章时进行位置的确定。可以在编辑过程中添加分页标记(如[Ne xt Page ]作为分页标记),即在需要进行分页的地方添加分页标记,这样就可以防止分页的地方正好是某组标记的中间,而产生错误。如果每次在分页的地方输入一个分页标记字符,操作也不方便。现在对在线文本编辑器e W e bEdi t or 的功能进行增加,在工具栏中增加一个按钮,用来插入分页标记。
2.1在线文本编辑器eW ebEdi t or 增加分页按钮
由于在线文本编辑器e W e bEdi t or 本身不带分页按钮,经过分析它的源代码,修改后源界面及修改后界面分别如下:
(1)源界面图1(2)修改界面图2
分页按钮增加后,这时编辑内容时就可以添加分页符后如图3:
(3)增加如上图的分页标志后,就不会出现在标志组中间分页的情况,接着如何利用A S P 技术将分页标志取出实现文章分页的效果。
2.2取出分页标志函数
函数说明:
过程名:l i st body
作用:提取分页标记实现文章分页参数说明:body:文章内容;i _i d:记录编号
<%
Sub l i st body(body,i _i d)di m ar r body,pages,i d
i d=i _i d
i f I ns t r (body,"[N ext Page]")
<=0t he n
r es pons e.w r i t e body el se
Cur Pa g e =r e que s t
("Cur Page ")
'根据标志“[N e xt Pa ge]”分段
保存到数组a r r body 中
a r r body=spl i t (cont ent 1,"
分页预览[N ext Page ]")
pa ges =U bound(ar r body)+1i f C ur Page=""t he n
=如何利用
AS P
技术实现网页文章内分页
张世雄
(清远市职业技术学院广东清远
511500)
摘要:本文介绍了如何利用ASP 技术及在线文本编辑器e W eb Ed i t or 实现一篇文章内的分页,并结合一个实例具体介绍实现文章内分
页的一些细节问题。关键词:ASP 在线文本编辑器分页中图分类号:TP391.1文献标识码:A 文章编号:1672-3791(2008)04(c )-0098-
02
图1源界面
图2修改界面
3
图显示效果图
98C E CE ECH A C ur P age 1el se
4
科技资讯
科技资讯S I N &T NOLO GY I NFORM TI ON 2008N O.12
SC I ENC E &TEC HNO LO GY I N FO RM A TI ON I T 技术
Cur Page=Ci nt (C ur Pa ge)end i f
r e s ponse.wr i t e a r r body
(Cur Pa ge-1)'取得所链接页码的内容
r e s pons e.wr i t e "<di v
al i gn=cent er >"
'显示页码
f or i =1t o pages
f ="
【<f ont c ol or =r e d>"&"第"&i &"页"&"</f ont >】"
el se
r e s pons e.wr i t e "<a
hr e f =?no1="&no1&"&Cu r Pa ge ="&i &">"&"【第"&i &"页】"&"</a >"
end i f ne xt "<>"f %>
目前,计算机考试系统已经成为现试方式的有力补充和发展。相对于传统的纸、笔考试,上机考试减轻了在组织考试、评卷、成绩统计等方面所花费的人力和物力。计算机的使用加快了测试的计分与报告的效率,并使测验试题库得以建立。
1系统功能分析
1.1题库设计和管理
为了实现智能组卷,入库的每一道试题,除了题目内容以外,还要有多种定性或定量的指标,应包含有题号、题型、分值、知识点、难度、章节等。1.2手动、自动组卷
系统应实现用户给定约束条件下的出卷过程的全部智能化,生成的试卷应有较好的随机性、科学性。系统根据用户给出的题型要求、知识点、难度、考题数量、分值等具体要求形成组卷策略,并显示题库中符合要求的试题数目,随机抽取与试卷结构一致的试题数目即可。在已形成的试卷上,还可以人工修改试题。1.3自动阅卷
对于单选题、多选题、判断题等客观题型,考生只要提交后,系统既可对比数据库中的答案进行评分。为提高自动阅卷层次,本系统将程序设计题的评分作为重点技术进行突破。程序设计题不局限于“填空式”,即考察代码的语法、逻辑的正确性、又要考察程序的缜密性。1.4自我测试
突破时间、空间限制,利用I nt er net ,考生只要输入正确的用户名和密码后,就可以进入测试界面进行自我检验。
2系统的应用——计算机考试系统Sol E xam 3.0
2.1开发目标
本系统主要用于全国高校计算机水平考试辽宁考区上机考试及学生练习。本系统适用于计算机基础课程(计算机文化基础等)、程序设计语言课程(如C/C++、J a va 、V i s ual B asi c 等),支持的题型包括:判断题、
单选题、多选题、填空题、改错题、完善程序题、W i ndow s 操作题、W or d 操作题、E xcel 制表题、打字题、程序设计题等。2.2数据库设计
此处采用免费开放源代码的M y S QL 数据库,该数据库功能强大,支持多种操作系统环境,且在高并发数时性能影响不明显。为方便各个考点的运行,后期可将M ySQL 转换为Ac c e s s 数据库。2.3关键技术
程序设计题的评分是本系统的重点考虑问题。考生提交的程序执行时受到比较严格的限制,包括运行时间要求、内存使用要求、满足测试用例等。考生程序执行的结果将被系统捕捉并保存,然后再转交给一个评分功能模块。该模块比较考生程序的输出数据和标准输出的差别、运行时间、内存使用等数据,最后系统返回一个评判结果。
程序设计题的开发环境采用M yEcl i ps e 5.5+Tom c a t 6.0。在开发过程中使用了开放源代码的对象关
系映射框架H i ber nat e ,它对JDBC 进行了轻量级的对象封装,不仅提供了从J a va 类到数据表之间的映射,也提供了数据查询和恢复机制。
在评分时,首先获得试题编号,答案和选择的语言:
St r i ng t no =r Par a m et er ("TN o");
St r i ng sour ce = t Par am et er ("sour ce");
St r i ng s t r La ngua ge =r e que s t .get Par am et er ("l a nguage");
将考生提交的源代码保存起来:
Fi l e s our c e Fi l e Pa t h=ne w Fi l e (E XAM _RE CORD_P AT H+u s e r I d +"\\Pr ogr am D e si gnT");
i f(!so ur ceFi l ePat h .i sD i r ect or y ()){sour ce Fi l ePat h.m kdi r s();}St r i ng s ou r c e Pa t h =EXAM _RECORD_PAT H+u s e r I d+"\\Pr ogr a m Des i gn T \\"+t no+".t xt ";
t ry{
f i l eSour ce =ne w Fi l eOut put St r e am (sou r cePat h,f al se);
byt e[] B yt es();f il eSo ur ce.w r it e(b s);fi l eSou r ce.cl ose();
}cat ch(E xcept i on e){e.pr int St ackT r ace ();}
将考生的代码生成.c p p 文件,然后编译产生可执行文件.e x e ,并将错误的编译信息保存在e r r or Com pi l e.out 中;
采用多线程技术运行考生的程序,记录程序运行时间,:
begin=end=System .cur r entT i m eM i l l is();
M yThr ea d t hr e a d1=new M yThr ea d ();
t r y{t hr ead1.st ar t ();end=Syst em .cur r ent T i m eM i l l i s();w hil e(t hread1.isA l i ve()){end=Syst em .cur r ent T i m eM i l l i s();i f (end-be gi n>t i m eLi m i t )br eak;
}
}cat ch(E xcept i on e){end=Syst em .cur r ent T i m eM i l l i s();
e.pr i nt St ackT r ace();}
获取程序使用内存大小情况:R unt i m e r t =Runt i Runt i m e();i nt t ot al =(i nt )r t.t ot al M em or y();i nt f r ee=(i nt )r t.f r eeM em or y();i nt us eM em or y=(t ot a l -f r ee)/1024/8;根据测试用例结果、运行时间、内存使用情况评分,将这一题的成绩存起来。
3结语
本系统已经开发完成,在辽宁考区近五十所高校用于计算机水平考试,正在进一步充实题库,争取能达到更好的效果。
计算机考试系统设计与实现
张天珍1苗强2李华良2
(1.盘锦市职业技术学院信息系
辽宁盘绵12400  2.沈阳化工学院
沈阳
110142)
摘要:现代教育体系中,考试系统的网络化是非常重要的一环。本文根据目前学校考试的实际需要,设计了一个新的包含C/S 与
B/S 模式的考试系统,重点论述了考试系统中程序设计题的评分。关键词:考试系统在线测试中图分类号:TP3911文献标识码:A 文章编号:1672-3791(2008)04(c )-0099-01
通过调用上列显示函数时,分页显示效果如下图4:
3结语
本文通过对在线文本编辑器e W e bEdi t or 增加一个定位文章分页位置的按钮再结合AS P 技术实现了文章内容分页,解决了网页内容过长带来的浏览不方便。
99
C E CE ECH A i i C ur page t hen r e s pons e.w r i t e r es ponse.w r i t e /di v end i