首页 > 其他分享 >【软件工程】详细设计(二)

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

时间:2024-04-02 15:01:28浏览次数:17  
标签:setCode rs 信息 学生 RETUEN 软件工程 ResultObject 详细 设计

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

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",//url
      data: 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",//url
    data: 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面向对象编程设计,未发现错误。

标签:setCode,rs,信息,学生,RETUEN,软件工程,ResultObject,详细,设计
From: https://blog.csdn.net/Wait_Godot/article/details/137265446

相关文章

  • 【附源码】计算机毕业设计银行资金账户管理系统(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义银行资金账户管理系统是一种基于互联网技术的信息化管理平台,旨在提高银行资金管理的效率和安全性。随着金融市场的快速发展和金融产品的多样化,银行资金管理面临着......
  • 【附源码】计算机毕业设计疫情居家隔离服务系统(java+springboot+mysql+mybatis+论文)
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义随着新冠疫情的爆发,居家隔离成为了防控疫情的重要手段之一。然而,在实际操作中,居家隔离存在着许多问题,如隔离人员的生活保障、健康状况监测等。因此,设计并实现一个......
  • windows环境下elasticsearch安装教程(超详细)
     一、安装jdkElasticSearch是基于lucence开发的,也就是运行需要javajdk支持。所以要先安装JAVA环境。由于ElasticSearch5.x往后依赖于JDK1.8的,所以现在我们下载JDK1.8或者更高版本。下载JDK1.8,下载完成后安装。二、安装ElasticSearch1.ElasticSearch下载地址:https:/......
  • 优化Zabbix系统实现性能提升(详细操作指引)
    一、数据库优化1.将MySQL数据库升级到最新版本操作步骤:查看当前版本:mysql-V升级到最新版本:yuminstallmysql-server-y2.调整MySQL数据库参数以下是一些重要的参数及其建议值:innodb_buffer_pool_size:用于存储InnoDB引擎的数据缓存,建议设置为系统内存的......
  • 浮木云学习日志(13)---表格设计
    ​在之前的系列文章中已经介绍了浮木云平台的许多使用技巧,本次我将结合下面已经搭建好的表格示例来详细介绍“高级表格”组件。浮木云平台的“高级表格”组件可以通过表格列设置设计多样的表格,展示更丰富的内容。大家也可以进入他们的官网https://www.fumucloud.com/自己动手操作......
  • [附源码]JAVA计算机毕业设计道路桥梁工程知识文库系统(源码+开题)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息化技术的快速发展,传统的道路桥梁工程知识管理方式已经无法满足现代工程领域的实际需求。传统的知识管理多依赖于纸质文档和人工整理,这种方式......
  • [附源码]JAVA计算机毕业设计德云社票务系统(源码+开题)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在数字化和信息化的时代背景下,票务管理系统的应用已经深入到各行各业,特别是在文化娱乐产业中,票务系统的运用更是成为了行业发展的重要支撑。德云社作......
  • [附源码]JAVA计算机毕业设计第二课堂选课系统(源码+开题)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,计算机技术在教育领域的应用日益广泛。传统的选课方式已经无法满足高校日益增长的教学需求和学生个性化发展的要求。第二课堂......
  • [附源码]JAVA计算机毕业设计电烤烟房综合管理系统(源码+开题)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着现代农业的快速发展,电烤烟房作为烟草产业的关键环节,其管理效率和质量直接影响到烟草的品质和产量。传统的电烤烟房管理方式往往依赖于人工操作和......
  • [附源码]JAVA计算机毕业设计电影售票app(源码+开题)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,人们的生活方式发生了翻天覆地的变化。特别是在娱乐消费领域,电影作为一种大众喜爱的文化产品,其市场规模逐年扩大。然而,传统的......