购物管理系统
一、实验目的
1、系统中有两种类型的用户:管理员,客户
2、管理员的功能如下:
(1)登录
管理员账户可以预先设定一个admin,密码为ynuinfo#777。
(2)密码管理
(2.1)修改自身密码
修改管理员的密码。
(2.2)重置指定客户/用户的密码
管理员可以重置普通用户的密码,但不能查看普通用户的密码。
(3)客户管理
(3.1)列出所有客户信息:
客户信息包括:客户ID、用户名、用户级别(金牌客户、银牌客户、铜牌客户)、用户注册时间、客户累计消费总金额、用户手机号、用户邮箱;
(3.2)删除客户信息:
删除客户信息之前要给出警告提示,请用户确认是否继续删除操作。
(3.3)查询客户信息
可以根据客户ID或者客户的用户名进行查询,也可以一次查询所有客户的信息。
(4)商品管理
(4.1)列出所有商品的信息
商品的信息包括:商品编号、商品名称、生产厂家、生产日期、型号、进货价、零售价格、数量。
(4.2)添加商品的信息
商品的信息包括:商品编号、商品名称、生产厂家、生产日期、型号、进货价、零售价格、数量。
(4.3)修改商品的信息
可以对上述的商品信息进行修改。
(4.4)删除商品的信息
可以删除商品,删除之前必须给出警告提示:删除后无法恢复,请用户确认是否继续删除操作。
(4.5)查询商品的信息
可以根据商品名称、生产厂家、零售价格进行单独查询或者组合查询(例如:查询联想公司、1000以上的商品清单)。
(5)退出登录
退出管理员登录。
3、客户的功能及需求说明如下:
(1)注册:
用户名长度不少于5个字符;密码长度大于8个字符,必须是大小写字母、数字和标点符号的组合。
- 登录:密码连续输入错误5次就锁定账户。
(3)密码管理
(3.1)修改自身密码
密码长度大于8个字符,必须是大小写字母、数字和标点符号的组合。
(3.2)忘记密码:可以让自行重置密码
模拟重置密码功能,当用户选择忘记密码功能的时候,让用户输入用户名和注册所使用的邮箱地址,系统会将一个随机生成的密码发到指定的邮箱。并提示用户可以使用这个密码登录。
(4)购物
(4.1)将商品加入购物车
用户可以输入商品编号和数量将指定的商品加入到购物车里。
(4.2)将商品从购物车中移除
可以将商品从购物车中移除,移除之前必须给出警告提示:请用户确认是否继续移除操作。移除操作不影响商品的数量。
(4.3)修改购物车中的商品
修改商品数量,当数量小于或等于0,则将该商品从购物车中清除。
(4.4)结账(模拟的支付渠道:支付宝、微信、银行卡)
模拟支付操作,不调用实际的支付宝、微信、银行卡。只是表明进行了相关的操作,操作成功以后,系统中相应的商品数量要进行修改。
(4.5)查看购物历史
查看用户的购物历史:时间、购买的商品清单。
(5)退出登录
退出登录。
二、实验仪器设备及软件
开发用的计算机硬件体系架构和主要配置:
处理器 13th Gen Intel(R) Core(TM) i7-13700H 2.40 GHz
机带 RAM 32.0 GB (31.7 GB 可用)
设备 ID A803A327-228E-4AD5-ACEF-39D8CC3BB183
产品 ID 00342-30970-60493-AAOEM
系统类型 64 位操作系统, 基于 x64 的处理器
笔和触控 没有可用于此显示器的笔或触控输入
开发环境使用的操作系统:Windows 11 家庭中文版
开发使用的Java SDK版:JDK22
开发使用的项目管理工具:Gitpod
开发使用的代码编辑工具:IntelliJ IDEA 2024.1.4
三、实验方案
1.1版:使用集合框架类ArrayList存放用户信息、商品信息和购物历史信息,该版本支持将用户信息、商品信息、购物历史信息存放到文本文件txt中。
1.2版:该版本支持将用户信息、商品信息、购物历史信息存放到Excel文件中。其他要求和1.1版相同。
1.5版:该版本支持将所有信息存放在一种数据库(例如:sqlite(推荐)、Mysql、SQL server等均可)中。其他要求和1.1版相同。
四、实验步骤
1.1版:
(1)本次迭代的功能要求:
使用集合框架类ArrayList存放用户信息、商品信息和购物历史信息,该版本支持将用户信息、商品信息、购物历史信息存放到文本文件txt中。
(2)本次迭代的数据模型、主要流程及类结构(ER图、流程图、类图):
ER图:

流程图:
管理员流程图:

客户流程图:

购物流程图:

类图:

(3)本次迭代的关键代码片段截图:






1.2版:
(1)本次迭代的功能要求:
该版本支持将用户信息、商品信息、购物历史信息存放到Excel文件中。其他要求和1.1版相同。
(2)本次迭代的数据模型、主要流程及类结构(ER图、流程图、类图):
ER图:

流程图:
管理员流程图:

客户流程图:

购物流程图:

类图:

(3)本次迭代的关键代码片段截图:






五、实验结果及分析
1.1版:



本次版本迭代成功实现了将数据存储在txt文本文件中的目标,为了方便读取文件,使用了逗号分隔符。
1.2版:



本次版本迭代成功实现了将数据存储在Excel文本文件中的目标,为了方便读取文件,与版本1.1一样也使用了逗号分隔符。
六、总结及自我评价
1.1版:
成功实现了预期目标,设计以及程序合理。
亮点:
不使用普通的文本文件,而是使用带有逗号分隔符的类似于CSV的文本文件。
1.2版:
成功实现了迭代目标,设计以及程序合理。
亮点:
使用带有逗号分隔符的类似于CSV的Excel文件来记录数据。
