国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于“編譯原理”課程的在線答疑系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2022-01-24 08:38:08張友能
關(guān)鍵詞:編譯原理功能模塊管理員

梅 蓉,張友能

1 研究背景與意義

近年來,隨著網(wǎng)絡(luò)信息技術(shù)迅猛發(fā)展,教育教學(xué)領(lǐng)域發(fā)生一系列重大變革[1].傳統(tǒng)教學(xué)模式條件苛刻,要求教師和學(xué)生必須在學(xué)校課堂上完成教學(xué)任務(wù)和學(xué)習(xí)任務(wù),導(dǎo)致師生之間溝通交流的機(jī)會(huì)較少[2].為解決這一問題,眾多高校紛紛引進(jìn)網(wǎng)絡(luò)信息技術(shù),搭建師生交流平臺(tái).而在線答疑系統(tǒng)作為交流平臺(tái)的典型代表,能打破時(shí)間和地域限制,幫助教師和學(xué)生開展學(xué)習(xí)交流活動(dòng)[3].針對(duì)課堂中不解以及疑惑的知識(shí)點(diǎn),學(xué)生可通過該平臺(tái)向教師和其他同學(xué)尋求幫助,而教師也可以隨時(shí)隨地通過該平臺(tái)進(jìn)行答疑,幫助學(xué)生順利完成學(xué)習(xí)任務(wù).本課題以“編譯原理”為試驗(yàn)課程,設(shè)計(jì)與搭建在線答疑系統(tǒng),以期完善平臺(tái)功能,便于日后在高校中推廣[4].

2 系統(tǒng)關(guān)鍵技術(shù)

2.1 B/S架構(gòu)

“B/S架構(gòu)”是Browser/Server(瀏覽器/服務(wù)器)架構(gòu)的簡稱[5],是當(dāng)前Web開發(fā)中廣泛使用的一種技術(shù)“.C/S架構(gòu)”是Client/Server(客戶端/服務(wù)器)架構(gòu)的簡稱,基于該傳統(tǒng)架構(gòu)的應(yīng)用程序[6],用戶需要在本地下載安裝客戶端,通過本地客戶端和服務(wù)器進(jìn)行數(shù)據(jù)交互,才能完成系統(tǒng)既定功能[7].例如日常使用的QQ桌面軟件,需要用戶下載并安裝QQ客戶端,然后在客戶端進(jìn)行登錄后才可完成聊天功能.而基于B/S架構(gòu)的應(yīng)用程序,用戶通過瀏覽器即可與服務(wù)器完成交互操作,如圖1所示.

圖1 B/S架構(gòu)原理

具體實(shí)現(xiàn)如下:用戶在瀏覽器中通過form表單發(fā)出操作請(qǐng)求(Request),該請(qǐng)求被Web服務(wù)器接收后,服務(wù)器會(huì)調(diào)用相應(yīng)邏輯代碼進(jìn)行處理,處理完畢后將處理結(jié)果通過Response響應(yīng)給瀏覽器,而后瀏覽器解析并渲染該響應(yīng)結(jié)果,呈現(xiàn)給用戶,這就是B/S架構(gòu)的工作流程.

2.2 MVC模式

“MVC模式”是Model—View—Controller(模型—視圖—控制器)模式的簡稱[8],其中“V”代表View(視圖),是指瀏覽器呈現(xiàn)給用戶的界面,用戶通過視圖界面與服務(wù)器進(jìn)行數(shù)據(jù)交互;“M”代表Model(模型),是指后端程序的具體邏輯功能,不同請(qǐng)求數(shù)據(jù)經(jīng)過Model模型層會(huì)得到不同處理結(jié)果,例如在Java中,將實(shí)體類和邏輯功能封裝成JavaBean,而Java-Bean在MVC模型設(shè)計(jì)中是Model模型,又稱“實(shí)體模型層”;“C”代表Controller(控制器),是視圖和模型之間的橋梁和紐帶.控制器可以將用戶從視圖提交的請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)模型進(jìn)行業(yè)務(wù)邏輯處理,并將模型處理結(jié)果轉(zhuǎn)發(fā)給相應(yīng)視圖[9],進(jìn)行頁面展示,如圖2所示.基于MVC設(shè)計(jì)模式,可以將應(yīng)用程序的開發(fā)分為三個(gè)模塊:即頁面展示、業(yè)務(wù)邏輯、轉(zhuǎn)發(fā)控制.分模塊開發(fā)既能提升開發(fā)效率,也可為后期維護(hù)和擴(kuò)展提供方便,比如項(xiàng)目上線后需要額外增加功能,只需在三個(gè)模塊增加相應(yīng)代碼即可完成[10].

圖2 MVC模式原理

2.3 Servlet和JSP

“Servelt”是Server Applet的 簡 稱[11],狹 義的Servlet是指Java語言實(shí)現(xiàn)的一個(gè)接口;廣義的Servlet是指所有實(shí)現(xiàn)了該接口的Java類[12].在Java語言中,Servlet繼承HttpServlet類,并覆寫doget以 及dopost等 方 法[13].而Servlet正 是上述MVC結(jié)構(gòu)中的控制器,Servlet的實(shí)現(xiàn)遵循了服務(wù)器能識(shí)別的規(guī)則,即當(dāng)用戶通過瀏覽器發(fā)起請(qǐng)求時(shí),該請(qǐng)求被Servlet識(shí)別并轉(zhuǎn)發(fā)給相應(yīng)業(yè)務(wù)邏輯,待處理完畢后,Servlet會(huì)將處理結(jié)果轉(zhuǎn)發(fā)給相應(yīng)展示頁面.而JSP(Java Server Pages)是一種簡化的Servlet,便于開發(fā)人員編寫前端代碼.但服務(wù)器只認(rèn)識(shí)Servlet,因此需要將JSP轉(zhuǎn)譯成Servlet,即當(dāng)瀏覽器向服務(wù)器請(qǐng)求JSP頁面時(shí),服務(wù)器接收到該請(qǐng)求后,調(diào)用內(nèi)部JspServlet,將該JSP頁面轉(zhuǎn)譯成相應(yīng)的Servlet,隨后服務(wù)器執(zhí)行轉(zhuǎn)譯后的Servlet,并將執(zhí)行結(jié)果響應(yīng)給瀏覽器,具體如圖3所示.

圖3 JSP原理

3 系統(tǒng)模塊設(shè)計(jì)

根據(jù)答疑系統(tǒng)基本業(yè)務(wù)需求和功能分析,將答疑系統(tǒng)分為三個(gè)功能模塊:即學(xué)生功能模塊、教師功能模塊和管理員功能模塊,具體如圖4所示.

圖4 “編譯原理”在線答疑系統(tǒng)總體架構(gòu)圖

3.1 學(xué)生功能模塊

學(xué)生功能模塊具有如下五方面功能,具體如圖5所示.

圖5 學(xué)生功能模塊圖

(1)學(xué)生注冊(cè)和登錄.學(xué)生登錄系統(tǒng)時(shí)采取實(shí)名制,未注冊(cè)學(xué)生憑借學(xué)號(hào)和姓名完成注冊(cè)后方可登錄系統(tǒng).

(2)學(xué)生成功登錄系統(tǒng)后,可查看個(gè)人信息、修改個(gè)人信息和密碼.

(3)可查看所選課程信息,包括該課程下的提問信息和回復(fù)信息.

(4)可查看自己的提問信息以及回復(fù)信息,并參與提問以及課程問題討論環(huán)節(jié),這也是學(xué)生角色的核心功能.

(5)可檢索學(xué)校開設(shè)的課程,并根據(jù)自身興趣愛好申請(qǐng)相關(guān)課程.

3.2 教師功能模塊

教師功能模塊具有如下五方面功能,具體如圖6所示.

圖6 教師功能模塊圖

(1)教師注冊(cè)和登錄.教師登錄系統(tǒng)時(shí)采取實(shí)名制,由于系統(tǒng)設(shè)定,注冊(cè)用戶均為學(xué)生角色,因此教師完成注冊(cè)后需向管理員申請(qǐng)修改角色權(quán)限.

(2)教師登錄成功后,可查看個(gè)人信息,修改個(gè)人信息和密碼.

(3)可查看未回答的問題和已回答的問題,從而解答未回答的問題,對(duì)已回答的問題進(jìn)行相關(guān)補(bǔ)充,這是教師角色的核心功能.

(4)可查看所授課程信息,以及選課學(xué)生情況.

(5)可查看所授課程的學(xué)生申請(qǐng)情況,并對(duì)申請(qǐng)學(xué)生進(jìn)行管理,也可通過學(xué)號(hào)搜索,將學(xué)生主動(dòng)添加進(jìn)入課程.

3.3 管理員功能模塊

管理員功能模塊具有如下五方面功能,具體如圖7所示.

圖7 管理員功能模塊圖

(1)管理員登錄.管理員分為超級(jí)管理員和普通管理員兩種,普通管理員只有獲得超級(jí)管理員授權(quán),才能擁有管理員賬號(hào).

(2)管理員登錄成功后,可查看當(dāng)前開設(shè)的課程信息、添加課程信息、修改課程信息,以及刪除課程信息.

(3)可查看當(dāng)前系統(tǒng)中的所有提問和回復(fù),并全面甄別提問和回復(fù)內(nèi)容,一旦發(fā)現(xiàn)不恰當(dāng)?shù)难哉?,可以進(jìn)行刪帖操作.

(4)可修改學(xué)生角色、教師角色,以及普通管理員角色的權(quán)限,系統(tǒng)默認(rèn)注冊(cè)均為學(xué)生角色,如有需要可以向管理員提出修改角色權(quán)限的申請(qǐng).

(5)超級(jí)管理員可查看所有管理員信息,并對(duì)這些信息進(jìn)行增、刪、改操作,普通管理員只能查看個(gè)人信息,無權(quán)查看系統(tǒng)中其他管理員信息.

4 數(shù)據(jù)庫表設(shè)計(jì)

根據(jù)項(xiàng)目實(shí)際需求和部署規(guī)模,需要為系統(tǒng)設(shè)計(jì)數(shù)據(jù)庫以存放用戶數(shù)據(jù).該系統(tǒng)共需建立如下6張表:用戶信息表、課程信息表、申請(qǐng)信息表、提問信息表、回復(fù)信息表和課程表.

4.1 用戶信息表

用戶信息表實(shí)體內(nèi)容包含以下字段:uid(用戶編號(hào))、uname(用戶姓名)、upwd(用戶密碼)、ugender(用戶性別)、uemail(用戶電子郵箱)、urole(用戶角色)、uregdate(用戶注冊(cè)日期)和ulastlogin(用戶最后登錄日期).其中uid為主鍵約束.

4.2 課程信息表

課程信息表實(shí)體內(nèi)容包含以下字段:cid(課程編號(hào))、cname(課程名字)和cdetail(課程描述).其中cid為主鍵約束.

4.3 申請(qǐng)信息表

申請(qǐng)信息表實(shí)體內(nèi)容包含以下字段:aid(申請(qǐng)編號(hào))、uid(用戶編號(hào))、cid(申請(qǐng)課程編號(hào))、areason(申請(qǐng)?jiān)颍?、astatus(申請(qǐng)狀態(tài))和aflag(申請(qǐng)?zhí)幚順?biāo)志).其中aid為主鍵約束,uid、cid為外鍵約束.

4.4 提問信息表

提問信息表實(shí)體內(nèi)容包含以下字段:qid(提問編號(hào))、uid(提問人編號(hào))、cid(提問所屬課程編號(hào))、qtitle(提問標(biāo)題)、qcontent(提問內(nèi)容)和qdate(提問日期).其中qid為主鍵約束,uid、cid為外鍵約束.

4.5 回復(fù)信息表

回復(fù)信息表實(shí)體內(nèi)容包含以下字段:rid(回復(fù)編號(hào))、qid(回復(fù)對(duì)應(yīng)提問編號(hào))、uid(回復(fù)人編號(hào))、rtitle(回復(fù)標(biāo)題)、rcontent(回復(fù)內(nèi)容)和rdate(回復(fù)日期).其中rid為主鍵約束,qid、uid為外鍵約束.

4.6 課程表

課程表負(fù)責(zé)維護(hù)用戶和課程之間的關(guān)系,一位用戶可以選擇多門課程,而一門課程可以對(duì)應(yīng)多位用戶,課程表負(fù)責(zé)記錄用戶和課程之間的信息.課程表實(shí)體內(nèi)容包含以下字段:ucid(課程表編號(hào))、uid(用戶編號(hào))和cid(課程編號(hào)).其中ucid為主鍵約束,uid、cid為外鍵約束.

4.7 數(shù)據(jù)庫表的邏輯關(guān)系

上述6張數(shù)據(jù)庫表通過主鍵約束和外鍵約束確定表與表之間的聯(lián)系,具體如圖8所示.其中主鍵約束用來唯一標(biāo)識(shí)數(shù)據(jù)庫表中的每條記錄,外鍵約束使主表與從表之間產(chǎn)生聯(lián)系,從而保證數(shù)據(jù)的完整性和正確性.例如在提問信息表中,提問編號(hào)作為主鍵唯一標(biāo)識(shí)每條提問記錄,而提問人編號(hào)作為外鍵,用來關(guān)聯(lián)用戶表中的詳細(xì)信息;課程編號(hào)作為外鍵,用來關(guān)聯(lián)課程信息表中的詳細(xì)信息.如此關(guān)聯(lián)后,根據(jù)提問信息表編號(hào),可查詢另外2張表的詳細(xì)信息,同時(shí)即便修改另外2張表(主表)中的記錄信息也不會(huì)影響提問信息表(從表)數(shù)據(jù)的完整性和正確性.

圖8 數(shù)據(jù)表邏輯關(guān)聯(lián)圖

5 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

整體系統(tǒng)采用MVC分層模式,即系統(tǒng)分為Model模型 層、View視圖 層、Controller控 制器層[14].Model層負(fù)責(zé)建立相應(yīng)的實(shí)體數(shù)據(jù)庫模型,并與數(shù)據(jù)庫完成數(shù)據(jù)交互(包括數(shù)據(jù)的增、刪、改、查)[15].該系統(tǒng)使用JDBC(Java Data-Base Connection)技術(shù)完成客戶端與數(shù)據(jù)庫的數(shù)據(jù)交互,并將JavaBean實(shí)體類與數(shù)據(jù)庫表一一對(duì)應(yīng),方便數(shù)據(jù)的讀取和流轉(zhuǎn).為提高客戶端與數(shù)據(jù)庫的交互效率,該系統(tǒng)采用數(shù)據(jù)庫連接池技術(shù),即在數(shù)據(jù)庫連接池中預(yù)先存放系統(tǒng)所需連接對(duì)象,在數(shù)據(jù)庫連接時(shí),直接從連接池中獲取連接對(duì)象.當(dāng)客戶端與數(shù)據(jù)庫完成數(shù)據(jù)交互后,將相應(yīng)連接對(duì)象返回到連接池中.數(shù)據(jù)庫連接池技術(shù)可實(shí)現(xiàn)連接對(duì)象的重復(fù)利用,減少不必要的連接操作,提高客戶端與數(shù)據(jù)庫的交互效率,是JVM優(yōu)化的重要環(huán)節(jié).View視圖層在該系統(tǒng)中由JSP頁面構(gòu)成,當(dāng)用戶訪問該系統(tǒng)時(shí),服務(wù)器將初始JSP頁面響應(yīng)給瀏覽器,用戶通過該頁面完成與服務(wù)器的交互操作,包括登錄和注冊(cè),為后續(xù)業(yè)務(wù)操作提供便利.在JSP頁面中可以包含HTML語言、CSS腳本、JavaScript腳本和Java語言,服務(wù)器通過特殊語言標(biāo)志符將JSP頁面轉(zhuǎn)譯成Servlet,進(jìn)而在服務(wù)器上運(yùn)行.Controller控制器在該系統(tǒng)中特指Servlet,當(dāng)用戶通過瀏覽器向服務(wù)器發(fā)起請(qǐng)求后,服務(wù)器會(huì)根據(jù)請(qǐng)求類別轉(zhuǎn)發(fā)給相應(yīng)的Servlet,Servlet獲取Request請(qǐng)求數(shù)據(jù)后,調(diào)用Model模型層的邏輯代碼處理該請(qǐng)求,將業(yè)務(wù)邏輯的處理結(jié)果以Response的形式返回給JSP頁面,并將處理結(jié)果動(dòng)態(tài)寫入JSP頁面的HTML標(biāo)簽中,以供瀏覽器解析渲染,最終呈現(xiàn)給用戶[16].

5.1 學(xué)生功能模塊

該部分介紹系統(tǒng)注冊(cè)登錄功能,并著重介紹學(xué)生功能模塊的核心,即課程提問和討論功能.

(1)系統(tǒng)的登錄和注冊(cè).系統(tǒng)首頁提供用戶登錄入口(圖9),已注冊(cè)的用戶可直接憑借賬號(hào)和密碼進(jìn)行登錄,未注冊(cè)的用戶可點(diǎn)擊系統(tǒng)首頁的注冊(cè)鏈接進(jìn)行注冊(cè).該部分采用JavaScript進(jìn)行表單校驗(yàn),針對(duì)表單中不合法的輸入,比如賬號(hào)或者密碼為空,以及賬號(hào)或密碼不符合規(guī)范等情況,直接給用戶反饋表單數(shù)據(jù)不合法的信息,不會(huì)將表單數(shù)據(jù)提交給后端邏輯代碼[17].此設(shè)計(jì)既能提高系統(tǒng)與用戶的交互性,也可減輕數(shù)據(jù)庫負(fù)擔(dān).如果用戶輸入的表單信息符合規(guī)范,才會(huì)通過form表單將賬號(hào)和密碼提供給相應(yīng)的Servlet,Servlet調(diào)用后端登錄校驗(yàn)邏輯判斷賬號(hào)和密碼是否與數(shù)據(jù)庫中的記錄匹配,若信息匹配將繼續(xù)判斷用戶角色權(quán)限,系統(tǒng)根據(jù)用戶角色權(quán)限值跳轉(zhuǎn)到不同角色的主頁main;若信息不匹配,提示登錄失敗信息,并將頁面重新跳轉(zhuǎn)至登錄頁面[18].

圖9 在線答疑系統(tǒng)登錄界面

(2)學(xué)生的提問功能.如圖10所示,當(dāng)學(xué)生登錄成功后,在頁面左側(cè)導(dǎo)航欄內(nèi)可選擇相應(yīng)操作.點(diǎn)擊課程提問,可針對(duì)當(dāng)前課程向教師或其他學(xué)生發(fā)起提問.為便于后續(xù)功能擴(kuò)展,如增加課程,學(xué)生可選擇提問的課程,將提問的關(guān)鍵詞、標(biāo)題,以及提問內(nèi)容填入form表單,提交給相應(yīng)課程的授課教師.

圖10 學(xué)生提問界面

(3)學(xué)生的討論功能.如圖11所示,學(xué)生在左側(cè)導(dǎo)航欄點(diǎn)擊“我要討論”按鈕,即可查看當(dāng)前課程的所有提問信息,選擇感興趣的提問,即可參與討論.在參與討論的界面,用戶可針對(duì)當(dāng)前提問信息發(fā)表自己的看法和觀點(diǎn),點(diǎn)擊“參與討論”按鈕,即可將回答的信息提交給相應(yīng)用戶.

圖11 學(xué)生討論界面

5.2 教師功能模塊

該部分主要介紹教師用戶如何查看課程中未回答的問題、處理學(xué)生課程申請(qǐng),以及查看參與當(dāng)前課程的學(xué)生信息.

(1)查看課程中未回答的問題.教師用戶進(jìn)入系統(tǒng)主頁后,在左側(cè)導(dǎo)航欄點(diǎn)擊“未回答問題”按鈕,即可查看當(dāng)前所授課程中未回答的問題.在該頁面中,教師可查看學(xué)生提問、學(xué)生討論情況,并對(duì)提問內(nèi)容進(jìn)行補(bǔ)充回復(fù),幫助學(xué)生解決困惑.

(2)處理學(xué)生課程申請(qǐng).教師用戶點(diǎn)擊左側(cè)導(dǎo)航欄中的“課程申請(qǐng)”按鈕,即可查看當(dāng)前課程中的學(xué)生申請(qǐng)情況,教師可根據(jù)學(xué)生課程申請(qǐng)理由和教學(xué)需要,對(duì)課程申請(qǐng)進(jìn)行同意操作和拒絕操作,具體頁面如圖12所示.

圖12 教師課程申請(qǐng)界面

5.3 管理員功能模塊

管理員分為超級(jí)管理員和普通管理員,二者的差別在于:超級(jí)管理員可以創(chuàng)建和刪除普通管理員,同時(shí)可查看當(dāng)前系統(tǒng)中包括管理員在內(nèi)的所有成員.管理員的功能包括:課程管理、提問和回復(fù)內(nèi)容管理,以及用戶管理.其中,在課程管理模塊,管理員可以修改當(dāng)前開設(shè)的課程信息,也可添加新開設(shè)的課程;在提問和回復(fù)內(nèi)容管理模塊,管理員可查看師生互動(dòng)情況,警告并刪除其中不恰當(dāng)?shù)难哉?;在用戶管理模塊,管理員可以對(duì)學(xué)生、教師、普通管理員進(jìn)行授權(quán)管理,處理用戶注冊(cè)請(qǐng)求,具體如圖13所示.

圖13 管理員用戶管理界面

6 結(jié)語

自21世紀(jì)以來,信息技術(shù)迅猛發(fā)展,網(wǎng)絡(luò)教學(xué)模式逐漸取代傳統(tǒng)教學(xué)模式.而在線答疑系統(tǒng)作為現(xiàn)代網(wǎng)絡(luò)教學(xué)模式的重要環(huán)節(jié)之一,在師生互動(dòng)環(huán)節(jié)中發(fā)揮著至關(guān)重要的作用.該系統(tǒng)可打破時(shí)空限制,隨時(shí)隨地為師生服務(wù),既能解答學(xué)生在知識(shí)方面的疑惑,又能幫助教師高效利用碎片化時(shí)間,提高課程學(xué)習(xí)效率以及授課效率,可以說是現(xiàn)代網(wǎng)絡(luò)教學(xué)模式的重要輔助平臺(tái).在調(diào)研眾多高校現(xiàn)有授課模式的基礎(chǔ)上,開發(fā)設(shè)計(jì)在線答疑系統(tǒng),并以編譯原理課程作為試驗(yàn)課程.根據(jù)角色功能,該系統(tǒng)分為學(xué)生、教師和管理員三種角色,學(xué)生可以在平臺(tái)發(fā)起提問;教師可根據(jù)學(xué)生提問進(jìn)行反饋;管理員可管理師生行為,并監(jiān)控師生互動(dòng)內(nèi)容.

猜你喜歡
編譯原理功能模塊管理員
我是小小午餐管理員
我是圖書管理員
我是圖書管理員
可疑的管理員
軟件學(xué)院編譯原理實(shí)踐課程的教學(xué)探索
基于MOOC的編譯原理分階段課程教學(xué)研究
營造興趣啟蒙式學(xué)習(xí)氛圍的編譯原理首課設(shè)計(jì)
基于ASP.NET標(biāo)準(zhǔn)的采購管理系統(tǒng)研究
“編譯原理”課程教學(xué)改革初探
輸電線路附著物測算系統(tǒng)測算功能模塊的研究
赤水市| 杨浦区| 鸡泽县| 长海县| 讷河市| 永泰县| 宝山区| 舒兰市| 定州市| 黄陵县| 河南省| 司法| 宜阳县| 定边县| 东辽县| 漠河县| 常宁市| 嘉定区| 华安县| 晋江市| 汶上县| 阳信县| 宿松县| 无锡市| 郸城县| 晋江市| 股票| 娱乐| 海南省| 漳平市| 丰原市| 民勤县| 广东省| 沧州市| 英德市| 永吉县| 长沙县| 吉木萨尔县| 尼玛县| 崇文区| 玉屏|