前言:

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

  • 选题总分不低于一百分
  • 选题分为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. Windows 常用配置 - 启用长路径

    Windows 启用长路径支持 打开注册表编辑器:regedit 找到如下路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSyte ...

  2. IIS设置禁止某个IP或IP段访问网站的方法

    网站被刷,对话接不过来 打开IIS,选中禁IP的站点,找到“ip地址和域限制”这个功能,如果没有安装,打开服务器管理器,点击角色,窗口右边找到添加角色服务,找到“IP和域限制”并勾选安装. 打开ip地 ...

  3. 大厂面试题:今天复试百度PHP工程师

    今天下午来到北京百度科技园进行复试PHP工程师岗位. 面试官问了很多问题,我大概整理回忆下: 1.Redis秒杀实现? redis队列解决抢购高并发的原理: 在程序跟数据库之前呢我们可以利用redis ...

  4. zabbix server in not running

    修改配置文件 vi zabbix.conf.php 修改lochlhost为 自己服务器的IP地址 修改$DB['SERVER']   = '192.168.30.6'; 修改$ZBX_SERVER  ...

  5. Mysql_常规操作

    001.数据库 全局操作 # 连接数据库: # mysql -h主机地址 -u用户名 -p(登陆用户密码)     ​# 修改用户密码 mysqladmin # mysqladmin -u root ...

  6. 吴裕雄--天生自然python学习笔记:python 用pygame模块角色类(Sprite)移动与碰撞

    角色类(Sprite) Py game 游戏中有许多组件会重复用到,比如射击宇宙飞船的游戏中,外星宇宙 飞船可能多达数十艘 , 通过创建“角色类”,可以生成多个相同的对象. Py game 角色类是游 ...

  7. D. Salary Changing(找中位数)

    题:https://codeforces.com/contest/1251/problem/D 题意:给你n个单位需要满足达到的区间,再给个s,s是要分配给n的单位的量,当然∑l<=s,问经过分 ...

  8. day12-模块导入

    # 一.import import demo # in demo.py -- 导入demo模块,执行里面的print语句. print(demo.money) # 8000000 -- 打印demo的 ...

  9. PAT甲级——1061 Dating

    1061 Dating Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh4hhGE 2 ...

  10. Vue创建项目及基本语法 一

    目录 目录: 一.创建Vue项目 0.使用环境要求及说明 1.使用命令创建项目 2.启动项目 二.简单指令 1.变量: 2.动态绑定变量值 3.v-once指令 4.v-html解析html 5.v- ...