首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >问答系统评分php

问答系统评分php
EN

Stack Overflow用户
提问于 2015-10-30 11:32:13
回答 2查看 310关注 0票数 0

我正在做一个小测验,在那里我需要一些帮助来计算分数。

1正确答案=1标记 3错误答案= -1标记 未回答的答案=0标记

我有代码将所有答案计数为正确、错误或未回答。

代码语言:javascript
复制
$response = mysql_query("select qus_id, qus_cans from question where qus_id IN ($order) ORDER BY FIELD(qus_id,$order)", $kpsctuts->connect) or die(mysql_error());   
while($result=mysql_fetch_array($response)){
    if($result['qus_cans']==$_POST[$result['qus_id']])
    {
        $right_answer++;
    }
    else if($_POST[$result['qus_id']]==5)
    {
        $unanswered++;
    }
    else
    {
        $wrong_answer++;
    }
    // Enter Code Here
}

输出标记:

代码语言:javascript
复制
<p>Total no. of right answers : <span class="answer"><?php echo $right_answer;?></span></p>
<p>Total no. of wrong answers : <span class="answer"><?php echo $wrong_answer;?></span></p>
<p>Total no. of Unanswered Questions : <span class="answer"><?php echo $unanswered;?></span></p>            
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-30 11:51:33

首先,您应该定义一个等于0的变量$marks。如果$right_answer有任何值,直接将其存储在$marks中,因为您必须给出+1标记才能得到正确的答案。然后同样地检查是否有任何错误的答案存在。

您的代码继续使用以下代码:

代码语言:javascript
复制
$marks = 0;
if($right_answer) $marks = $right_answer;
if($wrong_answer) $marks = $marks - $wrong_answer/3;
$score = number_format((float)$marks,2,'.',''); //Only two decimal places
echo "The score is: ".$score;
票数 1
EN

Stack Overflow用户

发布于 2015-10-30 11:47:14

使用bcadd()number_format()

代码语言:javascript
复制
<?php 
     $total = $right_answer - ($wrong_answer/3);
     echo bcadd($total,0,2);
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33434996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档