金強 王亮 方春華
摘 要:本文詳細地闡述了基于PHP、Mysql、Smarty技術(shù)的大學計算機信息技術(shù)課程在線考試系統(tǒng)的設(shè)計與實現(xiàn),作者以一次正式考試的流程介紹了系統(tǒng)數(shù)據(jù)庫中主要幾個數(shù)據(jù)表的設(shè)計和作用,剖析了在線考試組卷的方法及過程,闡述了從考生登錄、考試頁面生成、考試中頁面的檢查、試卷的提交、答案的保存、考試的評分到成績的查詢等全部過程的設(shè)計方法,以圖文并茂的方式介紹了系統(tǒng)前、后臺頁面功能設(shè)計,并對整個考試系統(tǒng)的性能進行了測試與完善。
關(guān)鍵詞:計算機信息技術(shù);PHP;Mysql;Smarty;在線考試
中圖分類號:TP311.5 文獻標識碼:A
文章編號:2096-1472(2018)-11-59-04
1 引言(Introduction)
當今,計算機與信息技術(shù)的應(yīng)用已滲透到幾乎所有的學科和專業(yè),“計算機信息處理”已成為高等學校普遍開設(shè)的公共基礎(chǔ)課[1],江蘇省每位大學生都需要參加省計算機一級統(tǒng)考,但由于省考練習系統(tǒng)機考理論部分沒有評分系統(tǒng),學生在做了理論題后不知道對錯,更沒有答案解析,因此有必要設(shè)計一個考試系統(tǒng),把歷年考試的理論試題,按照題型、分值、答案、必要的解析和最后的評分融合在一起,用這個系統(tǒng)對學生進行理論知識的強化訓(xùn)練,使學生較好地掌握理論知識、通過考試,隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,基于Web的在線考試系統(tǒng)應(yīng)運而生[2],從開發(fā)技術(shù)的角度進行劃分,目前的web網(wǎng)頁可以分為前端開發(fā)和后臺的開發(fā)[3],本系統(tǒng)基于PHP、Mysql和Smarty技術(shù),采用B/S模式,前后臺通過PHP和Smarty模板進行數(shù)據(jù)庫操作和頁面的生成,能夠?qū)崿F(xiàn)在線考試及評分。
2 在線考試系統(tǒng)的設(shè)計(Design of online examination system)
2.1 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫名為db_online,它主要包含以下數(shù)據(jù)表:用戶表(tb_user)、正式考試考生表(tb_examination_user)、正式考試試卷表(tb_examination)、模擬考試考生表(tb_mockexaminations_user)、模擬考試試卷表(tb_mockexaminations)、在線考生表(tb_onlineuser)、課程分類表(tb_types_course)、卷面題型分配模板表(tb_problemtemplate)、卷面總分、及格分數(shù)線表(tb_examattribute)、試題表(tb_exam_problem)、試卷題型表(tb_exam_type)、難度系數(shù)表(tb_degree)、單項練習表(tb_useranswer)它們之間的關(guān)系如下圖所示:
圖1中所有表的text類型和varchar類型的字段編碼均為utf8_unicode_ci,數(shù)據(jù)庫存儲引擎為MyISAM,下面以計算機基礎(chǔ)課程的一次正式考試流程來介紹幾個主要數(shù)據(jù)表(以下簡稱試題表、試卷表、模板表、考生表)的內(nèi)容:管理員在后臺使用試題表(包含`id`,`content`,`search_list`,`answer`,`fraction`,`pro_type`,`pro_class`,`upload_date`,`resolve`,`isactive`,`degreeid`,`sound`,`mustknown`字段)手工添加試題,表中`id`字段是每條試題的試題號,int類型,自動增長,具有唯一性,`content`字段填寫試題內(nèi)容,text類型,`search_list`字段填寫每種題型的選項個數(shù),整型,本課程單選題(radio)、多選題(checkbox)個數(shù)取4,判斷題(judgment)和填空題(fill)取0,`answer`字段填寫每題正確答案,text類型,`fraction`字段填寫每題分值,int類型,`pro_type`字段填寫題型,varchar類型,`pro_class`字段填寫課程類別,int類型,`upload_date`字段填寫試題添加或更新日期,date類型,`resolve`字段填寫試題解析,text類型,`isactive`字段填寫試題是否啟用或禁用,varchar類型,`degreeid`字段填寫難度系數(shù),int類型,對應(yīng)難度系數(shù)表中的較易、中等、較難3個選項,`mustknown`字段填寫是否必須掌握,int類型,默認為1(必須掌握),`sound`字段填寫語音上傳文件(可選),varchar類型。由于信息技術(shù)課程只有單選、判斷和填空三種題型,因此試題表中無需添加多選題,當數(shù)據(jù)庫中添加了一定數(shù)量不同題型的試題后,管理員便可隨機生成試卷表(包含`id`,`radio`,`checkbox`,`fill`,`judgment`,`title`,`pro_class`,`exam_user`,`start_exam`,`over_exam`,`dates`,`templateid`字段),表中的`id`字段填寫的是生成的試卷號,int類型,自動增長,具有唯一性,`radio`、`fill`、`judgment`三個字段分別填寫的是由隨機選出的3種不同題型的試題號組成的字符串,text類型,每個試題號對應(yīng)于試題表的`id`字段值,每種題型由試題號之間的@符號連接而成,譬如`radio`字段:9475@9493@9494@9495,數(shù)字9475代表試題表中某條試題的`id`值,而非試題內(nèi)容,字符串的長度或者準確說每種題型的個數(shù)依據(jù)`templateid`字段值,`title`字段填寫試卷標題,text類型,`pro_class`字段填寫課程類別,int類型,`exam_user`字段填寫參加考試人員,text類型,其值是一組由@符號組成的字符串,譬如90@88@89,數(shù)字90表示用戶表中的`id`用戶,`start_exam`字段填寫開考準確時間,`over_exam`填寫考試結(jié)束時間,兩個字段均為varchar類型,`dates`填寫試卷生成的日期,date類型,`templateid`字段填寫試卷模板,int類型,其值等于模板表(包含`id`,`name`,`emattrid`,`typedistribute`,`degreedistribute`字段)的`id`字段值,譬如信息技術(shù)課程的`templateid`值為29,其值就是模板表id為29的值,管理員在隨機生成試卷時,首先要選擇課程類別和試卷模版,試卷模板依據(jù)模板表的`typedistribute`字段,譬如信息課程的模板為radio@50@checkbox@0@fill@20@judgment@30,表示單選題50分,填空題20分,判斷題30分,無多選題。模板表中`id`字段表示試卷模板號,int類型,自動增長,具有唯一性,`name`字段填寫模板名稱,varchar類型,`emattrid`字段填寫與總分、及格分數(shù)線表關(guān)聯(lián)的`id`值,int類型,`typedistribute`字段填寫題型分配,`degreedistribute`字段填寫難度系數(shù)分配,二者均為varchar類型。每場考試完畢,系統(tǒng)要把考試結(jié)果填寫到考生表(包含`id`,`title`,`examination_id`,`name`,`admission`,`pro_class`,`fraction`,`sub_answer`,`sub_time`,`nameid`字段)中,表中`id`字段填寫考試編號,int類型,自動增長、唯一,`title`字段填寫試卷標題,varchar類型,examination_id`字段填寫試卷`id`號,int類型,其值與試卷表的`id`相關(guān)聯(lián),`name`字段、`admission`字段,分別填寫考生姓名、準考證號,varchar類型,`pro_class`字段填寫課程類別、`fraction`字段填寫成績總分,int類型,`sub_answer`字段填寫考試答案,text類型,其值是形如*9541@radio@A@A@1*9491...@judgment@正確@正確@1*...*9517@fill@路由器@路由器@1*...的一個長字符串,每條試題答案之間用“*”連接,`sub_time`字段填寫試卷提交日期和時間,datetime類型,`nameid`字段填寫考生`id`,int類型,其值與用戶表的`id`相關(guān)聯(lián)。
2.2 組卷過程設(shè)計
組卷時,系統(tǒng)首先通過試卷模板得到題型和數(shù)量,然后通過隨機函數(shù)抽題,如果抽題成功,則將生成的試卷號`id`值添加到數(shù)據(jù)庫試卷表中,通常情況下,每個課程的考題數(shù)量要大于試卷模板要求的考題數(shù)量,譬如信息技術(shù)課程單選題有500多條(當然我們可以通過啟用和禁用字段進行選擇),而試卷模板單選題只考50條(每題1分,也可每題2分25條),因此隨機抽題時,抽題的范圍是500條,而抽到試題的數(shù)量由模板表下此題型的數(shù)量決定,假如500條單選題通過禁用,剩下30條,如果還是每條1分,顯然題數(shù)不夠,不能成功抽取,如果每題2分,那就在30條里面抽取25條,試題越多,分散度就越大,以單選題抽取為例,系統(tǒng)使用array_rand($radios,number)函數(shù)隨機從試題表中取得number數(shù)量個單選題鍵名(即ID值)組成的數(shù)組,通過for語句循環(huán)讀取獲取的鍵值,然后根據(jù)鍵值從試題表中獲取指定`id`的試題,并添加到試題數(shù)組中,最后通過$radio=implode('@',$radio_exam),對生成的試題數(shù)組進行由數(shù)組到字符串的轉(zhuǎn)換,以@為分隔符,形如9475@9493@9494@...@9689,最后將變量$radio通過SQL插入語句填寫到試卷表對應(yīng)的`radio`字段中,字符串@的個數(shù)即為單選題的數(shù)量,系統(tǒng)獲得所有題型和數(shù)量之后,將試卷標題、考試時間一并添加進試卷表,組卷成功。
2.3 考試和評分過程設(shè)計
下面以正式考試情景介紹考試和評分過程的設(shè)計,考生在前臺頁面選擇正式考試單元,系統(tǒng)彈出登錄窗體,考生輸入準考證號、密碼,在下拉列表中選擇考試名稱,點擊登錄按鈕,開始進入考試,這里要說明的是考試名稱除了教師在后臺生成的名稱之外,考生還可以選擇隨機生成考卷,系統(tǒng)根據(jù)考生的準考證號,查詢用戶數(shù)據(jù)表,取得考生的課程類別,根據(jù)課程類別和該課程類別下一個固定的試卷模版,生成名為隨機考試的試卷,其抽題原理與后臺管理員組卷過程基本相同。考生登錄時的準考證號和密碼如果和用戶表中一致,系統(tǒng)便會讀取試卷表中的開考時間,如果登錄時間與開考時間相同,則開始考試,如果開考時間未到,系統(tǒng)會彈出考試時間未到并顯示等待時間窗口,如果考試時間已超過15分鐘,會彈出已超時窗口。考生登錄成功后,系統(tǒng)會將考生id、試卷id、準考證號、姓名、開考科目等信息存儲到服務(wù)器的Session變量中,然后系統(tǒng)根據(jù)Session變量中的試卷id值,去數(shù)據(jù)庫試卷表中查詢得到試卷標題、開考時間和結(jié)束時間,并將上述時間分別轉(zhuǎn)換為unix時間戳,存儲到服務(wù)器Session變量中,同時根據(jù)兩個unix時間戳的差值計算考試總時間,具備以上條件,則可生成考試頁面。
生成的考試頁面應(yīng)包含考生姓名、準考證號、考核類型、試卷標題、題型、數(shù)量、分值、考試計時、剩余時間,以及每條具體試題內(nèi)容,由于存儲在試卷表中的試題是按題型分類的試題題號,而不是試題內(nèi)容本身,因此要根據(jù)試卷表中的每個題型的id值,去試題表中將具體試題內(nèi)容查詢出來,下面以單選題(radio)為例,分析如何根據(jù)試題題號得到具體試題內(nèi)容的過程:系統(tǒng)首先根據(jù)試卷的id值,通過$radio=explode('@',$kst['radio'])函數(shù)讀取試卷表中單選題(`radio`字段)中的數(shù)據(jù),將形如9475@9493@9494@...樣式的字符串拆分成數(shù)組,然后通過for循環(huán)語句讀取數(shù)組中每條單選題的id,根據(jù)此id值向試題表查詢得到試題內(nèi)容,譬如題號id為9475,則可在試題表中將id為9475的試題內(nèi)容(`content`字段)讀取出來,用同樣的方法可取得所有題型的考試試題。考生進入考試后,系統(tǒng)運用Ajax技術(shù),無刷新實現(xiàn)在考試頁面頭部顯示考試計時時間和剩余時間,考試剩余時間由SESSION變量中的考試結(jié)束時間值減去當前時間的unix時間戳得到,而計時開始時間值為當前unix時間戳減去SESSION變量中的開考時間,系統(tǒng)運用jQuery Ajax的post方法,利用回調(diào)函數(shù)來實現(xiàn)考試期間已答和未答試題的統(tǒng)計顯示,采用數(shù)組$sub_answer=array()存儲考生答案,采用變量$fraction存儲分數(shù),當計時時間到或者考生提前交卷,系統(tǒng)獲取表單提交的數(shù)據(jù),計算并保存考試結(jié)果,以題號9541單選題答題為例:系統(tǒng)首先判斷有無單選題題型存在,如果存在,則將考生提交答案與試題表中id為9541試題的正確答案進行比較,如果提交答案與正確答案相同,則按照試題表下每題分值(`fraction`字段)大小進行加分,如果答錯或者未答則給予0分,通過for循環(huán)語句遍歷所有單選題,將形如9541@radio@A@A@1的字符串結(jié)果存入$sub_answer[]數(shù)組中,同時計算單選題總分,當所有題型遍歷完后,計算試卷總分,并把考試結(jié)果數(shù)據(jù)填寫到考生表中,表中考生答案(`sub_answer`字段)用implode("*",$sub_answer)函數(shù)拼接成字符串,如果填寫成功,表示完成試卷信息的提交,系統(tǒng)彈出試卷提交成功信息,并同時顯示成績結(jié)果頁面。
考生也可以在考試結(jié)束后根據(jù)準考證號和試卷名稱查詢成績,顯示成績結(jié)果頁面。系統(tǒng)利用$ar=explode("*",$sub_answer)函數(shù),拆分得到每條試題的考試結(jié)果,利用for循環(huán)讀取每條試題的數(shù)據(jù),利用$dates=explode("@",$ar[$i])將每條試題的數(shù)據(jù)再拆分到數(shù)組中,利用$array_type[]=$dates[1]將題型存儲到數(shù)組中,利用$answers[]=$dates[2]將正確的答案存儲到數(shù)組中,利用$answer[]=$dates[3]將提交的答案存儲到數(shù)組中,利用$array_answer[]=$dates將每條試題的所有數(shù)據(jù)存儲到數(shù)組中。由于成績頁面中要顯示具體的試題內(nèi)容、正確答案、提交答案,因此,系統(tǒng)根據(jù)試卷id值,將試卷的題型先放到變量$examtype中,通過foreach語句遍歷該題型下的所有試題id值,然后根據(jù)試題id值將試題內(nèi)容從試題表中取出來,付給頁面模板。在頁面模板中,以單選題為例,系統(tǒng)利用雙重循環(huán)語句進行遍歷,遍歷的條件就是考生表中`sub_answer`字段包含的試題id、題型分別與試題表中的試題id、題型相等,遍歷結(jié)果中的試題內(nèi)容取自試題表中的`content`字段、正確答案取自試題表中的`answer`字段、提交答案取自考生表中的`sub_answer`字段、問題解析取自試題表中的`resolve`字段。頁面中,考生還可以通過單擊查看答題情況按鈕查看所有答題情況,單擊正確或錯誤按鈕,頁面會跳轉(zhuǎn)到對應(yīng)試題所在位置實現(xiàn)單條試題的結(jié)果查詢。
2.4 系統(tǒng)前后臺功能設(shè)計
客戶端程序在功能設(shè)計上共分為前臺和后臺兩大部分,前臺設(shè)計主要包括首頁設(shè)計,以及單項練習、模擬考試、正式考試、成績查詢、新聞公告五大模塊入口設(shè)計,如圖2所示。由于系統(tǒng)采用了Smarty模版引擎技術(shù),它將應(yīng)用程序分成視圖和邏輯控制兩部分[4],有效地實現(xiàn)了邏輯代碼與內(nèi)容表現(xiàn)的分離,專注于內(nèi)容表現(xiàn),避免了標簽與程序的混合,使得邏輯內(nèi)容的改變不會影響到前臺視圖[5],因此大大減輕了頁面設(shè)計的工作量,每個模板頁面通過對應(yīng)PHP文件的$smarty->display方法指定,頁面的變量通過對應(yīng)PHP文件的$smarty->assign方法指定。在單項練習模塊的頁面設(shè)計中,運用了Jquery的Ajax技術(shù),對提交按鈕進行判斷,構(gòu)建function checkInput(id,type)函數(shù)對單選題、判斷題、多選題進行題型檢查,構(gòu)建function checkAnswer(id,type)函數(shù)對是否選擇了答案進行檢查,構(gòu)建function createInputHidden(id)函數(shù)創(chuàng)建用戶已答試題的隱藏域,記錄用戶所答的問題。與模擬考試和正式考試不同的是,單項練習模塊的答案是提交到當前頁面,在隱藏域里利用setAttribute方法創(chuàng)建input元素的name值'hid',根據(jù)$_POST['hid']方法到數(shù)據(jù)庫試題表中查詢該id試題的正確答案,將提交的答案與之比較,正確則加分,然后將提交答案和正確答案輸出到當前頁中,用戶每答一題,就向單項練習表中添加一條記錄,保存用戶所做的數(shù)據(jù)。模擬考試模塊與正式考試模塊的功能設(shè)計基本相同,區(qū)別只在于模擬考試使用的是測試賬號,登錄時用戶只需選擇考題名稱而無須輸入準考證號和登錄密碼。
后臺頁面設(shè)計采用了框架布局的形式,管理員在后臺進行登錄時,系統(tǒng)首先運用JavaScript對登錄賬號、密碼、權(quán)限是否填寫進行檢查,然后去數(shù)據(jù)庫用戶表驗證所填寫的賬號、密碼是否正確,賬戶是否被凍結(jié),驗證通過后進入后臺管理系統(tǒng)首頁,后臺首頁分為頭部、左部導(dǎo)航欄、右部功能展示區(qū),頭部主要顯示登錄賬戶、用戶權(quán)限和上次登錄時間,導(dǎo)航欄包含所有功能菜單,它使用JavaScript實現(xiàn)子菜單的展開和折疊,所有功能如圖3所示,其中類別管理菜單既可以添加主課程類別,也可以添加該課程下的子課程類別,添加考生信息子菜單中的添加考生方法既可以使用富文本編輯器CKeditor手工逐條添加,也可以用Excel文件批量導(dǎo)入,新聞公告菜單主要實現(xiàn)考試信息及相關(guān)新聞的發(fā)布,試題管理菜單主要用于試題的增刪改查,試題除了可以手工逐條輸入之外,也可以進行批量導(dǎo)入,導(dǎo)入前需分別為四種題型建立對應(yīng)的Excel文件,導(dǎo)入時在頁面先選擇課程類別、題型、題型分值,然后選擇要導(dǎo)入的文件,文件格式要求單選題和多選題應(yīng)包含序號、試題內(nèi)容、A—D選項內(nèi)容,答案(大寫字母A—D)、解析等字段,判斷題和填空題應(yīng)包含序號、試題內(nèi)容、答案(判斷題用數(shù)字1表示正確、0表示錯誤)、解析等字段,除了導(dǎo)入功能,試題還可以導(dǎo)出為word文檔,方便打印紙質(zhì)試卷。試卷管理菜單下的分數(shù)和分數(shù)線設(shè)定子菜單,可以設(shè)置總分和及格分數(shù)線,按照總分和分數(shù)線可以在模板定義子菜單中設(shè)定不同題型的試題數(shù)量,并保存為新模板。在模板管理子菜單中可以修改各個題型的數(shù)量占比,在管理題型子菜單中不但可以更改或刪除現(xiàn)有題型,而且還可以增加其他非客觀題型,進行人工閱卷。成績管理菜單可以用于正式考試成績的查詢和統(tǒng)計,在使用成績查詢子菜單進行查詢時,查詢的選項可以是考生姓名、考試名稱、課程類別和考試不及格者,可以將查詢的結(jié)果導(dǎo)出為Excel格式的文件。在成績統(tǒng)計子菜單,系統(tǒng)利用JpGraph圖表類庫實現(xiàn)某個考試名稱的成績統(tǒng)計與分析,利用直線圖表示所有考生的考試成績,利用3d餅圖表示考試通過率。權(quán)限管理菜單可以實現(xiàn)從用戶表中添加用戶為教師、管理員或超級管理員角色,也可以對已添加的角色進行權(quán)限更改,根據(jù)管理權(quán)限的不同,用戶以教師身份角色登錄后臺時導(dǎo)航欄沒有權(quán)限管理菜單,以教師和管理員角色登錄后臺時導(dǎo)航欄含有數(shù)據(jù)庫管理菜單,可用于對考試數(shù)據(jù)庫進行備份或還原,保證考試數(shù)據(jù)的安全。
3 系統(tǒng)測試和完善(System testing and improvement)
實現(xiàn)系統(tǒng)的穩(wěn)定性是運行在線考試的關(guān)鍵[6],系統(tǒng)使用PHP技術(shù)使得考試數(shù)據(jù)得以及時更新,但頻繁的數(shù)據(jù)讀取卻給服務(wù)器帶來了巨大的壓力,特別是當并發(fā)訪問[7]量較大時,服務(wù)器頻繁工作于用戶請求與數(shù)據(jù)庫響應(yīng)兩個操作之間,就會造成用戶請求多與數(shù)據(jù)庫響應(yīng)慢兩者之間相互等待的局面,嚴重者則會導(dǎo)致系統(tǒng)崩潰。相對于其他模板引擎來說,采用Smarty模板編寫的應(yīng)用程序可以獲得更大效能,在應(yīng)用程序第一次運行時,Smarty會將程序編譯成一個非模板格式的PHP文件,并將最終輸出的內(nèi)容緩存成一個靜態(tài)的HTML文件,若在源代碼未變動或緩存時間尚未過期的情況下,下次再訪問模板時,Smarty會將用戶請求直接定位到這個HTML文件上,而不再進行重編譯,既省去了業(yè)務(wù)邏輯[8]處理麻煩,又降低了訪問量較大引發(fā)的服務(wù)器工作負荷,有效提升了應(yīng)用程序的性能和服務(wù)器的響應(yīng)速度。系統(tǒng)在完成了整個考試系統(tǒng)的前后臺設(shè)計之后,必須對系統(tǒng)的穩(wěn)定性和并發(fā)能力進行測試,測試的首要項目是服務(wù)器單機測試,系統(tǒng)在加載Apache服務(wù)和Mysql服務(wù)之后,檢查前臺登錄各個單元模塊是否流暢,是否存在服務(wù)器端口沖突,后臺試題導(dǎo)
入、考生數(shù)據(jù)表導(dǎo)入有無問題,前后臺頁面有無遲滯現(xiàn)象,單機測試合格后再進行內(nèi)網(wǎng)測試,用一臺或者多臺服務(wù)器通過內(nèi)網(wǎng)進行測試,選任意一臺考生用機進入指定一臺或多臺服務(wù)器,檢查系統(tǒng)運行是否正常、流暢,考試登錄、計時、交卷、評分、成績查詢各個環(huán)節(jié)有無錯誤,有無遲滯現(xiàn)象,內(nèi)網(wǎng)測試合格后,進行60人同時在線考試,測試系統(tǒng)在多人上線時的穩(wěn)定性和并發(fā)性,在服務(wù)器上檢查在線考生表的數(shù)量是否與參考人數(shù)相等,有無掉線現(xiàn)象,分析掉線產(chǎn)生的原因,測試一臺考試服務(wù)器最大考試客戶機連接數(shù),在實際考試中,我們最好在每個機房安裝一臺服務(wù)器操作系統(tǒng),并安裝PhpStudy集成軟件包和在線考試系統(tǒng)軟件,考試結(jié)束后,將每個機房的考試成績分別導(dǎo)出,再按考場和課程匯總,得到該門課程的全部考試成績[9]。
4 結(jié)論(Conclusion)
本系統(tǒng)基于PHP、Mysql和Smarty技術(shù),采用B/S模式,能夠?qū)崿F(xiàn)在線單項練習、模擬和正式考試及評分,系統(tǒng)經(jīng)測試、使用,并發(fā)能力強,服務(wù)器運行穩(wěn)定可靠,能夠顯著提高大學生計算機一級考試理論應(yīng)試成績,該系統(tǒng)也可以用于其他課程的在線練習、考試。
參考文獻(References)
[1] 張福炎,孫志揮.大學計算機信息技術(shù)教程[M].南京大學出版社,2017,8.
[2] 劉洪江.在線考試系統(tǒng)的數(shù)據(jù)庫設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2012,8 (3):508-511.
[3] 萬茹.基于HTML5的Web富客戶端網(wǎng)頁設(shè)計方法[J].電腦編程技巧與維護,2015(13):67-69.
[4] 馮興利,徐墨,鎖志海.基于模板引擎Smarty的信息管理系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(18):25-28.
[5] 劉耀欽,袁承芬.基于PHP的招聘報名系統(tǒng)設(shè)計與研究[J].計算機時代,2014(5):39-41.
[6] 李偉為.基于ASP.NET2.0的在線考試系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2011,28(9):163-165.
[7] 王鑫.并發(fā)數(shù)據(jù)訪問代碼缺陷分析[J].航天控制,2011,29(2):81-92.
[8]孫小淋.會話外觀模式在業(yè)務(wù)邏輯集成中的應(yīng)用[J].微處理機,2014(1):25-28.
[9] PHP項目開發(fā)實戰(zhàn)入門[M].明日科技.吉林:吉林大學出版社,2017,3.
作者簡介:
金 強(1970-),男,碩士,高級講師.研究領(lǐng)域:控制工程,軟件工程.
王 亮(1979-),男,碩士,講師.研究領(lǐng)域:計算機網(wǎng)絡(luò),信息安全.
方春華(1973-),女,本科,講師.研究領(lǐng)域:數(shù)據(jù)挖掘,數(shù)據(jù)庫開發(fā).