| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 926 人关注过本帖
标题:[求助]考试系统中填空字符如何与已知正确答案匹配
只看楼主 加入收藏
chenlixiaoyao
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-31
收藏
 问题点数:0 回复次数:6 
[求助]考试系统中填空字符如何与已知正确答案匹配
请教大家,我的毕业设计要把填空题的答案和正确答案进行对比,一个填空题还有多个空,而我的答案在数据库里只有一个字段,该如何实现?
搜索更多相关主题的帖子: 数据库 字符 考试 填空 系统 
2006-06-01 11:08
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
用Split函数
例如
:
Dim TempStr
Dim TempAry
Dim i
TempStr="abc|def|ghi|jkl|mno|pqu|vwx|yz"
TempAry=Split(TempStr,"|")
For i=0 To UBound(TempAry)-1
Response.Write "TempAry("&CStr(i)&")="&TempAry(i)
Next

[此贴子已经被作者于2006-6-1 12:56:47编辑过]

2006-06-01 11:22
chenlixiaoyao
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-31
收藏
得分:0 
高手!!!!
还想问一下,这样的话是不是要把数据库里的答案字段改成abc|def|ghi|jkl|mno|pqu|vwx|yz这样的形势?
TempAry("&CStr(i)&")="&TempAry(i)是什莫意思呢?
2006-06-01 12:20
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
回复:(chenlixiaoyao)[em17][em17][em17]高手!!!...
以下是引用chenlixiaoyao在2006-6-1 12:20:00的发言:
高手!!!!
还想问一下,这样的话是不是要把数据库里的答案字段改成abc|def|ghi|jkl|mno|pqu|vwx|yz这样的形势?
TempAry("&CStr(i)&")="&TempAry(i)是什莫意思呢?

TempAry("&CStr(i)&")="&TempAry(i)是什莫意思呢?
这句就是显示用Split函数分出来的数组的内容。
把答案字段改成abc|def|ghi|jkl|mno|pqu|vwx|yz这样的形势。
就可以资格字段存储多个答案,不过答案中最好不要有|这种字符。
或者可以用一些少有的特殊字符来分隔
TempAry=Split(TempStr,"@")
答案就写成
abc@def@ghi@jkl@mno@pqu@vwx@yz
这种形式来分隔。

2006-06-01 13:01
chenlixiaoyao
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-31
收藏
得分:0 

楼上的朋友,我还是不明白,我给你发一段我的代码,你能帮我看一下怎莫改吗?

2006-06-01 21:45
chenlixiaoyao
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-5-31
收藏
得分:0 
set wyrs3=server.CreateObject("adodb.recordset")
wysql3="select * from "&session("mdb")&" where kemu='"&kemu&"' and type='3'"(类型为填空)
wyrs3.open wysql3,conn,1,1
do while not wyrs3.eof
tkwy=tkwy+1
tkanws=request.Form("tk"&tkwy)--这是从递交表单取出的用户填空题答案
tkanw=replace(replace(tkanws,"",""),"","")
tkan=trim(wyrs3("answer"))
if tkanw=tkan then --tkan是正确答案
tkzf=tkzf+tkfs --tkzf是总分,如果相等就总分增加
end if
wyrs3.movenext
loop
我想问,如何把上面简单的tkanw=tkan 条件语句,变成用分割符表示出来的多个空的对比?用一个for语句循环就行吗?
还有,显示用户答案和正确答案的时候,怎莫把那些分隔符去掉呢?
谢谢了!!!!!!!!!!!!!!!!!!11
2006-06-01 21:52
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
以下是引用chenlixiaoyao在2006-6-1 21:52:00的发言:
set wyrs3=server.CreateObject("adodb.recordset")
wysql3="select * from "&session("mdb")&" where kemu='"&kemu&"' and type='3'"(类型为填空)
wyrs3.open wysql3,conn,1,1
do while not wyrs3.eof
tkwy=tkwy+1
tkanws=request.Form("tk"&tkwy)--这是从递交表单取出的用户填空题答案
tkanw=replace(replace(tkanws,"",""),"","")
tkan=trim(wyrs3("answer"))
if tkanw=tkan then --tkan是正确答案
tkzf=tkzf+tkfs --tkzf是总分,如果相等就总分增加
end if
wyrs3.movenext
loop
我想问,如何把上面简单的tkanw=tkan 条件语句,变成用分割符表示出来的多个空的对比?用一个for语句循环就行吗?
还有,显示用户答案和正确答案的时候,怎莫把那些分隔符去掉呢?
谢谢了!!!!!!!!!!!!!!!!!!11

Split分隔成数组后就已经把分隔符去掉,或者
可以用Replace函数去掉分隔符
如TStr=Replace("abc@def@ghi@jkl@mno@pqu@vwx@yz","@","")
这样就把@给去掉了。

2006-06-02 08:50
快速回复:[求助]考试系统中填空字符如何与已知正确答案匹配
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013100 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved