下午结束了军事理论考试,大概有接近一半的题目是昨晚训练过的吧,有印象就直接背答案。没印象的就悲剧了,只能瞎猜,例如试卷的第二题是
2) 我国的《国防教育法》一共有——篇——条。
A、4篇 38条 B、6篇 38条 C、4篇 28条 D、7篇 28条
这题就不会做,瞎猜了,而且我还猜错了。。。
昨晚从同学里弄来的一套选择题和判断题,合计190多道,花了一点时间用php做成了网页给自己测试:
点击此链接开始 http://xiaoxia.org/sub/jstest
原来的文本内容大概如下:
15.国防是随着( B)的出现而产生的。 A 阶级 B 国家 C 军队 D 社会
16.“天下虽安,忘战必危”出自于(C )。
A 《孙子兵法》 B《孙膑兵法》 C《司马法·仁本》 D 《战争论》
17.下列不属于国防要素内容的是(D ) A政治要素 B 经济要素 C文化要素 D历史要素
18.下列哪个朝代对长城陆续加工增修并逐渐改建成最接近今天的面貌。(B )
A 宋朝 B 明朝 C 唐朝 D 清朝
19.下列哪一项不属于我国国防史的启示。(A )
A 只有军队强大才能有强大的国防 B 只有经济强盛才能有强大的国防
C 只有政治昌明才能有巩固的国防 D 只有民族团结和统一才能有坚强的国防
也有可能是选择题。另外,文本里还混合有简答题。因此,必须设计一个算法,把里面的选择题和判断题提取出来,其它的全部忽略掉。随手写了一个马马虎虎的状态机,用来满足自己做题训练的需求!!!因为是临时使用的,写的不好莫见怪!我只想能用就行。
代码:
<?php $c = file_get_contents("js.txt"); $len = strlen($c); $st = "start"; $title = $ansA = $ansB = $ansC = $ansD = $ref = ""; $tf = false; $count = 1; if(isset($_GET['index'])) $index = $_GET['index']*1; else $index = 1; echo '<html><head><title>军事</title><meta http-equiv="content-type" content="text/html;charset=utf-8"></head><body>'; function addProblem() { global $index, $count, $ansA, $ansB, $ansC, $ansD, $ref, $tf, $title; if( $index == $count ){ if($tf){ echo "<p>判断:</p><p>{$index}. {$title}</p><p><a href=\"javascript:sel('T');\"> 正确 </a></p><a href=\"javascript:sel('F');\"> 错误 </a></p>"; }else{ echo "<p>选择:</p><p>{$index}. {$title}</p><p><a href=\"javascript:sel('A');\">A {$ansA} </a> </p><p><a href=\"javascript:sel('B');\">B {$ansB} </a></p> <p><a href=\"javascript:sel('C');\">C {$ansC} </a></p> <p><a href=\"javascript:sel('D');\">D {$ansD} </a></p>"; } echo '<p><div id="result"></div></body></html> <script type="text/javascript"> function sel(ans){ if(ans=="'.$ref.'"){ document.getElementById("result").innerHTML = \'<a href="?index='.($index+1).'"><font color="green">下一题</font></a>\'; }else{ document.getElementById("result").innerHTML = \'<font color="red">您选错了!</font>\'; } } </script> '; die(""); } $count ++; $title = ""; $ref = ""; $ansA = ""; $ansB = ""; $ansC = ""; } for($i=0; $i<$len; $i++ ){ $ch = $c[$i]; if($ch==' '||$ch=="\r"||$ch=="\n"){ $b = true; $last = $ch; continue; } switch($st){ case "start": if($ch=='.'||$ch=='、'){ $st = "title"; } break; case "title": if($ch=='('){ $title .= '( '; $st = "ref"; }else if ($ch==')'){ $st = "start"; $title = ""; }else{ $title .= $ch; } break; case "ref": if($ch=='A'||$ch=='B'||$ch=='C'||$ch=='D'){ $ref = $ch; }else if( $ch==')' ){ $title .= ' )'; if($tf==true){ $st = "start"; addProblem(); $tf = false; }else $st = "title2"; }else if( $ch=='T' || $ch=='F' ){ $ref = $ch; $tf = true; }else{ $st = "start"; $title = ""; $ref = ""; } break; case "title2": if($b && $ch=='A'){ $st = "ansA"; }else{ $title .= $ch; } break; case "ansA": if($b && $ch=='B'){ $st = "ansB"; }else{ $ansA .= $ch; } break; case "ansB": if($b && $ch=='C'){ $st = "ansC"; }else{ $ansB .= $ch; } break; case "ansC": if($b && $ch=='D'){ $st = "ansD"; }else if($b && ($last=="\n"||$last=="\r") ){ $st = "start"; addProblem(); }else{ $ansC .= $ch; } break; case "ansD": if($b && $ansD!=''){ $st = "start"; addProblem(); }else{ $ansD .= $ch; } break; } $b = false; } echo strlen($c); ?>
另外,php的命令行挺好用的,方便调试脚本,直接在终端输入:
php -f test.php
来执行一个脚本。
沙发我的~~~
楼主NB啥呢 一看就是垃圾 会点编程 就变态 国内的悲哀
楼上的,东方学生和西方学生的不同被你诠释得淋漓尽致!
XiaoXia,不是说你不是中国人。
仰天大笑出门去,我辈岂是蓬蒿人。
别人笑我太疯癫,我笑别人看不穿。
宠辱不惊,看庭前花开花落;去留无意,望天上云卷云舒。
不明白哪里惹到002F的童鞋了,他在喷什么?
h҉a҉r҉m҉o҉n҉i҉z҉e҉
用不着理他们,一看就是嫉妒。见不得别人比自己强。
咋弹出个网站? 北京指南针科技发展股份有限公司
to 令行CMD : 11岁?
小汪`仅此而已““““`
其实小虾你完全可以设定个审核““
对于喷子直接无视`
@令行CMD:
我写日志没错吧!也没说过自己有多NB,分享是我的自由。
我承认我制造了不少垃圾,望见谅^_^
无视2L,支持xiaoxia,写日志只是记录自己的成长和分享经验。不喜欢的可以不看!
小虾触痛了别人幼小的心灵。伤得别人脑袋抽风。
支持小虾,放假没?
@xibeimu:没,还有一科考试。什么时候放假还不知道。估计7月中旬之前会放
2L将很多国人的心理诠释的淋漓尽致。。
你可以说别人,但是你一定要比人强,我替你父母感到悲哀。。。
呵呵,路过。
军事理论考试好像大一 就考了吧- -,放假就好了,小虾,嘻嘻
小虾,第六题AB一样,虽然都是错的。。。还好以后都不用考这个了- -今天我刚考了天朝所特有的一科。。。我能做出来我自豪- -米国可能还做不出呢
考军事还好,考毛概确实接受不了。我看没有哪个同学不是抱着应付的心态的。
支持小虾!
最近出了不少赤裸裸的嫉妒的人,非常明显~~~
莫非你是中大的?
你的确编程很有经验,厉害!
不过,我从来不喜欢重复制造轮子.(Don’t recreate the wheels).
我的个人主页:http://cnjdeng.appspot.com
造轮子?? 我连轮子都不会造。。。
暑假继续发奋学习!!!
@James: 我有一个同学在中大读软件,哈哈~
哇!我要PHP,我要PHP!!!
PHP很容易入门!
@XiaoXia:关于造车轮,有位师兄这么说……
http://www.cppblog.com/vczh/archive/2010/07/01/119083.html