php实现网站四则运算。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <form method = "post" action = "fourArithmeticOperation.php">
        简单四则运算 <input type = "submit" name = "continue" value = "简单四则运算"></form>
    <form method = "post" action = "multitermOperation.php">
        多项运算 <input type = "submit" name = "continue" value = "多项运算"></form>
     <?php
    if(isset($_REQUEST["continue"]))
    {
    }
    ?>
</html>
<!DOCTYPE html>
<html>
    <head>
        <meta charset = "UTF-8">
        <title></title>
    </head>
    <form method = "get" action = "fourArithmeticOperation.php">
        简单四则运算 <br>
        习题数量 <input type = "text" name = "test1" > <br>
        数值范围 <input type = "text" name = "test2" > <br>
        <input type = "submit"></form>
    <body>
    <?php
    if(isset($_REQUEST["test1"]) && (isset($_REQUEST["test2"])))
    {
        $open1 = fopen("config.txt","w+" );  //config.txt用于存放用户在表单输入的参数。
        fwrite($open1,$_REQUEST["test1"]."\r\n".$_REQUEST["test2"]);
        fclose($open1);
        $open2 = fopen("time.txt","w+" );   //time.txt用于更新用户当前答题数量。
        fwrite($open2,"0");
        fclose($open2);
        $open3 = fopen("exercise.txt","w+" );   //exercise.txt用于存放本次程序所出试题,同时用于判断是否有重复。
        fclose($open3);
        header("Refresh:0;url = main.php");    //配置完成后跳转到主程序页面。
    }
    ?>
</body>
</html>
<?PHP
    static $flag = true;    //用于标记是否出题,逻辑上的变量。
    $open0 = file("config.txt");
    $range = chop($open0[1]);    //读取随机数大小上限。
    if(!(isset($_REQUEST["answer"])) && $flag)    //出现回答后不再运行。
    {
        include("exercise.php");
        $object = new exercise();
        $object->randomNumber($range);
        $flag = false;
    }

    $open1 = fopen("exercise.txt",‘r‘);    //读取exercise.txt的最后一行数据,即当前试题。
    while($buf = fgets($open1))
    {
        $res = $buf;
    }
    fclose($open1);
    echo $res;

    if(isset($_REQUEST["answer"]))    //输出答案和输入结果。
    {
        echo  file_get_contents("result.txt")."<br>"."您的结果为:".$_REQUEST["answer"]."<br>";
    }
    else
    {
?>
<form method = "post">
<input type = "text" name = "answer"><br>
<input type = "submit"></form>
<?PHP
    }
    if(isset($_REQUEST["answer"]))    //输入结果后进行判断。
    {
        judge($_REQUEST["answer"]);

    }
    function judge($answer)
    {
        $result = file_get_contents("result.txt");
        if($result == $answer)
        {
            echo "结果正确    ";
        }
        else
        {
            echo "结果错误    ";

        }
        $open2 = file("config.txt");
        $timeMax = chop($open2[0]);    //读取习题数量。
        $open3 = file("time.txt");
        $time = chop($open3[0]);     //读取当前为第几题。
        if($time < $timeMax - 1)    //习题未出完时,当前题数加一,更新time.txt,重新运行main.txt
        {
            echo "(第".($time + 1)."/".($timeMax)."题)";
            $time++;
            $open3 = fopen("time.txt","w+" );
            fwrite($open3,"$time");
            fclose($open3);
        ?>
        <form method = "post" action = "main.php">
        <input type = "submit" value = "下一题"></form>
        <?PHP
        }
        else    //否则跳转到退出界面。
        {
            echo "答题完毕。";
            header("Refresh:3;url = quit.php");
        }
    }
<?PHP
    class exercise
    {
        public $numberA;
        public $numberB;
        public $numberC;
        public $result;
        public function exercise()
        {
            $this->numberA = null;
            $this->numberB = null;
            $this->result = null;
        }
        public function randomFormula($a)
        {
            $symbolA = rand(0,3);
            $symbolB = rand(0,3);
            $this->numberA = rand(0,$a);
            $this->numberB = rand(0,$a);
            $this->numberC = rand(0,$a);
            $openA = fopen("exercise.txt","a" );
            $openB = fopen("result.txt","w+" );
            fwrite($openA,$this->numberA.symbol($symbolA).$this->numberB.symbol($symbolB).$this->numberC." = "."\r\n");
            $this->result = 0;
            fwrite($openB,$this->result);
            fclose($openA);
            fclose($openB);

        }
        public function randomNumber($a)
        {
            $case2 = "0";
            $symbol = rand(0,3);
            $this->numberA = rand(0,$a);
            $this->numberB = rand(0,$a);
            $openA = fopen("exercise.txt","a" );
            $openB = fopen("result.txt","w+" );
            if($symbol == 0)
            {
                $this->result = $this->numberA + $this->numberB;
                $case1 = $this->numberA." + ".$this->numberB." = "."\r\n";
                $case2 = $this->numberB." + ".$this->numberA." = "."\r\n";
                if(isRepeat($openA,$case1,$case2))
                {
                    fwrite($openA,$this->numberA." + ".$this->numberB." = "."\r\n");
                }
            }
            if($symbol == 1)
            {
                $this->numberB = rand(0,$this->numberA);
                $case1 = $this->numberA." - ".$this->numberB." = "."\r\n";
                $this->result = $this->numberA - $this->numberB;
                if(isRepeat($openA,$case1,$case2))
                {
                    fwrite($openA,$this->numberA." - ".$this->numberB." = "."\r\n");
                }
            }
            if($symbol == 2)
            {
                $case1 = $this->numberA." * ".$this->numberB." = "."\r\n";
                $case2 = $this->numberB." * ".$this->numberA." = "."\r\n";
                $this->result = $this->numberA * $this->numberB;
                if(isRepeat($openA,$case1,$case2))
                {
                    fwrite($openA,$this->numberA." * ".$this->numberB." = "."\r\n");
                }
            }
            if($symbol == 3)
            {
                $this->numberB = rand(1,$a);
                $this->numberA = rand(1,$this->numberB);
                $case1 = $this->numberA." / ".$this->numberB." = "."\r\n";
                $gcd = getGreatestCommonDivisor($this->numberA,$this->numberB);
                $this->result = ($this->numberA / $gcd)."/".($this->numberB / $gcd);
                if($this->result == "1/1")
                {
                    $this->result = "1";
                }
                if(isRepeat($openA,$case1,$case2))
                {
                    fwrite($openA,$this->numberA." / ".$this->numberB." = "."\r\n");
                }
            }
            fwrite($openB,$this->result);
            fclose($openA);
            fclose($openB);
        }

    }

    function symbol($a)
    {
        $symbol = "";
        switch($a)
        {
            case 0:
                $symbol = " + ";break;
            case 1:
                $symbol = " - ";break;
            case 2:
                $symbol = " * ";break;
            case 3:
                $symbol = " / ";break;
        }
        return $symbol;
    }

    function isRepeat($open1,$case1,$case2)
    {
        while($buf = fgets($open1))
        {
            if($buf == $case1 || $buf == $case2)
            {
                header("Refresh:0;url = main.php");
                return false;
            }
            else
            {
                continue;
            }
        }
        return true;
    }
    function getGreatestCommonDivisor($numberA,$numberB)
    {
        $n = 0;
        while($numberB > 0)
        {
            $n = $numberA % $numberB;
            $numberA = $numberB;
            $numberB = $n;
        }
        return $numberA;
    }
时间: 2024-10-23 01:16:09

php实现网站四则运算。的相关文章

结对编程——paperOne基于java web的简易四则运算出题网站

项目成员:张金生     张政 需求分析: 1.要进行四则运算: 2.运算题目随机: 3.进行对错判断: 4.整数运算. 程序概要: 1.用JSP实现: 2.用户可选择题目数量: 3.答题页用表格列出: 4.包含用来填写答案的输入框: 5.答完后点击提交会直接显示相应题目的对错. 实现过程: 数据结构主要用到了数组 题目生成: 1 public String generateQuestion(int numOfOperand, int rangeMin, int rangMax, boolean

paperOne基于java web的简易四则运算出题网站

项目成员:张金生     张政 需求概要 1.运算数均为正整数 2.包含的运算符有+,-,*,/ 3.除法运算结果为整除运算 4.批量生成题目并判题 核心功能分析 1.题目生成——java后端 <待编辑> 2.对用户提交的答案进行评定——javascript前端 <待编辑> 部分功能实现 题目生成 1 public String generateQuestion(int numOfOperand, int rangeMin, int rangMax, boolean isInt,

四则运算appNABCD模型

团队: 郭志豪:http://www.cnblogs.com/gzh13692021053/ 杨子健:http://www.cnblogs.com/yzj666/ 刘森松:http://www.cnblogs.com/lssh/ 谭宇森:http://www.cnblogs.com/dalaotan/ 1) N (Need 需求) 1.四则运算主要是数学领域的,这就涉及到很多关于我们学习路程上数学的知识,我们可以通过四则运算app来增强学生们的运算能力和心算能力,平常我们生活中也存在各种各样的运

结对作业——四则运算 Part3. 对于结对编程的总结与思考

结对作业--四则运算 Part3. 对于结对编程的总结与思考 PB15061303 刘梓轩PB16061489 艾寅中 GITHUB 地址 戳这里 目录 Part 1. Core代码编写部分 Part 2. 封装与对接相关问题 Part 3. 对于结对编程的总结与思考 关于结对 View:(From 艾中) 不得不说,结对编程给笔者带来了一次全新的编程体验.就领航员与驾驶员的分工而言,刘承担了生成和计算的大部分任务,笔者(艾)负责了显示和输出部分的函数. 首先我作为领航员的时候,实际上是有点懵的

201571030121《小学四则运算练习软件软件需求说明》结对项目报告

201571030107/201571030121<小学四则运算练习软件软件需求说明>结对项目报告 结对小伙伴:冯晓(201571030107) 任务一 首先,我们进行了实例体验,把我们已经上线的<小学生四则运算网站>链接发给我们调研的人,在他们体验过我们的程序后在填写需求分析调查问卷,这样可以更好的得到一个反馈,让我们的需求分析更加清楚. 网站链接:http://123.56.24.117:8080/ 其次,我们主要采取了精准的问卷调查方式来进行需求分析,调查的主要对象为老师和有

20175126Apollo 20175126《Java程序设计》结队编程项目——四则运算 第一周阶段总结

结队编程项目——四则运算 一.项目需求 自动生成小学四则运算题目(加.减.乘.除)统计正确率 支持整数 支持多运算符(比如生成包含100个运算符的题目) 支持真分数 需求分析: 生成四则运算:需要使用随机数生成,需要创造一个能实现计算功能的类. 支持多运算符:运算符也需要利用随机生成,并且不限个数. 支持真分数:需要用到生成分子.分母的函数,将分数化简等. 统计正确率:需要设置一个计算变量,并需要用一个判断正确的函数. 二.设计思路 首先根据需求分析,进行大体的设计: 生成题目→输入答案→判断正

Win10下IIS配置、项目发布、添加网站

Win10下IIS配置 1.找到控制面板:[开始]菜单鼠标右击,打开[控制面板] 2.打开控制面板,点击[程序],点击[启用或关闭Windows功能] 下一步,点击[启用虎关闭Windows功能] 3. 开始修改IIS了,我是这样勾上的,有可能比较多. 4. 验证IIS是否正确安装,等待几分钟后IIS配置完成.在浏览器输入http://localhost/iisstart.htm会出现 IIS安装成功页面.第一次修改的时候出现了成功页面,但是后来删除了IIS中默认的网站就打不开了,但是不影响的.

有趣的网站-第二弹

1.预测您的死亡时间,通过输入出生日期,选择性别.BMI范围(可以通过页面下方输入身高.体重计算出).生活态度和是否抽烟,点击查看按钮就可以得出结果. 我测了我还能活52多年..不过看着时间越来越少,心理感觉毛毛的.好恐怖 死亡时间预测: http://www.deathclock.com/ 2.很有意思的广告,第一次看到这种广告...太有意思了.哈哈. 你会觉得很惊喜!鼠标控制人物的动作,点击左右箭头可以更换广告哦. 入口:http://www.kokokaka.com/demo/bluebe

防止恶意解析——禁止通过IP直接访问网站

一.什么是恶意解析 一般情况下,要使域名能访问到网站需要两步,第一步,将域名解析到网站所在的主机,第二步,在web服务器中将域名与相应的网站绑定.但是,如果通过主机IP能直接访问某网站,那么把域名解析到这个IP也将能访问到该网站,而无需在主机上绑定,也就是说任何人将任何域名解析到这个IP就能访问到这个网站.可能您并不介意通过别人的域名访问到您的网站,但是如果这个域名是未备案域名呢?一旦被查出,封IP.拔线甚至罚款的后果都是需要您来承担的.某些别有用心的人,通过将未备案域名解析到别人的主机上,使其