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>


  • 相关阅读:
    3名百度 ,京东,腾讯被辞退的高级Android工程师现在怎么了?30岁真的是“罪”吗
    Python 开发者在迁移到 Go 前需要知道的事情
    centos7 常用命令--查看当前用户的4种方法
    Centos7找不到ifconfig和netstat命令
    Centos 7 修改日期和时间的命令
    如何利用MobaX同时处理多台虚拟机输入相同命令如何利用MobaX同时处理多台虚拟机输入相同命令
    配置坑了我好久:Logback按天生成文件失效
    quartz系列文章
    SpringBoot使用多实例QUARTZ出现重复执行问题
    IDEA多个springboot项目启动修改端口
  • 原文地址:https://www.cnblogs.com/chxuan/p/8232111.html
Copyright © 2011-2022 走看看