版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
III頁共42頁【內(nèi)容摘要】隨著時代的發(fā)展,傳統(tǒng)的學生成績管理方式已經(jīng)不能滿足學校的需求,將學生成績信息化管理無疑是當前最好的選擇。中學成績管理系統(tǒng)采用B/S架構(gòu),是一個前后端分離管理系統(tǒng)框架,前端主要用到了Vue框架,Axios和ElementUI提供的組件進行頁面設(shè)計和交互,后端運用了SpringBoot框架和Mybatis編寫業(yè)務邏輯,Java開發(fā)語言,MySQL作為系統(tǒng)的數(shù)據(jù)庫,前后端技術(shù)都是當前較為流行的框架。使用SpringBoot框架大大減少了配置文件的使用,簡化開發(fā)配置。本系統(tǒng)主要有四種用戶類型,每個用戶都有著不同的權(quán)限,管理員管理著整個學校的信息包括學校的基礎(chǔ)信息,各人員的個人信息和學生的考試成績情況。班主任管理著本班學生信息和成績信息,老師負責錄入學生成績,學生查看成績信息?!娟P(guān)鍵詞】中學生成績管理;SpringBoot;Vue;MySQL;MyBatis1前言研究現(xiàn)狀在中學階段,學生的學習任務重,考試也會非常頻繁,學生成績的管理顯得尤為重要,現(xiàn)如今,大部分老師都是通過Office的Excel表格統(tǒng)計學生的成績,將學生得成績錄入到表格中排序,得出學生的排名,不過在計算班級的平均分,及格率等等信息時,操作起來非常麻煩,讓一些沒有系統(tǒng)學習過Excel表格的老師望而卻步,而且需要花大量的時間整理,錄入成績時也不能保證百分百正確,保密性差。在當一個學校經(jīng)過幾年的積累,學生的成績信息累積量會非常大,查找起來非常麻煩,而且學生成績信息容易丟失。學生成績管理是學校重要的日常工作之一,可以將學生基本信息管理、課程信息管理、成績錄入及查詢統(tǒng)計等教學及教務管理工作,通過網(wǎng)絡進行信息化的系統(tǒng),可使得教學管理信息傳遞更為方便快捷。隨著當今社會的不斷發(fā)展,計算機技術(shù)的廣泛應用,手動操作學生信息正逐漸被計算機技術(shù)所取代。學生成績管理系統(tǒng)只需要科任老師將成績輸入到系統(tǒng)中,排序,計算平均分和統(tǒng)計人數(shù)都可以交給計算機來完成,不需要繁瑣的操作。學校在學生成績管理系統(tǒng)的幫助下,管理的工作量大幅減少,工作效率和工作質(zhì)量得到保證,教學人員和管理人員能夠有充足的時間和精力來完成其他任務,學生也可以通過成績管理系統(tǒng)來查詢成績,從而合理的安排時間來學習或復習。研究目的及意義對于任何一所學校而言,學生成績管理系統(tǒng)都扮演著重要的角色,傳統(tǒng)的方式太過于繁雜,不僅浪費大量的時間和精力,而且學生的成績信息保密性不高,容易丟失?,F(xiàn)如今,計算機的普及,通過信息化管理學生成績,方便教師錄入學生成績,把工作重心放在如何提高學生成績上??迫卫蠋煂⒊煽冧浫氲较到y(tǒng)中,讓計算機代替任課老師統(tǒng)計學生成績信息,學生登錄系統(tǒng)即可查看成績信息,大大提高了工作效率,減少老師的工作強度,實現(xiàn)中學生成績管理的信息化、自動化和實用化。開發(fā)環(huán)境與技術(shù)系統(tǒng)開發(fā)環(huán)境軟件環(huán)境:JDK1.8.0_201+MySQL8.0.17+Tomcat9.0.54硬件環(huán)境:Intel(R)Core(TM)i5-8250UCPU@1.60GHz1.80GHz+8G運行內(nèi)存+windows10專業(yè)版開發(fā)工具:IntelliJIDEA2019.2.4+Navicat15+VisualStudioCode+MicrosoftEdge瀏覽器開發(fā)技術(shù)本系統(tǒng)采用B/S架構(gòu),使用前后端分離管理系統(tǒng)框架進行開發(fā)。運用SpringBoot和MyBatis編寫業(yè)務邏輯,使用Vue,ElementUI技術(shù)進行前端界面設(shè)計和交互和axios作為前端跨域請求,使用Navicat15作為MySQL數(shù)據(jù)庫管理器,更好的展現(xiàn)出表與表之間的關(guān)系。SpringBootSpringBoot是一種全新的框架,其目的就是簡化Spring的配置,通過Maven的pox.xml文件添加相關(guān)依賴包,然后用注解的形式代替繁瑣的xml配置來管理對象的生命周期。使得開發(fā)人員擺脫了復雜的配置工作和依賴管理工作,更加專注于業(yè)務邏輯代碼的編寫。Vue.jsVue是一套用于構(gòu)建用戶界面的漸進式框架。Vue的核心庫只關(guān)注視圖層,不僅易于上手,還便于與第三方庫或既有項目整合。Vue有八個生命周期,分別是創(chuàng)建前(beforeCreate),創(chuàng)建后(created),載入前(beforeMount),載入后(mounted),更新前(beforeUpdate),更新后(updated),銷毀前(beforeDestroy),銷毀后(destroyed)。MyBatisMyBatis是一款半自動的對象關(guān)系映射的持久層框架,在和SpringBoot框架使用中,Java的實體類對應數(shù)據(jù)庫中的一張表,實體類的屬性必須與數(shù)據(jù)庫表的字段一一對應。MyBatis具有較高的靈活性,當表與表之間存在一對一,一對多,或者多對多關(guān)系時,MyBatis提供了關(guān)聯(lián)查詢的動態(tài)SQL功能。系統(tǒng)需求分析系統(tǒng)功能需求本系統(tǒng)的角色主要有管理員,班主任,教師和學生,下面我們將對這四種用戶進行系統(tǒng)分析。管理員對功能的需求(1)對年級信息的增刪查改,為年級分配課程。刪除年級的同時刪除年級下的班級,學生,考試,考試成績信息和相應老師的課程信息。(2)對班級信息的增刪查改。刪除班級時,刪除班級下的學生,對應老師的課程信息和學生成績信息。(3)對課程信息的管理包括:添加學校所需的課程信息,為各年級分配相應的課程。在刪除課程同時刪除年級下的課程信息。(4)對學生信息的管理包括:增加,刪除,修改,通過學號,姓名,年級,班級查找學生信息,導出學生個人信息到Excel表格中,通過Excel表格導入學生信息,批量刪除學生信息。(5)對老師信息的增刪查改,通過姓名查詢老師信息,為老師安排課程信息,批量刪除老師信息。(6)對班主任信息的管理包括:增加,刪除,修改,通過姓名,年級,班級查詢班主任的信息,每個班級只能有一名班主任。(7)對考試信息的增刪查改,通過年級查詢考試信息。管理員可以控制每一門考試的狀態(tài)是否給學生查看,刪除考試的同時刪除考試下的成績信息。(8)對成績信息的管理包括:修改,刪除,查看學生成績信息。班主任對功能的需求(1)班主任管理該班級的學生信息。(2)查看本班的考試列表。(3)查看學生成績信息,修改學生成績信息。老師對功能的需求(1)教師可以錄入本班學生的成績信息,修改學生成績。(2)查看考試的班級平均分和最高分,各班級的考試情況。(3)查看個人信息。學生對功能的需求(1)學生可以查看自己的各次考試的成績信息。(2)查看個人信息。系統(tǒng)可行性技術(shù)可行性中學成績管理系統(tǒng)采用B/S架構(gòu),使用SpringBoot和MyBatis編寫業(yè)務邏輯,使用Vue和ElementUI進行前端設(shè)計,MySQL作為系統(tǒng)數(shù)據(jù)庫,開發(fā)人員已熟悉前后端技術(shù),可以在規(guī)定時間內(nèi)完成系統(tǒng)的功能。經(jīng)濟和操作可行性開發(fā)中使用的技術(shù)和框架都是開源的。開發(fā)過程中并不需要花費太多經(jīng)濟。中學生成績管理系統(tǒng)采用B/S架構(gòu),現(xiàn)如今,大部分學校已安裝電腦,在網(wǎng)絡流暢的情況下,本系統(tǒng)只需通過瀏覽器即可訪問和操作,不需要太好的硬件設(shè)備來支持。而且操作簡單,響應快。因此,無論是在經(jīng)濟還是操作上都是可行的。系統(tǒng)總體設(shè)計系統(tǒng)功能模塊劃分根據(jù)以上對系統(tǒng)的需求分析和各用戶對系統(tǒng)的功能需求,本系統(tǒng)主要分為四個功能模塊,分別是管理員模塊,班主任模塊,教師模塊和學生模塊。管理員有著本系統(tǒng)最高權(quán)限,管理著用戶、班主任、教師、學生、年級、班級、課程、考試、成績信息。班主任管理著本班學生信息和成績信息。教師負責學生成績的錄入,學生只能查看成績。綜上所述,系統(tǒng)的功能模塊圖如圖1所示。圖1系統(tǒng)功能模塊圖系統(tǒng)流程圖(1)登錄流程圖(如圖2所示)用戶進入登錄頁,輸入賬號,密碼和驗證碼進行登錄,只有同時正確是才能進入系統(tǒng)首頁,否則提示相應的錯誤,返回登錄。圖2登錄流程圖(2)老師錄入成績流程圖(圖3所示)老師登錄系統(tǒng),查看考試信息,選擇班級,錄入學生成績。圖3老師錄入成績流程圖(3)學生查看成績流程圖(如圖4所示),管理員發(fā)布成績,學生登錄系統(tǒng),選擇考試,查看成績信息。圖4學生查看成績流程圖用戶用例圖學生用例圖圖5學生用例圖班主任用例圖圖6班主任用例圖教師用例圖圖7教師用例圖管理員用例圖圖8管理員用例圖數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫E-R圖設(shè)計(1)用戶信息實體屬性圖圖9用戶實體圖年級信息實體屬性圖圖10年級實體圖班級信息實體屬性圖圖11班級實體圖課程信息實體屬性圖圖12課程實體圖班主任信息實體屬性圖圖13班主任實體圖教師信息實體屬性圖圖14教師實體圖學生信息實體圖圖15學生實體圖考試信息實體圖圖16考試實體圖成績信息實體圖 圖17成績實體圖中學成績管理涉及以下九個實體。用戶:屬性有賬號、密碼、真實姓名;年級:屬性有年級編號,年級名稱;班級:屬性有班級編號,班級名稱;課程:屬性有課程編號,課程名稱;班主任:屬性有教工號,姓名,性別,年齡,電話,年級,班級;教師:屬性有教工號,姓名,性別,電話;學生:屬性有學號,姓名,性別,年齡,電話;考試:屬性有考試編號,考試名稱,考試年級,考試時間,考試類型,考試備注;成績:屬性有學號,姓名,年級,班級,課程,分數(shù);綜上所述,系統(tǒng)E-R圖(如圖18所示)圖18系統(tǒng)E-R圖數(shù)據(jù)庫表設(shè)計本系統(tǒng)采用MySQL8.0作為系統(tǒng)的數(shù)據(jù)庫,本系統(tǒng)需要用到11張表,分別是用戶信息表,年級信息表,班級信息表,課程信息表,班主任信息表,老師信息表,學生信息表,考試表,學生成績表,年級下的課程表,老師教授課程表。用戶表表1用戶表表名user字段名數(shù)據(jù)類型說明idint(11)用戶id(主鍵)accountvarchar(30)賬號passwordvarchar(30)密碼namevarchar(20)真實姓名typeint(2)用戶類型(1為管理員,2為老師,3為學生,4為班主任)年級表表2年級表結(jié)構(gòu)設(shè)計表名grade字段名數(shù)據(jù)類型說明idint(11)年級編號(主鍵)namevarchar(50)年級名稱班級表表3班級表結(jié)構(gòu)設(shè)計表名clazz字段名數(shù)據(jù)類型說明idint(11)班級編號(主鍵)namevarchar(50)班級名稱grade_idint(11)年級外鍵課程表表4課程表結(jié)構(gòu)設(shè)計表名course字段名數(shù)據(jù)類型說明idint(11)課程編號(主鍵)namevarchar(50)課程名稱班主任信息表表5班主任信息表結(jié)構(gòu)設(shè)計表名headmaster字段名數(shù)據(jù)類型說明idint(11)id(主鍵)headmaster_idint(11)教工號headmaster_namevarchar(50)班主任姓名sexvarchar(255)性別ageint(4)年齡phonevarchar(255)電話clazz_idint(11)班級外鍵grade_idint(11)年級外鍵老師信息表表6老師信息表結(jié)構(gòu)設(shè)計表名teacher字段名數(shù)據(jù)類型說明idint(11)id(主鍵)t_idint(11)教工號t_namevarchar(20)老師姓名sexvarchar(4)性別phonevarchar(20)電話學生信息表表7學生信息表結(jié)構(gòu)設(shè)計表名student字段名數(shù)據(jù)類型說明idint(11)ID(主鍵)stu_idvarchar(20)學號stu_namevarchar(20)姓名sexvarchar(4)性別ageint(3)年齡phonevarchar(20)電話clazz_idint(11)班級外鍵grade_idint(11)年級外鍵考試信息表表8考試信息表結(jié)構(gòu)設(shè)計表名exam字段名數(shù)據(jù)類型說明idint(11)考試編號(主鍵)namevarchar(50)考試名稱timedate考試時間remarkvarchar(255)備注typeint(2)類型grade_idint(11)年級外鍵clazz_idint(11)班級外鍵course_idint(11)課程外鍵statusint(2)狀態(tài)(0為學生不可見,1為學生可見)成績信息表表9成績信息表結(jié)構(gòu)設(shè)計表名escore字段名數(shù)據(jù)類型說明idint(11)id(主鍵)exam_idint(11)考試外鍵clazz_idint(11)班級外鍵student_idint(11)學生外鍵grade_idint(11)年級外鍵course_idint(11)課程外鍵scoreint(5)成績年級課程表表10年級課程表結(jié)構(gòu)設(shè)計表名grade_course字段名數(shù)據(jù)類型說明idint(11)id(主鍵)grade_idint(11)年級外鍵clazz_idint(11)班級外鍵老師班級課程表表11老師班級課程表結(jié)構(gòu)設(shè)計表名clazz_course_teacher字段名數(shù)據(jù)類型說明idint(11)id(主鍵)grade_idint(11)年級外鍵clazz_idint(11)班級外鍵course_idint(11)課程外鍵teacher_idint(11)老師外鍵系統(tǒng)詳細設(shè)計設(shè)計思路中學成績管理系統(tǒng)后端采用SpringBoot框架和MyBatis-Plus技術(shù)。SpringBoot框架不需要寫太多的配置文件,MyBatis-Plus提供了很多單表操作的方法,減少了SQL語句的編寫。MySQL作為系統(tǒng)數(shù)據(jù)庫。前端采用漸進式Vue框架和ElementUI進行頁面設(shè)計。使用IDEA和VisualStudioCode進行前后端代碼編寫。使用的前后端技術(shù)都是當前主流的框架技術(shù),方便,簡化開發(fā),提高開發(fā)效率。系統(tǒng)模塊設(shè)計與實現(xiàn)公共模塊設(shè)計用戶登錄系統(tǒng)用戶分為管理員、班主任、老師和學生,根據(jù)user表的type字段判斷用戶的類型進行用戶權(quán)限的管理和功能的劃分。用戶輸入賬號,密碼和驗證碼進行登錄系統(tǒng),當用戶輸入正確的信息后生成token進行訪問和數(shù)據(jù)操作,否則攔截用戶的所有操作。防止用戶通過接口查看和修改數(shù)據(jù),如圖19所示。圖19用戶登錄界面圖以下是登錄模塊后端接口的部分代碼:@ApiOperation("用戶登錄")
@PostMapping("/login")
publicResult<?>login(@RequestBodyUserVouser,@RequestParam("code")Stringcode,HttpServletRequestrequest){
//對密碼進行加密比較
Stringpwd=MD5Util.string2MD5(user.getPassword());
user.setPassword(pwd);
//根據(jù)賬號和密碼查詢數(shù)據(jù)Userres=userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getAccount,user.getAccount()).eq(User::getPassword,user.getPassword()));if(res==null)returnResult.error("-1","用戶名或密碼錯誤");
//獲取生成圖形驗證碼的結(jié)果
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);
}系統(tǒng)首頁系統(tǒng)首頁是各個用戶的公共界面,用echart.js餅圖和柱狀圖的形式向用戶展示了各年級的人數(shù)和考試次數(shù)情況,如圖20所示。圖20系統(tǒng)首頁修改密碼用戶登錄后將用戶信息放到session中,在修改頁面將用戶信息拿出來并放到表單中,用戶輸入密碼和確認密碼即可修改并返回重新登錄,如圖21所示。圖21修改密碼管理員模塊設(shè)計權(quán)限管理管理員通過用戶權(quán)限類型和用戶名模糊查詢用戶信息,管理員可以添加、修改和刪除用戶信息,如圖22所示。用戶密碼經(jīng)過MD5加密,管理員無法查看密碼,當用戶忘記密碼時,管理員只能通過編輯框里的重置密碼按鈕重置用戶密碼為初始密碼(123456),如圖23所示。圖22權(quán)限管理圖23修改用戶信息和重置密碼班主任信息管理管理員通過年級,班級和姓名分頁查詢班主任信息,在添加班主任信息時,如果該班級已存在班主任,則提示“該班級已存在班主任”,對班主任信息進行編輯和刪除操作,如圖24所示。圖24班主任信息管理教師信息管理管理員可在系統(tǒng)中添加教師的基本信息,為老師設(shè)置年級班級課程,在搜索框中輸入教師姓名模糊查詢教師信息,根據(jù)年級,班級和課程查詢教師信息。刪除和修改教師信息,如圖25所示。圖25教師信息管理學生信息管理管理員可通過學生姓名,所在年級和班級查找學生信息,修改和刪除學生信息,還可以通過excel表格批量導入學生信息,導出學生信息,批量刪除學生信息。在添加學生信息時,學號不可重復。在刪除學生信息同時刪除學生的成績信息和賬號信息,如圖26所示。圖26學生信息管理以下是導入學生信息的部分代碼:@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);
}
if(studentService.saveBatch(list))returnResult.error("-1","導入成功");
}catch(Exceptione){
e.printStackTrace();
returnResult.error("-2","導入失敗");
}
returnResult.error("-2","導入失敗");
}年級管理系統(tǒng)中最重要的就是年級這一模塊,管理員添加了年級才會有班級和學生考試成績信息等等。在添加年級信息時為每個年級設(shè)置相應的課程,在刪除年級信息時,通過數(shù)據(jù)庫表的CASCADE外鍵約束刪除年級下的學生,課程,班級,教師課程,班主任班級,考試,和成績信息,如圖27所示。圖27年級信息管理修改年級信息@ApiOperation(value="修改年級")
@PutMapping("/update")
publicResult<?>updateGrade(@RequestBodyGradeVogradeVo){
//前端課程列表
List<Integer>courseList=gradeVo.getCourseList();
//更新年級信息
Gradegrade=newGrade();
grade.setId(gradeVo.getId());
grade.setName(gradeVo.getName());
gradeService.updateById(grade);
Listlist=newArrayList();
//查找年級下的課程信息
List<GradeCourse>list1=gradeCourseService.list(Wrappers.<GradeCourse>lambdaQuery().eq(GradeCourse::getGradeId,gradeVo.getId()));
for(inti=0;i<list1.size();i++){
//把數(shù)據(jù)庫的課程id加到列表中
list.add(list1.get(i).getCourseId());
}
//數(shù)據(jù)庫的課程列表
System.out.println(list);
//前端課程的列表和數(shù)據(jù)庫課程列表的差值(添加的課程)
Listsubtract=(List)CollectionUtils.subtract(courseList,list);
System.out.println("添加的課程"+subtract);
for(intj=0;j<subtract.size();j++){
GradeCoursegradeCourse=newGradeCourse();
gradeCourse.setGradeId(gradeVo.getId());
gradeCourse.setCourseId((Integer)subtract.get(j));
gradeCourseService.save(gradeCourse);
}
//數(shù)據(jù)庫的列表和前端的差值(刪除的課程)
Listsubtract1=(List)CollectionUtils.subtract(list,courseList);
System.out.println("刪除的課程"+subtract1);
for(intk=0;k<subtract1.size();k++){
gradeCourseService.remove(Wrappers.<GradeCourse>lambdaQuery().eq(GradeCourse::getCourseId,subtract1.get(k)).eq(GradeCourse::getGradeId,gradeVo.getId()));
}
returnResult.success();
}班級管理管理員可通過班級名稱查找班級信息,添加,修改和刪除班級信息。在刪除班級的同時刪除老師對應的課程,班級下的學生信息和學生成績信息,如圖28所示。圖28班級信息管理課程管理管理員可以通過課程名稱查找,添加,修改和刪除課程信息,如圖29所示。圖29課程信息管理考試信息管理員可以為每個年級安排考試,在添加年級考試時,初始化該年級下學生的每門課程考試成績信息,任課老師只需要輸入成績即可。考試的狀態(tài)默認學生不可見,通過開關(guān)管理考試狀態(tài)。管理員確定科任老師錄入完學生成績后可開放給學生查看成績信息。還可以修改考試信息和刪除考試信息。在刪除考試信息同時,學生成績也會被刪,如圖30所示。管理員選擇考試,點擊查看成績即可找到本次考試學生的成績信息。通過學號,班級和課程查找學生成績信息,修改學生成績,如圖31所示。圖30考試信息管理圖31考試信息管理以下是添加考試的部分代碼:@ApiOperation(value="添加考試")
@PostMapping("/add")
publicResult<?>addExamAndInfo(@RequestBodyExamexam){
Examone=examService.getOne(Wrappers.<Exam>lambdaQuery().eq(Exam::getId,exam.getId()));
if(one!=null){
returnResult.error("-2","編號重復");
}//設(shè)置考試狀態(tài)為不可見
exam.setStatus(0);
if(examService.save(exam)){
//年級id
IntegergradeId=exam.getGradeId();
//根據(jù)年級查詢課程
List<GradeCourse>gradeCourseList=gradeCourseService.list(Wrappers.<GradeCourse>lambdaQuery().eq(GradeCourse::getGradeId,gradeId));
//查詢年級學生
List<Student>studentList=studentService.list(Wrappers.<Student>lambdaQuery().eq(Student::getGradeId,gradeId));//初始化考試成績信息for(inti=0;i<gradeCourseList.size();i++){
for(intj=0;j<studentList.size();j++){
Escoreescore=newEscore();
escore.setExamId(exam.getId());
escore.setGradeId(exam.getGradeId());
escore.setClazzId(studentList.get(j).getClazzId());
escore.setCourseId(gradeCourseList.get(i).getCourseId());
escore.setStudentId(studentList.get(j).getId());
escoreService.save(escore);
}
}
returnResult.success();
}
returnResult.error("-1","添加失敗");
}班主任模塊設(shè)計學生信息管理班主任可以通過學生姓名查詢本班學生的信息,如圖32所示。班主任只能對本班級的學生進行操作,包括添加,修改,刪除,導入,導出和批量刪除學生信息,如圖33所示。圖32學生信息圖33添加學生信息考試信息班主任可查看本班的考試信息,通過考試名稱查找相關(guān)考試信息,點擊查看成績即可查看當前考試的學生成績信息,班主任可通過學好和課程查詢學生成績信息,如圖34所示。圖34考試信息圖35成績信息教師模塊設(shè)計教學管理科任老師只能查看,導入修改,導出所教授班級對應課程的學生成績信息。通過考試列表選擇某一門考試進行學生成績的錄入和修改??迫卫蠋熆梢钥吹桨嗉壍淖罡叻趾推骄?,點擊數(shù)據(jù)分析可以查看本次考試每個班級的平均分,如圖36,37,38所示。圖36考試信息圖37成績信息圖38各班平均分以下是導入學生成績,最高分,平均分和各班平均分的部分代碼:@ApiOperation("導入學生成績")
@PostMapping("/upload")
publicResult<?>importScore(MultipartFilefile,IntegerexamId,IntegergradeId,IntegerclazzId,IntegercourseId){
ImportParamsparams=newImportParams();
params.setTitleRows(0);
try{
List<Escore>list=ExcelImportUtil.importExcel(file.getInputStream(),Escore.class,params);
list.forEach(escore->{
//查找學生成績對應的id
List<Escore>escores=escoreService.selectScore(examId,escore.getStudentId(),gradeId,clazzId,courseId);
IntegerescoreId=escores.get(0).getId();
escoreService.updateScore(escoreId,escore.getScore());
});
returnResult.success();
}catch(Exceptione){
e.printStackTrace();
}
returnResult.error("-1","導入失敗");
}個人信息老師登錄系統(tǒng)即可查看個人信息。圖39個人信息學生模塊設(shè)計考試信息學生登錄系統(tǒng),選擇考試,即可查看對應的考試成績信息。圖40考試信息圖41成績信息個人信息學生查看個人信息。圖42個人信息軟件測試軟件測試目的和意義軟件測試是對軟件進行測試,從而發(fā)現(xiàn)其存在的軟件缺陷、分析其原因并進行度量分析,從而確保軟件產(chǎn)品的質(zhì)量,而不僅僅是為了要找出缺陷。測試主要內(nèi)容下面將對系統(tǒng)的部分模塊進行功能測試,主要包括有登錄測試,添加學生信息測試,老師錄入成績測試和班主任管理學生信息測試。用戶登錄功能測試 表1登錄測試用例測試目的:測試登錄功能是否正常預置條件:用戶進入登錄頁,賬號“admin”,密碼“admin”,驗證碼“LZSS”測試過程:預期結(jié)果:實際結(jié)果:1、用戶輸入用戶名“admin”,密碼“admin”和驗證碼“LZSS”,點擊登錄。系統(tǒng)提示“登錄成功”,進入系統(tǒng)首頁用戶登錄成功,進入系統(tǒng)首頁。2、用戶輸入用戶名“admin”密碼“123456”,和驗證碼“LZSS”,點擊登錄。系統(tǒng)提示“密碼錯誤”,返回登錄。系統(tǒng)提示“用戶名或密碼錯誤”,返回登錄。3、用戶輸入賬號“admin”,密碼“admin”和驗證碼“asdg”,點擊登錄。系統(tǒng)提示“驗證碼錯誤”,返回登錄系統(tǒng)提示“驗證碼錯誤”,返回登錄4用戶輸入用戶名“admin”,密碼“abcdefg”,和正確的驗證碼系統(tǒng)提示“用戶登錄失敗”,返回登錄。系統(tǒng)提示“用戶名或密碼錯誤”,返回登錄。添加學生信息功能測試表2添加學生測試用例測試目的:測試管理員是否能添加學生信息預置條件:管理員登錄系統(tǒng),進入學生信息管理頁面測試過程:預期結(jié)果:實際結(jié)果:1、管理員輸入正確的學生信息,點擊確定。系統(tǒng)提示“添加成功”,在學生信息里能找到學生信息。系統(tǒng)提示“添加成功”,在學生信息里能找到學生信息。2、管理員在學號里輸入“11”,點擊確定系統(tǒng)提示“學號不正確”返回重新輸入。系統(tǒng)提示“學號在3到10個字符之間”返回重新輸入。3、管理員輸入學生信息,不選擇年級和班級,點擊確定系統(tǒng)提示“請選擇年級”,“請選擇班級”重新選擇。系統(tǒng)提示“請選擇年級”,“請選擇班級”重新選擇。
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年廣安鑫鴻集團有限公司招聘備考題庫及完整答案詳解1套
- 2026年廣州市花都區(qū)第一幼兒園招聘備考題庫及答案詳解一套
- 2026年圖木舒克唐王城國有資產(chǎn)投資有限公司市場化選聘生產(chǎn)經(jīng)營副總經(jīng)理備考題庫完整答案詳解
- 2026年中復神鷹碳纖維西寧有限公司招聘備考題庫及一套參考答案詳解
- 2026年樂山市沙灣區(qū)醫(yī)療集團嘉農(nóng)鎮(zhèn)中心衛(wèi)生院招聘備考題庫完整答案詳解
- 2026年國投國證投資(上海)有限公司招聘備考題庫參考答案詳解
- 2025年度下半年臺州市黃巖區(qū)公開選調(diào)8名公務員備考題庫完整參考答案詳解
- 2025年光澤縣縣屬國有企業(yè)專崗招聘退役軍人備考題庫有答案詳解
- 2026年安龍國家山地戶外運動示范公園招聘2名會計備考題庫及參考答案詳解一套
- 2026年凱里市華鑫高級中學教師招聘備考題庫及1套參考答案詳解
- 2025年查對制度考核考試題庫(答案+解析)
- 云南省2025年普通高中學業(yè)水平合格性考試歷史試題
- 骨關(guān)節(jié)疾病危害課件
- 《再見2025歡迎2026》迎新年元旦主題班會
- 貓屎咖啡介紹
- DB54T 0540-2025 區(qū)域性強降雨氣象評估標準
- 2025-2026 學年三年級 道德與法治 隨堂檢測 試卷及答案
- 廣西貴百河2025-2026學年高一上學期12月聯(lián)考語文試題
- 《手術(shù)室護理實踐指南(2025版)》
- 四川省2025年高職單招職業(yè)技能綜合測試(中職類)汽車類試卷(含答案解析)
- 2025年虛擬數(shù)字人開發(fā)項目可行性研究報告
評論
0/150
提交評論