前言:

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

  • 选题总分不低于一百分
  • 选题分为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分)']."\n");
// fwrite($fp, $n['并查集:检查网络(70分)']."\n");
// fwrite($fp, $n['插队买票(70分)']."\n");
// fwrite($fp, $n['飞机订票系统(80分)']."\n");
// fwrite($fp, $n['图书管理系统(80分)']."\n");
// fwrite($fp, $n['小型英汉词典(80分)']."\n");
// fwrite($fp, $n['拯救007(80分)']."\n");
// fwrite($fp, $n['文件目录结构显示(100分)']."\n");
// fwrite($fp, $n['校园导航问题(100分)']."\n");
// fwrite($fp, $n['哈夫曼编码/译码器(100分)']."\n");
// fwrite($fp, $n['熊猫烧香(100分)']."\n");
// fwrite($fp, $n['全国交通咨询模拟(100分)']."\n");
// fwrite($fp, $n['LZW压缩器/解压器(180分)']."\n");
// 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,"\n");
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>

选题在线提交系统(html+JS+php)的更多相关文章

  1. Jsp实现在线作业提交系统

    Jsp实现在线作业提交系统 作为 Computer Science 的学生,凌晨四点之前睡都应该感到羞耻. 项目托管地址:https://github.com/four-in-the-morning/ ...

  2. 基于Web在线考试系统的设计与实现

    这是一个课程设计的文档,源码及文档数据库我都修改过了,貌似这里复制过来的时候图片不能贴出,下载地址:http://download.csdn.net/detail/sdksdk0/9361973   ...

  3. JavaWeb项目开发案例精粹-第3章在线考试系统-007View层

    0.login.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...

  4. 如何开发一款基于 vite+vue3 的在线表格系统(下)

    在上篇内容中我们为大家分享了详细介绍Vue3和Vite的相关内容.在本篇中我们将从项目实战出发带大家了解Vite+Vue3 的在线表格系统的构建. 使用Vite初始化Vue3项目 在这里需要注意:根据 ...

  5. 基于ssh框架的在线考试系统开发的质量属性

    我做的系统是基于ssh框架的在线考试系统.在线考试系统有以下几点特性:(1)系统响应时间需要非常快,可以迅速的出题,答题.(2)系统的负载量也需要非常大,可以支持多人在线考试(3)还有系统的安全性也需 ...

  6. Bug测试报告--在线考试系统--金州勇士

    项目名:在线考试系统 组名:金州勇士 测试者:宫丽君(nice!团队) 代码地址: ssh:git@git.coding.net:handsomeman/examm.git     https://g ...

  7. work1-英语辅导班在线报名系统

    作品简述: 这是一个英语辅导班在线报名系统,目的是提供一个供学生报名辅导班的平台,也同时为老师收集报名信息提供便利. 使用的语言: php+html+js 服务器: 新浪sae服务器,apache 数 ...

  8. Java在线考试系统(含源码)

    本文demo下载和视频教学观看地址:http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId=1076 本实例介绍了在线考 ...

  9. 基于MVC的网站和在线教育系统

    最近老表说要创业,想要做一个网站做宣传,还想要一个在线教育系统. 学习了一部分 Java,  决定用.Net MVC做官网或直接做成静态HTML网站,主要是因为.Net MVC 技术简单,效率高,需求 ...

随机推荐

  1. 吴裕雄--天生自然python TensorFlow图片数据处理:解决TensorFlow2.0 module ‘tensorflow’ has no attribute ‘python_io’

    tf.python_io出错 TensorFlow 2.0 中使用 Python_io 暂时使用如下指令: tf.compat.v1.python_io.TFRecordWriter(filename ...

  2. Codeforces Round #556(Div.1)

    A 容易发现i,i+1至少有一个数出现,于是可以让尽量多的2和奇数出现 #include<bits/stdc++.h> using namespace std; int n,s1,s2; ...

  3. BOM(Broswer Object Model)

    BOM(Broswer Object Model) 方法:    框窗     1.警告框    window.alert("msg");     2.确认框     window ...

  4. linux_cat命令

    cat 命令可以用来显示文本文件的内容(类似于 DOS 下的 type 命令),也可以把几个文件内容附加到另一个文件中,即连接合并文件. 关于此命令,有人认为写 cat 命令的人是因为喜欢猫,因此给此 ...

  5. 做成像的你不能不了解的真相7-两分钟测算相机增益(Gain)

    前几期真相文章得到了读者积极的反馈,其中提问最多的就是这个公式: 首先,大家觉得这个公式太有用了.以前只能定性地评价图像质量,现在一下子就能直接算出信噪比,瞬间高大上了许多有木有.然而,杯具的现实是, ...

  6. PAT甲级——1012 The Best Rank

    PATA1012 The Best Rank To evaluate the performance of our first year CS majored students, we conside ...

  7. scala slick mysql utf8mb4 支持

    语言  scala sql包  slick 3.2.0 数据库  mysql https://stackoverflow.com/questions/36741141/scala-slick-jdbc ...

  8. mysql远程导出

    D:\phpStudy\PHPTutorial\MySQL\bin>mysqldump -h192.168.1.1 -u用户名 -p密码 --default-character-set=utf8 ...

  9. iOS自定义弹出视图、收音机APP、图片涂鸦、加载刷新、文件缓存等源码

    iOS精选源码 一款优秀的 聆听夜空FM 源码 zhPopupController 简单快捷弹出自定义视图 WHStoryMaker搭建美图(贴纸,涂鸦,文字,滤镜) iOS cell高度自适应 有加 ...

  10. HTML颜色表

    1.配色原则 2.HTML颜色表 颜色名列表 单击一个颜色名或者16进制值,就可以查看与不同文字颜色搭配的背景颜色 3.总参考表: