【PHP开源代码栏目提醒】:网学会员为广大网友收集整理了,PHP学生成绩查询及分析系统制作 - 其它论文,希望对大家有所帮助!
PHP 学生成绩查询及分析系统制作【摘要】本系统是中学一线教师制作的成绩查询及分析的网络程序。
程序为 B/S 模式,程序语言为
PHP,数据库为 Mysql。
可跨平台运行,经多平台测试,可运行于各种 linux(CentOS/Debian/Ubuntu)、FreeBSD 及 Windows(WindowsXP/Win7/Windows2003)操作系统,建议使用 Linux 平台,效果更好。
主要功能有:查询学生个人及全班历次成绩;进行班级及年级成绩分析(平均分、及格率、优秀率等);可显示学生成绩变化曲线图;所有查询及分析表格均可以直接输出为 Excel 格式,方便保存及修改。
【关键词】成绩查询 成绩分析 PHPMysql【正文】 在 2009 年 9 月份开学后,我校高三年级进行了第一次月考。
月考后,许多高三班主任使用 Excel 分析本班学生的历次成绩数据,感到非常麻烦。
于是,笔者在教学之余开始制作适用于全校所有年级的网络成绩查询系统。
两年多来,经过广大老师们的试用,提出了许多很好的建议,目前网络程序的功能已经比较完善,成为我校老师、年级主任查询及分析学生成绩的好帮手。
为更好的测试、完善本程序,也为了方便其他中学使用,本程序已经开放源
代码,成为一个
开源程序,可在程序主页(http://phpcj.org/phpcj/)下载使用。
下面就此
PHP 网络程序的功能及制作思路作一简要说明。
一、网络程序运行的平台 我校程序运行的平台为接入校园局域网的 LNMP(Linux+Nginx+Mysql+
PHP)服务器。
其中的操作系统采用 Ubuntu Server(Linux 操作系统的一种),配置了高效的 Nginx 作为网络服务软件,数据库使用 Mysql,用
PHP 语言进行网络编程。
以上所采用系统及软件均是免 1费的
开源程序,稳定、安全、高效,无软件成本。
另外,由于
PHP 网络程序可移植性好,经测试,完全可以运行于各版本的 Windows 平台上。
目前程序在一台 256M 内存的 linux 旧主机上运行良好。
二、成绩查询系统的主要功能: 1、可以查询单个、全班或年级前 N 名学生的历次考试成绩,并可显示其年级名次变化曲线图。
查询结果如下: 初中 2007 级 1 班 宋×× 同学初三历次考试成绩如下: 年 班 语 数 数 英 英 物 物 化 化 历 历 政 政 考试 语文 总分 级 级 排 学 排 语 排 理 排 学 排 史 排 治 排 0909 初三月考一 56 1 96 40 85 188 108 34 92 82 90 55 90 74 93 51 654 0911 初三月考二 62 1 96 49 88 224 110 24 92 41 94 59 93 38 83 72 656 0912 初三月考三 73 1 95 54 93 193 110 12 83 153 96 39 82 112 81 93 640 1002 初三月考四 55 1 88 52 74 144 110 14 88 123 89 94 81 124 97 13 627 1003 初三基摸考试 70 2 82 98 81 183 113 20 46 83 54 95 53 19 52 82 482 1004 初三模拟考试 27 1 101.5 23 104 79 108 10 38 135 48 65 48 42 55 6 502.5 宋××同学初三历次成绩总名次变化曲线图如下: 1 考虑到对学生个人成绩分析的多种需求,其中的显示选项如下: 其中的选项有:是否显示成绩变化曲线图、是否显示各科年级及班级排名、是否显示全部科目、初高三的特殊显示(只显示初高三成绩还是全部成绩)、显示本班全部学生还是单个学生等。
另外,其中的打印按纽强制不显示曲线图,供在网页中直接打印或将其复制到 Excel中编辑后再进行打印。
2、成绩导入网站数据库后,程序会自动进行各种成绩统计并输出,供各位老师查询。
如成绩分析表(任课教师的红色字体为班主任): 2010 年 05 月高二期中文成绩分析表 班级 语文 数学 英语 历 史 地理 政治 总分 平均 分 校 89.89 55.90 67.48 58.35 31.18 61.24 364.04 及格率 51.74% 11.63% 23.26% 50.58% 2.91% 52.91% 优秀率 0% 0.58% 0.58% 5.23% 0% 4.65% 最高分 116 133 133.5 91 69 92 566.5 杨同学/闫 最优生 冯同学 王同学 王同学 杨同学 原同学 冯同学 同学 平 均分 6班 82.19 47.44 55.53 50.09 26.33 54.23 315.81 及格率 24.56% 3.51% 8.77% 28.07% 3.51% 28.07% 优秀率 0% 0% 0% 1.75% 0% 0% 最高分 112 105 105 86 69 76 505.5 最优生 杨同学 于同学 赵同学 杨同学 杨同学 梁同学 杨同学 任课教师 李老师 李老师 魏老师 赵老师 张老师 李老师 ... ... ... ... ... ... ... ... ... 家长会成绩条,如下表: 初中 2007 级 1 班1004 初三模拟考试成绩条 年级 班级 姓名 语 文 数学 英语 物理 化学 历史 政治 总分 27 1 宋同学 101.5 104 108 38 48 48 55 502.5 年级 班级 姓名 语文 数 学 英语 物理 化学 历史 政治 总分 55 2 齐同学 95.5 99 99 48 51 53 41 486.5 3、分段统计 各年级可按不同的分数段统计各班人数,其中分段的步长值可以任意设置,如 100 分、10 分等,而且最高及最低分数段的数值可从数据中自动读出。
如下表: 2 2010 年 05 月高一期中分段统计表 分数线 年 级 1班 2班 3班 4班 5班 6班 7 班 8班 700 以上 7 0 0 0 0 0 0 6 1 600 以上 75 5 0 10 0 4 0 28 28 500 以上 173 25 1 26 2 21 1 48 49 400 以上 278 40 14 46 12 44 20 52 50 300 以上 371 45 41 47 44 46 46 52 50 200 以上 386 45 50 47 47 46 49 52 50 200 以下 2 0 1 0 1 0 0 0 0 合计 388 45 51 47 48 46 49 52 50 4、所有查询及分析结果均可以直接输出为设置好一定打印格式的 Excel 文件,方便老师们进行保存或编辑。
5、除此还有各种定制输出的表格,如各班成绩单、年级和班级名次变化表等。
三、程序设计 网络程序主要分三个模块:数据库部分、后台数据处理和前台数据输出。
1、数据库的设计。
数据库设计是否合理,关系到程序的查询效率及各种功能的实现。
本程序的数据库采用Mysql 数据库,数据结构设计如下: 成绩数据库“data”下有数据表:“chengji”、“jiaoshi”、“c2007_0912”、“g2007_0912”…… 说明:其中的“chengji”数据表用来记录各年级历次成绩的相关信息,如考试名称、年级、班级数目、考试科目、成绩数据表名等信息;“jiaoshi”数据表用来记录当前各年级及每次考试的任课老师、班主任信息;“c2007_0912”形式的数据表用来记录成绩数据,表示“初中 2007级学生 09 年 12 月”的考试成绩。
2、程序后台成绩数据添加及处理模块。
由于程序后台功能不太复杂,因此只用了一个“admin.
php”文件实现。
程序管理员将含有学生姓名、班级及各科分数的 Excel 表格通过网站后台程序上传,简单添加相关考试信息(如考试名称、班级信息、各科满分分数等)后,程序会自动实现以下过程:①添加每个学生的总分及各科的年级、班级排名;②根据已有信息添加任课老师、班主任等信息;③自动读出上一次考试信息,并计算本次考试与上次考试的年级和班级名次变化等。
另外,各年级的考试信息也可以随时修改。
3、前台网页数据输出模块,用一个“index.
php”文件实现,这也是程序最关键的部分。
计算机连上学校局域网后,不用安装软件,用浏览器通过学校内网 ip 地址或机器名访问程序服务器即可进行成绩的查询,如:http://192.168.1.109。
本模块又包含几个子模块:查询学生的历次成绩、显示最近一次考试各年级的各种分析 、历次成绩表和名次变化曲线表(成绩分析表、名次变化表、家长会成绩条、分段统计表等)图等模块。
各子模块的实现思路如下: ⑴历次成绩查询,以查询全班学生历次成绩为例。
首先在最近一次考试的成绩数据中读 3出所有学生的姓名,然后依次以每个学生姓名为关键字,加上班级作为次要关键字(防止同年级中出现重名现象),在本年级所有成绩表中去读出此学生的成绩并显示。
⑵成绩分析表。
这个实现起来就比较简单了,直接用 sql 统计命令,输出年级及各班的平均分、及格率、优秀率、各科最高分及最高分的学生姓名等信息。
如果“jiaoshi”数据表中有任课老师信息,则把任课老师信息也显示出来。
用 ⑶其他各种统计表的输出则根据不同的需求, sql 命令读取成绩数据表中的数据即可。
⑷名次变化曲线图源
代码来自网上,对其进行了优化及美化后,添加了一些实用的显示功能,如可显示年级、考试时间、最好及最差名次等信息。
四、本网络程序的优点 1、简单高效 硬件方面:只需要一台能联网的闲置主机即可,操作系统安装完成后,不需要键盘、鼠标和显示器,插上网线即可通过网络进行管理。
软件方面:所用软件均为
开源的免费软件,安全、高效。
而且
PHP 程序运行效率高,优于 asp 及 asp.net 开发的程序。
2、前后台操作简单 后台操作:程序平台搭建好以后,管理员只需将每次考试后的成绩数据上传,同时添加简单的考试信息即可。
在数据上传后,程序会自动将成绩数据进行各种处理,如对学生进行排名、添加任课教师信息、与上一次考试成绩进行比较等一系列操作。
前台浏览:对于使用者——老师来说,只需要用浏览器打开程序主页,就能查询或浏览各种成绩分析结果。
3、由于设计者是教学一线的老师,更加熟悉班主任和老师们的需求,所制作的功能实用性强。
五、网络程序的运行效果评价 由于我校各年级班级数量相对较少,每个年级最多 10 个班,目前程序放在一台 256 内存的旧主机上,运行情况良好。
而程序对更多班级的数据处理效率暂未测试。
但从现在的运行情况来看,在后台上传数据并进行 10 个班级数据处理时,256M 内存的主机需时半分钟左右。
如果数据量加大的话,采用增加内存的方式,应该可以实现大量数据的快速处理。
另外,程序的最关键环节——前台成绩数据输出显示暂无法进行压力测试,主要是看高并发情况下服 ,笔者预测,通过采用更高配置的 linux 主机,完全可务器能否承受(如百人以上同时点击)以承受,程序运行应无大碍。
总之,本网络程序是在结合我校实际情况基础上开发制作的,功能还可以进一步拓展,以期能减轻班主任和年级主任分析成绩的负担,方便任课老师了解学生、关注学生成绩变动,能更好、更有针对性的对学生进行辅导、教育。
【参考文献】1 http://baike.baidu.com/view/3714049.htm 4