zoukankan      html  css  js  c++  java
  • 选题在线提交系统(html+JS+php)

    前言:

            作为学习委员还是有挺多的事情要忙的,比如经常统计同学们的课设题目选择结果。如果老师的要求少一点,我还可以轻松一点。但是当老师对选题有种种限制的时候,自己就估计不会那么好办了。这次数据结构老师,给的要求如下:

    •   选题总分不低于一百分
    •   选题分为20分,60分,70分,80分,100分,180分六类一共十九道,除了20分的以外,每个选题选择人数不能超过四人
    •   同学考虑时间为三个周(时间好长。。。) 

    不过作为学软件的学生怎么可能不利用自身的优势来统计呢。于是开做,做一个在线提交系统开放给同学们,而我只需要最后收一下结果就好了!想的挺好啊吐舌头

    语言:
            html、Javascript、PHP(因为是给自己班里同学用,而且考虑到用的时间不长就没有使用CSS对页面进行美化

    主体思路:
           用html写个表单,然后提交到一个.php文件,对提交的信息进行处理,然后再写一个.php文件将提交保存的数据展示出来。(这里用的文件存储数据,一个原因是数据量较小,其实主要是因为我服务器上的Mysql数据库还没配置好哭

    功能分析:
    1.   在提交表单时,验证姓名和学号是否填写,验证选题总分是否不低于100分 (Javascript)
    2.   在处理表单的php文件中,判断提交的表单中的选题是否还有余量。
                          ---如果有余量,使用switch语句对所选题目存储余量的数据进行-1
                          ---如果余量为零,则输出该选题的名字进行提示,然后终止程序运行

         3.   对同学提交的表单内容进行存储,使用fwrite()函数
         4.   写个php文件用for循环将文件中的信息读取出来,然后每隔五秒刷新一次
         5.   限定提交次数,每个人只能提交一次,先把同学们的学号存储起来。等提交的时候,比对一下如果在而且提交次数为0,则通过,如果不为0则exit()  (此功能没有加上,因为是给自班里同学用提前说明了情况,再说用的时间相对较短就不费工夫了)


    代码部分:
    <!DOCTYPE html>
    <!--
    To change this license header, choose License Headers in Project Properties.
    To change this template file, choose Tools | Templates
    and open the template in the editor.
    -->
    <html>
        <head>
            <title>计154-2数据结构课程设计</title>
            <meta charset="GB2312">
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            
            <script tyoe="text/javascript">
                alert("谨记:只有一次填写机会,为了让学委不那么累,大家体谅一下!毕竟你选了以后,那道题就少了一次机会!万一别人也想选呢。所以选择前望三思,大家都轻松。如果乱填的的话,常轩会很难办的,如果常轩生气不给你统计了那怎么办!拜托了~~~~");
                function check(f)
                {
                    if(f.number.value=="")
                    {
                        alert("又调皮了吧!你不写学号,你让学委怎么统计~_~");
                        f.number.focus();
                        return (false);
                    }
                    if(f.name.value=="")
                    {
                        alert("你不写名字,想累死学委啊~_~");
                        f.name.focus();
                        return (false);
                    }
                               
                    var ids = document.getElementsByName("fav[]");                
                    var flag = false ;      
                    var sum=0;
                    for(var i=0;i<ids.length;i++){
                        
                        if(ids[i].checked){
                            flag=true;
                            switch(ids[i].value)
                            {
                                case "约瑟夫环游戏(20分)":
                                    sum=sum+20;
                                    break;
                                case "八皇后问题(20分)":
                                    sum=sum+20;
                                    break;
                                case "表达式的求值问题(20分)":
                                    sum=sum+20;
                                    break;
                                case "迷宫问题(20分)":
                                    sum=sum+20;
                                    break;
                                case "HTML文档标记匹配算法(60分)"||"程序源代码的相似性(60分)":
                                    sum=sum+60;
                                    break;
                                case "程序源代码的相似性(60分)":
                                    sum=sum+60;
                                    break;
                                case "并查集:检查网络(70分)":
                                    sum=sum+70;
                                    break;
                                case "插队买票(70分)":
                                    sum=sum+70;
                                    break;
                               
                                case "飞机订票系统(80分)":
                                    sum=sum+80;
                                    break;
                                case "图书管理系统(80分)":
                                    sum=sum+80;
                                    break;
                                case "拯救007(80分)":
                                    sum=sum+80;
                                    break;
                                case "小型英汉词典(80分)":
                                    sum=sum+80;
                                    break;
                                case "景区旅游信息管理系统(180分)":
                                    sum=sum+180;
                                    break;
                                case "LZW压缩器/解压器(180分)":
                                    sum=sum+180;
                                    break;
                                default:
                                    sum=sum+100
                             
                                    
                            }
                           
                        }
                    }
                  
                    if(sum<100){
                        alert("你选题总分为:"+sum+"还不够100,老师再给你扣几分还有吗?");
                        f.name.focus();
                        return (false);
                    }
                    if(!flag){
                        alert("一项都不选,是不是不想上学了!");
                        return false ;
                    }
                
                }
             </script>
        </head>
        <body>
            
            <h3 align="center">课程设计选题提交表</h3>
            <table border="1" align="center" cellpadding="0" cellspacing="0">
                <form method="post" action="back.php" onsubmit="return check(this)" >
                    <tr>
                        <td colspan="2" align="center">选题</td>
                    </tr>
                    <tr>
                        <td align="right">学号:</td>
                        <td><input type="text" name="number" size="25"></td>
                    </tr>
                    <tr>
                        <td align="right">姓名:</td>
                        <td><input type="text" name="name" size="25"></td>
                    </tr>
                   <!-- <tr>
                        <td>性别:</td>
                        <td>
                            <input type="radio" value="男" name="sex" checked="checked">
                            <input type="radio" value="女" name="sex" >
                        </td>
                    </tr>-->
                    <tr>
                        <td align="right">班级:</td>
                        <td>
                            <select name="class" size="1">
                                <option value="计154-2">计154-2</option>
                                <option value="计154-2">不用看了,怎么选都是2班</option>
                                <option value="计154-2">选这个也是二班</option>
                            </select>
                        </td>
                    </tr>
                    <tr>
                        <td align="right">选题:</td>
                        <td><input type="checkbox" value="约瑟夫环游戏(20分)" name="fav[]">约瑟夫环游戏(20分)<br>
                            <input type="checkbox" value="八皇后问题(20分)" name="fav[]">八皇后问题(20分)<br>
                            <input type="checkbox" value="表达式的求值问题(20分)" name="fav[]">表达式的求值问题(20分)<br>
                            <input type="checkbox" value="迷宫问题(20分)" name="fav[]">迷宫问题(20分)<br><br>
                            <input type="checkbox" value="HTML文档标记匹配算法(60分)" name="fav[]">HTML文档标记匹配算法(60分)<br>
                            <input type="checkbox" value="程序源代码的相似性(60分)" name="fav[]">程序源代码的相似性(60分)<br><br>
                            <input type="checkbox" value="并查集:检查网络(70分)" name="fav[]">并查集:检查网络(70分)<br>
                            <input type="checkbox" value="插队买票(70分)" name="fav[]">插队买票(70分)<br><br>
                            <input type="checkbox" value="飞机订票系统(80分)" name="fav[]">飞机订票系统(80分)<br>
                            <input type="checkbox" value="图书管理系统(80分)" name="fav[]">图书管理系统(80分)<br>
                            <input type="checkbox" value="小型英汉词典(80分)" name="fav[]">小型英汉词典(80分)<br>
                            <input type="checkbox" value="拯救007(80分)" name="fav[]">拯救007(80分)<br><br>
                            <input type="checkbox" value="文件目录结构显示(100分)" name="fav[]">文件目录结构显示(100分)<br>
                            <input type="checkbox" value="校园导航问题(100分)" name="fav[]">校园导航问题(100分)<br>
                            <input type="checkbox" value="哈夫曼编码/译码器(100分)" name="fav[]">哈夫曼编码/译码器(100分)<br>
                            <input type="checkbox" value="熊猫烧香(100分)" name="fav[]">熊猫烧香(100分)<br>
                            <input type="checkbox" value="全国交通咨询模拟(100分)" name="fav[]">全国交通咨询模拟(100分)<br><br>
                            <input type="checkbox" value="LZW压缩器/解压器(180分)" name="fav[]">LZW压缩器/解压器(180分)<br>
                            <input type="checkbox" value="景区旅游信息管理系统(180分)" name="fav[]">景区旅游信息管理系统(180分)<br>
                            
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center">
                         <!--   <input type="hidden" name="hide" value="这里是隐藏的内容">-->
                            <input type="reset" value="重填">
                            <input type="submit" value="提交">
                        </td>
                    </tr>
                </form>
            
            </table><br>
    <center><a href="admin.php">查看同学选题情况</a></center>
    <br><br>
            <span style="font-family:arial; color:black;"><center>Copyright &copy;2017 版权所有 洋火(烟台大学) </center></span>
        </body>
    </html>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
    <title>提交结果</title> 
        <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
        </head>
        <body> 
    <?php
            function tishi($str){
                  echo "选题:".$str."已被选完,请选择其他题目!";
                  echo "<br>click<a href='tijiao.html'>返回选题页面</a>To back"; 
    
            }
            $file="renshu.txt";
            $fp=fopen($file,"r");
            if($fp){
                $i=0;
                while ($con= fgets($fp)){
                    $m=explode(',',$con);      
                    $i++;
                }
                echo $n['HTML文档标记匹配算法(60分)'];
                echo $n['程序源代码的相似性(60分)'];
                $n=array('HTML文档标记匹配算法(60分)'=>$m[0],
                         '程序源代码的相似性(60分)'=>$m[1],
                         '并查集:检查网络(70分)'=>$m[2],
                         '插队买票(70分)'=>$m[3],
                         '飞机订票系统(80分)'=>$m[4],
                         '图书管理系统(80分)'=>$m[5],
                         '小型英汉词典(80分)'=>$m[6],
                         '拯救007(80分)'=>$m[7],
                         '文件目录结构显示(100分)'=>$m[8],
                         '校园导航问题(100分)'=>$m[9],
                         '哈夫曼编码/译码器(100分)'=>$m[10],
                         '熊猫烧香(100分)'=>$m[11],
                         '全国交通咨询模拟(100分)'=>$m[12],
                         'LZW压缩器/解压器(180分)'=>$m[13],
                         '景区旅游信息管理系统(180分)'=>$m[14]
                    );
                
                
            }
            else{
                echo "打开文件出错!";
            }
            fclose($fp);
            if($_POST){
           $num=count($_POST["fav"]);
            for($j=0;$j<$num;$j++){         //判断选题余量
                echo $_POST["fav"][$j];
                switch($_POST["fav"][$j])
                {
                    case "HTML文档标记匹配算法(60分)":
                        if($n['HTML文档标记匹配算法(60分)']==0){
                            tishi('HTML文档标记匹配算法(60分)');
                            exit ();
                        }
                        else 
                            (int)$n['HTML文档标记匹配算法(60分)']-=1;
                        break;
                    case "程序源代码的相似性(60分)":
                        if($n['程序源代码的相似性(60分)']==0){
                            tishi('程序源代码的相似性(60分)');
                            exit ();
                        } 
                        else{
                            (int)$n['程序源代码的相似性(60分)']-=1;
                             
                             }
                        break;
                      
                    case "并查集:检查网络(70分)":
                        if($n['并查集:检查网络(70分)']==0){
                             tishi('并查集:检查网络(70分)');
                            exit ();
                        } 
                        else 
                            (int)$n['并查集:检查网络(70分)']-=1;
                        break;
                    case "插队买票(70分)":
                        if($n['插队买票(70分)']==0){
                            tishi('插队买票(70分)');
                            exit ();
                        }
                        else 
                            (int)$n['插队买票(70分)']-=1;
                        break;
                               
                    case "飞机订票系统(80分)":
                        if($n['飞机订票系统(80分)']==0){
                            tishi('飞机订票系统(80分)');
                            exit ();
                        }
                        else{
                            (int)$n['飞机订票系统(80分)']-=1;
                            }
                        break;
                    case "图书管理系统(80分)":
                        if($n['图书管理系统(80分)']==0){
                            tishi('图书管理系统(80分)');
                            exit ();
                        } 
                        else 
                            (int)$n['图书管理系统(80分)']-=1;
                        break;
                    case "拯救007(80分)":
                        if($n['拯救007(80分)']==0){
                            tishi('拯救007(80分)');
                        
                            exit ();
                        }
                        else 
                            (int)$n['拯救007(80分)']-=1;
                        break;
                    case "小型英汉词典(80分)":
                        if($n['小型英汉词典(80分)']==0){
                            tishi('小型英汉词典(80分)');
                            exit ();
                         } 
                        else 
                            (int)$n['小型英汉词典(80分)']-=1;
                        break;
                    case "景区旅游信息管理系统(180分)":
                        if($n['景区旅游信息管理系统(180分)']==0){
                            tishi('景区旅游信息管理系统(180分)');
                            exit ();
                        }
                        else 
                            (int)$n['景区旅游信息管理系统(180分)']-=1;
                        break;
                    case "LZW压缩器/解压器(180分)":
                        if($n['LZW压缩器/解压器(180分)']==0){
                            tishi('LZW压缩器/解压器(180分)');
                            exit ();}
                        else 
                            (int)$n['LZW压缩器/解压器(180分)']-=1;
                        break;
                    case "文件目录结构显示(100分)":
                        if($n['文件目录结构显示(100分)']==0){
                            tishi('文件目录结构显示(100分)');
                            exit ();}
                        else 
                            (int)$n['文件目录结构显示(100分)']-=1;
                        break;
                    case "校园导航问题(100分)":
                        if($n['校园导航问题(100分)']==0){
                           tishi('校园导航问题(100分)');
    
                            exit ();}
                        else 
                            (int)$n['校园导航问题(100分)']-=1;
                        break;
                    case "哈夫曼编码/译码器(100分)":
                        if($n['哈夫曼编码/译码器(100分)']==0){
                            tishi('哈夫曼编码/译码器(100分)');
                            exit ();
                        }
                        else 
                            (int)$n['哈夫曼编码/译码器(100分)']-=1;
                        break;
                    case "熊猫烧香(100分)":
                        if($n['熊猫烧香(100分)']==0){
                           tishi('熊猫烧香(100分)');
                            exit ();}
                        else 
                            (int)$n['熊猫烧香(100分)']-=1;
                        break; 
                    case "全国交通咨询模拟(100分)":
                        if($n['全国交通咨询模拟(100分)']==0){
                            tishi('全国交通咨询模拟(100分)');
                            exit ();}
                        else 
                            (int)$n['全国交通咨询模拟(100分)']-=1;
                        break;
                    default:
                        echo "(非限制数量题目)<br>";
                        break;
                
                  }
            }
            $fil="renshu.txt";
            $fps=fopen($fil,"w");
            fwrite($fps, $n['HTML文档标记匹配算法(60分)'].",".$n['程序源代码的相似性(60分)'].",".$n['并查集:检查网络(70分)'].","
    .$n['插队买票(70分)'].",".$n['飞机订票系统(80分)'].",".$n['图书管理系统(80分)'].",".
    $n['小型英汉词典(80分)'].",".$n['拯救007(80分)'].",".$n['文件目录结构显示(100分)'].",".$n['校园导航问题(100分)'].",".
    $n['哈夫曼编码/译码器(100分)'].",".$n['熊猫烧香(100分)'].",".$n['全国交通咨询模拟(100分)'].",".
    $n['LZW压缩器/解压器(180分)'].",".$n['景区旅游信息管理系统(180分)']);
           // fwrite($fp, $n['程序源代码的相似性(60分)']."
    ");
           // fwrite($fp, $n['并查集:检查网络(70分)']."
    ");
           // fwrite($fp, $n['插队买票(70分)']."
    ");
           // fwrite($fp, $n['飞机订票系统(80分)']."
    ");
           // fwrite($fp, $n['图书管理系统(80分)']."
    ");
           // fwrite($fp, $n['小型英汉词典(80分)']."
    ");
           // fwrite($fp, $n['拯救007(80分)']."
    ");
           // fwrite($fp, $n['文件目录结构显示(100分)']."
    ");
           // fwrite($fp, $n['校园导航问题(100分)']."
    ");
           // fwrite($fp, $n['哈夫曼编码/译码器(100分)']."
    ");
           // fwrite($fp, $n['熊猫烧香(100分)']."
    ");
           // fwrite($fp, $n['全国交通咨询模拟(100分)']."
    ");
           // fwrite($fp, $n['LZW压缩器/解压器(180分)']."
    ");
           // fwrite($fp, $n['景区旅游信息管理系统(180分)']);
            fclose($fps);
            $fi="cunChu.txt";
            $f=fopen($fi,"a");
            fwrite($f,$_POST["number"].",");
            fwrite($f,$_POST["name"].",");
            fwrite($f,$_POST["class"].",");
            $nums=count($_POST["fav"]);
            for($y=0;$y<$nums;$y++){
            fwrite($f,$_POST["fav"][$y]);
            }
            fwrite($f,"
    ");
            fclose($f);
            echo "<font size=7>提交成功</font>,好好做啊!不要马虎,如果现在后悔了,立给我打电话我去后台改,电话:<font size=7>15762217675</font>";
            }
            else
                echo '没有提交内容!';
            echo "<br>click<a href='tijiao.html'>Here</a>To back"; 
            ?>
    </body>
    </html>

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
    <title>后台</title> 
        <meta http-equiv="Content-Type" content="text/html; charset=GB2312">
        <meta http-equiv="Refresh" content="5">
        </head>
        <body>
    <?php
            $file="cunChu.txt";
            $fp=fopen($file,"r");
            if($fp)
            { echo "<center><h3>计154-2选题情况</h3></center>";
              echo "<table border="1"  align="center" cellpadding="0" cellspacing="0">";
              echo "<tr>
                      <td>学号</td>
                      <td>姓名</td>
                      <td>班级</td>
                      <td>选题</td>
                  </tr> ";
               while($con=fgets($fp))
               {
                  $m=explode(',',$con);
                  echo "<tr>";
                  echo "<td>".$m[0]."</td>";
                  echo "<td>".$m[1]."</td>";
                  echo "<td>".$m[2]."</td>";
                  echo "<td>".$m[3]."</td>";
                  echo "</tr>";
                }
                echo "</table>";
             }  
             else
            {
              echo "open error!";
             }
            //$fp=fopen($file,"a");
            //$result=file($file);
            //echo $result;
            fclose($fp);
    ?>
    <span style="font-family:arial; color:black;"><center>Copyright &copy;2017 版权所有 洋火(烟台大学) </center></span>
            </body>
        </html>


  • 相关阅读:
    各国语言缩写列表,各国语言缩写-各国语言简称,世界各国域名缩写
    How to see log files in MySQL?
    git 设置和取消代理
    使用本地下载和管理的免费 Windows 10 虚拟机测试 IE11 和旧版 Microsoft Edge
    在Microsoft SQL SERVER Management Studio下如何完整输出NVARCHAR(MAX)字段或变量的内容
    windows 10 x64系统下在vmware workstation pro 15安装macOS 10.15 Catelina, 并设置分辨率为3840x2160
    在Windows 10系统下将Git项目签出到磁盘分区根目录的方法
    群晖NAS(Synology NAS)环境下安装GitLab, 并在Windows 10环境下使用Git
    使用V-2ray和V-2rayN搭建本地代理服务器供局域网用户连接
    windows 10 专业版安装VMware虚拟机碰到的坑
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232111.html
Copyright © 2011-2022 走看看