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
宋××同學初三歷次成績總名次變化曲線圖如下:
考慮到對學生個人成績分析的多種需求,其中的顯示選項如下:
其中的選項有:是否顯示成績變化曲線圖、是否顯示各科年級及班級排名、是否顯示全部科目、初高三的特殊顯示(只顯示初高三成績還是全部成績)、顯示本班全部學生還是單個學生等。另外,其中的打印按紐強制不顯示曲線圖,供在網頁中直接打印或將其復制到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
總結
以上是生活随笔為你收集整理的php制作成绩单,PHP学生成绩查询及分析系统制作的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: docker学习二
- 下一篇: 使用Redis让单号从001递增
