php制作成绩单,PHP学生成绩查询及分析系统制作

【摘要】本系统是中学一线教师制作的成绩查询及分析的网络程序。程序为B/S模式,程序语言为PHP,数据库为Mysql。可跨平台运行,经多平台测试,可运行于各种linux(CentOS/Debian/Ubuntu)、FreeBSD及Windows(WindowsXP/Win7/Windows2003)操作系统,建议使用Linux平台,效果更好。主要功能有:查询学生个人及全班历次成绩;进行班级及年级成绩分析(平均分、及格率、优秀率等);可显示学生成绩变化曲线图;所有查询及分析表格均可以直接输出为Excel格式,方便保存及修改。

【关键词】成绩查询 成绩分析 PHP+Mysql

【正文】

在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

宋××同学初三历次成绩总名次变化曲线图如下:

a4c26d1e5885305701be709a3d33442f.png

考虑到对学生个人成绩分析的多种需求,其中的显示选项如下:

其中的选项有:是否显示成绩变化曲线图、是否显示各科年级及班级排名、是否显示全部科目、初高三的特殊显示(只显示初高三成绩还是全部成绩)、显示本班全部学生还是单个学生等。另外,其中的打印按纽强制不显示曲线图,供在网页中直接打印或将其复制到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分等,而且最高及最低分数段的数值可从数据中自动读出。如下表:

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。

本模块又包含几个子模块:查询学生的历次成绩、显示最近一次考试各年级的各种分析表(成绩分析表、名次变化表、家长会成绩条、分段统计表等)、历次成绩表和名次变化曲线图等模块。各子模块的实现思路如下:

⑴历次成绩查询,以查询全班学生历次成绩为例。首先在最近一次考试的成绩数据中读出所有学生的姓名,然后依次以每个学生姓名为关键字,加上班级作为次要关键字(防止同年级中出现重名现象),在本年级所有成绩表中去读出此学生的成绩并显示。

⑵成绩分析表。这个实现起来就比较简单了,直接用sql统计命令,输出年级及各班的平均分、及格率、优秀率、各科最高分及最高分的学生姓名等信息。如果“jiaoshi”数据表中有任课老师信息,则把任课老师信息也显示出来。

⑶其他各种统计表的输出则根据不同的需求,用sql命令读取成绩数据表中的数据即可。

⑷名次变化曲线图源代码来自网上,对其进行了优化及美化后,添加了一些实用的显示功能,如可显示年级、考试时间、最好及最差名次等信息。

四、本网络程序的优点

1、简单高效

硬件方面:只需要一台能联网的闲置主机即可,操作系统安装完成后,不需要键盘、鼠标和显示器,插上网线即可通过网络进行管理。

软件方面:所用软件均为开源的免费软件,安全、高效。而且PHP程序运行效率高,优于asp及asp.net开发的程序。

2、前后台操作简单

后台操作:程序平台搭建好以后,管理员只需将每次考试后的成绩数据上传,同时添加简单的考试信息即可。在数据上传后,程序会自动将成绩数据进行各种处理,如对学生进行排名、添加任课教师信息、与上一次考试成绩进行比较等一系列操作。

前台浏览:对于使用者——老师来说,只需要用浏览器打开程序主页,就能查询或浏览各种成绩分析结果。

3、由于设计者是教学一线的老师,更加熟悉班主任和老师们的需求,所制作的功能实用性强。

五、网络程序的运行效果评价

由于我校各年级班级数量相对较少,每个年级最多10个班,目前程序放在一台256内存的旧主机上,运行情况良好。而程序对更多班级的数据处理效率暂未测试。但从现在的运行情况来看,在后台上传数据并进行10个班级数据处理时,256M内存的主机需时半分钟左右。如果数据量加大的话,采用增加内存的方式,应该可以实现大量数据的快速处理。另外,程序的最关键环节——前台成绩数据输出显示暂无法进行压力测试,主要是看高并发情况下服务器能否承受(如百人以上同时点击),笔者预测,通过采用更高配置的linux主机,完全可以承受,程序运行应无大碍。

总之,本网络程序是在结合我校实际情况基础上开发制作的,功能还可以进一步拓展,以期能减轻班主任和年级主任分析成绩的负担,方便任课老师了解学生、关注学生成绩变动,能更好、更有针对性的对学生进行辅导、教育。

【参考文献】

[1] http://baike.baidu.com/view/3714049.htm

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值