




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄 2 需求與功能分析13 概要設計23.1用戶登陸和注冊21.BaseAction基類設計22.利用Ajax驗證注冊用戶名23.用戶登陸的開發23.2前臺顯示頁面的開發23.3參與答疑功能23.4個人控制頁面33.5課程管理33.6內容管理33.7用戶管理34 核心數據庫設計44.1用戶E-R圖設計44.2邏輯結構設計45詳細設計65.1用戶登錄65.2 用戶注冊85.3 管理后臺模塊95.3.1課程管理105.3.2內容管理12總結與展望14參考文獻:151概述隨著高校規模不斷擴大,學生和老師人數倍增,加之上課地點的變動等原因,師生之間的答疑工作不好開展,經分析傳統答疑方式有如下缺點:
2、答疑時間和地點不好確定。 學生有了新問題無法及時向老師提問。 由于同學可能不住一起,學生間的討論和交流比較少。 老師和學生的交流少,以致老師不了解學生的學習和掌握知識的程度。 為了彌補這些缺陷,提高答疑工作的便捷性和及時性,增加師生之間和學生之間的互動,我們決定開發該基于B/S的在線答疑系統。As colleges and universities have been expanding, doubling the number of students and teachers, coupled with poor venue changes and other reasons, the Q
3、& A between students and teachers carry out the analysis of traditional answering the following disadvantages: Q & A time and place well established. The students have not been able to ask teachers. Students may not live together, discussion and exchange among students is relatively small. The excha
4、nge of teachers and students, so that teachers do not understand the students to learn and master degree of knowledge. To compensate for these shortcomings, Q & A work to improve the convenience and timeliness, to increase the interaction between teachers and students and between students, Dongcheng
5、 University of Science and Technology decided to develop the online question answering system based on B/S.2 需求分析與功能分析開發任何系統之前,進行足夠的系統分析都是很有必要的,主要是分析客戶的要求和本系統的一些特點及模塊等,以確定如何進行實際的開發。經過與小組成員的詳細交流和抽樣調查,確定該系統包含三類用戶,分別為學生用戶、教師用戶和后臺管理員用戶,其各項具體功能如下。(1) 學生端注冊用戶和登錄:學生可自由地注冊用戶并登錄在線答疑系統。資料修改:注冊后學生可以修改自己的注冊資料。查
6、詢課程:查詢自己感興趣的課程,支持模糊檢索。申請課程:如果學生還不屬于某課程,可提交該課程的申請表。查看提問:學生提出問題后,可以查看該問題的回答情況。查看參與的提問:學生可以查看所有參與的提問。(2) 教師端查看未回答的提問:老師登錄后,可以查看未回答的問題列表。查看已回答的提問:對于已經回答的問題,老師也可查看并繼續回復講解。添加學生:老師可以為自己的某個課程添加學生用戶。刪除學生:老師可以刪除自己教授的課程下的學生用戶。(3) 管理端功能課程管理:管理員可以對課程信息進行維護。用戶管理:管理端可以對學生用戶和老師用戶進行管理。內容管理:管理員可以對提問內容和回復內容進行管理。管理員管理:
7、主要是超級管理員對普通管理員的管理。 3 概要設計 圖3-1 系統模塊圖3.1用戶登陸和注冊1.BaseAction基類設計2.利用Ajax驗證注冊用戶名 3.用戶登陸的開發 3.2前臺顯示頁面的開發 1.開發完注冊和登陸模塊后,就可以接著開發前臺的一些的顯示頁面了,如首頁顯示的是一些課程,并可以對這些課程進行簡單的模糊搜索。 2.分頁的基類Action 3.首頁顯示內容的實現4.課程提問列表的實現 5.提問明細的實現 6.利用攔截器實現權限控制 3.3參與答疑功能 1.對于一個在線答疑系統來說,光能瀏覽和查看提問是遠遠不夠的,還要參與到其中來,如提出問題和回復問題,或者申請課程等功能,本模塊
8、將介紹這些功能的開發。2.提出新問題 3.回復提問 4.申請課程 3.4個人控制頁面 1.為了方便用戶使用,我們開發出了個人頁面,在個人頁面里可以進行個人信息的一些管理。2.上傳頭像 3.修改密碼 4.申請處理 5.提示功能 6.添加學生 3.5課程管理 1.到此為止,前臺的一些功能均已開發完畢,現在開始介紹后臺管理的一些模塊,主要是課程管理、內容管理、用戶管理等功能,下面首先介紹課程管理 。2.添加新課程 3.編輯課程信息3.6內容管理 1.在答疑過程中,如果有不法用戶發布一些與答疑無關的內容,肯定會影響到答疑工作的進行,所以管理端應該有對用戶發表的內容進行管理,如果發布與答疑無關的內容,則
9、可以刪掉。2.提問管理 3.回復管理 3.7用戶管理 1.上一模塊介紹了在線答疑系統的內容管理,包括提問和回復的管理,主要是查看、搜索和刪除等功能,本小節將介紹用戶管理的開發。2.用戶列表 3.重置用戶密碼 4 核心數據庫設計在線答疑系統是學生和老師之間提出問題和解答問題的橋梁,所以該系統的實體主要包括用戶、提問信息、回答信息、課程和申請信息等。下面將依次介紹各個實體的E-R圖。4.1 E-R圖設計用戶的E-R實體圖主要包括用戶的編號、用戶名、密碼和電子郵件等信息,具體情況如下圖所示。 圖4-1提問信息實體主要包括提問的編號、提問用戶的ID、提問時間等信息,具體情況如圖4-2所示。 圖4-2回
10、復信息實體主要包括所回復提問的ID、回復標題和內容等信息。其E-R圖如圖4-3所示。圖4-3課程實體主要包括課程編號、課程名以及備注信息,其E-R圖如圖4-4所示。圖4-4申請信息主要包括申請人ID、所申請課程ID、申請原因,以及是否處理的一些標識信息,其E-R圖如圖4-5所示。圖4-5學生和課程之間存在學習的關系,該關系記錄了學生的ID和課程ID信息,具體如圖4-6所示:圖4-6實體之間存在一定的關系,如一個老師可以教授N門課程等等,具體關系如圖4-7所示:圖4-74.2數據庫表的設計 表4-1 用戶表(user) 表4-2 課程信息表 表4-3 提問信息表 表4-4 回復信息表 表4-5
11、申請信息表 表4-6 用戶-課程關系表5詳細設計5.1用戶登錄 圖5-1登錄界面 實現主要代碼如下:package wyy;import com.opensymphony.xwork2.*;import org.springframework.jdbc.core.*;public class LoginAction extends UnameUniqueActionOverridepublic String execute() throws ExceptionString randNum = (String)getSession().get(randNum);/得到存在Session中的驗證碼
12、randNum = randNum.toUpperCase();/將驗證碼轉大寫if(!randNum.equals(valcode)message = 驗證碼輸入錯誤,登陸失敗,現在將跳轉到登陸頁;url = login.jsp;/驗證碼錯誤return SUCCESS;/返回登錄頁面sql = select URole from DY_User where UName=+/根據用戶名和密碼搜索 uname+ and UPwd=+pwd+ and URole2;/出該用戶的URole屬性String role = dbu.getStringInfo(sql);/執行搜索得到登陸用戶的權限sq
13、l = select UID from DY_User where UName=+uname+;/得到用戶的ID的SQLString uid = dbu.getStringInfo(sql);/執行查詢if(role!=null)getSession().put(uname,uname);/將登陸用戶名放進sessiongetSession().put(role,role);/將用戶角色放進sessiongetSession().put(uid,uid);/將用戶ID放進sessionsql = update DY_User set ULastLogin=now() where UID=+ui
14、d;dbu.update(sql);/更新用戶最后登陸時間message=歡迎回來,+uname+。現在將要跳轉到主頁;url = IndexAction.action?actionStr=all;/登陸成功進入首頁elsemessage = 用戶名和密碼不匹配,登陸失敗,現在將要跳轉到登陸頁;url = login.jsp;/用戶名和密碼不匹配return SUCCESS;/返回結果視圖5.2 用戶注冊 圖5-2 用戶注冊界面package wyy;import com.opensymphony.xwork2.*;import org.springframework.jdbc.core.*;
15、public class RegAction extends UnameUniqueAction private String gender;/用戶性別private String email;/電子郵件public String getGender() return gender;/性別屬性的get方法public void setGender(String gender) this.gender = gender;/性別屬性的set方法public String getEmail()return email;/電子郵件的get方法public void setEmail(String em
16、ail) this.email = email;/電子郵件屬性的set方法public String execute() throws ExceptionString randNum = (String)getSession().get(randNum);/得到存在Session中的驗證碼randNum = randNum.toUpperCase();/將驗證碼轉大寫if(!randNum.equals(valcode)/如果驗證碼相同message = 驗證碼輸入錯誤,注冊失敗,請重新輸入。現+在將要跳轉到注冊頁面; /給出提示信息url = reg.jsp;return SUCCESS;i
17、f(this.getFlag() /注冊名已經存在message = 您所注冊的用戶名已經存在,請重新輸入。現+ 在將要跳轉到注冊頁面;/給出提示信息url = reg.jsp;return SUCCESS;sql = insert into DY_USer(UName,UPwd,UGender,UEmail,+ URegDate,ULastLogin,ULastEmit) values(+uname+,+ pwd+,+gender+,+email+,now(),now(),now(); /插入新用戶的SQLif(dbu.update(sql)message = 恭喜您,注冊成功,歡迎來到東城
18、在線。+現在將要跳轉到主頁;/注冊成功的提示消息url = IndexAction.action?actionStr=all; /跳轉到主頁elsemessage = 未知錯誤,注冊失敗。現在將要跳轉到注冊頁面;/注冊失敗信息url = reg.jsp; /返回注冊頁面return SUCCESS;5.3 管理后臺模塊主要功能:圖5-10 主要功能5.3.1課程管理圖5-11 課程列表圖5-12 增加課程實現主要代碼:package wyy;import java.util.*;import com.opensymphony.xwork2.*;public class ToCourseList
19、Action extends FenYeAction private List content;/顯示內容 private String key;/查找條件 private String value;/查找關鍵字 private String condition;/條件 private String tgid; public void setCondition(String condition)this.condition = condition; public String getCondition() return (String)getSession().get(condition);
20、public String getTgid() return tgid;public void setTgid(String tgid) this.tgid = tgid;public String getKey() return key;public void setKey(String key) this.key = key;public String getValue() return value;public void setValue(String value) condition = where +getKey()+ like %+value+%; this.setCurPage(
21、1); getSession().put(condition,condition); Override public String getSql()sql = select a.TGID,a.TGName,a.TDetail,ifnull(b.UID,)+ UID,ifnull(b.UName,-) UName from (select +TGID,TGName,TDetail from DY_Topic_Group)a left join+(select dtu.TGID,dtu.UID,du.UName from DY_TU dtu,+DY_User du where du.URole=1
22、 and du.UID=dtu.UID)b on +a.TGID=b.TGID;sql = select * from (+sql+)b +getCondition();System.out.println(sql);return sql;public List getContent()return content;Overridepublic String execute()throws Exceptionif(del.equals(actionStr)sql = delete from DY_Topic_Group where TGID=+tgid;dbu.update(sql);this
23、.setCurPage(1); if(all.equals(actionStr) this.setCurPage(1); getSession().put(condition,); content = dbu.getCourseList(getFenYe();/查詢數據庫得到首頁顯示內容return SUCCESS;5.3.2內容管理 圖5-13 提問列表和回復列表管理實現主要代碼:package wyy;import java.util.*;import com.opensymphony.xwork2.*;public class ToMyAnswerAction extends TipAn
24、dFenYeAction private List content;/顯示內容 Override public String getSql() String uid = (String)getSession().get(uid);/得到登錄人的IDsql = select a.tid,a.gname,a.ftr,a.title,a.djs,+a.ftsj,ifnull(c.htr,a.ftr) htr,+ifnull(c.htsj,a.ftsj) htsj,ifnull(c.revert,0)+ revert from(select dtg.TGName gname,dta.TID +tid,
25、du.UName ftr,dta.TTitle title,dta.TReadCount+ djs,dta.TDate ftsj from DY_Topic_Group dtg,+DY_Topic dta,DY_User du where du.UID=dta.UID and+ dta.TGID=dtg.TGID and dta.TID in +(select distinct TID from DY_Revert where UID=+uid+) and dtg.TGID +getCourse()+)a left join(+select b.tid,+du.UName htr,dra.RD
26、ate htsj,b.revert from(select +TID tid,max(RID) RID,count(RID) revert from +DY_Revert group by TID order by TID)b,DY_Revert +dra,DY_User du where b.RID=dra.RID and du.UID=+dra.UID and b.tid in (select +distinct TID from DY_Revert where UID=+uid+)c on a.tid=c.tid order by htsj desc;return sql;public
27、List getContent()return content;public String getLabel()String role = (String)getSession().get(role);return role.equals(0)?我的參與:已回答;Overridepublic String execute()throws Exceptioncontent = dbu.getGroupContent(getFenYe();/查詢數據庫得到顯示內容return SUCCESS;package wyy;import java.util.*;import com.opensymphon
28、y.xwork2.*;public class ToMyQusetionAction extends TipAndFenYeAction private List content;/顯示內容的集合 Override public String getSql() String uid = (String)getSession().get(uid);/得到登錄人的IDsql = select a.gname,a.tid,a.ftr,a.title,a.djs,+a.ftsj,ifnull(c.htr,a.ftr) htr,+ifnull(c.htsj,a.ftsj) htsj,ifnull(c.revert,0)+ revert from(select dtg.TGName gname,dta.TID +tid,du.UName ftr,dta.TTitle title,+dta.TReadCount djs,dta.TDate ftsj from +DY_Topic dta,DY_User du,DY_Topic_Group dtg +where du.UID=dta.UID and dta
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025春季建投國電準格爾旗能源有限公司招聘31人(內蒙古)筆試參考題庫附帶答案詳解
- 青海警官職業學院《健康經濟學》2023-2024學年第二學期期末試卷
- 黑龍江職業學院《計算機網絡基礎》2023-2024學年第二學期期末試卷
- 上海科學技術職業學院《半導體材料分析測試實驗》2023-2024學年第二學期期末試卷
- 重慶旅游職業學院《汽車新能源與節能技術》2023-2024學年第二學期期末試卷
- 武漢交通職業學院《半導體物理學》2023-2024學年第二學期期末試卷
- 阿勒泰職業技術學院《工程項目管理及監理概論》2023-2024學年第二學期期末試卷
- 濱州職業學院《媒介通論》2023-2024學年第二學期期末試卷
- 西南民族大學《中學思想政治課程標準解讀與教材分析》2023-2024學年第二學期期末試卷
- 江西中醫藥大學《傳統民居與鄉土建筑》2023-2024學年第二學期期末試卷
- 2023屆高考模擬作文“人生有兩段路要走”漫畫作文導寫及范文
- 機電安裝施工工藝及質量驗收標準
- JB/T 20051-2018炒藥機
- GB/T 30776-2014膠粘帶拉伸強度與斷裂伸長率的試驗方法
- GB/T 18442.6-2019固定式真空絕熱深冷壓力容器第6部分:安全防護
- 五年制高職語文課程標準
- 試驗檢測程序流程圖
- 南京師范大學介紹課件
- 干部人事檔案專項審核認定表填寫模板
- 城市治理與城市發展課件
- 《產業經濟學》全書配套教學課件
評論
0/150
提交評論