if($konggeleixin[$k]=="r" and $huida[$k]!=="" and $huida[$k]!==" " ){
//echo "</br> _第".$k." 空的回答:".$huida[$k];
//var_dump($huida[$k] == $pingfengA_k[$k]);
if($huida[$k]==$pingfengA_k[$k] or $huida[$k]==$biaozhundaan_k[$k]){
$defeng_k[$k]= $fengshu_k[$k];
$duicuo_k[$k]=1;
//echo " 您本题第".$k."空 选择正确:".$defeng_k[$k]. "分 <br />";
}else {
$defeng_k[$k]= 0;
$duicuo_k[$k]=0;
//echo " 您本题第".$k."空 选择$pingfengA_k[$k],$huida[$k]不正确 :".$defeng_k[$k]. "分 <br />";
}
}//if($konggeleixin[$k]=="r"){
if($konggeleixin[$k]=="c" and $huida[$k]!=="" and $huida[$k]!==" " ){
if(is_array($huida[$k])){
$huida_c[$k]=implode('|', $huida[$k]);}else{
$huida_c[$k]= $huida[$k];}
//echo "</br> _第".$k." 空的回答:".$huida_c[$k] ;
//print_r($huida[$k]);
//echo "</br> _第".$k." 空的评分词:".$pingfengA_k[$k]." <br />";
if($huida_c[$k]==$pingfengA_k[$k] or $huida[$k]==$biaozhundaan_k[$k] and $huida[$k]!=="" and $huida[$k]!==" " ){
$defeng_k[$k]= $fengshu_k[$k];
$duicuo_k[$k]=1;
//echo " 您本题第".$k."空 正确:".$defeng_k[$k]. "分 <br />";
}elseif( stristr($pingfengA_k[$k],$huida_c[$k]) and $huida[$k]!=="" and $huida[$k]!==" " ) {
//$defeng_k[$k]= round (0.25*$fengshu_k[$k],0); //round — 对浮点数进行四舍五入,0是小数位数
if ($fengshu_k[$k]>=2){$defeng_k[$k]= 1; }else{$defeng_k[$k]=0.5;}
$duicuo_k[$k]=0.5;
//echo " 您本题第".$k."空 答案不完整,得 :".$defeng_k[$k]. "分 <br />";
}else{
$defeng_k[$k]= 0;
$duicuo_k[$k]=0;
//echo " 您本题第".$k."空 不正确 :".$defeng_k[$k]. "分 <br />";
}
}//if($konggeleixin[$k]=="c"){
if($konggeleixin[$k]=="t" and $huida[$k]!=="" and $huida[$k]!==" " ){
$pingfengA_k_DuiCuo = explode(';',$pingfengA_k[$k]);//分开为每个空的对错评分词,$pingfengA_k_DuiCuo[0]为正确的词
@ $pingfengA_Cuo = explode(',',$pingfengA_k_DuiCuo[1]);//分开为每个空的错词 词段 为数组
$pingfengA_Dui = explode(',',$pingfengA_k_DuiCuo[0]);
//echo " <br />您本题第".$k."空 $pingfengA_Dui : <br />"; print_r($pingfengA_Dui);echo "</br>";
if($huida[$k]===$pingfengA_k[$k] or $huida[$k]===$biaozhundaan_k[$k] ){
$defeng_k[$k]= $fengshu_k[$k];
$duicuo_k[$k]=1;
//echo " 您本题第".$k."空 正确.因全同:".$defeng_k[$k]. "分 <br />";
}
elseif (empty($pingfengA_Dui[1])) {//如果对的评分词没有,号分开的第二组关键词,则要求学生答案全等于近义词中其中一个答案。
$pingfengA_Dui_jing = explode('|',$pingfengA_Dui[0]);//得到每个关键词中近义词 数组。
$defeng_k[$k]= 0;
$duicuo_k[$k]=0;
for( $j=0;$j<count($pingfengA_Dui_jing); $j++ ){
if( $huida[$k]===$pingfengA_Dui_jing[$j]) {
// echo " 您本题第".$k."空第".$j."近义词: ".$pingfengA_Dui_jing[$j]." 全等通过(没有第二组关键词) <br />";
$defeng_k[$k]= $fengshu_k[$k];
$duicuo_k[$k]=1;
}else{
// echo " 您本题第".$k."空第".$j."近义词: ".$pingfengA_Dui_jing[$j]." 不是全等,不能通过(没有第二组关键词) <br />";
}
}//for( $j=0;$j<count($pingfengA_Dui_jing); $j++ ){
}//elseif (empty($pingfengA_Dui[1])) {//如果对的评分词没有,号分开的第二组关键词,则要求学生答案全等于近义词中其中一个答案。
else
{
//先检查学生答案$huida[$k]中是否包含不允许出的词$pingfengA_Cuo[$c]。
$tongguo_k=1;
for( $c=0;$c<count($pingfengA_Cuo);$c++ ){
if(!empty($pingfengA_Cuo[$c])){
if( stristr($huida[$k],$pingfengA_Cuo[$c]) ){
$defeng_k[$k]= 0;
$duicuo_k[$k]=0;
echo " 您本题第".$k."空 不正确,因包含错误关键词 :".$defeng_k[$k]. "分 <br />";
$tongguo_k=0;//空 通过状态,0表示不通过
}
//break ;//作用是跳出当前的语法结构
} //if(!empty($pingfengA_Cuo[$c])){
} //for( $c=0;$c<count($pingfengA_Cuo);$c++ )
if($tongguo_k ==1){
$tongguo_d=0;//关键词通过状态,0表示不通过
for( $d=0;$d<count($pingfengA_Dui); $d++ ){
$pingfengA_Dui_jing = explode('|',$pingfengA_Dui[$d]);//得到每个关键词中近义词 数组。
$tongguo_j=0;//近义词通过状态,1表示不通过
for( $e=0;$e<count($pingfengA_Dui_jing); $e++ ){
if( stristr($huida[$k],$pingfengA_Dui_jing[$e]) and $tongguo_k!==0 ){
// echo " 您本题第".$k."空第".$d."个关键词的第".$e."近义词: ".$pingfengA_Dui_jing[$e]." 通过 <br />";
$tongguo_d=$tongguo_d +1;//通过状态,0表示不通过
//break ;//作用是跳出当前的语法结构,只要检测到一个近义词通过就不必检测后面近义词,第个关键词算通过。
}else{
//echo " 您2本题第".$k."空第".$d."个关键词的第".$e."近义词: ".$pingfengA_Dui_jing[$e]." 不能通过 <br />";
$tongguo_j=$tongguo_j+1;//通过状态,1表示不通过
}
}//for( $e=0;$e<count($pingfengA_Dui_jing); $e++ )
if($tongguo_j==$e){
$defeng_k[$k]= 0;
$duicuo_k[$k]=0;
//echo " 您本题第".$k."空 不正确 ,因关键词".$d."不能通过 :".$defeng_k[$k]. "分 <br />";
//break ;//作用是跳出当前的语法结构,只要检测到一个关键词所有近义词不通过,其它关键词不必再检测。
}//if($tongguo_j==$e)
} //for( $d=0;$d<count($pingfengA_Dui);$d++ )
//下面为了防止学生答案包含了评分词中的数字,但又有多的数字造成出错。
//echo " <br />&&您本题第".$k."空 $pingfengA_Dui : <br />"; print_r($pingfengA_Dui);echo "</br>";
for ($p=0;$p<count($pingfengA_Dui);$p++){
// echo " <br />您本题第".$k."空 pingfengA_Dui[$p] :".$pingfengA_Dui[$p]. " <br />";
$str = str_replace($pingfengA_Dui[$p],"",$huida[$k]);// str_replace() 函数把字符串 "$huida[$k]" 中的字符 "str_split($pingfengA_Dui_STR)" 替换为 " "://$huida[$k]去除$kongdaan_y[$k][$z]数组中的字符,如果还有数字就不通过
//echo " <br />##您本题第".$k."空 str :".$str. " <br />";
}
//echo " <br />您本题第".$k."空 str :".$str. " <br />";
$shu=array("0","1","2","3","4","5","6","7","8","9","不","没","无","no","NO");
$str2 = str_replace($shu,"",$str);
//上面为了防止学生答案包含了评分词中的数字,但又有多的数字造成出错。
//echo " <br />您本题第".$k."空 str2 :".$str2. " <br />";
if($tongguo_d==$d and strlen($str2) == strlen($str) ){ //
$duicuo_k[$k]=1;
$defeng_k[$k]= $fengshu_k[$k];
echo " 您本题第".$k."空 正确:".$defeng_k[$k]. "分 <br />";
}else{
$defeng_k[$k]= 0;
$duicuo_k[$k]=0;
// echo " 您本题第".$k."空 不正确 ,原因其它 :".$defeng_k[$k]. "分 <br />";
}
}//if($tongguo_k!==0)
}//if($huida[$k]==$pingfengA_k[$k] or $huida[$k]==$biaozhundaan_k[$k] and $huida[$k]!=="" and $huida[$k]!==" " )---else 的}
}//if($konggeleixin[$k]=="t"){
}// for ( $k=0;$k<count( explode('#',$pingfengA));$k++ )
//print_r($defeng_k);
//以上评分结束