下午结束了军事理论考试,大概有接近一半的题目是昨晚训练过的吧,有印象就直接背答案。没印象的就悲剧了,只能瞎猜,例如试卷的第二题是
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