基于Java+MySQL实现在线书店订购系统

news2024/11/13 14:43:27

一、引言

1.1 编写目的

编写详细设计说明书是软件开发过程必不可少的部分,其目的是为了使开发人员在完成概要设计说明书的基础上完成概要设计规定的各项模块的具体实现的设计工作。同时也是开发人员和最终客户进行需求交流的有效手段。

1.2 背景

开发软件系统名称;超子书城订购系统
用户:书籍订购者、后台管理者
本系统开发采用B/S模式,前端页面用HTML+CSS+JS+JSP编写,采用的Java开发语言,数据库采用MySQL 5.7服务程序。

1.3 定义

CSS是CascadingStyleSheets的缩写,一般翻译为层叠样式表,是用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
JSP是一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成、或其他格式文档的网页,然后返回给请求者。JSP技术以语言作为,为用户的请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
SQL 结构化查询语言是一种特殊目的的编程语言,是一种数据库查询和,用于存取数据以及查询、更新和管理。

1.4 参考资料

  • 《人机交互基础教程》 孟祥旭等著 清华大学出版社
  • 《JSP Web编程指南》 电子工业出版社 2002版
  • 《MySQL数据库技术与应用》 人民邮电出版社 2020版

二、程序系统的结构

3.png
4.png

三、登录模块设计说明

3.1 程序描述

验证用户的登录模块是系统必不可少的功能,是进入系统内部的第一部操作。用户分为客户与管理员两种角色,点击登录界面中的【登录】按钮触发。

3.2 界面设计

5.png
6.png

3.3 功能

验证用户身份功能模块的IPO表如下表所示:

系统名称超子书城订购系统
模块名称验证用户身份
模块简述用于对登陆系统的用户进行身份验证
调用模块系统的主控制模块
输入用户账号和密码
处理验证用户输入的验证账号和密码;;获得登录用户输入的账号和密码;;访问数据库的用户账号表;;查询匹配的用户名和密码,若未查询到或不匹配,返回结果到登录窗口,提示错误,相反登录成功
输出提示信息:登陆失败或登陆成功

3.4 算法

【登录】按钮触发的处理:验证用户的合法性。
处理流程:

  • 取得用户输入的用户名和口令;
  • 加密用户名和口令传输到数据库并与帐户表进行一致性验证;
  • 如果用户名和口令都正确,以该用户身份进入系统总控制界面并获得相应系统权限,否则提示“登录失败”。

3.5 流程逻辑

7.png

3.6 接口

本模块是系统的启动模块,它需要用户交互输入用户帐号、密码;它调用主控制模块。

3.7 存储分配

本模块由系统自动分配内存。

3.8 限制条件

必须保证程序正常连接数据库。

3.9 测试计划

  • 测试初始用户帐号和密码能否正确登录到系统;
  • 正确登录后,对用户账号和密码进行更改;
  • 采用刚修改的用户账号和密码登录,测试是否能够正确登录。

3.10 尚未解决的问题

  • 对用户账号和密码的加密问题尚未解决。
  • 对账户名和密码的修改也不太完善。

四、书籍管理模块设计说明

4.1 程序描述

书籍管理页面功能模块是供登录系统的管理员进行相关操作的选择,即对书籍信息进行添加、修改、删除等。

4.2 界面设计

8.png

4.3 功能

系统管理主界面的功能IPO表如下所示:

系统名称超子书城订购系统
模块名称书籍管理界面
模块简述用于登录系统的管理员进行相关操作的选择
调用模块进行选择后可调用信息添加模块、信息修改模块、信息删除模块、信息查询模块
被调用模块管理员登录系统时都必须调用此模块
输入触发界面相应按钮进行选择操作
处理对书籍相关信息进行添加操作;;对书籍相关信息进行修改操作;;对书籍相关信息进行删除操作;
输出通过选择进入相应模块

4.4 算法

【添加】按钮触发的处理:进入添加界面
【修改】按钮触发的处理:进入修改界面
【删除】按钮触发的处理:进入删除界面

4.5 接口

本模块是系统的管理员的主要操作模块,用户通过相应的选择进入不同的界面,它调用系统的其他一切子模块。

4.6 存储分配

本模块由系统自动分配内存。

4.7 测试计划

  • 进入此界面后,选择添加操作看能否进入添加界面,添加几条记录。
  • 退回主界面,选择修改操作看能否修改刚刚添加的记录。
  • 退回主界面,选择删除操作看能否删除添加的记录。

4.8 尚未解决的问题

没有查询书籍信息功能

五、客户订购模块设计说明

5.1 程序描述

客户订购功能模块是供订购者选择订购书籍时进行相关的操作。提交订单时选择订购书籍的种类和数量以及支付方式即可进行订购。

5.2 界面设计

9.png
10.png

5.3 功能

客户订购界面的IPO表如下所示:

系统名称超子书城订购系统
模块名称客户订购模块
模块简述供订购者选择订购书籍时进行相关的操作
被调用模块订购者确定订购书籍时进入此界面,即客户主界面调用此模块
输入触发界面相应按钮进行订购操作
处理当订购者确定订购时选择相关信息即可订购,如果订购成功则提示支付成功。
输出通过选择进入确定订购模块或返回到客户主界面

5.4 算法

【提交订单】按钮触发的处理:订购选中书籍,并进入到支付成功界面。
处理流程:
如果输入信息有效并且没有保存,提示保存,并且将客户的订单信息存入相应的数据库表;
否则输入的信息无效则提示用户相关信息,且返回客户主界面。

5.5 流程逻辑

11.png

5.6 存储分配

本模块由系统自动分配内存。

5.7 测试计划

进入订购界面后,选择相关书籍信息进行订购,看能否出现支付成功的信息。

5.8 尚未解决的问题

当库存不足或用户想取消操作时,没有取消订购功能。

六、订单管理模块设计说明

6.1 程序描述

管理员可以对客户订购商品的订单列表进行查看,根据订单编号查看订单详情,可以进行删除订单操作。

6.2 界面设计

12.png

6.3 功能

订单管理界面的IPO表如下所示:

系统名称超子书城订购系统
模块名称订单管理界面
模块简述用于登录系统的管理员进行相关操作的选择
调用模块进行选择后可调用订单详情模块、订单删除模块
被调用模块管理员登录系统时都必须调用此模块
输入触发界面相应按钮进行选择操作
处理对订单相关信息进行删除操作
输出通过选择进入相应模块

6.4 流程逻辑

13.png

6.5 存储分配

本模块由系统自动分配内存。

6.6 测试计划

购买书籍产生多个订单,管理员端依次查看订单列表、多个订单具体信息是否正确。
选择相关订单信息进行删除,看能否出现删除成功的信息。

6.7 尚未解决的问题

尚未完善查看购买者信息以及购买的书籍信息。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构——排序上

1.排序的概念及其运用 1.1排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录&a…

多目标应用:基于自组织分群的多目标粒子群优化算法(SS-MOPSO)的移动机器人路径规划研究(提供MATLAB代码)

一、机器人路径规划介绍 移动机器人(Mobile robot,MR)的路径规划是 移动机器人研究的重要分支之,是对其进行控制的基础。根据环境信息的已知程度不同,路径规划分为基于环境信息已知的全局路径规划和基于环境信息未知或…

美国海外仓可以用哪家海外仓系统好?

随着全球贸易的增长,美国已经成为了海外仓储业务的一个重要市场。美国海外仓的数量不断增加,竞争也愈加激烈。为应对这种竞争,并优化仓储和供应链管理,WMS(仓库管理系统)成为了海外仓的重要工具。 一、WMS…

Wx64ST:一款轻松可修改的C语言Shellcode模板

关于windows_x64_shellcode_template windows_x64_shellcode_template简称为Wx64ST,它是一款功能强大的Shellcode模板,该模板基于C语言编写,其简单、可扩展和易于修改等特性可以帮助广大安全研究人员轻松开发适用于Windows x64的Shellcode。…

kali (linux) 安装配置 共享文件夹 samba

一、samba 安装 sudo apt-get install samba 二、启动samba 服务 systemctl enable nmb systemctl enable smb systemctl start nmb systemctl start smb 三、查看 samba状态 systemctl status nmb systemctl status smb 四、创建共享文件夹 ,并修改权限 …

技术指南:5分钟零成本实现本地AI知识库搭建

你一定经历过各种通用大模型一本正经胡说八道的时候吧,AI一通丝滑输出让人真假难辨,防不胜防。这种情况被称为AI幻觉。 大模型产生幻觉不幸“翻车”的原因很大程度上是“先天不足”,例如训练时来自特定领域的训练数据就比较缺失或存在偏差等…

20-22 - 打造专业的编译环境

---- 整理自狄泰软件唐佐林老师课程 文章目录 1. 大型项目的编译(无第三方库)1.1 大型项目的目录结构(无第三方库)1.2 项目结构设计分析1.3 需要打造的编译环境1.4 解决方案设计 2. 第 1 阶段任务2.1 关键的实现要点2.2 模块 make…

MES管理系统如何提升产品质量与可追溯性

在智能制造的新纪元里,MES管理系统正逐步崭露头角,成为驱动制造业转型升级的幕后英雄。MES管理系统不仅重新定义了生产过程的管理与控制方式,还以数据为驱动,引领着制造业迈向更高效、更智能、更可持续的未来。 智能制造的赋能者&…

U-Mail垃圾邮件过滤网关‍是如何过滤垃圾邮件的?

随着互联网的普及,垃圾邮件已经成为计算机网络安全的又一个公害。因此,反垃圾邮件已经成为互联网应用研究中一个重要课题。为了防止垃圾邮件首先要学会保护自己的邮件地址,避免在网上随意登记和使用邮件地址,预防垃圾邮件骚扰。其…

ALV Tree Control树控件

ALV Tree Control CL_GUI_ALV_TREE 效果: 自定义函数调用,在函数里画屏幕定义树控件显示 FUNCTION ZFI_YSYWLX_HELP_NEW . *"---------------------------------------------------------------------- *"*"本地接口: *&qu…

zset使用lua实现取最高分数中的随机成员

zset使用lua实现取最高分数中的随机成员 这种场景适用队列中不想要先入先出、先入后出因为zset的命令都是带有排序功能的,所以取值时要不从大到小要不从小到大所以我使用lua实现随机取成员使用lua是因为可以保持原子性在执行过程中Lua脚本是不会被其他命令或请求打…

C语言典型例题59

《C程序设计教程(第四版)——谭浩强》 题目: 例题4.11 译密码。为使电文保密,往往按一定规律将其转换为密码,收报人再按约定的规律将其译回原文。 例如,可以按以下规律将电文变为密码: 将字母A…

我不是非酋之-天空概率

最近入坑了dnf手游,染上了合天空,大黑蛋子一个,突发奇想,模拟下合天空概率,看看是否真的有20%。 梳理代码逻辑如下: 不考虑礼包和其他东西 条件: 合成概率20%,每次需要2个装扮和一个…

格式化的磁盘数据能恢复吗?五个看完即可掌握的恢复方法

磁盘是大多数电子设备都必须具有的一个存储介质,在平时使用的过程中,很多用户为了途一时的方便,经常会需要一键将磁盘里面的数据执行格式化,以实现清空或者删除的情况。然而,在执行完具体的操作后,过了一段…

Vue(十三) 路由、路由嵌套、query、param传参、propos、replace属性。编程式路由导航,特有的生命周期函数,路由守卫

文章目录 路由1. 基本使用2. 多级(嵌套)路由3. 路由query传参4. 命名路由5. 路由param传参6. propos属性7. replace属性8. 编程式路由导航9. 缓存路由组件10. actived,deactived生命周期函数11. 路由守卫1、全局路由2、独享路由3、组件内路由守卫 12. 路由器工作的两…

干货含源码!如何用Java后端操作Docker(命令行篇)

目录 干货含源码!如何用Java后端操作Docker(命令行篇) 一、为什么要用后端程序操作Docker 二、安装Docker 1、安装Docker 2、启动Docker 三、使用Java后端操作docker 1、构建docker镜像并生成容器 2、执行完毕后删除容器和镜像 3、在…

怎么删除谷歌浏览器的下载记录

定期删除谷歌浏览器的下载记录,对于保护个人隐私和提升浏览器性能都非常的重要。为了帮助大家安全的进行谷歌浏览器下载记录的清除,本文为大家分享了实用的操作方法,一起来看看吧。 删除谷歌浏览器下载记录的原因说明 1、保护隐私&#xff1…

【算法 动态规划 简单多状态 dp 问题】打家劫舍题型

打家劫舍题型 按摩师 (easy)解题思路代码 打家劫舍II (medium)解题思路代码 删除并获得点数(medium)解题思路代码 按摩师 (easy) 题目链接 该题是打家劫舍的变形 解题思路 状态表示 分析: 注意题目, 对于当天的预约, 可以接受…

车辆远控功能自动化测试方案:打造高效可靠的测试流程

随着汽车逐步走向智能化、网联化,整车的功能已经不再局限于驾驶员在车内进行本地操作。在远离车辆时,驾驶员也可以通过手机APP下发控制指令来实现对车辆的远程控制。 近几年,伴随远控功能项不断增多,其功能逻辑也越来越复杂&…

python开发--信息的增删改

部门信息的增删改 1. 增加 点击新建部门 跳转到新建部门页面:http://127.0.0.1:8000/depart/add/ 在views.py里面增加如下代码,可以将用户输入的信息添加到数据库中 def depart_add(request):if request.method GET:return render(request, depart…