




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
./WORD格式整理題目題目:基于Web的成績管理系統(tǒng)的設(shè)計與實現(xiàn)姓姓名:指導(dǎo)教師:專業(yè):.WORD格式整理.摘要.隨著信息技術(shù)的普及和推廣,計算機網(wǎng)絡(luò)已經(jīng)成為生活和工作必不可少的有力工具。對于學(xué)校而言,實現(xiàn)辦公自動化將大大提高學(xué)校管理的工作效率。成績管理系統(tǒng)對于學(xué)校實現(xiàn)辦公自動化化將起到重要作用。本文的基于Web的成績管理系統(tǒng),采用SSH<Struts+Spring+Hibernate>作為網(wǎng)絡(luò)編程框架,選擇MySQL設(shè)計數(shù)據(jù)庫,并使用優(yōu)秀的開發(fā)工具MyEclipse,能良好的支持?jǐn)?shù)據(jù)庫應(yīng)用。本系統(tǒng)主要實現(xiàn)對學(xué)生成績的管理,包括用戶管理、學(xué)生成績的錄入、修改、刪除、查詢和統(tǒng)計等方面。系統(tǒng)開發(fā)主要包括建立和維護后臺數(shù)據(jù)庫以及前端應(yīng)用程序兩個方面。本文主要介紹成績管理系統(tǒng)的可行性分析、需求分析、系統(tǒng)設(shè)計和系統(tǒng)實現(xiàn)等。關(guān)鍵詞:成績管理,Web,數(shù)據(jù)庫,SSHAbstractAsInformationtechnologyhavebeenusedworldwidely,ComputerNetworkisanpowerfultoolbothforourlifeandwork.Forinstance,officeautomationwillmaximumshool’sworkingefficiency.Scoremanagementsystemisofgreatimportancetotheachievementofofficeautomation.ThistextoftheperformancemanagementsystembasedonWeb,appliesSSHasitsnetworkprogammingframe,selectMySQLasitstoolofdesigningdatabase,MyEclipseasitsdevelopmenttool.Thissystemisinchargeofscoremanagement,includingusermanagement,scoreinput,scoreinquiry,scoreaddingandamending.Systemdevelopmentfallsintotwoaspects:1.establishandmaintainbackenddatabase.2.developfrontendapplicationprograms.Thisdissertationmainlylaysitsemphasisonthefeasibilityanalysis,demandanalysis,systemdesignandsystemrealizationofscoremanagementsystem.Keywords:scoremanagement,Web,database,SSH
目錄摘要IAbstractII目錄III第一章引言11.1課程背景11.2目的和意義1第二章開發(fā)工具簡介32.1MVC設(shè)計模式32.2SSH架構(gòu)32.2.1Struts232.2.2Spring42.2.3Hibernate352.3MySQL數(shù)據(jù)庫6第三章系統(tǒng)分析83.1可行性分析8經(jīng)濟可行性83.1.2技術(shù)可行性8運行和操作可行性8法律可行性83.2需求分析93.3E-R圖9第四章系統(tǒng)設(shè)計114.1總體設(shè)計114.2功能模塊設(shè)計114.3數(shù)據(jù)庫設(shè)計13第五章系統(tǒng)實現(xiàn)155.1登錄模塊155.1.1登錄界面155.1.2系統(tǒng)首頁165.2菜單模塊165.3用戶信息模塊185.3.1公共信息185.3.2課程信息185.3.3教師信息205.3.4學(xué)生信息205.3.5班級信息215.4成績管理模塊225.4.1成績錄入225.4.2成績查詢22第六章總結(jié)27參考文獻28致謝29..1概論1.1課程背景隨著多媒體教學(xué)的推廣,電腦和網(wǎng)絡(luò)的普及,人民對于電腦的應(yīng)用已經(jīng)不再陌生。目前社會上信息管理系統(tǒng)發(fā)展飛快,在各級各類的學(xué)校中,學(xué)生成績管理一直都是學(xué)校工作中的一項重要內(nèi)容,因為學(xué)生工作的很多方面都需要它的支持,比如獎學(xué)金的評定、學(xué)生就業(yè)推薦書的書寫、學(xué)生檔案的建設(shè)等等。隨著學(xué)校辦學(xué)規(guī)模的擴大和招生人數(shù)的增加,學(xué)生成績管理成為一項十分繁重的工作。為了解決這一問題,有必要開發(fā)一套功能強大,操作簡單,具有人性化的成績管理系統(tǒng),使計算機在學(xué)生成績處理的領(lǐng)域中發(fā)揮高效靈活的功能。因此為了充分利用計算機硬件資源,做好學(xué)生成績管理工作,提高工作效率,實現(xiàn)全面的、相對集中的辦公自動化,開發(fā)本系統(tǒng)就成了當(dāng)務(wù)之急。Internet和Web的迅猛發(fā)展使數(shù)據(jù)庫技術(shù)也開始與Web產(chǎn)生了緊密的聯(lián)系,一種新興的技術(shù)—Web數(shù)據(jù)庫技術(shù)出現(xiàn)了,并且開始在數(shù)據(jù)庫的應(yīng)用中發(fā)揮著越來越重要的作用。高校校園網(wǎng)的迅速普及,使成績管理軟件能充分依托校園網(wǎng),實現(xiàn)教務(wù)信息的集中管理、分散操作、信息共享,使傳統(tǒng)的教務(wù)管理朝數(shù)字化、無紙化、智能化、綜合化的方向發(fā)展。基于Web的成績管理系統(tǒng)利用JSP技術(shù)與Web數(shù)據(jù)庫想結(jié)合實現(xiàn),具有數(shù)據(jù)輸入、查詢修改等功能,應(yīng)用該系統(tǒng)可大大提高工作效率,并為進一步完善計算機教務(wù)管理系統(tǒng)和全校信息系統(tǒng)打下良好的基礎(chǔ)。1.2目的和意義本系統(tǒng)的研究意義主要是改變以往的成績管理模式,改人工手動管理為計算機網(wǎng)絡(luò)化管理。使學(xué)校在處理學(xué)生成績的問題上,變得更加方便和快捷。同時可以降低了人工管理的錯誤率,提高了數(shù)據(jù)的安全性。隨著教育的發(fā)展、高校規(guī)模的擴大、學(xué)生人數(shù)的增加,對學(xué)生各種信息的匯總、統(tǒng)計、分析等管理工作面臨著很多困難。如果高校對學(xué)生各種信息的管理通過手工整理等方式來處理完成的,那么在這個工作過程中獎花費大量的人力和時間,而且查詢各種信息也不方便不準(zhǔn)確,影響了各級領(lǐng)導(dǎo)和學(xué)生管理部門對學(xué)生信息的及時掌握和分析。運用學(xué)生成績管理系統(tǒng)可以減輕學(xué)校教學(xué)人員的工作量,加快查詢速度,加強管理,還有就是縮小開支,提高工作效率與準(zhǔn)確率。學(xué)生成績管理系統(tǒng)的應(yīng)用也為今天的高校教育在未來市場的競爭力的提高打下堅實的基礎(chǔ)。本系統(tǒng)利用網(wǎng)絡(luò)這個平臺,充分利用了網(wǎng)絡(luò)的快捷性,提高教育的時效性,使學(xué)生隨時隨地查詢自己的學(xué)習(xí)情況,達到促進學(xué)生自主管理的目的,提高教師對學(xué)生管理工作的效率,讓老師及時掌握學(xué)生學(xué)習(xí)上的動態(tài)。而且通過本課題的研究,能夠充分了解網(wǎng)絡(luò)數(shù)據(jù)庫的相關(guān)知識,培養(yǎng)網(wǎng)絡(luò)軟件開發(fā)的能力,提高實踐操作和知識的綜合運用能力。
2開發(fā)工具簡介2.1MVC設(shè)計模式MVC[1]是Model-View-Controller的簡稱,即模型-視圖-控制器。MVC是目前最流行的Web應(yīng)用設(shè)計模式,它可以靈活、動態(tài)地設(shè)計開發(fā)系統(tǒng),有利于修改和擴展簡化程序,有利于代碼重復(fù)使用。模型:用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對數(shù)據(jù)的處理方法。模型用來封裝和顯示數(shù)據(jù)對象。視圖:把表示模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息及特定形式展示給用戶。它從模型獲得顯示信息,對于相同的信息可以有多個不同的顯示形式或視圖。 控制器:是處理用戶與軟件的交互操作的,其職責(zé)是控制提供模型中任何變化的傳播,確保用戶界面于模型間的對應(yīng)聯(lián)系;它接受用戶的輸入,將輸入反饋給模型,進而實現(xiàn)對模型的計算控制,是使模型和視圖協(xié)調(diào)工作的部件。通常一個視圖具有一個控制器。使用MVC的優(yōu)點:〔1用戶在視圖界面上發(fā)出請求;〔2可以很容易地用新的實現(xiàn)來替換原有層次的實現(xiàn);〔3可以降低層與層之間的依賴;〔4有利于標(biāo)準(zhǔn)化;〔5有利于各層邏輯的復(fù)用。總的來說,MVC設(shè)計可以達到如下目的:分散關(guān)注、松散耦合、邏輯復(fù)用、標(biāo)準(zhǔn)定義。2.2SSH架構(gòu)2.2.1Struts2ApacheStruts2是一個優(yōu)雅的,可擴展的JAVAEEweb框架。它采用MVC模式,能夠很好地幫助java開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的Java架構(gòu)一樣,Struts[2]也是面向?qū)ο笤O(shè)計,將MVC模式"分離顯示邏輯和業(yè)務(wù)邏輯"的能力發(fā)揮得淋漓盡致。Web應(yīng)用都是請求-響應(yīng)的程序結(jié)構(gòu)。程序是由客戶端client發(fā)出http請求開始的,客戶端請求被ActionServlet攔截。在ActionServlet處,通常有2種情況:要求邏輯控制器處理的請求以及單轉(zhuǎn)發(fā)的請求。系統(tǒng)主要以第一種請求為主,即ActionServlet需要調(diào)用對應(yīng)的Action。因此,ActionServlet將請求轉(zhuǎn)發(fā)到Action,如果請求還配置了響應(yīng)的FormBean,則ActionServlet還負(fù)責(zé)用請求參數(shù)填充ActionForm。此時的Action無須從HTTPRequest中獲取請求參數(shù),而是從ActionForm中或得請求參數(shù)。Action或得請求參數(shù)后,調(diào)用Model對象由JavaBean處理用戶請求。Action處理完用戶請求之后,將處理結(jié)果包裝秤ActionForward,再回送給ActionServlet。Struts2框架的大概處理流程如下:<1>加載類〔FilterDispatcher<2>讀取配置〔struts配置文件中的Action<3>派發(fā)請求〔客戶端發(fā)送請求<4>調(diào)用Action〔FilterDispatcher從struts配置文件中讀取與之相對應(yīng)的Action<5>啟用攔截器〔WebWork攔截器鏈自動對請求應(yīng)用通用功能,如驗證<6>處理業(yè)務(wù)〔回調(diào)Action的execute<>方法<7>返回響應(yīng)〔通過execute方法將信息返回到FilterDispatcher<8>查找響應(yīng)〔FilterDispatcher根據(jù)配置查找響應(yīng)的是什么信息如:SUCCESS、ERROER,將跳轉(zhuǎn)到哪個jsp頁面<9>響應(yīng)用戶〔jsp>客戶瀏覽器端顯示2.2.2SpringSpring[3]是一個開源框架,由RodJohnson創(chuàng)建。它視為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的JavaBean來完成以前只能由EJB完成的事情。然而,Spring的用途不僅限于服務(wù)器端的開發(fā)。從簡單性、可測試性和松耦合的角度而言,任何Java應(yīng)用都可以從Spring中受益.簡單來說,Spring是一個輕量級的控制反轉(zhuǎn)〔IoC和面向切面〔AOP的容器框架。輕量-從大小和開銷兩個方面而言Spring都是輕量的。Spring應(yīng)用中的對象不依賴于Spring的特定類??刂品崔D(zhuǎn)-Spring通過IoC技術(shù)促進了松耦合。當(dāng)應(yīng)用其的時候,一個對象依賴的其他對象會通過被動的方式傳遞進來,而不是這個對象自己創(chuàng)建或者查找依賴對象??梢岳斫獬蔀镮oC和JNDI相反。面向切面-Spring提供了面向切面編程的豐富支持,允許通過分離應(yīng)用的業(yè)務(wù)邏輯與系統(tǒng)級服務(wù)進行內(nèi)聚性的開發(fā)。應(yīng)用對象只實現(xiàn)它們應(yīng)該做的-完成業(yè)務(wù)邏輯-僅此而已。它們不負(fù)責(zé)其他的系統(tǒng)級關(guān)注點,例如日志或事務(wù)支持。容器-Spring包含并管理應(yīng)用對象的配置和生命周期,在這個意義上它是一種容器。然而,Spring不應(yīng)該被混同于傳統(tǒng)的重量級EJB容器,它們經(jīng)常是龐大與笨重的,難以使用??蚣埽璖pring可以將簡單的組建配置、組合成為復(fù)雜的應(yīng)用。在Spring中,應(yīng)用對象被聲明式地組合,典型地是在一個XML文件中。Spring也提供了很多基礎(chǔ)功能〔事務(wù)管理、持久化框架集成等,將應(yīng)用邏輯的開發(fā)留給了你。2.2.3Hibernate3Hibernate[4]是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進行了輕量級的對象封裝,使Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。它不僅提供了從Java類到數(shù)據(jù)表之間的映射,也提供了數(shù)據(jù)查詢和恢復(fù)機制。相對于使用JDBC和SQL來手工操作數(shù)據(jù)庫,Hibernate可以大大減少操作數(shù)據(jù)庫的工作量。另外Hibernate可以利用代理模式來簡化載入類的過程,這將大大減少利用HibernateQL從數(shù)據(jù)庫提取數(shù)據(jù)的代碼的編寫量,從而節(jié)約開發(fā)時間和開發(fā)成本Hibernate可以和多種Web服務(wù)器或者應(yīng)用服務(wù)器良好集成,如今已經(jīng)支持幾乎所有的流行的數(shù)據(jù)庫服務(wù)器。Hibernate技術(shù)本質(zhì)上是一個提供數(shù)據(jù)庫服務(wù)的中間件。它的架構(gòu)如圖2.4所示:圖2-1Hibernate架構(gòu)圖2-1顯示了Hibernate的工作原理,它是利用數(shù)據(jù)庫以及其他一些配置文件如Hibernate.properties,XMLMapping等來為應(yīng)用程序提供數(shù)據(jù)持久化服務(wù)的。Hibernate具有很大的靈活性,但同時它的體系結(jié)構(gòu)比較復(fù)雜,提供了好幾種不同的運行方式。在輕型體系中,應(yīng)用程序提供JDBC連接,并且自行管理事務(wù),這種方式使用了Hibernate的一個最小子集;在全面解決體系中,對于應(yīng)用程序來說,所有底層的JDBC/JTAAPI都被抽象了,Hibernate會替你照管所有的細(xì)節(jié)。2.3MySQL數(shù)據(jù)庫MySQL[5]是一個小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQLAB公司。MySQLAB是一家基于MySQL開發(fā)人員的商業(yè)公司,它是一家使用了一種成功的商業(yè)模式來結(jié)合開源價值和方法論的第二代開源公司。MySQL是MySQLAB的注冊商標(biāo)。MySQL的SQL"結(jié)構(gòu)化查詢語言"。SQL是用于訪問數(shù)據(jù)庫的最常用標(biāo)準(zhǔn)化語言。MySQL軟件采用了GPL〔GNU通用公共許可證。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了MySQL作為網(wǎng)站數(shù)據(jù)庫。MySQL是一個快速的、多線程、多用戶和健壯的SQL數(shù)據(jù)庫服務(wù)器。MySQL服務(wù)器支持關(guān)鍵任務(wù)、重負(fù)載生產(chǎn)系統(tǒng)的使用,也可以將它嵌入到一個大配置<mass-deployed>的軟件中去。MySQL是一個數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合。如果要對存儲在計算機數(shù)據(jù)庫中的大量數(shù)據(jù)進行添加、訪問等處理,你就需要一個像MySQL這樣的數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫系統(tǒng)在計算機處理中和獨立應(yīng)用程序或其他部分應(yīng)用程序一樣扮演著重要的角色。MySQL是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)關(guān)系數(shù)據(jù)庫把數(shù)據(jù)存放在分立的表格中,這比把所有數(shù)據(jù)存放在一個大倉庫中要好得多,這樣做將增加你的速度和靈活性。"MySQL"中的SQL代表"StructuredQueryLanguage"〔結(jié)構(gòu)化查詢語言。SQL是用于訪問數(shù)據(jù)庫的最通用的標(biāo)準(zhǔn)語言,它是由ANSI/ISO定義的SQL標(biāo)準(zhǔn)。SQL標(biāo)準(zhǔn)發(fā)展自1986年以來,已經(jīng)存在多個版本:SQL-86,SQL-92,SQL:1999,SQL:2003,其中SQL:2003是該標(biāo)準(zhǔn)的當(dāng)前版本。MySQL是開源的開源意味著任何人都可以使用和修改該軟件,任何人都可以從Internet上下載和使用MySQL而不需要支付任何費用。如果你愿意,你可以研究其源代碼,并根據(jù)你的需要修改它。MySQL使用GPL<GNUGeneralPublicLicense,通用公共許可>,在hpt:///licenses中定義了你在不同的場合對軟件可以或不可以做什么。如果你覺得GPL不爽或者想把MySQL的源代碼集成到一個商業(yè)應(yīng)用中去,你可以向MySQLAB購買一個商業(yè)許可版本。3系統(tǒng)分析3.1可行性分析經(jīng)濟可行性系統(tǒng)的經(jīng)濟可行性是指分析學(xué)校的經(jīng)濟狀況和投資能力,估算系統(tǒng)建設(shè)、運行和維護的費用,估計系統(tǒng)建成后取得的效益。目前,計算機價格已經(jīng)十分低廉,計算機性能卻有了質(zhì)的飛躍。開發(fā)本系統(tǒng)為學(xué)校的工作效率帶來了長足的進步,為此主要表現(xiàn)有以下幾個方面:第一,運行本系統(tǒng)可以方便查詢和管理學(xué)生信息;第二,運行本系統(tǒng)可以節(jié)省人力和物力;第三,運行本系統(tǒng)可以提高學(xué)校的工作效率;第四,本系統(tǒng)可以減少信息管理的錯誤率。所以,本系統(tǒng)的開發(fā)在經(jīng)濟上是可行的。技術(shù)可行性本系統(tǒng)通過網(wǎng)絡(luò)和網(wǎng)頁實現(xiàn),校園網(wǎng)的覆蓋為實現(xiàn)學(xué)生成績管理系統(tǒng)打下了基礎(chǔ)。使用支持動態(tài)網(wǎng)頁的JSP技術(shù),利用支持多用戶的MySQL作為本系統(tǒng)的數(shù)據(jù)庫,它適用于大中規(guī)模的數(shù)據(jù)量需求。使用MyEclipse7.5作為系統(tǒng)開發(fā)的開發(fā)環(huán)境,MyEclipse是Eclipse的插件,也是一款功能強大的JavaEE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯。綜上所述,本系統(tǒng)的設(shè)計與開發(fā)在技術(shù)上和硬件設(shè)備上的條件都是滿足的,因此,它在技術(shù)上是可行的。運行和操作可行性本系統(tǒng)是小型的學(xué)生信息管理系統(tǒng),所需要的資源比較小,學(xué)校電腦的硬件和網(wǎng)絡(luò)都能夠滿足條件,因此,本系統(tǒng)在運行上是可行的。本系統(tǒng)使用方便,界面簡潔,直觀易懂,無論是學(xué)生還是教師都可直接上手,管理員通過簡單的培訓(xùn)操作本系統(tǒng)也沒有問題。法律可行性開發(fā)本系統(tǒng)不會侵犯他人利益,不存在侵權(quán)問題,不違反國家法律法規(guī),因此具有法律可行性。綜上所述,從經(jīng)濟上、技術(shù)上、運行操作上都是可行的,所以該開發(fā)該系統(tǒng)是可行的。3.2需求分析在設(shè)計系統(tǒng)之前,首先必須確定用戶究竟要求軟件系統(tǒng)完成什么任務(wù),所以分析階段的基本任務(wù)是了解用戶的需求,并將用戶的需求用書面形式表達出來。這個階段還不是確定系統(tǒng)怎樣完成它的工作,而僅僅是確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。系統(tǒng)分析的結(jié)果是系統(tǒng)開發(fā)的基礎(chǔ),關(guān)系到工程的成敗和軟件產(chǎn)品的質(zhì)量。在全面客觀的系統(tǒng)分析的基礎(chǔ)上,根據(jù)用戶提出的系統(tǒng)功能進行相應(yīng)的功能設(shè)計。在互聯(lián)網(wǎng)飛速發(fā)展的今天,對于21世紀(jì)的教學(xué)而言,應(yīng)該與網(wǎng)路息息相關(guān)。許多人還停留在以前的手工操作,這大大地阻礙了人類經(jīng)濟的發(fā)展。為了適應(yīng)現(xiàn)代社會人們高度強烈的時間觀念,學(xué)校信息管理系統(tǒng)軟件為學(xué)校辦公室?guī)砹藰O大的方便,作為高校教務(wù)管理工作的一部分,既方便了學(xué)生查看成績、老師的教學(xué)管理、更加方便了學(xué)校的教務(wù)管理。經(jīng)過調(diào)研與可行性分析,出于對教師和學(xué)生需求的考慮,設(shè)計了這套系統(tǒng),成績管理系統(tǒng)主要包括:〔1用戶信息模塊:①管理員可以對課程信息、教師信息、學(xué)生信息進行錄入和修改;②在用戶登錄方面,對用戶身份進行驗證,防止非法用戶登錄,管理員對用戶分配初始密碼;③在個人管理方面,對用戶個人信息進行維護,如修改密碼、聯(lián)系方式?!?成績錄入:任課教師對本課程成績進行錄入和校驗。〔3成績查詢:學(xué)生只能對自己的學(xué)期各科成績進行查詢;教師能對自己所任課程進行查詢;班主任能對本班級各科成績以及本班中的學(xué)生進行全科成績進行查詢;管理員可以對所有學(xué)生成績進行查詢?!?成績管理:管理員可以對各科成績包括補考成績進行添加、修改、刪除操作。3.3E-R圖根據(jù)學(xué)生成績管理系統(tǒng)的分析得到系統(tǒng)的E-R圖,如圖3-1所示。圖3-1成績管理系統(tǒng)E-R圖成績管理系統(tǒng)中各實體之間的關(guān)系如下:〔1學(xué)生信息與成績信息:1∶M;〔2班級信息與學(xué)生信息:1∶M;〔3學(xué)生信息與課程信息:N∶M;〔4教師信息與班級信息:N∶M;〔5角色信息與學(xué)生信息:1∶M;〔6角色信息與教師信息:1∶M;〔7班級信息與班級課程信息:N∶M;〔8課程信息與班級課程信息:N∶M。4系統(tǒng)設(shè)計4.1總體設(shè)計 根據(jù)前面的需求分析,我們將系統(tǒng)劃分為如下的三大功能模塊。管理員管理模塊重點是學(xué)生管理、教師管理、課程管理、班級管理。對學(xué)生、教師、課程、班級的管理包括添加、修改、查看。教師模塊包括對學(xué)生成績的錄入和查詢,以及對自己聯(lián)系信息的修改。學(xué)生模塊主要是學(xué)生對自己成績進行查詢,以及對自己的信息進行修改。整個系統(tǒng)的主要結(jié)構(gòu)如圖4-1所示。圖4-1系統(tǒng)模塊結(jié)構(gòu)圖4.2功能模塊設(shè)計學(xué)生和教師是本系統(tǒng)的中心對象。根據(jù)模塊劃分和需求分析可知,該系統(tǒng)的流程主要描述的是當(dāng)教師對自己所教課程的學(xué)生打分以后學(xué)生可以登錄查詢到自己該科目的成績。該系統(tǒng)包括三個基本流程,適用于管理員、教師、學(xué)生。圖4-2描述的是管理員的操作流程:首先管理員要進行學(xué)生、教師、班級、和課程數(shù)據(jù)的初始化,這樣學(xué)生和教師就可以登錄使用該系統(tǒng)了。在系統(tǒng)使用過程中,管理員再進行管理工作。圖4-2管理員的操作流程圖4-3描述的是教師的操作流程:教師根據(jù)管理員提供的初始密碼和教師號登錄系統(tǒng)。教師登陸系統(tǒng)后可修改密碼、個人信息、公布和查詢成績。圖4-3教師的操作流程圖4-4描述的是學(xué)生操作流程:學(xué)生根據(jù)學(xué)號和初始密碼登錄系統(tǒng)。學(xué)生登錄后,可以查詢成績和修改個人信息。圖4-4學(xué)生的操作流程4.3數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能有效地存取數(shù)據(jù),滿足用戶的信息要求和處理要求。好的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計會減少數(shù)據(jù)庫的存儲量,數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具有較快的響應(yīng)速度,簡化基于此數(shù)據(jù)庫的應(yīng)用程序的實現(xiàn)難度。在數(shù)據(jù)庫系統(tǒng)開始設(shè)計開發(fā)的時候應(yīng)該盡量考慮全面,尤其應(yīng)該仔細(xì)考慮用戶的各種需求,避免浪費不必要的人力和物力。在這個數(shù)據(jù)庫管理系統(tǒng)中要建立7張數(shù)據(jù)表:教師信息表:用于存放所有上課教師的基本信息,其中包括班主任和管理員,如表4-1。表4-1教師信息表列名列標(biāo)識數(shù)據(jù)類型長度空值主鍵教師號Idint11noY名字Namevarchar45yesN性別Sexvarchar20yesN專業(yè)projectvarchar45yesN電話phonevarchar45yesN學(xué)院collegevarchar45yesN角色代碼Roleidint11yesN角色信息表:用于存放所有覺得信息,如表4-2。表4-2角色信息表列名列標(biāo)識數(shù)據(jù)類型長度空值主鍵角色代碼Idint11noY角色名稱roleNamevarchar45yesN學(xué)生信息表:用于存放所有學(xué)生的基本信息,如表4-3。表4-3學(xué)生信息表列名列標(biāo)識數(shù)據(jù)類型長度空值主鍵學(xué)號Idint11noY班級代碼classNoint11yesN姓名Namevarchar45yesN性別Sexvarchar45yesN專業(yè)projectvarchar45yesN電話phonevarchar45yesN學(xué)院collegevarchar45yesN角色代碼Roleidint11yesN課程信息表:用于存放所有開課課程的基本信息,如表4-4。表4-4課程信息表列名列標(biāo)識數(shù)據(jù)類型長度空值主鍵課程號Idint11noY課程名Namevarchar45yesN學(xué)時periodvarchar30yesN學(xué)分creditsvarchar30yesN教師號teacheridint11yesN班級信息表:用于存放所有與班級相關(guān)的信息,如表4-5。表4-5班級信息表列名列標(biāo)識數(shù)據(jù)類型長度空值主鍵班級號Idint11noY班級名classnamevarchar45yesN班主任teacheridint11yesN成績信息表:用于存放所有學(xué)生成績的信息,如表4-6。表4-6成績信息表列名列標(biāo)識數(shù)據(jù)類型長度空值主鍵成績號Idint11noY學(xué)生學(xué)號stuNoint11yesN課程號courseIdint11yesN成績Scorevarchar45yesN分類Typetinyint1yesN學(xué)期Termvarchar45yesN班級課程表:用于存放與班級相對應(yīng)的所有課程信息,如表4-7。表4-7班級課程表列名列標(biāo)識數(shù)據(jù)類型長度空值主鍵班級課程號Idint11noY班級號classIdint11yesN課程號courseIdint11yesN5系統(tǒng)實現(xiàn)5.1登錄模塊5.1.1登錄界面用戶通過用戶名和密碼登錄系統(tǒng),如果數(shù)據(jù)庫中不存在用戶名和密碼則不能登錄。圖5-1為登錄界面。圖5-1登錄界面圖登錄采用的是目前最流行的JS[6]框架jequery[7]的Ajax驗證,實現(xiàn)了頁面的局部刷新。具體JS代碼如下:$.post<"login!checkLogin",{username:$<"#name">.val<>,password:$<"#pwd">.val<>,userType:typeValue},function<data>{if<data=="true">{ document.logfrom.submit<>; }else{ alert<"用戶名或者密碼錯誤">; } },'html' >;5.1.2系統(tǒng)首頁如果登錄成功則進入系統(tǒng),此時不同角色的用戶進入不同的界面。以管理員為例,登錄成功之后可以看到如圖5-2所示。圖5-2管理員系統(tǒng)首頁圖5.2菜單模塊本系統(tǒng)菜單采用的是JS加載方式實現(xiàn)。實現(xiàn)了由JS控制的三級菜單。如圖5-3所示:圖5-3管理員管理界面圖最上一層是第一級菜單〔基本設(shè)置,用戶管理,成績管理,報表管理。通過第一級菜單可以通過點擊事件觸發(fā)第二級菜單的生成。如圖左邊所示〔課程信息,教師信息,學(xué)生信息,班級信息。通過第二級菜單可以觸發(fā)第三級菜單。如圖5-3左側(cè)增加課程,查看課程等等。具體JS代碼如下:vartest=document.getElementById<"role">.value;varoutlookbar=newoutlook<>;vart;t=outlookbar.addtitle<'個人信息','基本設(shè)置',1>;outlookbar.additem<'查看個人資料',t,'login!personalMessage'>;outlookbar.additem<'修改個人資料',t,'login!changeUserMsg'>;outlookbar.additem<'更改登錄密碼',t,'login!passwordPage'>;if<test=='管理員'>{t=outlookbar.addtitle<'課程信息','用戶管理',1>;outlookbar.additem<'增加課程',t,'course!addCourse'>;outlookbar.additem<'查看課程',t,'course!listCourse'>;t=outlookbar.addtitle<'教師信息','用戶管理',1>;outlookbar.additem<'增加教師',t,'teacher!addTeacher'>;outlookbar.additem<'查看教師',t,'listTeacher'>;t=outlookbar.addtitle<'學(xué)生信息','用戶管理',1>;outlookbar.additem<'增加學(xué)生',t,'student!addStudent'>;outlookbar.additem<'查看學(xué)生',t,'listStudent'>;t=outlookbar.addtitle<'班級信息','用戶管理',1>;outlookbar.additem<'增加班級',t,'classmessage!addClass'>;outlookbar.additem<'查看班級',t,'listClass'>;}t=outlookbar.addtitle<'成績信息','成績管理',1>;outlookbar.additem<'成績查詢',t,'listScore'>;if<test!='學(xué)生'>{outlookbar.additem<'成績錄入',t,'score!addScore'>;}if<test=='管理員'>{t=outlookbar.addtitle<'報表信息','報表管理',1>;outlookbar.additem<'班級信息',t,'manframe.jsp'>;outlookbar.additem<'課程成績信息',t,'manframe.jsp'>;outlookbar.additem<'補考信息',t,'manframe.jsp'>;}t=outlookbar.addtitle<'退出系統(tǒng)','基本設(shè)置',1>;outlookbar.additem<'點擊退出登錄',t,'login!logout'>;這種菜單的實現(xiàn)風(fēng)格是采用js對象實例化的形式,加載頁面的時候,把js菜單動態(tài)加載到頁面。5.3用戶信息模塊5.3.1公共信息這部分為各個角色的公共信息,主要由個人信息和退出系統(tǒng)兩個大功能,個人信息包括修改個人信息,查看個人信息,修改密碼和聯(lián)系方式。退出系統(tǒng)直接退出系統(tǒng),清空登錄緩存,以免非法登錄。如圖5-4所示。圖5-4個人信息圖其中退出系統(tǒng)時是需要清空session中的對象值的,以免用戶非法登錄,具體代碼如下所示:publicStringlogout<>throwsException{ HttpServletRequestrequest=ServletActionContext.getRequest<>; HttpSessionsession1=request.getSession<>; session1.invalidate<>;return"logout"; }5.3.2課程信息只有管理員用戶才可以擁有此功能的操作權(quán)限,可以添加,查看并修改課程信息。如圖5-5所示。圖5-5管理課程圖從圖5-5中可以看出,查看課程頁面做了分頁處理,這樣是整個頁面更加清晰。具體分頁代碼如下所示:<trclass="left_title_1"align="center"><tdcolspan="6"align="center"><s:iftest="%{#request.page.totalRecord!=0}"> 第${page.currentPage}/${page.totalPage}頁|<s:iftest="%{#request.page.currentPage==1}"> 首頁|</s:if><s:iftest="%{#request.page.currentPage>1}"><ahref="javascript:topage<1>">首頁</a>|</s:if><s:iftest="%{#request.page.currentPage==1}"> 上一頁|</s:if><s:iftest="%{#request.page.currentPage>1}"><ahref="javascript:topage<${page.current1}>">上一頁</a>|</s:if><s:iftest="%{#request.page.currentPage==#request.page.totalPage}"> 下一頁|</s:if><s:iftest="%{#request.page.currentPage<#request.page.totalPage}"><ahref="javascript:topage<${page.currentPage+1}>">下一頁</a>|</s:if><s:iftest="%{#request.page.currentPage==#request.page.totalPage}"> 尾頁</s:if><s:iftest="%{#request.page.currentPage<#request.page.totalPage}"><ahref="javascript:topage<${page.totalPage}>">尾頁</a></s:if> |每頁顯示:${page.maxPerPage}條</s:if></td></tr>5.3.3教師信息只有管理員用戶才可以擁有此功能的操作權(quán)限,可以添加,查看并修改教師信息。如圖5-6所示。圖5-6管理教師圖上圖5-6為添加教師頁面,管理員可以添加教師信息,同時為用戶賦角色,可以是教師,班主任,或者管理員,查看頁面同樣做了分頁,通過查看教師可以看到所有教師信息。5.3.4學(xué)生信息只有管理員用戶才可以擁有此功能的操作權(quán)限,可以添加,查看并修改學(xué)生信息。添加學(xué)生頁面如圖5-7所示。圖5-7學(xué)生管理圖管理員同樣可以增加新的學(xué)生信息,通過選擇不同班級,為學(xué)生分配班級。5.3.5班級信息只有管理員用戶才可以擁有此功能的操作權(quán)限,可以添加,查看并修改班級信息。添加班級頁面如圖5-8所示。圖5-8班級管理圖每個班級都要指定一個任課教師,可以通過下拉列表動態(tài)選擇。5.4成績管理模塊5.4.1成績錄入此模板為整個項目的核心,主要由任課老師操作,任課老師可以錄入自己所任課程學(xué)生成績,管理員雖然擁有成績錄入的權(quán)限,但是從效率方面考慮管理員不使用此功能。如果角色為任課老師,則如圖5-9所示。圖5-9成績錄入圖首先用戶選擇課程,選擇課程之后會動態(tài)加載學(xué)生,此次用到了struts2框架的doubleselect[8]標(biāo)簽——二級下拉列表聯(lián)動,具體二級下拉列表聯(lián)動代碼如下:<s:doubleselectid="student"name="score.student.id"list="studentList"listKey="id"listValue="name"doubleList="types[top.id]"doubleName="score.course.id"doubleListKey="id"doubleListValue="name"theme="simple"/>成績可以分為期末成績和補考成績,根據(jù)類型錄入不同的成績。如果角色為管理員,則可以錄入所有課程的信息,頁面與上圖類似。5.4.2成績查詢此模板也是整個項目的核心,可以由學(xué)生,任課老師,班主任和管理員操作。學(xué)生可以查看自己所學(xué)課程的所有考試成績,任課老師可以查詢自己所任課程學(xué)生成績,管理員可以查看所有課程的學(xué)生成績,班主任可以查看自己所任課程信息,同時也可以查看自己所帶班級的學(xué)生課程信息以及針對某一門課程的信息。如果角色為任課老師,則如圖5-10所示。圖5-10任課老師成績查詢圖任課老師可以選擇自己所任的所有課程,并查看各課程的學(xué)生成績情況。選擇課程后如圖5-11所示。圖5-11任課老師成績界面圖同時,此處用到了Jquery局部刷新,選擇課程后,頁面不是整體刷新,而只是下拉框以上部分動態(tài)刷新。具體局部刷新代碼如下:functionchangeCourse<>{ $.ajax<{ type:"POST", url:"score!scoreByCourse",//contentType:"application/x-www-form-urlencoded;charset=utf-8", data:"courseId="+$<"#course">.val<>, success:function<data>{ $<"#courseScore">.empty<>; $<"#courseScore">.html<data>; } }>;}這里也是用的ajax技術(shù)實現(xiàn)的。用戶可以編輯或者刪除成績。管理員頁面與上圖類型,只是管理員可以查看的課程比任課老師多,他可以查看到所有課程的學(xué)生成績情況。如果角色是班主任,可以看到如圖5-12所示。圖5-12班主任成績查詢圖如圖5-13,班主任可以是任課教師,所有他可以查看自己所任課程信息,同時作為班主任,他可以查看班級成績情況,可以按班級來查看,也可以按學(xué)生來查看。如果按班級查看,點擊選擇班級,則可以看到如圖5-13所示。圖5-13班主任查詢自己班學(xué)生成績圖如圖5-13,選擇班級之后,可以查看班主任所帶某個班級的所有學(xué)生的成績。同樣也是ajax局部刷新實現(xiàn),其后臺代碼如下所示:HttpServletResponseresponse=ServletActionContext.getResponse<>; response.setHeader<"Cache-Control","no-cache">; response.setContentType<"text/html;charset=UTF-8">; PrintWriterout=response.getWriter<>; Studentse=newStudent<>; se.setId<Integer.parseInt<courseId>>; List<Score>allScore=scoreService.getStudentScore<se>; Stringresult="<tablewidth=\"99%\"border=\"0\"align=\"center\"cellpadding=\"3\"cellspacing=\"1\"class=\"table_style\">"+"<trclass=\"left_title_1\">"+"<tdwidth=\"8%\"align=\"center\"><spanclass=\"left-title\">編號</span></td>"+"<tdwidth=\"10%\"align=\"center\">姓名</td>"+"<tdwidth=\"15%\"align=\"center\">課程</td>"+"<tdwidth=\"12%\"align=\"center\">學(xué)分</td>"+"<tdwidth=\"12%\"align=\"center\">學(xué)時</td>"+"<tdwidth=\"10%\"align=\"center\">成績</td>"+"<tdwidth=\"16%\"align=\"center\">類型</td>"+"<tdwidth=\"17%\"align=\"center\">學(xué)期</td>"+"</tr>";for<inti=0;i<allScore.size<>;i++>{ Scores=allScore.get<i>; result=result+"<trclass=\"left_title_2\"align=\"center\">"+"<tdalign=\"center\">"+<i+1>+"</td>"+"<tdalign=\"center\">"+s.getStudent<>.getName<>+"</td>"+"<tdalign=\"center\">"+s.getCourse<>.getName<>+"</td>"+"<tdalign=\"center\">"+s.getCourse<>.getCredits<>+"</td>"+"<tdalign=\"center\">"+s.getCourse<>.getPeriod<>+"</td>"+"<tdalign=\"center\">"+s.getScore<>+"</td>";if<s.getType<>.toString<>.equals<"1">>{ result=result+"<tdalign=\"center\">"+"期末成績"+"</td>"; }else{ result=result+"<tdalign=\"center\">"+"補考成績"+"</td>"; } result=result+"<tdalign=\"center\">"+s.getTerm<>+"</td></tr>"; } result=result+"</table>"; System.out.println<result>; out.print<result>;如果選擇學(xué)生,則可以看到班主任所帶班級某個學(xué)生的所有個人成績。如圖5-14所示。圖5-14班主任查詢某個學(xué)生成績圖如圖5-15,可以查看到某學(xué)生的所有成績。如果角色為學(xué)生,則可以查看到自己所有課程的成績,如圖所示。圖5-15學(xué)生成績查詢圖具體顯示代碼如下:<s:iteratorvalue="sList"id="score"status="s"><trclass="left_title_2"align="center"><tdalign="center">${1+s.index}</td><tdalign="center"><s:propertyvalue="%{#score.term}"/></td><tdalign="center"><s:propertyvalue="%{#}"/>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護理常見急救知識與技能操作相關(guān)試題測試題附答案
- 鎮(zhèn)江初中模擬考試試題及答案
- 南昌公務(wù)員模擬測試題及答案
- 2025年眼科試題題庫大題及答案
- 2025年旅游景區(qū)文秘題庫及答案
- 科二模擬考試題目及答案
- 2025年消防保密知識題庫及答案
- 化學(xué)探究性學(xué)習(xí)能力測評試題
- 化學(xué)法治精神表現(xiàn)評估試題
- 村滇銀行考試試題及答案
- LED大屏幕維修合同及服務(wù)規(guī)范
- 養(yǎng)老院電器安全知識培訓(xùn)課件
- 《煤礦安全質(zhì)量標(biāo)準(zhǔn)化標(biāo)準(zhǔn)》
- 評標(biāo)專家培訓(xùn)體系
- 晶狀體脫位課件
- 2025江蘇蘇州工業(yè)園區(qū)文萃小學(xué)行政輔助人員招聘1人考試參考試題及答案解析
- 四川省考真題2025
- 2025年馬鞍山和縣安徽和州文化旅游集團有限公司招聘5人考試歷年參考題附答案詳解
- 學(xué)習(xí)型班組匯報
- 龍宗智證據(jù)構(gòu)造課件
- 生物制藥行業(yè)2025技術(shù)突破與藥物研發(fā)進展報告
評論
0/150
提交評論