Loading...

购物车

成员分工

成员 分工
王炜 类的编写、GUI功能设计、面向对象设计、用户信息的读取与更新
黄荣煌 面向对象设计、生成可执行exe文件 、GUI功能设计、git代码管理
廖孟航 前期功能调查、面向对象设计、GUI功能设计、博客编写
王威 代码规范、UML图制作、GUI功能设计、GUI界面设计

Gitee(代码)

git仓库

前期调查

UML图

  • User模块:用户的信息以及注册登录
  • Product模块:储存商品信息
  • ProductDAO模块:实现商品的查找统计数量等功能
  • ProductDAOArray与ProductDAOList两种方法实现功能
  • Cart模块:实现商品数量的增加或减少以及清空购物车等功能
  • Book、Phone、Chip、clothes模块:作为Product的继承类,含有商品的详细信息(大小、编号、保质期等)

GUI模块

  • 用户登录界面如下

  • 主界面如下图所示

  • 查看商品界面如下

  • 展示购物车内容界面

    • 可进行双击查看商品详细信息(继承类),可对商品进行勾选操作,对商品进行结算或者删除

登录注册系统

  • 用户进行注册操作后,数据将自动储存在文件users.txt中, 下一次运行时在文档中搜索是否存在已注册账号并判断账号密码是否匹配,直接进行登录操作。

购物系统菜单


查看购物车内容

  • 双击想要改变数量的商品

  • 监听器监视到鼠标执行双击操作时,跳出弹窗,根据用户输入的数量对购物车数量进行实时更改

  • 同时设置了勾选窗口,对勾选的商品进行删除或者结算操作

查看所有商品

  • 进行双击操作

DAO模式

商品类

商品继承类

关键代码

用户注册界面

  • 新建BufferedReader br , BufferedReader由Reader类扩展而来,提供通用的缓冲方式文本读取,并且提供readLine函数,用于对文本文件一行一行的读取
    由于存储用户信息时,将用户名和密码存在同一行并用空格隔开,利用split()函数,将字符串分割成字符串数组,对比注册用户信息是否已经存在,若不存在,则写入新的信息

用户登录界面

  • 类似注册界面,利用readLine读取,对比用户名与密码是否与文件中存在的匹配,若匹配,则登录成功,进入购物车菜单界面

用户数据更新与读取

更新

  • 将特定用户加如购物车且未结算的商品保存在userData文件中,用户下一次登录时,还是能够查找到上次登录时加入购物车的商品

读取

  • 程序搜索相应用户的购物车,若传入数据为-1,则说明该用户购物车内不含商品,若不为-1,则依次将商品加入购物车,还原用户上次登录时的购物车内容

查看商品JTable界面的设计

  • 实际上,表格的制作相当于对二维数组的一个简单的应用,但是是通过界面展示出来,通过定义String[] columnNames作为表头,分别为"编号", "商品名", "单价",内容通过定义数组Object[][] obj 来完成展示

查看我的购物车JTable界面的设计

  • 和商品JTable设计界面类似

CartJTable中中监视双击操作

  • 利用e.getClickCount()来监视点击次数,并获得行位置,接着跳出弹窗输入需要改变的个数(输入数字需大于零)
posted @ 2020-11-17 15:14  孤海  阅读(176)  评论(0编辑  收藏  举报