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

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此景,笔者只专注Android、Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程操作源代码 6个目标文件,EJB来模拟银行ATM机的流程操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除,从账户中取出amt,如果amt>账户余额抛出异常,一个实体Bean可以表示不同的数据实例,我们应该通过主键来判断删除哪个数据实例…… ejbCreate函数用于初始化一个EJB实例 5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口函数得到远程接口的引用,用远程接口的引用访问EJB。 EJB中JNDI的使用源码例子 1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户可以在终端上直接地使用它,但是它的主要作用是供程序使用的。本规范尝试满足大型主机、微型主机、个人工作站、和TACs 的不同需求。例如,容易实现协议的设计。 Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用完毕,从内存中清除…… Java Socket 聊天通信演示代码 2个目标文件,一个服务器,一个客户端。 Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密   Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。   设定字符串为“张三,你好,我是李四”   产生张三的密钥对(keyPairZhang)   张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节   通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 同上 java聊天室 2个目标文件,简单。 java模拟掷骰子2个 1个目标文件,输出演示。 java凭图游戏 一个目标文件,简单。 java求一个整数的因子 如题。 Java生成密钥的实例 1个目标文件 摘要:Java源码,算法相关,密钥   Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从文件中得到公钥编码的字节数组、如何从字节数组解码公钥。 Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输   Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲
一、本课题的目的和意义 目的:学生电子作业提交与分析系统的开发是为了解决传统的使用FTP服务器上传作业的作业管理方式下无法防止学生乱上传作业、上传作业到错误文件夹位置中,未能对学生上传作业的大小、类型、上传时间等进行限制,作业成绩不能通过网络公布显示出来等问题。方便学生能时查看最新作业,和作业成绩,也方便老师能时批阅和发布作业,为学生和老师节省时间,减小老师的工作量。 意义:学生电子作业提交与分析系统能够满学生完成作业学习知识的要求,同时也能方便老师时检查学生作业进度以进行新的作业布置等功能。自适应性使学生不会在学习的旅途中感觉盲目,迷失方向。大大满足了学生学习的个性化,老师工作时效性的双方面的要求。系统合理地使用校园软硬件资源,实现了网络信息化的作业无纸化管理,提升老师的工作效率作业批改的灵活性,让老师时了解当前学生的学习状况。 二、课题的国内外开发动态 网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。通过Internet/Intranet来实现网上作业提交,是现代教育技术的一个具体实现,具有很重要的现实意义。通过网络的了解,已经有不少高等学校已经推出了自己的作业上传系统。但是由于实现技术有限,系统的功能不完善,而且存在很多缺陷。例如:查询不全面、容易导致系统不稳定,数据库缺乏管理,数据缺乏更新,而且容易丢失。由于这些缺点造成用户对系统不信任,于是又回到传统的“拷贝、粘贴”方式。 三、课题的基本内容 学生电子作业提交与分析系统的主要任务是替代传统的书面作业的提交批改方式、实现科学灵活的学生无纸化作业管理,整合校园网的软硬件资源,最大效力的为现代化教学服务。学生电子作业提交与分析系统结构模式为B/S结构模式,以C#为主要的系统开发语言,使用Microsoft Visual Studio 2010与Microsoft SQL Server 2005开发实现。 本系统按功能分为以下几个模块: (1)管理员用户功能模块:要求实现增加课程,学生、教师角色帐号课程添加更新,用户登录、密码更换等功能。 (2)学生用户功能模块:要求实现新用户注册,用户登录,教师发布的新闻公告查看,个人帐号资料修改,作业提交管理以用户留言等功能。 (3)教师用户功能模块:要求实现新闻公告作业信息发布,用户登录,个人帐号资料修改,学生作业批改和对学生留言回复等功能。 四、拟解决的主要问题 学生电子作业提交与分析系统开发的技术难点主要有两个方面:一是业务逻辑的理解;二是数据库逻辑结构的设计。准确理解一个系统的业务逻辑,合理规划设计,开发出适应其应用的应用系统。正确理解实际应用中的业务逻辑需求,解决系统之间模块的科学划分与结构组织,更好更快的开发设计系统。 此外,利用Microsoft SQL server2005建立好关系数据库和建好客户端和服务器之间的连接又是另一个难点。系统开发前,必须要从科学性、安全性、规范性、结构性等各个方面进行考虑,建立良好的数据库,科学分析管理数据。客户端和服务器之间的连接要配置好数据库服务器等。 五、课题设计的实现方案 (1)本系统开发语言的选择 学生电子作业提交与分析系统结构模式为B/S结构模式,以C#为主要的系统开发语言。C#语言是微软公司在2000年7月发布的一种全新切简单、安全、面向对象的程序设计语言。它吸收了C++、Visual Basic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。C#继承了C语言的语法风格,同时又继承了C++的面向对象特征。不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往的类层次结构中由于多重继承带来的可怕后果。.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。同时,公共语言运行时为C#程序语言提供了一个托管的运行时黄精,是程序比以往更加稳定、安全。正是因为C#语言有如此多的优点,因此,在系统开发时使用C#作为本系统的开发语言。 (2)本系统开发工具的选择 学生电子作业提交与分析系统前台使用的开发工具是Microsoft Visual Studio 2010。Microsoft Visual Studio 2010创建满足关键性要求的多层次的智能客户端、Web、移动或基于Microsoft Office的应用程序。使用Visual Studio 2010, 专业开发人员能够: 使用改进后的可视化设计工具、编程语言和代码编辑器,享受高效率的开发环境 在统一的开发环境中,开发并调试多层次的服务器应用程序使用集成的可视化数据库设计和报告工具,创建SQL Server 2005解决方案。使用Visual Studio SDK创建可以扩展Visual Studio IDE的工具 Microsoft为单独工作或在小型团队中的专业开发人员提供了两种选择,Visual Studio 2010 Professional Edition和用于Microsoft Office系统的Visual Studio 2010工具。每种版本都在标准版的特性上进行了扩展,包括用于远程服务程序开发和调试、SQL Server2005开发的工具,以完整的、没有限制的开发环境。正是因为Microsoft Visual Studio 2010有如此多的优点,因此在开发本系统时我把它作为本系统前台的开发工具。 本系统创建、管理数据库使用的工具是SQL Server 2005。Microsoft SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能工具提供了企业级的数据管理。Microsoft SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,是程序员可以构建和管理用于业务的高可用和高性能的数据应用程序。 六、研究方法 该毕业设计采用的研究方法主要有文献法和调查法。该毕业设计具体功能的获取过程主要使用文献法和走访调查法,通过网络调查和查阅网络资料来具体确定该软件的功能需求细节;在软件开发过程中,解决技术问题使用的方法是文献法,通过查阅课本、图书馆资料和网络在线文献等,解决在软件开发过程中的技术问题,比如数据库、建模工具的使用、软件测试等。 七、选题的特色创新点 选题的特色:本毕业设计的开题经过走访调查和文献查阅等多种方式,基本可以与现实的需求相一致,并能体现用所学的知识和计算机技术解决实际问题。 选题的创新点:该选题采用的均是计算机成熟的技术,在计算机技术方面并没有体现创新点,但是通过完成该毕业设计,可以使得自己对计算机软件开发由更深的认识,积极培养自己的创新意识。 八、已查阅的相关文献
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页