【软件工程】详细设计(二)

这里是详细设计文档的第二部分。前一部分点这里

4. 学生端模块详细设计

学生端模块主要由几个组件构成:学生登录界面,成绩查询界面等界面。因为学生端的功能相对来说比较单一,因此这里只给出两个最重要的功能。

img

图4.1 学生端模块流程图

4.1 学生登录界面模块

4.1.1类描述

定义了对学生的登录操作功能结构。

4.1.2功能

给定账号和密码,实现登录功能。每次登录时都需要验证账号与密码是否正确(通过查询数据库与正则表达式验证),学生比较特殊,他们的学号就是他们的账号。

4.1.3代码实现

JavaScript代码(通过正则表达式实现密码验证):

else {debugger;var userName = param.userName;var reg = /^[\d]{6,10}$/;if (userName.length > 10) {layer.msg('学号长度不能大于10位', {icon: 5});}if (reg.test(userName)) {$.ajax({//几个参数需要注意一下type: "POST",//方法类型dataType: "json",//预期服务器返回的数据类型url: "/user/studentLogin",//urldata: param,success: function (result) {if (result.code == "0") {location.href = "/student-index.html";} else {layer.msg('用户名密码错误', {icon: 5});}},error: function () {layer.msg('服务器错误', {icon: 5});}});} else {layer.msg('学生角色登录请使用学号', {icon: 5});}
}

4.1.4性能

在执行相关操作时,均可以正常实现学生登录功能。

4.2成绩查询界面

4.2.1类描述

定义了对学生的成绩查询操作功能结构。

4.2.2功能

学生查询自己的相关信息与所有的成绩信息。

4.2.3代码实现

HTML代码:

<table class="layui-table"   lay-data="{ url:'/score/getMyScore', page:true, id:'scoreSum'}"   lay-filter="demo">   <thead>      <tr>         <th lay-data="{type:'checkbox', }"></th>         <th lay-data="{field:'studentNo',sort: true}">学号</th>         <th lay-data="{field:'studentName'}">姓名</th>         <th lay-data="{field:'score1'}">习题成绩</th>         <th lay-data="{field:'score2'}">测验成绩</th>         <th lay-data="{field:'score3'}">考试成绩</th>         <th lay-data="{field:'sumScore'}">合计成绩</th>      </tr>   </thead></table>

Java代码:

//获取我的成绩
@RequestMapping("/getMyScore")
public ResultObject<List<TStudent>> getAllSumScore(HttpServletRequest request,@RequestParam("limit") int limit,@RequestParam("page") int page) {TStudent student = (TStudent)request.getSession().getAttribute("student");PageInfo<TStudent> pageInfo =scoreService.getAllFinalScore(student, limit, page);ResultObject<List<TStudent>> rs=new ResultObject<List<TStudent>>();rs.setCode(Constant.SUCCESS_RETUEN_CODE);rs.setMsg("查询成功");rs.setData(pageInfo.getList());rs.setCount(pageInfo.getTotal());return rs;} @RequestMapping("/getMyScoreInfo")
public ResultObject<List<TScore>> getMyScoreInfo(HttpServletRequest request,@RequestParam("limit") int limit,@RequestParam("page") int page) {TStudent student = (TStudent)request.getSession().getAttribute("student");TScore score=new TScore();score.setStudentId(student.getStudentNo());PageInfo<TScore> pageInfo=scoreService.getAllScore(score,limit, page);ResultObject<List<TScore>> rs=new ResultObject<List<TScore>>();List<TScore> list=pageInfo.getList();for(TScore temp:list) {String type=temp.getScoreType();if("1".equals(type)) {temp.setScoreTypeName("习题");}if("2".equals(type)) {temp.setScoreTypeName("测验");}if("3".equals(type)) {temp.setScoreTypeName("考试成绩");}}rs.setCode(Constant.SUCCESS_RETUEN_CODE);rs.setMsg("查询成功");rs.setData(list);rs.setCount(pageInfo.getTotal());return rs;} 

4.2.4性能

在执行相关操作时,均可以正常实现学生成绩查询功能,目前为止未发现错误。

4.2.5 设计方法

运用了面向对象的思想,按Java面向对象编程设计。

5. 管理员端模块详细设计

管理员端模块主要由几个组件构成:管理员登录界面,数据查询界面、搜索功能、学生信息修改界面界面,学生成绩修改界面和教师信息修改界面。管理员端模块需要实现的功能最多,其中有一部分与之前教师端的功能有重叠,本着代码复用和简洁的原则,这里就不再给出详细设计,而只给出之前没有的功能的详细设计。

管理员端模块如下图所示:

img

图5.1 管理员端模块流程图

5.1管理员登录界面

5.1.1类描述

定义了对管理员的登录操作功能结构。

5.1.2功能

给定账号和密码,实现登录功能。每次登录时都需要验证账号与密码是否正确(通过查询数据库与正则表达式验证)。

5.1.3代码实现

JavaScript代码(通过正则表达式实现密码验证):

else if ("3" == param.type) {$.ajax({//几个参数需要注意一下type: "POST",//方法类型dataType: "json",//预期服务器返回的数据类型url: "/user/login",//urldata: param,success: function (result) {if (result.code == "0") {location.href = "/admin-index.html";} else {layer.msg('管理员密码错误', {icon: 5});}},error: function () {layer.msg('服务器错误', {icon: 5});}});
} 

5.1.4性能

在执行相关操作时,均可以正常实现管理员登录功能。

5.2学生信息修改界面

5.2.1类描述

定义了管理员的修改学生信息的操作功能结构。

5.2.2功能

管理员能自由地修改学生信息,而教师不能,教师只能查看学生信息。而修改信息又分为三种,添加学生信息、修改学生信息、删除学生信息。

5.2.3代码实现

Java代码:

1.添加学生信息

@RequestMapping("/addStudent")
public ResultObject<Object> addStudent(TStudent student) {Integer studentNo=student.getStudentNo();student.setStuPass(studentNo.toString());TStudent result=studentService.selectByNo(studentNo);//统一返回ResultObject<Object> rs=new ResultObject<Object>();if(null==result) {studentService.addStudent(student);rs.setCode(Constant.SUCCESS_RETUEN_CODE);rs.setMsg("增加学生信息成功");}else {rs.setCode(Constant.HASE_RETUEN_CODE);rs.setMsg("学号已存在");}return rs;
}

2.删除学生信息

@RequestMapping("/deleteStudent")
public ResultObject<Object> deleteStudent(@RequestParam("studentNo") int studentNo) {Integer total=studentService.deleteStudent(studentNo);//统一返回ResultObject<Object> rs=new ResultObject<Object>();if(null==total||0==total) {rs.setCode(Constant.FAILURE_RETUEN_CODE);rs.setMsg("删除学生信息失败");}else {rs.setCode(Constant.SUCCESS_RETUEN_CODE);rs.setMsg("删除学生信息成功");}return rs;
}

3.修改学生信息

@RequestMapping("/updateStudent")
public ResultObject<Object> updateStudent(TStudent student) {Integer total=studentService.updateStudent(student);//统一返回ResultObject<Object> rs=new ResultObject<Object>();if(null==total||0==total) {rs.setCode(Constant.FAILURE_RETUEN_CODE);rs.setMsg("修改学生信息失败");}else {rs.setCode(Constant.SUCCESS_RETUEN_CODE);rs.setMsg("修改学生信息成功");}return rs;
}

5.2.4性能

在执行相关操作时,均可以正常实现管理员删除、添加和修改学生信息的功能。

5.2.5 设计方法

运用了面向对象的思想,按Java面向对象编程设计。

5.3教师信息修改界面

5.3.1类描述

定义了管理员的修改教师信息的操作功能结构。

5.3.2功能

管理员能自由地修改教师信息。修改信息又分为三种,添加教师信息、修改教师信息、删除教师信息。

5.3.3代码实现

Java代码:

1.添加教师信息

@RequestMapping("/addTeacher")
public ResultObject<Object> addTeacher(TTeacher Teacher) {Integer TeacherNo=Teacher.getTeacherNo();Teacher.setStuPass(TeacherNo.toString());TTeacher result=TeacherService.selectByNo(TeacherNo);//统一返回ResultObject<Object> rs=new ResultObject<Object>();if(null==result) {TeacherService.addTeacher(Teacher);rs.setCode(Constant.SUCCESS_RETUEN_CODE);rs.setMsg("增加教师信息成功");}else {rs.setCode(Constant.HASE_RETUEN_CODE);rs.setMsg("账号已存在");}return rs;
}

2.删除教师信息

@RequestMapping("/deleteTeacher")
public ResultObject<Object> deleteTeacher(@RequestParam("TeacherNo") int TeacherNo) {Integer total=TeacherService.deleteTeacher(TeacherNo);//统一返回ResultObject<Object> rs=new ResultObject<Object>();if(null==total||0==total) {rs.setCode(Constant.FAILURE_RETUEN_CODE);rs.setMsg("删除教师信息失败");}else {rs.setCode(Constant.SUCCESS_RETUEN_CODE);rs.setMsg("删除教师信息成功");}return rs;
}

3.修改教师信息

@RequestMapping("/updateTeacher")
public ResultObject<Object> updateTeacher(TTeacher Teacher) {Integer total=TeacherService.updateTeacher(student);//统一返回ResultObject<Object> rs=new ResultObject<Object>();if(null==total||0==total) {rs.setCode(Constant.FAILURE_RETUEN_CODE);rs.setMsg("修改教师信息失败");}else {rs.setCode(Constant.SUCCESS_RETUEN_CODE);rs.setMsg("修改教师信息成功");}return rs;
}

5.3.4性能

在执行相关操作时,均可以正常实现管理员删除、添加和修改教师信息的功能。

5.3.5 设计方法

运用了面向对象的思想,按Java面向对象编程设计,未发现错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/589593.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

女大三抱金砖?看完这篇起诉状就明白:猜疑乃婚姻之大敌

女大三抱金砖&#xff1f;看完这篇起诉状就明白&#xff1a;猜疑乃婚姻之大敌 阿勇与阿芳&#xff0c;一对年过四十的夫妻&#xff0c;且有一对已成年的儿女&#xff0c;如今走到了婚姻的尽头。原告阿勇指控双方感情早已破裂&#xff0c;受父母包办婚姻影响&#xff0c;两人经常…

应用方案D78040场扫描电路,偏转电流可达1.7Ap-p,可用于中小型显示器

D78040是一款场扫描电路&#xff0c;偏转电流可达1.7Ap-p&#xff0c;可用于中小型显示器。 二 特 点 1、有内置泵电源 2、垂直输出电路 3、热保护电路 4、偏转电流可达1.7Ap-p 三 基本参数 四 应用电路图 1、应用线路 2、PIN5脚输出波形如下&#xff1a;

makefile01

什么是makefile Makefile 文件描述了 Linux 系统下 C/C 工程的编译规则&#xff0c;它用来自动化编译 C/C 项目。一旦写编写好 Makefile 文件&#xff0c;只需要一个 make 命令&#xff0c;整个工程就开始自动编译&#xff0c;不再需要手动执行 GCC 命令。一个中大型 C/C 工程…

Unity类银河恶魔城学习记录12-2 p124 Character Stats UI源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI_Statslot.cs using System.Collections; using System.Collections.Gen…

云计算的安全需求

目录 一、概述 二、云安全服务基本能力要求 三、信息安全服务&#xff08;云计算安全类&#xff09;资质要求 3.1 概述 3.2 资质要求内容 3.2.1 组织与管理要求 3.2.2 技术能力要求 四、云安全主要合规要求 4.1 安全管理机构部门的建立 4.2 安全管理规范计划的编制 4…

回溯算法|78.子集

力扣题目链接 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, int startIndex) {result.push_back(path); // 收集子集&#xff0c;要放在终止添加的上面&#xff0c;否则会漏掉自…

linux 回收站机制(笔记)

Linux下回收站机制https://mp.weixin.qq.com/s/H5Y8VRcaOhFZFXzR8yQ7yg 功能 &#xff1a;设立回收站&#xff0c;并且可定时清空回收站。 一、建议将alias rm 改成别的。 比如alias rmm &#xff0c;同时修改rm -rf ~/.trash/* 改成 rmm -rf ~/.trash/* 不然影响rm 的正常使…

Axure案例分享—垂直手风琴(附下载地址)

今天分享的案例是Axure8(兼容9和10)制作的垂直手风琴 一、功能介绍 折叠或展开多个面板内容&#xff0c;默认为展开一项内容&#xff0c;点击任一收起的选项&#xff0c;展开面板&#xff0c;其他面板收起二、制作过程 原型是由矩形组件以及动态面板构成&#xff0c; 拖入一…

黑马点评项目笔记 I

短信登录 将逻辑过期时间写入redis里面 Slf4j RestController RequestMapping("/user") public class UserController {Resourceprivate IUserService userService;Resourceprivate IUserInfoService userInfoService;/*** 发送手机验证码*/PostMapping("code&…

HarmonyOS 应用开发之非线性容器

非线性容器实现能快速查找的数据结构&#xff0c;其底层通过hash或者红黑树实现&#xff0c;包括HashMap、HashSet、TreeMap、TreeSet、LightWeightMap、LightWeightSet、PlainArray七种。非线性容器中的key及value的类型均满足ECMA标准。 HashMap HashMap 可用来存储具有关联…

TSINGSEE青犀推出河道/河湖/水域治理视频AI智能解决方案

一、方案背景 “十四五”时期&#xff0c;在面源污染防治等方面实现突破&#xff0c;实现主要水污染排放总量持续减少&#xff0c;水生态环境持续改善等任务艰巨。进一步完善流域综合治理体系&#xff0c;提升流域水环境综合治理能力和水平&#xff0c;更好适应新阶段发展需求…

电商数据API接口|抓取京东淘宝1688商品数据颜色sku信息

公共参数 API请求测试地址 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheString否[yes…