freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于bs結(jié)構(gòu)的選課管理系統(tǒng)的設(shè)計(jì)-資料下載頁(yè)

2025-05-07 18:14本頁(yè)面
  

【正文】 minService。 @Autowired public void setAdminService(AdminService adminService) { = adminService。 } @RequestMapping(/admin/) public ModelAndView checkUser() throws Exception { return new ModelAndView(userLogin)。 } @RequestMapping(method = ) public String processSubmit(@ModelAttribute(user) UserLoginDetail user, BindingResult result, SessionStatus status) { String returnUrl = 。 //clear the mand object from the session ()。 if (A.equalsIgnoreCase(())) { boolean a = ((), (), A)。 if (a) { returnUrl = stuMainPage。 } } else if (S.equalsIgnoreCase(())) { boolean a = ((), (), S)。 if (a) { returnUrl = 。 } } else if (T.equalsIgnoreCase(())) { boolean a = ((), (), T)。 if (a) { returnUrl = 。 } } //return form success view return returnUrl。 } 4) 用戶(hù)口令輸入錯(cuò)誤展示: 管理員發(fā)布選課通知 管理員登陸成功后,進(jìn)入錄入選課相關(guān)通知頁(yè)面,發(fā)布 相應(yīng)的選課信息,信息會(huì)發(fā)到教務(wù)管理系統(tǒng)首頁(yè)。可供學(xué)生和教師瀏覽。發(fā)布的信息包括:選課消息主題,內(nèi)容(可選學(xué)分,選課開(kāi)始時(shí)間,選課結(jié)束時(shí)間)發(fā)布信 息時(shí)間,發(fā)布信息院系。管理員還可以登陸系統(tǒng)對(duì)信息進(jìn)行更新,對(duì)過(guò)期信息進(jìn)行刪除。 管理員 可對(duì)教室進(jìn)行人數(shù)編輯,修改。當(dāng)課程所選人數(shù)已經(jīng)等于教室的容納人數(shù)時(shí),系統(tǒng)顯示課程已滿(mǎn)。禁止學(xué)生再選此門(mén)課程。 下面不在粘貼程序代碼,所有的設(shè)計(jì)模式與登錄模塊相同。 開(kāi)發(fā)順序都為 Dao— Service? controller?jsp 頁(yè)面。 下面為管理員發(fā)布選課消息 設(shè)計(jì) 頁(yè)面: 管理員錄入可選課程信息 對(duì)于學(xué)期的可選課程,由管理員進(jìn)行信息的錄入。信息包括課程名,課程號(hào),授課教師,上課地點(diǎn),上課時(shí)間,學(xué)分,考試 類(lèi)型。學(xué)時(shí),開(kāi)課學(xué)院等。并可對(duì)消息進(jìn)行修改和刪除。 下面為管理員錄入可選課程的頁(yè)面: 學(xué)生進(jìn)行選課、退課 學(xué)生成功登陸 系統(tǒng)后。進(jìn)入到選課主頁(yè)面。頁(yè)面會(huì)提示學(xué)生本學(xué)期的可選學(xué)分是多少。若不同的院系的分?jǐn)?shù)要求不同,要根據(jù)學(xué)生的具體情況進(jìn)行提示。學(xué)生進(jìn)行選課后,有 java 腳本即時(shí)計(jì)算學(xué)生已選學(xué)分,動(dòng)態(tài)增加課程的已選人數(shù)。如果學(xué)生點(diǎn)擊的課程已經(jīng)滿(mǎn),給出提示‘此門(mén)課程已滿(mǎn),請(qǐng)選擇其它課程’、當(dāng)學(xué)生的選課的總學(xué)分大約系里面要求的可選最大學(xué)分,例如允許選 6分,學(xué)生選了 7分,當(dāng)學(xué)生選課結(jié)束并點(diǎn)擊提交按鈕式,給 出提示‘本學(xué)期可選學(xué)分為 6 分,您已選 7分,請(qǐng)退選相應(yīng)課程’此時(shí)頁(yè)面不會(huì)提交。學(xué)生可以點(diǎn)擊每條記錄最后面的‘退選’按鈕進(jìn)行取消,同時(shí),對(duì)應(yīng)的已選學(xué)分課程已選人數(shù)都要重新計(jì)算,知道該學(xué)生正常的按照規(guī)定選完課程。 點(diǎn)擊‘提交’按鈕后,若成功。則給出成功消息 ,并且自動(dòng)更新個(gè)人課表。 否則,給出失敗的具體原因。 作為選課系統(tǒng)的核心模塊,現(xiàn)將幾種業(yè)務(wù)上需要給出 alert 或者 confirm 的選課情況列舉如下: 1)學(xué)生 選課程學(xué)分大于本學(xué)期院系要求的可選學(xué)分。 處理方法:給出 alert (‘ 本學(xué)期可選學(xué)分為 x分 ,您已選 y 分,請(qǐng)退選相應(yīng)課程 ’ ) 頁(yè)面 設(shè)計(jì) 展示: 2) 學(xué)生 所選的課程已經(jīng)在其他學(xué)期選過(guò),則不可重復(fù)再選。 處理方法:給出 alert (‘ 此門(mén)課程已經(jīng)選過(guò),不允許重復(fù)選擇 ’ )。 頁(yè)面設(shè)計(jì)展示: 3) 學(xué)生進(jìn)入系統(tǒng)并選擇課程,未提交,點(diǎn)擊退出。 處理辦法:給出 confirm(‘ 您有課程未提交,確定退出嗎 ? ’ )。 頁(yè)面設(shè)計(jì)展示: 在選課過(guò)程中,同學(xué)還可以點(diǎn)擊授課教師名字,名字顯示為超鏈接。這樣可以瀏覽對(duì)應(yīng)授課教師的信息,包括職稱(chēng),教齡,獲獎(jiǎng)情況,發(fā)表著作等等。這樣,給學(xué)生提 供了更多的選則。真正做到自由選課,選自己興趣的課程或者感興趣的授課教師的課程。 在選課未結(jié)束期間,學(xué)生可以登陸系統(tǒng)機(jī)型課程的修改或者退選。否則,教務(wù)系統(tǒng)頁(yè)面不在出現(xiàn)選課功能模塊。 教師統(tǒng)計(jì)已選 自己 課的 結(jié)果 當(dāng)教師成功登陸系統(tǒng)后,主要進(jìn)行的操作除了修改自己的信息外,還可以查看自己所教課程的被選情況。統(tǒng)計(jì)選課的結(jié)果,并且查看自己的課程表。其中選課結(jié)果的一欄 中有學(xué)生的姓名,教師也可以點(diǎn)擊學(xué)生姓名超鏈接,進(jìn)行查看學(xué)生的詳細(xì)信息,包括院系,班級(jí)等情況。 管理員進(jìn)行選課統(tǒng)計(jì)以及 調(diào)節(jié) 管理員的另一項(xiàng) 工作即為調(diào)節(jié)選課結(jié)果。主要表現(xiàn)在一下幾個(gè)方面。 1)當(dāng)選課時(shí)間已經(jīng)過(guò)期,有的同學(xué)未能及時(shí)選課,這樣可以書(shū)面申請(qǐng)的形勢(shì)將請(qǐng)求提交給管理員,對(duì)應(yīng)顯示生活的教務(wù)處工作人員。將自己的所選課程的信息告知管理員??梢杂晒芾韱T幫忙選擇,并更新到課程表中,這樣學(xué)生可以通過(guò)查看各任課表確定最后的選課是否成功。 2)當(dāng)學(xué)生由于某種個(gè)別原因不想再上某門(mén)課程,但是選課時(shí)間也已過(guò)期,流程與上一情況相同。提交書(shū)面請(qǐng)求,由管理員代為處理,幫忙退課,并且自動(dòng)更新到個(gè)人課表中。 3)當(dāng)某一門(mén)課程由于所選人數(shù)太少,開(kāi)課院系決定取消此門(mén)課程的 開(kāi) 課。管理員可在可供選擇的課程中將此門(mén)課程刪除,要求系統(tǒng)級(jí)聯(lián)刪除學(xué)生的已選課程的表中此門(mén)課程的記錄。并且發(fā)布通知,告知同學(xué)們,可以重新選擇其它課程。 4)同上述情況,若出現(xiàn)授課教師離職或者不再擔(dān)任此課程的教課任務(wù)。此門(mén)課程也需要取消。要求系統(tǒng)級(jí)聯(lián)刪除學(xué)生的已選課程的表中此門(mén)課程的記錄。并且發(fā)布通知,告知同學(xué)們,可以重新選擇其它課程。 5 系統(tǒng)測(cè)試 開(kāi)發(fā)過(guò)程中 Junit 的使用 為保證開(kāi)發(fā)能夠有條不紊的進(jìn)行,在未連接前臺(tái)階段,我們應(yīng)該保證后臺(tái)的底層代碼的正確性,若果發(fā)現(xiàn)問(wèn) 題可以及時(shí)解決,想一些鏈接數(shù)據(jù)庫(kù)的測(cè)試, SQl 的功能是否正確等 。在本設(shè)計(jì)中采用 Junit ,它是一種開(kāi)源的 java 測(cè)試框架,特征如下: 1) 用于測(cè)試這期望結(jié)果的斷言。 2) 用于共享測(cè)試數(shù)據(jù)的測(cè)試工具。 3) 方便組織和運(yùn)行的測(cè)試工具 4) 圖像和文本的測(cè)試運(yùn)行器。 傳統(tǒng) 的流程是擴(kuò)展 TestCase 類(lèi),覆蓋 runTest()方法,將要測(cè)試的目標(biāo)類(lèi)書(shū)寫(xiě)成testXxxx,運(yùn)行 TestRunner。進(jìn)行測(cè)試。 在本開(kāi)發(fā)中,我們使用了大量的 Spring 的 @Test的標(biāo)記。 下面以新建用戶(hù)以及更新用 戶(hù)口令為例, 具體步驟: 1 搭建所需要的測(cè)試環(huán)境,引進(jìn)需要的包 : package 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。 @RunWith() @ContextConfiguration(locations = { }) public class AdminDaoTestCase { private static Logger logger = ()。 private AdminDao adminDao。 @Autowired public void setAdminDao(AdminDao adminDao) { = adminDao。 } } 2 新建用戶(hù)的測(cè)試 方法 : //for insert record Junit test @Test public void test_saveUserLoginInfo() { UserLoginDetail userLoginDetail = new UserLoginDetail()。 (Admin)。 (Admin)。 (A)。 (UserLoginDetail : + userLoginDetail)。 (userLoginDetail)。 右鍵需要測(cè)試的方法,選擇 run as Junit test } 運(yùn)行結(jié)果如下: 檢查數(shù)據(jù)庫(kù),結(jié)果已經(jīng)插入成功。 2 更改用戶(hù)的測(cè)試方法 ,將原來(lái)用戶(hù)類(lèi)型為 A( admin)的改為 S( student)。 //for update record Junit test @Test public void test_updateUserLoginInfo() { UserLoginDetail userLoginDetail = new UserLoginDetail()。 ((22))。 (Admin)。 (Admin)。 (S)。 (userLoginDetail)。 } } 檢查數(shù)據(jù)庫(kù),更新成功。 注意:在編寫(xiě)測(cè)試類(lèi)的過(guò)程中,千萬(wàn)不要 由于疏忽而 忘記打 @Test 的 Annotation這樣的低級(jí)錯(cuò)誤 ,我犯過(guò)這樣的錯(cuò)誤,而誤以為是 Dao 層代碼,或者是 hibernate 的JDBC 出了問(wèn)題,走了一段彎路。原因由于我們測(cè)試類(lèi)未繼承 TestCase 類(lèi), 若不打@Test程序不知道你這是一個(gè)測(cè)試方法 , 從而產(chǎn)生如下的錯(cuò)誤: 開(kāi)發(fā)后的功能整合測(cè)試,以及啟用 debug 模式 調(diào)整錯(cuò)誤。 后臺(tái)的 Dao 層以及 service 層代碼完成過(guò)后,下面要做的就是寫(xiě) Controller 以及前臺(tái)頁(yè)面,并使 前臺(tái)與后臺(tái)想結(jié)合: 程序的 最終總體 目錄如下: 本設(shè)計(jì)使用的 web 服務(wù)器是 Jetty,是 Maven 內(nèi)置的服務(wù)器:它是開(kāi)源的servlet 容器,其 API 以一組 jar 包的形式發(fā)布,是目前應(yīng)用前景最活躍的 servlet 引擎,架構(gòu)以及操作比較簡(jiǎn)單: //todo 啟動(dòng) jetty 服務(wù)器: 選擇 choosecourse jetty run 命令,為保存好的 mvn : run 命令。 服務(wù)啟動(dòng):在瀏覽器中輸入 localhost:9999/choosecourse/admin/ 登陸頁(yè)面 打開(kāi): 輸入用戶(hù)名和密碼,選擇用戶(hù)的類(lèi)型,進(jìn)入相應(yīng)用戶(hù)類(lèi)型的主操作頁(yè)面。 功能測(cè)試的過(guò)程中,若出現(xiàn)問(wèn)題,則可以采用 debug 模式進(jìn)行調(diào)節(jié): Maven 的 Jetty 容器的 debug 模式相對(duì)其他服務(wù)器來(lái)說(shuō)有一點(diǎn)復(fù)雜,選要兩步操作:具體步驟如下: //todo 調(diào)試好后,即可打斷點(diǎn),進(jìn)行找錯(cuò)。 6 設(shè)計(jì)過(guò)程中遇到的問(wèn)題以及解決 創(chuàng)建 Maven 項(xiàng)目后,為何目錄生成不正確? Maven 生成正確目錄如下圖所示: 圖 51 但是在搭建環(huán)境過(guò)程中,無(wú)論直接生成 Maven project 還是通過(guò)命令行 操作,生成的目錄都不正確,錯(cuò)誤目錄如下所示: 圖 52 起初,我以為是 Maven 軟件有問(wèn)題,但是通過(guò)查找資料。并非是 maven 自身的問(wèn)題,很可能是 Eclipse 插件的 bug . 解決方法也很簡(jiǎn)單,手動(dòng)的修改生成的目錄,按照正確的目錄整理一下即可。 在程序開(kāi)發(fā)階段,數(shù)據(jù)庫(kù)的主鍵序列生成的為何不正確? 在底層的數(shù)據(jù)庫(kù)試題代碼中:以數(shù)據(jù)庫(kù)的用戶(hù)口令為例。 @Entity @Table(name = userLogin) public class UserLoginDetail implements Serializable { private static final long serialVersionUID = 2490926164490577847L。 @SequenceGenerator(name = user_Id, sequenceName = userId) @Id @GeneratedValue(st
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1