基于php和mysql实现(Web)学生课外活动成果统计系统

学生课外活动成果统计系统

简要介绍

这个学生课外活动成果统计系统主要使用了 HTML、CSS、JavaScript 和 PHP 四种编程语言和数据库 MySQL 来完成。通过这个统计系统能够对学生的课外活动成果进行统计、整理,通过这种方式可以大大减少一些统计部门的工作,并且可以保证数据的完整性、一致性与安全性。

首先,这个系统简单地设计成了学生端和管理员端,学生端主要有修改自己的一些信息和查询信息的功能,管理员端则还具备了修改数据的功能,包括添加数据、更新数据和删除数据,能够利用这些功能直接地操作统计的数据。

然后,这个系统也包含了登录和注册功能。使用登录功能就可以很好地通过用户名和密码登录到对应的学生端或者是管理员端。同时,有登录就需要有注册,注册功能是通过提供一些信息,然后也可以注册学生账号或者是管理员账号。

以上就是这个系统的简要介绍。

仓库结构

  1. .vscode:我使用的是 vscode 来完成的,所以有一些 vscode 配置文件保留在这里,可以忽略这个文件夹。
  2. HTML:HTML 页面保存位置,除了我将 index.html 提取到项目最前端。
  3. img:图片保存位置,这里只有一张普通武汉科技大学 logo 和一张去除背景的武汉科技大学 logo
  4. PHP:PHP 保存位置
    1. page:主要页面保存位置,这个文件夹中的文件都符合一定的命名规则,就不一一赘述,以 personal_center_page/main_info.php 为例。personal_center_page 是页面的主要分类,personal_center 就是个人中心下的所有页面,其他的也是相同的。文件夹下面的文件就是对应各个页面,main_info.php 就是个人中心下的个人信息页面,但这是管理员端下的,如果是学生端下的,则页面会添加后缀_student,例如 main_info_student.php。
    2. config.php:一些配置信息,便于其他文件进行通用。
    3. db-inc.php:数据库操作的一些函数。这个文件也因为所有需要操作数据库的文件都包含了,在后期我想添加一个 URL 检查功能,就利用这个特点,将 URL 检查功能添加到这个文件里面。当然这是个投机取巧的方法。
    4. enroll.php:实现注册功能。
    5. init.php:将整个数据库以特定的数据进行初始化。
    6. login.php:实现登录功能。
    7. main_change_info_php.php:实现个人信息修改功能。
    8. 另外三个是实现过程中用于测试的残留文件。
  1. script:JavaScript 保存位置
    1. exit.js:退出系统。
    2. getUrlParam.js:使用获取当前 URL。
    3. init.js:初始化功能。
    4. main_info.js:在页面上添加个人信息。
    5. myFunction.js:一些整合的函数。
  1. style:CSS 保存位置
    1. fa:icon 图标需要的部分 CSS。
    2. main_info.css:系统的 CSS 文件。
    3. main.css:登录、注册界面的 CSS 文件。
    4. reset.css:重置样式 CSS 文件。
  1. README.md:仓库概述。
  2. index.html:统计系统的初始页面。

系统使用

  1. 首先安装 wampserver 集成环境,减少一些配置问题,只关注代码问题
    1. wampserver 官网:WampServer, la plate-forme de développement Web sous Windows - Apache, MySQL, PHP
    2. wampserver 安装:https://sourceforge.net/projects/wampserver/files/
  1. 将仓库克隆到 wampserver/www 目录下
  2. 开启 wampserver 服务
  3. 先输入 URL:http://localhost:80/database-course-design/php/init.php 进行 MySQL 初始化 (端口号默认是 80,如果没有修改可以不用填写,否则就填写对应端口号)
  4. 然后输入 URL:http://localhost:80/database-course-design 进入系统 (端口号部分与上相同)

需求分析

随着当今大学生参加的课外活动越来越多,获得过的课外活动成果也越来越多,在实际工作中,如何提高统计这些数据的效率,如何统计可以更加方便、快捷,如何统计可以保证数据准确无误,如何在需要的时候更加快速地查找到精确数据,这些都是当今社会面临的很重要的问题。而建立一个学生课外活动成果统计系统,就是一个能够很好地解决这些问题的方法。

同时要解决以上这些问题,至少需要以下功能:

  1. 需要很好地呈现数据,系统要求有良好的人机界面
  2. 系统面向不同用户,不同用户的界面应该要求不同
  3. 原始数据增、删、查、改方便,支持多条件操作
  4. 显示出来的数据,具有合理性,便于查看
  5. 数据计算自动完成
  6. 数据在操作过程中,稳定性好

概念结构设计

逻辑结构设计

  1. 课外活动成果统计表(achievement)

属性名

含义

类型

说明

team_id

团队号

BIGINT

主键,不能为空,同时参照于团队表(team)的 id 属性

activity_id

课外活动编号

BIGINT

主键,不能为空,同时参照于课外活动表(activity)的 id 属性

time

完成时间

DATE

格式为“YYYY-MM-DD”

teacher_id

指导老师编号

BIGINT

外键,不能为空,同时参照于指导老师表(teacher)的 id 属性

academy

报送学院

VARCHAR(30)

不能为空

  1. 课外活动表(activity)

属性名

含义

类型

说明

id

课外活动编号

BIGINT

主键,不能为空

name

课外活动名称

VARCHAR(100)

不能为空

  1. 管理员表(admin)

属性名

含义

类型

说明

id

管理员账号

VARCHAR(30)

主键,不能为空

password

管理员密码

VARCHAR(30)

不能为空,默认为 password

  1. 学生表(student)

属性名

含义

类型

说明

id

学号

BIGINT

主键,不能为空

name

学生姓名

VARCHAR(20)

不能为空

sex

学生性别

CHAR(1)

不能为空,并且只能是'男'或'女'

age

学生年龄

INT

不能为空,并且大于 0,小于 120

  1. 学生账号表(student_account)

属性名

含义

类型

说明

id

学号

BIGINT

主键,不能为空,并且参照于学生表(student)的 id 属性

password

学生密码

VARCHAR(30)

不能为空,默认为 password

  1. 组队信息表(student_team)

属性名

含义

类型

说明

id

组队编号

INT

主键,不能为空,每次自增 1

student_id

学号

BIGINT

主键,不能为空,并且参照于学生表(student)的 id 属性

team_id

团队编号

BIGINT

主键,不能为空,并且参照于团队表(team)的 id 属性

  1. 指导老师表(teacher)

属性名

含义

类型

说明

id

指导老师编号

BIGINT

主键,不能为空

name

指导老师姓名

VARCHAR(20)

不能为空

sex

指导老师性别

CHAR(1)

不能为空,并且只能是'男'或'女'

age

指导老师年龄

INT

不能为空,并且大于 0,小于 120

  1. 团队表(team)

属性名

含义

类型

说明

id

团队编号

BIGINT

主键,不能为空

name

团队名

VARCHAR(30)

不能为空

num

团队人数

INT

不能为空

slogan

团队口号

VARCHAR(100)

不能为空

数据控制功能

  1. 采用学生端和管理员端两端等方式,提供数据的安全性保护。
  2. 使用在增删改查操作前先满足数据是否合理等基本要求,以及增加一些触发器等方式,提供数据的完整性检查,将数据控制在有效的范围内,并保持数据之间满足一定的关系。
  3. 选用 MySQL 的 InnoDB 存储引擎,其存储引擎采用两段锁协议,会根据隔离级别在需要的时候自动加锁,并且所有的锁都是在同一时刻被释放,满足数据库并发控制的情况。
  4. 在遇到一些特殊的数据库破坏的情况,可以使用管理员端的恢复数据的功能进行恢复。

操作说明

登录、注册操作

  1. 登录:直接在登录界面输入对应的账号密码,并且无论是学生账号还是管理员账号,都可以在登录界面进行登录,后台会根据账号类型,进行页面的切换,学生账号进入学生端,管理员账号进入管理员端。
  2. 注册
    1. 注册学生账号
      注册学生账号至少需要用户名,姓名,性别和年龄,密码不填写的话,默认为 password,如果注册失败,会给出相应的提示信息,例如“注册失败,请更换用户名重试”等提示信息。
    2. 注册管理员账号
      注册管理员账号只需要用户名和密码,密码不填写,默认也是 password,错误提示信息与注册学生账号时类似。

查询操作

查询操作有查询学生,查询老师,查询团队,查询活动,查询成果和查询组队信息六个功能,每个查询功能操作类似,将以其中一个进行描述。

例如查询学生信息,可以通过学号,姓名,性别,年龄四个中的任意组合都可以查询到对应的学生信息。

提交按钮则是提交给后台,查询对应的信息,如果查询到相应的结果,则会以表格的形式呈现。重置按钮可以将输入框中的数据全部清除。

表格内容也会相对于查找的要求进行相应的优化,例如在查询团队的时候,输入对应的团队号查询后,在输出查询结果的时候,会将对应的团队名一起输出。

更新操作

更新操作有更新学生信息,更新老师信息,更新团队信息,更新活动信息,更新成果信息,更新组队信息六个功能,每个更新功能操作也类似,将以其中一个进行描述。

例如更新学生信息操作,首先通过第一个表单,学号,姓名,性别和年龄的任意组合确定需要更新的信息,在通过新学号,新姓名,新性别和新年龄的任意组合进行更新,当更新成功与否,都会有相应的信息提示出来。

提交按钮和重置按钮与查询操作中的相同,将不再赘述。

添加操作

添加操作包括添加学生信息、添加老师信息、添加团队信息、添加活动信息、添加成果信息和添加组队信息。

以添加学生信息为例,输入想要添加的对应的学号,姓名,性别和年龄,然后系统进行验证,然后再进行添加操作,添加的成功与否也会有相应的信息提示出来。

删除操作

删除操作包括删除学生信息、删除老师信息、删除团队信息、删除活动信息、删除成果信息和删除组队信息。

以删除学生信息为例,输入想要删除的对应的学号,姓名,性别和年龄的任意组合,锁定数据库中的数据,进行删除操作,删除的成功与否也会有相应的信息提示出来。

初始化操作

在管理员端的个人信息界面,提供数据库格式化的操作,可以将数据恢复到前一段时间的状态。

部分核心代码

创建表

使用 SQL 语句以及表名变量,直接创建表,以及一些属性,和属性的一些要求(不能为空、属性类型、主键、外键等)。

插入数据

使用 SQL 语句以及表名变量,给表插入数据。

创建触发器

指定创建一个触发器的名称,在什么情况下,以及是语句型还是行型,然后再给出定义,这个触发器需要做哪些工作。

登录

先在学生账号表中,查找是否与之匹配的信息,如果有,则登录到学生端,如果没有,再去查找管理员账号中查找,如果有,则登录到管理员端,如果没有就提示登录失败信息。

检查规范问题

以注册为例,先检查学号是否为数字,以及名字长度是否符合规范,性别是不是只有男或女,还有年龄是否在指定范围内,只有都通过才能注册,否则输出对应的提示信息。

注册

将注册输入框中的数据获取出来,进行插入账号表操作,如果插入成功,则跳转登录界面,如果失败,输出相应的提示信息。

切换学生端和管理员端

检测登录名中是否是管理员,如果是,则跳转管理端,否则跳转到学生端。

查询

采用字符串拼接的方式,配合变量,可以整合出一套特定的 select 语句,无论是 where 部分,还是完成的 select 语句,然后再进行数据库查询,如果有结果,则输出对应表格信息,否则输出相应提示信息。

更新

采用字符串拼接的方式,配合变量,可以整合出一套特定的 update 语句,无论是 where 部分,还是完整的 update 语句,然后再进行数据库更新,如果有成功,则输出更新成功信息,否则输出相应提示信息。

插入

采用字符串拼接的方式,配合变量,可以整合出一套特定的 insert 语句,无论是 where 部分,还是完整的 insert 语句,然后再进行数据库插入,如果有成功,则输出插入成功信息,否则输出相应提示信息。

删除

采用字符串拼接的方式,配合变量,可以整合出一套特定的 delete 语句,无论是 where 部分,还是完整的 delete 语句,然后再进行数据库删除,如果有成功,则输出删除成功信息,否则输出相应提示信息。

记录报错信息

根据输入框中的数据,采用特定编号的形式,避免产生很多种组合,而需要特定地去输出相应的内容,大大减少了重复代码量,以及提高了开发效率。

检查 URL

登录系统需要有用户名和密码,利用这两个点进行检查 URL 是否合理,然后还需要避免其中一些操作会变动 URL,只有两个条件都满足,才说明系统 URL 是合理的。

获取当前登录信息

使用 JavaScript 检查 URL 中的姓名以及账号,然后操作 DOM,修改界面中的部分信息,达到获取当前登录的信息,也保证了在系统中操作的合理性以及完善性。

效果图

登录/注册

管理员

学生

查询

更改/添加/删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神仙别闹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值