第32篇 网站试题生成word下载时bug解决

来源:互联网 发布:南京和知梦设计研究院 编辑:程序博客网 时间:2024/05/22 00:05

问题描述:英语科下载word时,选的题型有:完形填空和词汇运用两种,但下载出来题的序号排序混乱。

1 完形填空序号混乱解决

网站上生成的如下:

而我生成的word如下:

原因在于:正则表达式出了问题,如下:

$wanxingxuhaoFlag=preg_match_all('/<uval="">(1\d{1,2}|2[01][0-9]|22[0-7]|[1-9][0-9]|[1-9])<\/u>/',$contents_topic,$match);

(1\d{1,2}|2[01][0-9]|22[0-7]|[1-9][0-9]|[1-9])

解析:\d:匹配一个数字字符。等价于[0-9]。

改成:([0-9]*[1-9][0-9])

软件测试成功,截图如下:


原因在于:22,25多了个空格,匹配时忽略空格就成了。

修改语句如下:

(\S*[0-9]*[1-9][0-9])

2.词汇运用乱序问题解决

2.1 题目乱序解决

对于词汇运用这类题,比方说有三道,应该都不标号,里面的小题号连起来就成。

两道题下载时是对的:

下面两道题时下载报错如下:

错误原因:下面那个大题(用方框中所给词填空那个题,由于编辑没把答案分开,是一个整体,所以此类题只能当作一个题来处理)

上述主要原因在于:当子题目判断时,由于两道题都是词汇运用题,第一个有子题目,第二道没子题目,当两道题合体输出时,子题目的值按最后一个处理,这样就导致有子题目的大题上也出现了序号。

解决办法:换一种方法,检测子题目即可,如下:

运行成功,下载如下:

2.2 答案乱序解决

现在答案是这样的:

原因分析:也应该是子题目误判造成的、

解决办法:改子题目判断检测,修改如下函数:

改了两处:

判断子题目时,不用subQstNum

这样以改,答案显示正确!

2016年9月8日星期四

0 0