基于PHP和MySql的学生成绩管理系统

邱丑丑

发布日期: 2019-09-25 12:59:23 浏览量: 179
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

摘 要

随着学校向全国及至世界范围的持续扩张,学生人数的增加,对于学生的信 息管理也越来越复杂,要求也越来越高,因此需要一个全面、详细的信息管理系 统,以便完成对学生信息的管理。无纸化的环境是技术时代的一个梦想,也是许 多学校和公司越来越意识到的一个真实世界。以前是由学生档案和公告栏来提供 各种信息及通告新的变化,而现在这个繁杂的工作已被网站和内部计算机网络所 取代。使得学生信息的管理更方便、安全。 根据调查得知,现在广大学生进行信息提交的主要方式是基于文件、表格等 纸介质的手工处理,学生信息管理部门信息处理工作量大,容易出错,且管理方 面因人而异。然而学校网上学生信息管理系统应该覆盖各个所需功能,使各级管 理人员和广大教职工在信息系统的辅助下进行工作,提高管理的整体水平。使得 学生信息管理更方便。 学生信息管理系统,可以用集中的数据库将与人力资源管理相关的信息全 面、有机地联系起来,有效地减少了信息更新和查找中的重复劳动,保证了信息 的相容性,从而大大地提高了工作效率,还能使原来不可能提供的分析报告成了 可能。在采用和实施学生信息管理系统之后,就会将依赖于人的过程改为依赖于 计算机系统的过程。学校管理人员只要获取了相应的权限,就可以随时进入系统, 直接查阅相应的信息。采用和实施学生信息管理系统不仅仅是为了提高工作效 率。为了除掉手工记录的低效率工作方式,运用信息化管理,提高工作效率,开 发本系统。 应该看到,在实施学生信息管理系统后,经过整合的、较为全面、准确、一 致和相容的信息不仅可以让学校领导对本学校学生资源的现状有一个比较全面 和准确的认识,同时也可以生成综合的分析报表供学校领导人在决策时参考。

1 绪论

1.1 课题简介

随着时代的发展,成绩管理 成了每个教育部门不可或缺的一部分,它的内容对于学校 的有效管理显得尤为重要,作为计算机的一部分,用计算机进行成绩管理无疑会把这个过程 变得尤为简单。 学生管理系统为学生提供了简易的操作和方便的查询,以及更好的被管理。

1.2 系统背景

随着社会信息量的与日俱增,学校需要有一个学生成绩管理系统,以方便对学生的成绩 进行有效的管理。学生成绩管理系统是一个学校不可缺少的重要部分,它的内容对于学校的 决策者和管理者来说都至关重要,所以学生成绩管理系统应该为用户提供充足的信息和快捷 的查询手段。当前成教学院没有一个完善的成绩信息管理平台,计算机使用主要基于 Microsoft Office,不能发挥有效的作用。而且随着我国教育改革的不断深入以及自学教育 的不断扩招,参加考试的人越来越多,考试科目的多样化,使得成教学院对自学考试成绩的 管理越趋繁琐、复杂,工作业务繁杂,工作量大,这种传统的学生管理模式已经暴露出种种 弊端:难以统一调配和处理,效率极低,缺乏科学性以及合理性。随着计算机应用的普及与 深入,利用计算机能够对所有自学考试成绩进行统一管理,并进行分析,大大减少教学秘书 的工作量,提高工作效率,为教学办公带来了极大的方便。通过操作手册,使用者可以了解 本软件的基本工作原理及使用说明。操作人员只需输入一些简单的汉字、数字,就可以存储、 查找、修改、打印学生成绩信息等。本系统开发的总体任务是实现学生成绩管理的系统化、 规范化、自动化、达到提高学生成绩管理效率的目的,本系统本着实用性、通用、开放和安 全的原则,使数据库开发软件开发制作,实现了学生信息管理、课程信息管理、学生成绩管 理、成绩查询等功能。该设计方法易于推广至其它信息化管理系统的设计,充分利用计算机 作为辅助工具,实现学生考试成绩从传统的手工管理到计算机管理,对提高管理效率和节约 大量的人力、物力有一定的推动作用。本系统一切从实际出发,充分考虑了成绩的内部管理、信息交流等方面的复杂需求,实现成绩的有效管理,真正为学生成绩管理提供一个电子平台。 合理的数据库结构设计可以提高数据存储的效率,保证数据的完整性和一致性。同时,合理 的数据库结构也有利于程序的实现。

1.3 系统开发运行环境

  • 操作系统:win10

  • 软件:AppServ(php+apache+mysql),nginx(代理)

2 需求分析

2.1 系统需求

当今社会,计算机的使用已经深入到日常生活和工作的方方面面,它逐渐成 为人们学习和工作时必不可少的工具。虽然目前为止已经开发出了成千上万的软 件系统,但它们并不能满足用户的各种特殊需要,因此人们不得不开发属于自己 的软件,能够满足自己的特殊需求。学生管理系统是教育事业单位必不可少的。 它的内容对学校的管理者来说至关重要,学生成绩管理系统应该能够提供快捷的 查询功能以及能够及时修改、增添、删除信息等功能。传统的人工管理文件档案 的方式存在很多缺点,例如:效率低、保密性差、另外时间一长,信息量的不断 扩增,都给查找、更新何维护带来很大困难。使用计算机对学生成绩进行管理, 具有手工管理不可比拟的优点。例如:检索迅速、查找方便、存储信息量大、保 密性好、及时更新并进行维护等。计算机管理学生成绩能够提高学校的管理效率, 是科学化、正规化管理的重要途径,型心计算机管理将不断深入到学校的各项事 务的管理当中。

2.2 功能要求

2.2.1 教职工

对学生成绩有一个整体的了解,在今后的教学中能有所改进。同时可 以对自己教授的课程进行修改,进一步了解学生的个人情况,便于因材施教。 当学生的个人信息发生改变时,老师能够及时进行修改。例如学生转校、后来转 到本系、或者毕业生离开学校等,老师能够根据具体情况对学生信息进行添加、 修改、删除等。能够管理课程信息,合理安排老师教授的课程,及时为学生提供 选课信息。老师能够对课程名、课程编号、学分等进行修改和更新。能够对学生 成绩进行发布、修改、删除,清晰地了解学生的成绩情况,以便做出总结和改进。

2.2.2 学生

能够查询个人的学习成绩和总体学生的成绩,以便做出新的定位。

  • 成绩查询:成绩修改、成绩添加、成绩删除等

  • 课程查询:课程修改、课程添加、课程删除等

  • 学生查询:学生信息修改、学生信息添加、学生信息删除等

2.3 可行性分析

为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率 和工作质量,现提出如下的系统开发目标:

  • 提供了成绩查询的平台,可以用来发布成绩

  • 任何学生都能上去查看自己的成绩

  • 学生可以凭借自己的学号进行查询

  • 管理员可以进行数据的添加

可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。也就是说 可行性研究的目的不是解决问题,而是确定问题是否值得去解,研究在当前的具体条件下, 开发新系统是否具备必要的资源和其它条件。

2.3.1 经济可行性

主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理 和维护费用、人员工资和培训费等,另一个是取得的收益。这是个超小型的管理系统,从投 入的人力,财力与物力来讲是非常之小的,只要一台电脑,一台打印机,这个系统就可以搞 起来,考虑到学校里有电脑,现只要购置一台打印机就可以了。从节省人力方面,可以让管 理人员从繁与复杂的工作中解脱出来,做更多的工作,可以给教学管理提高一个层次。

2.3.2 管理性

学生成绩管理系统是对学生成绩进行管理的一个简单系统,主要又成绩的输入、输出、 浏览、打印、数据备份等组合而成,因此可适用于任何学校用作成绩管理。该系统管理方法 科学,相应的管理制度成熟,所记录的原始数据准确,且操作简单、快速,对管理人员的计算级应用技术要求不高,可被一般管理人员所接受,所以在管理上具备一定的可行性,便与普遍采用。

2.3.3 技术性

在开发本应用软件时,我是按照软件周期进行开发的。而我所设计的学生成绩管理系统 是一个用php 和 Mysql 加前端js框架实现的前后端分离开发的应用系统。

2.4 安全与完整性要求

建立数据库用户,对其权限进行设置。确定各表主键、索引、参照完整性、 用户定义完整性。

2.5 数据字典

学生表(学号,姓名,性别,系别,学生年龄)

课程表(课程号,课程名,课时,学分)

成绩表(课程号,学生号,成绩。)

老师表(老师姓名,老师编号,所授课程,联系电话)

  • 名字:老师信息
    描述:学生成绩管理系统中存储的所有老师的信息
    定义:老师信息=老师姓名+所授课程+教师编号+联系电话

  • 名字:学生信息
    描述:学生成绩管理中存储的所有学生信息
    定义:学生信息=学生学号+学生姓名+学生性别+学生系别+学生年龄
    位置:存储 输出供查询

  • 名字:课程信息
    描述:多个必要课程信息组成
    定义:课程信息=课程号+课程名+课时+学分
    位置:存储 输出供查询

  • 名字:用户表信息
    描述:用户个人的信息
    定义:用户信息=用户名
    位置:存储 输出供查询

  • 名字:学生成绩信息
    输入:学生姓名
    输出:相应的学生成绩信息

  • 名字:查询信息
    描述:用户提出的具体查询请求
    定义:查询信息=[课程查询信息]+[学生查询信息]
    位置:课程表 学生表 成绩表

  • 名字:添加信息
    输入:学号、学生姓名、学生性别、系别、学生年龄
    输出:新输入的学生信息

  • 名字:删除信息
    输入:选中所要删除的学生信息
    输出:删除完成系统的实体与联系

3 概念结构设计

3.1 系统与实体的联系

由需求分析的结果可知,本系统设计的实体包括:

  • 学生基本信息:学号,姓名,学院,班级,年龄,性别

  • 课程基本信息:课程名,课程号,学时

  • 教师基本信息:教师号,教师姓名,职称,年龄,性别,学院

  • 学院基本信息:学院名、学院号、院长姓名

这些实体间的联系包括:

  • 每位学生可以学习多门课程,每门课程可供多位学生学习

  • 每门课可以由多个老师教,每个老师可以教多门课程

  • 学生每选一门课就可以得到一个成绩,不选此课就不能取得该课程成绩

3.2 各个实体 E-R 图

3.2.1 学生表

3.2.2 教师表

3.2.3 课程表

3.2.4 成绩表

3.2.5 总体实体练习图

3.3 E-R图转实为关系模型

3.3.1 学生表

属性名 数据描述 数据类型 是否为空 备注
sno 学号 Char(8) 不允许为空 主键
sname 姓名 Char(10) 不允许为空
Ssex 性别 Char(2) 不允许为空
Ssex 性别 C har(2) 不允许为空
sbirth 出生日期 atetime(8) 允许为空
class 所在班级 Char(4) 不允许为空
type Char(7) 允许为空

3.3.2 教师表

属性名 数据描述 数据类型 是否为空 备注
tno 教师编号 char(5) 不允许为空 主键
tname 姓名 varchar(10) 不允许为空
depart 部门 varchar(8) 不允许为空
Tsex 性别 char(2) 不允许为空
Tbirth 出生日期 datetime , 允许为空
prof 职称 char(6) 允许为空

3.3.3 课程表

属性名 数据描述 数据类型 是否为空 备注
cno 课程号 Char(5) 不允许为空 主键
cname 课程名称 varchar(10) 不允许为空
tno 教师编号 char(3) 不允许为空

3.3.4 成绩表

属性名 数据描述 数据类型 是否为空 备注
sno 学号 Char(8) 不允许为空 主键
cno 课程号 Char(5) 不允许为空 主键
degree 成绩 Float(8) 不允许为空

5 物理结构设计

4.1 确定关系模型的存取方法

在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击 物理模型的关系,可以对该关系的名称、注释等信息进行查询。可对该关系的属 性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。在实 际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间, 在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键字上建立 索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据 范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规 则。才能充分利用索引的作用避免因索引引起的负面作用。

4.2 数据流图

该数据流图主要体现教职工对学生信息、课程信息和学生成绩的管理,然后 存储的信息作用于查询系统。在学生能够操作的只有成绩查询,如图所示:

5 效果图

5.1 登录

5.1.1 学生

5.1.2 教师

5.1.3 管理员

5.2.学生界面

5.2.1 首页

5.2.2 个人信息

5.2.3 成绩查询

默认当前学期

选择学期

5.2.4 本学期课表

5.3 教师界面

5.3.1 欢迎界面

5.3.2 查询教授的课程

5.3.3 录入成绩

5.3.4 已录警告

5.3.5 录入

5.3.6 选择查看教授的课程已录入的成绩

5.4 管理员界面

5.4.1 学生管理界面

查询所有

分类模糊查询

添加学生

编辑信息

删除学生

5.4.2 教师管理

查询所有

分类模糊查询

添加教师

编辑信息

删除学生

5.4.3 课程管理

5.4.4 排课管理

5.5 其他

5.5.1 退出登录

5.5.2 修改密码

6 主要代码

6.1 database.php

  1. <?php
  2. return [
  3. // 数据库类型
  4. 'type' => 'mysql',
  5. // 服务器地址
  6. 'hostname' => '127.0.0.1',
  7. // 数据库名
  8. 'database' => 'grademanager',
  9. // 用户名
  10. 'username' => 'root',
  11. // 密码
  12. 'password' => '123456',
  13. // 端口
  14. 'hostport' => '3306',
  15. // 连接dsn
  16. 'dsn' => '',
  17. // 数据库连接参数
  18. 'params' => [],
  19. // 数据库编码默认采用utf8
  20. 'charset' => 'utf8',
  21. // 数据库表前缀
  22. 'prefix' => '',
  23. // 数据库调试模式
  24. 'debug' => true,
  25. // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
  26. 'deploy' => 0,
  27. // 数据库读写是否分离 主从式有效
  28. 'rw_separate' => false,
  29. // 读写分离后 主服务器数量
  30. 'master_num' => 1,
  31. // 指定从服务器序号
  32. 'slave_no' => '',
  33. // 是否严格检查字段是否存在
  34. 'fields_strict' => true,
  35. // 数据集返回类型
  36. 'resultset_type' => 'array',
  37. // 自动写入时间戳字段
  38. 'auto_timestamp' => false,
  39. // 时间字段取出后的默认时间格式
  40. 'datetime_format' => 'Y-m-d H:i:s',
  41. // 是否需要进行SQL性能分析
  42. 'sql_explain' => false,
  43. ];

6.2 登录代码

  1. // 登录
  2. public function login() {
  3. $t = model('CommonResData');
  4. if (input('post.username') && input('post.password')) {
  5. $username = input('post.username');
  6. $password = input('post.password');
  7. $identity = input('post.identity');
  8. if ($identity == 0) {
  9. $t->data = Db::query("select admin_name from admin where admin_id=$username and admin_password='$password'");
  10. if ($t->data) {
  11. $t->code = 0;
  12. $t->data = $t->data[0]['admin_name'];
  13. // return JSON($t->resData($t->code,$t->data));
  14. } else {
  15. $t->code = 3;
  16. $t->data = '没有该用户或密码错误';
  17. }
  18. } else if ($identity == 1) {
  19. $t->data = Db::query("select teacher_name from teacher where teacher_id=$username and teacher_password='$password'");
  20. if ($t->data) {
  21. $t->code = 0;
  22. $t->data = $t->data[0]['teacher_name'];
  23. // return JSON($t->resData($t->code,$t->data));
  24. } else {
  25. $t->code = 3;
  26. $t->data = '没有该用户或密码错误';
  27. }
  28. } else if ($identity == 2) {
  29. $t->data = Db::query("select student_name from student where student_id = $username and student_password='$password'");
  30. if ($t->data) {
  31. $t->code = 0;
  32. $t->data = $t->data[0]['student_name'];
  33. } else {
  34. $t->code = 3;
  35. $t->data = '没有该用户或密码错误';
  36. }
  37. } else {
  38. $t->code = 2;
  39. $t->data = '登录失败';
  40. }
  41. Session::set('islogin',$username);
  42. Session::set('identity',$identity);
  43. return JSON($t->resData($t->code,$t->data));
  44. } else {
  45. $t->code = 2;
  46. $t->data = "用户名密码不能为空";
  47. return JSON($t->resData($t->code,$t->data));
  48. }
  49. }

6.3 判断是否登录

  1. public function isLogin()
  2. {
  3. $isLogin = Session::get('islogin');
  4. $t = model('CommonResData');
  5. if (!$isLogin) {
  6. $t->code = 1;
  7. $t->data = '未登录';
  8. return;
  9. } else {
  10. $t->code = 0;
  11. session('islogin', $isLogin);
  12. }
  13. }

7 总结

在此次的学生成绩管理系统程序设计的过程中,我充分认识到了做计划的重要性,只要实现把整体方案规划好,才能保证以后设计的顺利进行,才能应对出现的突发事件,达到系统设计的目标。在开始进行系统设计时,我对管理信息系统的认识比较少,对系统的开发 缺乏本质和深入地研究调查,以至与在着手设计的过程中,困难接踵而至。然而又不知道怎样解决,直到后来重新对此次的设计做了认真细致的规划调查,最终才使整个程序的设计工作完成,当爱系统还是有很多不足。然而,本次程序设计的收获不仅仅让我了解了 php与 appServ,使我对系统开发有了初步的了解,提高了编写程序的兴趣,如果今后有机会的话,我希望能够对编程有更深入的学习。

上传的附件 cloud_download PHP课程设计.zip ( 55.05mb, 3次下载 )
error_outline 下载需要15点积分

发送私信

精品资源尽在此

61
文章数
0
评论数
最近文章
eject