




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
目錄第一章引言隨著計算機技術的迅速發展,計算機的應用也日益廣泛。在企業的經營活動中,員工的出勤管理是企業信息管理的一個重要環節,人力資源的大量使用會造成大量的人力物力和時間的浪費,同時還存在著大量的統計問題。一所學校對其員工正常上下班、延時、加班費等進行考勤,并以報表的形式輸出,合理地調整工作日程,并利用電腦對考勤進行統計、分析、處理,從而得出所需的各類統計報告和考勤原始資料。隨著學校的發展,學生考勤及成績管理系統可以更好的協助有關單位,管理學生,其內容是學校決策人員及管理者的關鍵,為使用者提供足夠的資訊及快速的查詢工具。系統具有創建管理、修改管理、刪除管理、多字段查看、提醒、統計等功能。節省資源,對于我們的學校來說,尤其是在管理上。為進一步突出工作任務管理體系設計的重要意義,并在實際應用中驗證了該體系在提高工作效率、最大化信息管理與共享方面的作用。學生的出勤與成績管理是學校的一項重要工作,它可以實現對學生基本信息管理、課程信息管理、成績錄入、數據查詢、數據管理等管理工作。隨著時代的發展和計算機技術的日益普及,手工操縱的學生信息正在逐步被電腦所代替。學生的考勤與考試成績管理系統,只要由任課教師將成績錄入系統,進行排序,計算平均分數,統計人數,全部由電腦進行,無需任何繁瑣的工作。利用學生考勤與考試成績管理體系,有效地降低了管理工作量,提高了工作的效率和質量,使教師和管理者有了更多的時間和精力去做其它的事情。。開發環境與系統分析第二章開發環境與系統分析2.1開發技術本系統是以B/S結構為基礎,應用了前、后兩個獨立的管理體系結構。利用SpringBoot和MyBatis編程,利用Vue,ElementUI技術進行前端接口的設計和交互;2.1.1SpringBootSpringBoot是一個全新的架構,它通過在Maven的pox.xml文件中增加相關的依賴程序,并以注釋的方式取代了冗長的xml配置。這樣,開發者就可以從復雜的配置和管理中解脫出來,更多地關注于商業邏輯代碼的編寫。2.1.2Vue.jsVue是一個漸進的框架,用來建立一個用戶接口。Vue核心庫專注于視圖,它不但容易使用,而且容易與第三方庫或已有的項目進行集成。Vue的壽命分為八個階段,即:建立之前(創建)、加入之前(先加載)、加載后(加載)、升級之前(加載)、“刪除”(刪除)。2.1.3MyBatisMyBatis是一個半自動化的對象關系圖的持久層框架,在SpringBoot框架中,Java的實體類別對應于一個資料庫中的資料表,而實體類別的屬性則要一一對應資料庫資料庫的欄位。MyBatis是一個非常靈活的工具,它可以為一個表和一個表之間的一個,一個多個,或多個多個的關系。2.2系統分析學生出勤管理系統的設計,可以讓使用者充分發揮其作用,從而為其提供多種方便。在對學生、教師、輔導員三種用戶進行需求分析之后,本文將對學生、教師、輔導員三種用戶進行詳細的說明。2.1.1學生用戶學生用戶:學生在使用學號登陸系統之后,可以從系統中看到個人信息,參考排課表,線上休學,并可隨時了解請假進度。同時,支持觀察個人考勤,修改個人密碼等等。2.1.2教師用戶老師使用者:老師可以查看學生的班級信息,學生的信息。對課堂上的出勤情況進行記錄,并能自動保存。同時,教師可以根據個人信息查看個人信息,修改個人密碼。2.1.3管理員用戶系統管理員:系統管理員可以隨時查詢學生的出勤情況,并對學生的請假進行審核。另外,該系統還支持管理員用戶輸出考勤等相關數據,根據年級統一考勤信息,對用戶進行管理。系統需求分析第三章系統需求分析3.1系統功能需求本文對這四類用戶進行了系統的分析,并對其進行了詳細的研究。3.1.1管理員對功能的需求(1)增、減、查、改年級資料,為各年級指定課程。在刪除年級的同時,還會刪除各年級、各年級、各班、各科目、各科目的相關資料。(2)增加、刪除和修改班級信息。當刪除班級時,將班底的同學全部刪除,并與教師的課程資料及成績相對應。(3)在課程資訊管理方面,主要有:增加學校所需要的資料;在刪除本課程的同時,刪除本課程的相關資訊。(4)學生資料的管理:添加、刪除、更改、按學號、姓名、年級、班級查詢、將學生資料輸出至Excel表格、輸入學生資料、大量刪除。(5)添加、刪除、修改教師信息、通過名字查找教師信息、安排教師信息、大量刪除教師信息。3.1.2老師對功能的需求(1)老師可以將學生的分數資料輸入到班級中,并對其進行修改。(2)檢查各班的平均分數和分數,以及各個班級的測試。(3)個人資料的查詢。3.1.3學生對功能的需求(1)學生可以查看自己的各次考試的成績信息。(2)查看個人信息。3.2系統可行性3.2.1技術可行性系統采用B/S結構,利用SpringBoot和MyBatis編寫業務邏輯,前端采用Vue和ElementUI,MySQL作為系統數據庫,開發人員已經熟練掌握了前、后兩種技術,能夠在一定的時間內完成系統的各項工作。3.2.2經濟和操作可行性所采用的技術與架構均為開放源碼。在這個開發過程中,沒有多少的經濟成本。目前,大多數學校都已經安裝了計算機,在網絡暢通的條件下,系統可以直接通過瀏覽器進行訪問,無需硬件設備的支持。并且操作簡便,反應迅速。所以,它具有一定的經濟性和可操作性。數據庫的設計第四章數據庫的設計4.1數據庫需求分析(1)對各年級進行增刪、查、修改等,為各年級分配課程。在刪除年級的同時,刪除了班級、學生、考試、考試結果等相關的老師的課程資料。(1)資料項目:每個資料的名字、意義、類別、取值區間和與其它資料項目的邏輯關系。(2)資料集合:包括名字、意義和組成資料集合的多個資料項目的邏輯關系。(3)資料流程:在應用系統的工作中,資料的輸入、處理、輸出等。4.2數據庫邏輯設計數據庫邏輯的目的在于使數據庫與對象數據進行匹配,通過數據庫管理系統對數據庫進行關聯,并決定數據間的相互關系。當數據庫表達到用戶要求后,就可以把對象數據轉化成符合系統要求的數據類型,從而實現數據的集成。4.3實體模型圖各用戶操作流程模型如圖1、圖2、圖3、圖4所示:圖4-SEQ圖\*ARABIC1系統功能流程模型圖圖4-SEQ圖\*ARABIC2教師提交記錄模型圖(2)老師錄入成績流程圖(圖3所示)老師登錄系統,查看考試信息,選擇班級,錄入學生成績。圖4-3老師錄入成績流程圖圖4-SEQ圖\*ARABIC4學生出勤記錄模型圖4.4數據庫的運行和維護完成了數據庫的設計,即可開始使用。然而,這個設計的流程還沒有完成,因為應用程序的使用、物理存儲的改變,數據庫也會隨之發生變化。設計工作可以持續進行,功能也可以得到改進。為了實現這個目的,下列項目將在數據庫的實際操作階段中被監控:數據的存儲與恢復:建立一個記錄檔案,定期備份數據庫,以防止由于故障造成的數據丟失,盡量減少故障對數據庫的損害。數據庫的安全性和完整性控制:按用戶的權限對數據進行分組,定期監測數據庫的完整性變化,對各種數據進行備份,對各種數據進行靈活的權限管理。數據庫的容量持續擴大。數據庫的重組重建:當數據庫達到預定的運行周期后,數據庫的記錄增加,數據庫的可用存儲空間將會導致系統的性能逐漸下降。要實現歷史數據的集成、數據庫內部的存儲方式的優化、數據庫的重組和重組。
系統詳細設計第五章系統詳細設計5.1設計思路在后臺,利用“MyBatis-Plus”技術,采用SpringBoot架構和MyBatis-Plus技術。SpringBoot框架不需要編寫太多的概要,MyBatis-Plus提供了大量的單表操作,從而降低了SQL語句的書寫。使用MySQL作為系統的資料庫.前面采用漸進Vue和ElementUI設計網頁。通過IDEA和VisualStudio代碼來完成前、后兩個部分的編碼。所采用的技術都是當前的主流技術,簡化了開發,提高了開發的速度。5.2系統模塊設計與實現5.2.1公共模塊設計用戶登錄用戶分為管理員、教師、學生三個部分,用戶在系統中輸入帳號、口令、驗證碼,然后在用戶輸入正確的信息后產生“token”進行存取和數據處理,否則將會對用戶的一切行為進行攔截。阻止使用者在界面上瀏覽和修改資料,見下圖。圖5-1用戶登錄界面圖@ApiOperation("用戶登錄")
@PostMapping("/login")
publicResult<?>login(@RequestBodyUserVouser,@RequestParam("code")Stringcode,HttpServletRequestrequest){
//對密碼進行加密比較
Stringpwd=MD5Util.string2MD5(user.getPassword());
user.setPassword(pwd);
//根據賬號和密碼查詢數據Userres=userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getAccount,user.getAccount()).eq(User::getPassword,user.getPassword()));if(res==null)returnResult.error("-1","用戶名或密碼錯誤");
//獲取生成圖形驗證碼的結果
Stringcaptcha=(String)request.getSession().getAttribute("captcha");
//判斷驗證碼是否為空和正確
if(StrUtil.isEmpty(code)||!captcha.equalsIgnoreCase(code))returnResult.error("-2","驗證碼錯誤");
user.setName(res.getName());
user.setType(res.getType());
//生成token
Stringtoken=TokenUtils.getToken(user.getAccount(),user.getPassword());
user.setToken(token);
returnResult.success(user);
}系統首頁系統首頁是各個用戶的公共界面,用echart.js餅圖和柱狀圖的形式向用戶展示了各年級的人數和考試次數情況,如圖所示。圖5-2用戶登錄界面圖5.2.2管理員模塊設計權限管理管理員通過用戶權限類型和用戶名模糊查詢用戶信息,管理員可以添加、修改和刪除用戶信息,如圖22所示。用戶密碼經過MD5加密,管理員無法查看密碼,當用戶忘記密碼時,管理員只能通過編輯框里的重置密碼按鈕重置用戶密碼為初始密碼(123456),如圖所示。圖5-3權限管理考試信息管理人員可以安排各年級的測驗,并在加入測驗時,將各班的測驗結果設定為預設,由教師填寫分數。考試狀態預設為不可見的考生,通過切換控制考試狀態。科任教師在確認了學生的分數后,可以向學生公布分數。也可以對測試信息進行更改,并將其刪除。當考生的分數被刪除的時候,他們的分數也會被刪除。系統管理員選擇了測試,并按一下分數,就可以看到考生的分數信息。根據學號、班、班、班的資料,對學生的分數進行修正。圖5-4考試信息管理5.2.3教師信息管理管理員可在系統中添加教師的基本信息,為老師設置年級班級課程,在搜索框中輸入教師姓名模糊查詢教師信息,根據年級,班級和課程查詢教師信息。刪除和修改教師信息,如圖所示。圖5-5教師信息管理5.2.4學生信息管理管理員可通過學生姓名,所在年級和班級查找學生信息,修改和刪除學生信息,還可以通過excel表格批量導入學生信息,導出學生信息,批量刪除學生信息。在添加學生信息時,學號不可重復。在刪除學生信息同時刪除學生的成績信息和賬號信息,如圖所示。圖5-6學生信息管理@ApiOperation(value="導入學生信息")
@PostMapping("/upload")
publicResult<?>importStudent(MultipartFilefile){
ImportParamsparams=newImportParams();
List<Grade>gradeLists=gradeService.list();
List<Clazz>clazzLists=clazzService.list();
params.setTitleRows(0);
try{
List<Student>list=ExcelImportUtil.importExcel(file.getInputStream(),Student.class,params);
for(inti=0;i<list.size();i++){
Studentone=studentService.getOne(Wrappers.<Student>lambdaQuery().eq(Student::getStuId,list.get(i).getStuId()));
if(one!=null){
returnResult.error("-2",list.get(i).getStuId()+"已存在");
}
Integerid=gradeLists.get(gradeLists.indexOf(newGrade(list.get(i).getGrade().getName()))).getId();
list.get(i).setGradeId(id);
Stringname=clazzLists.get(clazzLists.indexOf(newClazz(list.get(i).getClazz().getName()))).getName();
IntegerclazzId=clazzService.findId(name,id);
if(clazzId==null){
returnResult.error("-2",list.get(i).getGrade().getName()+name+"不存在");
}
list.get(i).setClazzId(clazzId);
//批量插入用戶信息
Useruser=newUser();
user.setAccount(list.get(i).getStuId());
user.setName(list.get(i).getStuName());
user.setType(3);
user.setPassword("e10adc3949ba59abbe56e057f20f883e");
userService.save(user);
}學生考勤信息管理班主任可以通過學生姓名查詢本班學生的考勤信息,如圖32所示。班主任只能對本班級的學生進行操作,包括添加,修改,刪除,導入,導出和批量刪除學生信息,如圖所示。圖5-7學生考勤信息參考文獻第六章系統測試6.1測試目的試運行是指在正式運行前對系統進行性能和功能的檢測,以達到用戶的要求,保證系統的正常工作。軟件測試是為了發現在開發過程中沒有被發現的問題,從而使開發人員能夠找到并糾正這些問題,從而使其符合標準。所以,這一次的測試,主要是為了發現系統中的一些潛在問題,從而提高系統的性能。開發人員可以在不同的平臺上,組建一個測試團隊,對系統的各部分進行測試,以確定系統是否符合使用者的要求,并能達到相應的效果。6.2測試原則一個成功的測試,必須做到以下幾點:(1)在開發過程中多次進行測試。(2)測試要分組進行,各組間要對測試結果進行對比。(3)設計測試時應涉及合理與非法兩種輸入測試。(4)制定詳細的測試計劃,嚴格按照計劃進行測試。(5)記錄好每一次的測試結果,并加以比對、妥善保存,以便于總結出最終的分析報告。6.3測試方法針對相關的目標,本文從以下幾個方面進行了實驗。(1)LogistTest使用最直接的方式進行登錄測試。輸入合法、非法、空白的登陸界面,系統會給出相應的提示,其中還包含了一個錯誤。(2)接口試驗這是最容易被忽視的一步,測試員要仔細檢查接口,注意任何有Bug的地方。在進行測試時,應當對標準語言進行統一,避免由于忽視某個開發項目的名字和模塊而造成Bug。(3)功能性檢驗這一環節的測試,主要是為了檢驗系統的各項需求函數的執行情況。在檢測的時候
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論