學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

緒論背景和意義自計(jì)算機(jī)誕生以來(lái),它就在改變?nèi)祟惖纳a(chǎn)工作方式,隨著時(shí)間的推進(jìn),以及技術(shù)的精進(jìn),計(jì)算機(jī)已經(jīng)深入到生活的方方面面,在教育行業(yè)內(nèi),人們已經(jīng)發(fā)覺(jué)到傳統(tǒng)成績(jī)管理方式的低效,無(wú)法適應(yīng)當(dāng)下信息化時(shí)代的浪潮,學(xué)生成績(jī)管理系統(tǒng)便應(yīng)運(yùn)而生,系統(tǒng)主要有三大部分組成,包括數(shù)據(jù)庫(kù),網(wǎng)站以及編譯器調(diào)用部分,學(xué)生成績(jī)管理系統(tǒng)是基于互聯(lián)網(wǎng)的基礎(chǔ)上建立的,學(xué)生成績(jī)管理系統(tǒng)是用于進(jìn)行學(xué)生成績(jī)的統(tǒng)計(jì),可視化,數(shù)據(jù)分析的系統(tǒng)。本題目為學(xué)生成績(jī)管理系統(tǒng),主要是用于教師進(jìn)行成績(jī)的存儲(chǔ)與統(tǒng)計(jì),本系統(tǒng)開發(fā)之前,學(xué)生成績(jī)的統(tǒng)計(jì)與保存一直是一項(xiàng)繁瑣的任務(wù),在記錄的過(guò)程中存在著大量的糾錯(cuò)與改錯(cuò)的過(guò)程,而這些都是可以采用計(jì)算機(jī)規(guī)避的,將老師從這種低效的工作中解放出來(lái),老師成績(jī)單的下發(fā)與查看也可以通過(guò)本系統(tǒng)達(dá)到,在與家長(zhǎng)之間進(jìn)行更快速的傳遞,家長(zhǎng)對(duì)近期成績(jī)有疑問(wèn)時(shí),可以隨時(shí)查看既往的成績(jī)達(dá)到及時(shí)了解學(xué)習(xí)進(jìn)度和情況的目的,總的來(lái)說(shuō)學(xué)生成績(jī)管理系統(tǒng)符合時(shí)代的特性,可以在學(xué)習(xí)生涯中提供有效的幫助。國(guó)內(nèi)外研究現(xiàn)狀學(xué)生成績(jī)管理系統(tǒng)(SGMS)已經(jīng)成為教育管理的重要工具,隨著信息化時(shí)代的到來(lái),這種系統(tǒng)的應(yīng)用已經(jīng)得到了廣泛的研究和實(shí)施。在國(guó)內(nèi),許多高校和中小學(xué)都已經(jīng)開始實(shí)施在線的成績(jī)管理系統(tǒng)。它們通常包括成績(jī)輸入、成績(jī)查詢、成績(jī)統(tǒng)計(jì)以及相關(guān)的分析功能。例如,中國(guó)的許多大學(xué)已經(jīng)建立了自己的教務(wù)管理系統(tǒng),其中包括學(xué)生成績(jī)管理。此外,有許多研究者正在探討如何更有效地進(jìn)行學(xué)生的學(xué)習(xí)評(píng)估和教學(xué)方法的優(yōu)化。在國(guó)外,學(xué)生成績(jī)管理系統(tǒng)的發(fā)展更為成熟。比如美國(guó)的許多學(xué)校已經(jīng)使用了包括Blackboard,Canvas,GoogleClassroom等在內(nèi)的多種在線平臺(tái)來(lái)進(jìn)行學(xué)生學(xué)習(xí)管理,其中就包括成績(jī)管理。這些系統(tǒng)除了具備基本的成績(jī)管理功能外,往往還有教學(xué)資源分享、在線互動(dòng)等功能。無(wú)論是國(guó)內(nèi)還是國(guó)外,學(xué)者們都在探討如何通過(guò)數(shù)據(jù)挖掘技術(shù)對(duì)學(xué)生成績(jī)數(shù)據(jù)進(jìn)行深度分析,以便更好地理解和改善教育。目前的研究方向包括對(duì)學(xué)生的學(xué)習(xí)行為、學(xué)習(xí)風(fēng)格的分析,對(duì)教育效果的預(yù)測(cè)等然而,隨著云計(jì)算和大數(shù)據(jù)技術(shù)的發(fā)展,學(xué)生成績(jī)管理系統(tǒng)也面臨著新的挑戰(zhàn)和發(fā)展機(jī)遇,如數(shù)據(jù)安全、隱私保護(hù)、數(shù)據(jù)分析技術(shù)的性能優(yōu)化等問(wèn)題需要更深入的研究。本文主要工作完成學(xué)生信息查詢:包括輸入輸出學(xué)號(hào),姓名,專業(yè),等自身信息,再根據(jù)具體的學(xué)生信息查詢和成績(jī),排名的統(tǒng)計(jì)結(jié)果學(xué)生信息的修改模塊:包括對(duì)以前所有輸入的信息進(jìn)行修改和更新學(xué)生成績(jī)錄入模塊:包括輸入學(xué)生成績(jī)和刪除教學(xué)管理模塊:每位老師的個(gè)人信息、上課時(shí)間系統(tǒng)技術(shù)介紹JAVA語(yǔ)言Java語(yǔ)言之所以能夠成為企業(yè)開發(fā)中最常用的編程語(yǔ)言,是因?yàn)镴ava語(yǔ)言用作后端開發(fā)的適配性非常好,其次Java代碼的運(yùn)行效率和維護(hù)成本在同期的編程語(yǔ)言中也是佼佼者,在SpringBoot框架和MyBatis框架的配合開發(fā)下,Java語(yǔ)言的編程效率會(huì)得到質(zhì)的提升。MySQL數(shù)據(jù)庫(kù)MySQL是一個(gè)歷史悠久的數(shù)據(jù)庫(kù),證明此系統(tǒng)的數(shù)據(jù)持久化工具是恰到好處的,MySQL的軟件生態(tài)也是其生命力的重要延續(xù),還有編程延伸出來(lái)的各種ORM框架,對(duì)MySQL起到了非常大的提升。SpringBoot框架Spring框架是\t"/item/Spring%20Boot/_blank"Java平臺(tái)上的一種開源應(yīng)用框架,提供具有\(zhòng)t"/item/Spring%20Boot/_blank"控制反轉(zhuǎn)特性的容器Spring框架為開發(fā)提供了一系列的解決方案比如利用控制反轉(zhuǎn)的核心特性,并通過(guò)\t"/item/Spring%20Boot/_blank"依賴注入實(shí)現(xiàn)控制反轉(zhuǎn)來(lái)實(shí)現(xiàn)\t"/item/Spring%20Boot/_blank"管理對(duì)象生命周期容器化,利用面向切面編程進(jìn)行聲明式的\t"/item/Spring%20Boot/_blank"事務(wù)管理,整合多種持久化\t"/item/Spring%20Boot/_blank"技術(shù)管理數(shù)據(jù)訪問(wèn),提供大量?jī)?yōu)秀的Web框架方便開發(fā)等等。Spring框架具有控制反轉(zhuǎn)(IOC)特性,IOC旨在方便項(xiàng)目維護(hù)和測(cè)試,它提供了一種通過(guò)Java的\t"/item/Spring%20Boot/_blank"反射機(jī)制對(duì)Java對(duì)象進(jìn)行統(tǒng)一的配置和管理的方法。Spring框架利用容器管理對(duì)象的生命周期,容器可以通過(guò)掃描XML文件或類上特定Java注解來(lái)配置對(duì)象,開發(fā)者可以通過(guò)依賴查找或依賴注入來(lái)獲得對(duì)象。第三章系統(tǒng)需求分析系統(tǒng)需求分析功能需求分析學(xué)生成績(jī)管理系統(tǒng)中包含學(xué)生,教師,管理三種角色。系統(tǒng)管理員需求分析系統(tǒng)管理員是整個(gè)系統(tǒng)中最高權(quán)限的擁有者,根據(jù)管理員的不同需求,將系統(tǒng)分為查詢課程,管理用戶以及管理成績(jī)的三個(gè)模塊,其中查詢課程主要是針對(duì)課程的錄入與課程編排,其次管理用戶是指給不同的用戶分配角色,將三種角色類型分配到位,最后管理成績(jī),主要通過(guò)成績(jī)的管理和分析,對(duì)成績(jī)管理系統(tǒng)中產(chǎn)生的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。管理員流程圖如圖3.1所示圖3.1管理員流程圖學(xué)生需求分析學(xué)生通過(guò)管理員分配的賬號(hào)登入系統(tǒng),在系統(tǒng)中只具有查詢的權(quán)限,具體分為查詢課程表和查詢成績(jī),查詢課程表實(shí)現(xiàn)對(duì)管理員錄入信息的查詢,查詢成績(jī)對(duì)教師事先錄入成績(jī)的查詢,該模塊可以實(shí)現(xiàn)對(duì)成績(jī)的導(dǎo)出與統(tǒng)計(jì),配合可視化工具可以將成績(jī)更加立體的展現(xiàn)。學(xué)生的用例圖如圖3.2所示圖3.2學(xué)生用例圖教師需求分析教師通過(guò)管理員分配的賬登入系統(tǒng),登陸后具有管理成績(jī)的權(quán)限,并可以根據(jù)查詢到的課程表進(jìn)行授課,管理成績(jī)主要是對(duì)學(xué)生的成績(jī)進(jìn)行錄入與可視化分析。教師用例圖如圖3.3所示圖3.3教師用例圖系統(tǒng)設(shè)計(jì)結(jié)構(gòu)學(xué)生成績(jī)管理系統(tǒng)采用了SpringMVC的模式,其中有三層分別為視圖層、業(yè)務(wù)層、數(shù)據(jù)層,SpringBoot與MySQL協(xié)同工作的方式實(shí)現(xiàn)了對(duì)數(shù)據(jù)的存儲(chǔ),數(shù)據(jù)的展示使用的是Sping以及采用MyBatisPlus實(shí)現(xiàn)數(shù)據(jù)的連接。系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖如圖3.4所示圖3.4系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖系統(tǒng)功能模塊整個(gè)軟件由四個(gè)模塊組成分別是,課程管理、課程表管理、成績(jī)管理、用戶管理四大模塊,其中創(chuàng)建課程:對(duì)新的課程進(jìn)行錄入;修改課程信息:對(duì)需要更正的課程信息進(jìn)行修改;刪除課程信息:對(duì)不需要的課程刪除;檢索課程信息:查詢自己對(duì)應(yīng)的課程;課程表錄入:將課程表錄入系統(tǒng)方便教師與學(xué)生的使用;課程表修改:按照實(shí)際情況對(duì)表單修改;錄入成績(jī):教師將成績(jī)上傳至系統(tǒng),提供給學(xué)生以及教師未來(lái)的分析與管理工作;修改成績(jī):對(duì)錯(cuò)誤的成績(jī)進(jìn)行修改與更正,為達(dá)到數(shù)據(jù)的準(zhǔn)確性;成績(jī)統(tǒng)計(jì):進(jìn)行成績(jī)分析的重要工具,可在系統(tǒng)中進(jìn)行可視化;用戶管理:添加學(xué)生教師的信息或者刪除與修改。系統(tǒng)功能模塊圖如圖3.5所示3.5系統(tǒng)功能模塊圖第四章系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì)的主旨是在分析和需求定義的基礎(chǔ)上對(duì)系統(tǒng)進(jìn)行詳細(xì)設(shè)計(jì),其主要目的是為了實(shí)現(xiàn)一個(gè)符合要求的、高效的、易于維護(hù)和擴(kuò)展的系統(tǒng)。系統(tǒng)設(shè)計(jì)是一個(gè)高效、穩(wěn)定和可靠的系統(tǒng)開發(fā)過(guò)程中不可或缺的一環(huán),有助于明確系統(tǒng)的需求、提高開發(fā)效率、確保系統(tǒng)的可靠性和安全性、提高系統(tǒng)的可維護(hù)性。數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)的概念設(shè)計(jì)是對(duì)系統(tǒng)需求的詳細(xì)規(guī)劃,根據(jù)實(shí)體之間的關(guān)系可以讓設(shè)計(jì)者更加清晰明了各個(gè)實(shí)體之間的關(guān)系,系統(tǒng)的E-R圖如下所示圖4.1數(shù)據(jù)庫(kù)E-R圖數(shù)據(jù)庫(kù)表設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)的數(shù)據(jù)庫(kù)主要包括管理員信息表、課程基本信息表、課程擴(kuò)展信息表、專業(yè)信息表、頁(yè)面主題表、學(xué)生信息表、學(xué)生-課程關(guān)聯(lián)表、教師信息表、教師-課程關(guān)聯(lián)表、排課時(shí)間表、文件信息表、周課程表信息表等。(1)管理員信息表:管理員id、用戶名、密碼、姓名、級(jí)別、所屬學(xué)校、郵箱、聯(lián)系電話、性別、創(chuàng)建時(shí)間其數(shù)據(jù)如下表4.4所示表4.2管理員信息表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdInt管理員id否主鍵UsernameVarchar用戶名否PasswordVarchar密碼否Real_nameVarchar姓名否LevelTinyint級(jí)別否SchoolVarchar所屬學(xué)校否EmailVarchar郵箱否PhoneVarchar聯(lián)系電話否SexTinyint性別否Create_timetimestamp創(chuàng)建時(shí)間否(2)課程擴(kuò)展信息表:課程擴(kuò)展信息id、課程基本信息id、開始時(shí)間、結(jié)束時(shí)間、教室信息、專業(yè)其數(shù)據(jù)如下表4.5所示表4.3課程擴(kuò)展信息表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdVarchar課程擴(kuò)展信息id否主鍵Course_idVarchar課程基本信息id否StartInt開始時(shí)間否EndInt結(jié)束時(shí)間否RoomVarchar教室信息是ProfessionVarchar專業(yè)是(3)課程基本信息表:課程基本信息id、課程名稱、學(xué)分、分?jǐn)?shù)、課時(shí)、學(xué)年、學(xué)期、類型:1必修課2選修課、專業(yè)、創(chuàng)建時(shí)間其數(shù)據(jù)如下表4.6所示表4.4課程基本信息表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdVarchar課程基本信息id否主鍵NameVarchar課程名稱否CreditsDecimal學(xué)分否ScoreInt分?jǐn)?shù)否NumberInt課時(shí)否YearInt學(xué)年否TermTinyint學(xué)期否TypeTinyint類型。1必修課2選修課否ProfessionVarchar專業(yè)否Create_timeTimestamp創(chuàng)建時(shí)間否(4)專業(yè)信息表:專業(yè)信息id、專業(yè)名稱其數(shù)據(jù)如下表4.7所示表4.5專業(yè)信息表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdVarchar專業(yè)信息id否主鍵NameVarchar專業(yè)名稱否(5)頁(yè)面主題表:頁(yè)面主題信息id、主題標(biāo)記:0正常模式1靜默模式其數(shù)據(jù)如下表4.8所示表4.6頁(yè)面主題表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdVarchar頁(yè)面主題信息id否主鍵StateTinyint主題標(biāo)記。0正常模式1靜默模式否(6)學(xué)生信息表:學(xué)生信息id、用戶名、密碼、姓名、級(jí)別、學(xué)校、入校時(shí)間、電子郵箱、專業(yè)、年級(jí)其數(shù)據(jù)如下表4.9所示表4.7學(xué)生信息表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdVarchar學(xué)生信息id否主鍵UsernameVarchar用戶名否PasswordVarchar密碼否Real_nameVarchar姓名否LevelTinyint級(jí)別否SchoolVarchar學(xué)校否Admission_timeVarchar入校時(shí)間否EmailVarchar電子郵箱否ProfessionVarchar專業(yè)否GradeInt年級(jí)否(7)學(xué)生-課程關(guān)聯(lián)表:關(guān)聯(lián)id、學(xué)生id、課程id、課程名稱、分?jǐn)?shù)、績(jī)點(diǎn)、學(xué)分、學(xué)期、學(xué)年其數(shù)據(jù)如下表4.10所示表4.8學(xué)生-課程關(guān)聯(lián)表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼Idint關(guān)聯(lián)id否主鍵Student_idvarchar學(xué)生id否Course_idVarchar課程id否NameVarchar課程名稱否ScoreVarchar分?jǐn)?shù)否PointDecimal績(jī)點(diǎn)否CreditsDecimal學(xué)分否TermTinyint學(xué)期否YearInt學(xué)年否(8)教師信息表:教師信息id、用戶名、密碼、姓名、級(jí)別、學(xué)校名稱、郵箱、聯(lián)系電話、性別、創(chuàng)建時(shí)間其數(shù)據(jù)如下表4.11所示表4.9教師信息表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdVarchar教師信息id否主鍵UsernameVarchar用戶名否PasswordVarchar密碼否Real_nameVarchar姓名否LevelTinyint級(jí)別否SchoolVarchar學(xué)校名稱否EmailVarchar郵箱否PhoneVarchar聯(lián)系電話否SexTinyint性別否Create_timeTimestamp創(chuàng)建時(shí)間否(9)教師-課程關(guān)聯(lián)表:關(guān)聯(lián)id、教師id、教師用戶名、課程名稱、專業(yè)、年級(jí)、學(xué)期、課程id其數(shù)據(jù)如下表4.12所示表4.10教師-課程關(guān)聯(lián)表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼Idint關(guān)聯(lián)id否主鍵Teacher_idvarchar教師id否UsernameVarchar教師用戶名否NameVarchar課程名稱否ProfessionVarchar專業(yè)否GradeVarchar年級(jí)否TermTinyint學(xué)期否Course_idVarchar課程id否(10)排課時(shí)間表:排課時(shí)間id、周課程表id、專業(yè)、年級(jí)、學(xué)年、學(xué)期其數(shù)據(jù)如下表4.13所示表4.11排課時(shí)間表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdVarchar排課時(shí)間id否主鍵Week_idInt周課程表id否ProfessionVarchar專業(yè)否GradeVarchar年級(jí)否YearInt學(xué)年否TermTinyint學(xué)期否(11)文件信息表:文件信息id、上傳用戶id、級(jí)別、文件地址其數(shù)據(jù)如下表4.14所示表4.12文件信息表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdInt文件信息id否主鍵User_idVarchar上傳用戶id否LevelInt級(jí)別否urlVarchar文件地址否(12)周課程信息表:周課程表信息id、周一課程、周二課程、周三課程、周四課程、周五課程、周六課程、周日課程其數(shù)據(jù)如下表4.14所示表4.13周課程信息表數(shù)據(jù)名稱數(shù)據(jù)類型數(shù)據(jù)描述能否為空鍵碼IdVarchar周課程表信息id是主鍵MondayVarchar周一課程是TuesdayVarchar周二課程是WednesdayVarchar周三課程是ThurdayVarchar周四課程是FridayVarchar周五課程是SaturdayVarchar周六課程是SundayVarchar周日課程是系統(tǒng)流程設(shè)計(jì)系統(tǒng)流程設(shè)計(jì)是指在系統(tǒng)分析的基礎(chǔ)上,根據(jù)業(yè)務(wù)需求和功能要求,為系統(tǒng)建立一套流程模型,包括數(shù)據(jù)流、控制流、文檔流等,旨在實(shí)現(xiàn)系統(tǒng)的高效整合、快速運(yùn)轉(zhuǎn)和簡(jiǎn)潔易懂的操作。用戶登錄流程當(dāng)用戶需要登錄系統(tǒng)時(shí),首先需要進(jìn)入登錄授權(quán)頁(yè)面才能夠進(jìn)入系統(tǒng),登錄系統(tǒng)需要用戶輸入預(yù)先注冊(cè)好的賬號(hào)密碼,當(dāng)用戶是首次使用系統(tǒng)時(shí),需要通過(guò)管理員進(jìn)行賬號(hào)的創(chuàng)建,當(dāng)用戶輸入完賬號(hào)密碼時(shí),系統(tǒng)會(huì)首先比對(duì)賬號(hào),在數(shù)據(jù)庫(kù)中查詢賬號(hào)是否存在,接下來(lái)才會(huì)查驗(yàn)密碼的正確性,當(dāng)賬號(hào)與密碼都與數(shù)據(jù)庫(kù)中預(yù)先注冊(cè)的一致后,就可以成功進(jìn)入系統(tǒng)。登錄流程如圖4.15所示圖4.15用戶登錄流程圖查詢課程信息程序流程用戶成功登錄系統(tǒng)后,查詢課程信息的程序的模塊第一步會(huì)進(jìn)入等待用戶輸入搜索信息狀態(tài)。當(dāng)用戶成功入則,模塊會(huì)自動(dòng)獲取用戶輸入的內(nèi)容,并根據(jù)用戶輸入的關(guān)鍵字在課程信息表中檢索相關(guān)的課程信息,并展示給用戶。如果用戶并未輸入相關(guān)關(guān)鍵詞,則該模塊會(huì)處于等待狀態(tài),直到用戶輸入搜索信息或退出系統(tǒng),查詢課程信息程序流程如圖4.16所示圖4.16查詢課程信息程序流程圖錄入課程表程序流程系統(tǒng)的管理員擁有課程表編輯和排課的權(quán)限,成功登錄系統(tǒng)后,選擇對(duì)應(yīng)的學(xué)年和學(xué)期條件,系統(tǒng)會(huì)顯示課程表信息,管理員選中對(duì)應(yīng)的課程去進(jìn)行課程安排,未選中課程會(huì)在對(duì)應(yīng)課程表的位置中留空,錄入完成后點(diǎn)擊保存,就可以在頁(yè)面中生成最終課程表,錄入課程表程序流程如圖4.17所示圖4.17錄入課程表程序流程圖數(shù)據(jù)添加流程軟件里的數(shù)據(jù)添加功能,是通過(guò)教師或者管理員角色在功能界面中點(diǎn)擊相對(duì)應(yīng)的錄入按鈕,在表單中輸入相對(duì)應(yīng)的數(shù)據(jù),系統(tǒng)會(huì)自動(dòng)檢查數(shù)據(jù)的正確性,當(dāng)數(shù)據(jù)正確時(shí)會(huì)通過(guò)接口調(diào)用錄入后臺(tái)數(shù)據(jù)庫(kù),反之則提示用戶重新輸入數(shù)據(jù),數(shù)據(jù)添加流程圖如圖4.18所示。圖4.18數(shù)據(jù)添加流程圖數(shù)據(jù)流程修改在系統(tǒng)中需要修改一條數(shù)據(jù)或者多條數(shù)據(jù)時(shí),第一步需要點(diǎn)擊編輯或批量編輯按鈕,將需要修改的數(shù)據(jù)顯示在表單中,然后將需要修改的的數(shù)據(jù)填入至表單,系統(tǒng)會(huì)自動(dòng)檢查合法性,通過(guò)合法性檢查后會(huì)將數(shù)據(jù)修改并保存到數(shù)據(jù)庫(kù),反之則需要重新輸入數(shù)據(jù),數(shù)據(jù)修改流程圖如圖4.19所示。圖4.19數(shù)據(jù)修改流程圖第五章系統(tǒng)實(shí)現(xiàn)系統(tǒng)實(shí)現(xiàn)系統(tǒng)環(huán)境搭建首先,選擇相應(yīng)的JDK8、Navicatpremium15、IDEA、MySQL等軟件并根據(jù)對(duì)應(yīng)的版本和軟件安裝使用手冊(cè)進(jìn)行下載和安裝到本地pc機(jī)上;其次,對(duì)每個(gè)軟件進(jìn)行對(duì)應(yīng)的環(huán)境變量配置,再將一些便于開發(fā)的工具配置到開發(fā)軟件中;最后集中調(diào)試和開發(fā)環(huán)境,確保各軟件能夠協(xié)調(diào)進(jìn)行開發(fā)工作,當(dāng)完成上述所有的環(huán)境搭建后,才能開始進(jìn)行系統(tǒng)的開發(fā)工作。系統(tǒng)的實(shí)現(xiàn)如圖5.1所示表5.1系統(tǒng)軟件環(huán)境配置軟件工具配置信息操作系統(tǒng)Windows10開發(fā)工具IDEAWeb服務(wù)器Tomcat8.0數(shù)據(jù)庫(kù)MySQL5.7瀏覽器MicrosoftEdge開發(fā)環(huán)境JDK1.8登錄功能實(shí)現(xiàn)學(xué)生,老師以及管理員在未登錄狀態(tài)下進(jìn)行系統(tǒng)的登錄界面進(jìn)行登錄,通過(guò)在頁(yè)面表單中輸入注冊(cè)的用戶名以及設(shè)定的密碼實(shí)現(xiàn)用戶的登錄,輸入完成后點(diǎn)擊登錄按鈕,登錄信息將通過(guò)網(wǎng)絡(luò)請(qǐng)求發(fā)送給服務(wù)器,后臺(tái)會(huì)驗(yàn)證賬號(hào)密碼,當(dāng)驗(yàn)證完成后會(huì)提示用戶成功登錄,反之則需重新輸入正確的賬號(hào)和密碼。登錄如圖5.1所示。圖5.1登錄實(shí)現(xiàn)界面圖登錄代碼如下所示:@GetMapping("/login")

@PassToken

publicUsergetStudentInfo(@RequestParamMap<String,Object>condition){

Map<String,Object>map=newHashMap<>();

map.put("username",condition.get("username").toString());

map.put("password",condition.get("password").toString());

map.put("level",condition.get("level"));

Useruser=userService.getStudentInfo(map);

Stringtoken=userService.getToken(user,24*60*60*1000);

StringrefreshToken=userService.getToken(user,24*60*60*1000);//有效期一天

user.setToken(token);

user.setRefreshToken(refreshToken);

returnuser;

}用戶信息管理在系統(tǒng)中共有三種角色其中包括,學(xué)生,教師,管理員,管理員通過(guò)數(shù)據(jù)庫(kù)中預(yù)先設(shè)定的賬號(hào)登錄,系統(tǒng)的管理員有分配角色和創(chuàng)建學(xué)生還有教師賬號(hào)的權(quán)限,賬號(hào)必須確保唯一性以保證信息的準(zhǔn)確性,賬號(hào)保存在表單數(shù)據(jù)中,其原理是通過(guò)后臺(tái)的userSerice來(lái)進(jìn)行賬號(hào)的驗(yàn)證的,當(dāng)賬號(hào)已經(jīng)存在,會(huì)進(jìn)行報(bào)錯(cuò)并提示,當(dāng)賬號(hào)第一次進(jìn)行創(chuàng)建時(shí),角色功能會(huì)給賬號(hào)分配角色,角色的管理通過(guò)角色菜單來(lái)實(shí)現(xiàn),一個(gè)角色可以擁有多個(gè)菜單使用,用戶登錄后會(huì)根據(jù)自身的角色顯示出對(duì)應(yīng)角色的功能菜單。員工管理如下圖5.2所示圖5.2用戶信息管理流程圖課程表管理在成績(jī)管理系統(tǒng)中,為了課程信息的明確與課程的統(tǒng)計(jì),課程表的管理是不可或缺的,通過(guò)課程表的管理可以明了學(xué)生與教師的課程信息,同時(shí)管理員擁有課程的錄入與刪除的權(quán)限,可以進(jìn)行修改課程、增加課程等操作。課程表管理圖如圖5.3所示。圖5.3課程表管理流程圖課程信息管理課程信息的管理也是后臺(tái)管理員的權(quán)限,課程的管理可以實(shí)現(xiàn)對(duì)課程的添加,點(diǎn)擊編輯按鈕實(shí)現(xiàn)課程信息的錄入,根據(jù)學(xué)校的教育課程的安排,管理員會(huì)根據(jù)實(shí)際課程進(jìn)行添加以及刪減課程的安排,修改中包含課程名、滿分、屆時(shí)、專業(yè)、學(xué)分、課時(shí)、學(xué)期、類型等功能,根據(jù)課程名稱就可以進(jìn)行快速的編輯,課程表管理圖如圖5.4、圖5.5所示。圖5.4課程信息管理流程圖圖5.5課程信息管理流程圖課程管理代碼如下所示:@PostMapping

publicvoidaddCourse(@RequestBodyCoursecourse){

courseService.addCourse(course);

}

@DeleteMapping("/{ids}")

publicvoiddelete(@PathVariable("ids")Integer[]ids){

List<Integer>idsList=Arrays.asList(ids);

courseService.delete(idsList);

}

@PutMapping

publicvoidupdate(@RequestBodyCoursecourse){

courseService.update(course);

}

@GetMapping("/getCourseList")

privatePagingResult<Course>getCourseList(@RequestParamMap<String,Object>condition,

@RequestParam(required=false,name="$limit",defaultValue="10")Integerlimit,

@RequestParam(required=false,name="$offset",defaultValue="0")Integeroffset){

RowBoundsrowBounds=newRowBounds(offset,limit);

returncourseService.getCourseList(rowBounds,condition);

}

@GetMapping("/getCourseByMap")

privateList<Course>getCourseByMap(@RequestParamMap<String,Object>condition){

returncourseService.getCourseByMap(condition);

}

成績(jī)信息管理成績(jī)信息管理是整個(gè)軟件中最重要的的一個(gè)模塊,在模塊中包含學(xué)號(hào)、姓名、課程名、得分、績(jī)點(diǎn)、類型、專業(yè)、班級(jí)等信息,其中還包含成績(jī)的批量編輯,錄入,導(dǎo)出等功能,根據(jù)系統(tǒng)管理員創(chuàng)建的信息,教師輸入成績(jī)后可以將信息與學(xué)生進(jìn)行綁定,根據(jù)專業(yè)和班級(jí),就可以達(dá)到快速檢索學(xué)生成績(jī)的目標(biāo),成績(jī)信息管理圖如圖5.6所示圖5.6課程信息管理流程圖成績(jī)管理代碼如下所示:@GetMapping("/getCourseList")

publicPagingResult<Course>getCourseList(@RequestParamMap<String,Object>condition,

@RequestParam(required=false,name="$limit",defaultValue="10")Integerlimit,

@RequestParam(required=false,name="$offset",defaultValue="0")Integeroffset){

RowBoundsrowBounds=newRowBounds(offset,limit);

returnscoreService.getCourseList(rowBounds,condition);

}

@PostMapping

privatevoidaddEntry(@RequestBodyJSONArrayUserScore){

List<Score>list=JSONObject.parseArray(UserScore.toJSONString(),Score.class);

scoreService.addEntry(list);

}

@GetMapping("/export")

publicList<Course>getExportList(@RequestParamMap<String,Object>condition){

returnscoreService.getExportList(condition);

}

@GetMapping("/getUserNum")

publicList<Map<String,Object>>getUserNum(@RequestParamMap<String,Object>condition){

returnscoreService.getUserNum(condition);

}

@GetMapping("/getUserTotal")

publicMap<String,Object>getUserTotal(@RequestParamMap<String,Object>condition){

returnscoreService.getUserTotal(condition);

}成績(jī)統(tǒng)計(jì)分析當(dāng)教師需要對(duì)班級(jí)整體的教育質(zhì)量進(jìn)行復(fù)盤與反饋時(shí),成績(jī)統(tǒng)計(jì)分析模塊可以進(jìn)行三種方式的數(shù)據(jù)可視化包含餅狀圖,折線圖,柱狀圖,并且會(huì)統(tǒng)計(jì)最高與最低分還有平均分。成績(jī)統(tǒng)計(jì)分析圖如圖5.7所示圖5.7成績(jī)統(tǒng)計(jì)分析圖文件管理代碼如下所示:@PostMapping("/headImg")

@ResponseBody

publicStringupload(MultipartFilefile,HttpServletRequestrequest)throwsIOException{

if(!file.isEmpty()){

try{

byte[]bytes=file.getBytes();

//儲(chǔ)存位置

StringstaticDir=ResourceUtil.getPath();

//圖片名

StringImgName=file.getOriginalFilename();

Stringuid=UUID.randomUUID().toString();

assertImgName!=null;

//獲取后綴名

Stringstr=ImgName.substring(ImgName.lastIndexOf("."));

//重定義文件名

StringnewName=uid+str;

//圖片存儲(chǔ)地址

Pathpath=Paths.get(staticDir+newName);

//寫入文件

Files.write(path,bytes);

StringimgUrl="/files/"+newName;

StringuserId=request.getParameter("id");

intlevel=parseInt(request.getParameter("level"));

Uploadupload=newUpload();

upload.setUserId(userId);

upload.setLevel(level);

upload.setUrl(imgUrl);

uploadService.upload(upload);

//url去除"sms"

returnimgUrl;

}catch(IOExceptione){

e.printStackTrace();

}

}

return"";

}

@GetMapping("/getHeadImg")

@UserLoginToken

publicStringgetAdminList(@RequestParamMap<String,Object>condition,HttpServletRequesthttpServletRequest){

returnuploadService.getHeader(condition);

}第六章系統(tǒng)測(cè)試系統(tǒng)測(cè)試系統(tǒng)測(cè)試在軟件的開發(fā)中是不可或缺的環(huán)節(jié),在開發(fā)過(guò)程中與系統(tǒng)正式進(jìn)入市場(chǎng)之前都需要進(jìn)行多次多種的測(cè)試,為了確保軟件的穩(wěn)定性,安全性,正確性以及完整性,為了盡力提供給用戶一個(gè)良好的使用環(huán)境,以及具有安全性的信息保護(hù),所以進(jìn)行系統(tǒng)測(cè)試是非常有必要的,本章節(jié)闡述的測(cè)試流程,選擇在實(shí)現(xiàn)的功能層面上完成對(duì)系統(tǒng)的測(cè)試。系統(tǒng)測(cè)試目的與內(nèi)容系統(tǒng)測(cè)試的目的為了學(xué)生成績(jī)管理系統(tǒng)的能夠流暢運(yùn)行在客戶端,提供在線服務(wù)的時(shí)候不出現(xiàn)錯(cuò)誤,對(duì)系統(tǒng)的方方面面需要做到詳盡的測(cè)試,在測(cè)試中需要對(duì)代碼以及相對(duì)應(yīng)的功能進(jìn)行運(yùn)行以及研究,對(duì)發(fā)現(xiàn)的問(wèn)題出具測(cè)試報(bào)告,并將問(wèn)題及時(shí)修補(bǔ)。系統(tǒng)測(cè)試的內(nèi)容系統(tǒng)測(cè)試主要分為功能測(cè)試和界面測(cè)試,其中功能測(cè)試需要檢查軟件是否滿足預(yù)期設(shè)計(jì),并且要測(cè)試軟件的質(zhì)量與完整,這時(shí)測(cè)試中必不可少的環(huán)節(jié),其次界面測(cè)試,是給用戶提供一個(gè)舒適與簡(jiǎn)潔的操作界面為目的的,通過(guò)周密的測(cè)試,檢查能否完整的給用戶提供全方面的服務(wù)。系統(tǒng)測(cè)試的方法進(jìn)行Junit單元測(cè)試,將系統(tǒng)內(nèi)的最小單元摘出來(lái)進(jìn)行測(cè)試,將系統(tǒng)內(nèi)的模塊進(jìn)行分隔,通過(guò)這種形式可以達(dá)到測(cè)試的目的,可以觀察到項(xiàng)目在運(yùn)行過(guò)程中可能存在的問(wèn)題,并且快速確認(rèn)并找到問(wèn)題的。登錄測(cè)試登錄是系統(tǒng)的第一步,學(xué)生成績(jī)管理系統(tǒng)的登錄分為三個(gè)角色,對(duì)三個(gè)角色的登錄的測(cè)試如表6.1所示表6.1登錄測(cè)試表功能點(diǎn)測(cè)試用例輸出結(jié)果管理員用戶登錄選擇管理員角色,輸入管理員的用戶名和密碼,點(diǎn)擊登錄跳轉(zhuǎn)到學(xué)生成績(jī)管理系統(tǒng)首頁(yè),并展示管理員相關(guān)功能菜單教師用戶登錄選擇教師角色,輸入管理員的用戶名和密碼,點(diǎn)擊登錄跳轉(zhuǎn)到學(xué)生成績(jī)管理系統(tǒng)首頁(yè),并展示教師相關(guān)功能菜單學(xué)生用

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論