您的当前位置:首页正文

软件工程学年设计之购物车管理系统

来源:帮我找美食网


课 程 设 计

课程名称: 实验项目: 姓 名: 专 业: 班 级: 学 号: 指导教师:

软件工程设计 购物车管理系统

XXX 计算机科学与技术

XX班 XXX XXX

计算机科学与技术学院

实验教学中心

XXXX年XX月XX日

一、需求分析

1 总体分析

如今,随着互联网的发展,越来越多的人选择了网上购。网上购物即经济又便捷,是多数年轻人购物的首选方式。

模拟C2C(Consumer to Consumer )的网购,设计了简单的购物车系统。

进入购物车系统主页后,卖家进入的是商品管理模块,对自己要卖的商品进行添加,删除,查询的这些基本操作。买家则进入购买商品模块,查询到卖家所添加的所有商品,选择自己心仪的商品,添加到购物车。添加购物车时可以填写购买数量,添加到购物车后,还可以修改购买商品的数量。

2 功能分析 2.1商品管理

在商品管理模块中,卖家可以添加商品,涉及商品编号id,商品名称,商品价格,商

品库存量,商品图片。数据保存的位置在数据库中,在数据库中进行插入操作。

卖家可以查询商品,涉及涉及商品编号id,商品名称,商品价格,商品库存量,商品图片。数据保存的位置在数据库中,在数据库中进行查询操作。

卖家可以删除商品,涉及涉及商品编号id,商品名称,商品价格,商品库存量,商品图片。数据保存的位置在数据库中,在数据库中根据该商品的编号id,对其进行删除操作。

2.2购买商品

在购买商品模块中,买家对其进行操作。首先查询可以购买的商品,涉及商品编号id,商品名称,商品价格,商品图片。数据保存的位置在数据库中,在数据库中进行查询操作,查出所有商品。

买家选购商品,涉及商品名称,选购数量,价格,商品图片和商品编号id。数据在程序中执行并保存。

买家查看购物车,涉及已选购的商品名称,选购数量,价格和商品编号id。数据在程序中执行并保存。

买家在购物车中取消已选中的某个商品,根据商品id,对该商品进行删除。数据在程序中执行并保存。

买家在购物车中取消已选中的全部商品,清空购物车。数据在程序中执行并保存。 买家在购物车中修改已选中商品的数量。数据在程序中执行并保存。

二、总体设计

1 总体模块的划分

购物车管理系统划分为两个子模块。即:商品管理模块和购买商品模块。

2 模块结构化设计

2.1 变换分析

数据流程图 三、详细设计

模块结构图

1数据库设计 1.1 数据库物理结构 1.1.1 数据文件

数据字典

数据流名称:商品信息 来源:添加商品用户

去向:连接商品信息,实现商品信息的增删改查

组成:商品ID(PK) + 商品名称NAME + 商品库存量GNUM + 商品价格PRICE + 商品图片PICTURE

商品ID为确定商品唯一性的标识,是该商品的主键。

商品名称NAME描述该商品的名字。

商品库存量GNUM,添加商品是要添加库存量,当购买商品数量大于库存量是,该商品将不会被购买,显示余量不足。

商品价格PRICE描述该商品的单价。

商品图片PICTURE,添加商品时要添加图片,这里的图片存储在数据库中的是图片的名称,显示中会根据图片名称来寻找该商品的图片来显示。

1.1.2 重做日志文件 建立重做日志文件

1.1.3 控制文件

控制文件直接COPY,然后在启动参数(control_files)里改就可以了

1.2 数据库逻辑结构 E-R图

1.3 数据库详细设计

1.3.1 表的创建

系统维护的数据表:

用户表:(商品编号(PK)、商品名称 、 库存量 、商品单价、商品图片) 商品表(table_goods) 字段 类型 含义 说明 id name gnum price picture number(10) 商品ID varchar2(20) 商品名称 number(10) 库存量 number(10) 商品单价 varchar2(20) 商品图片 用来唯一标识一个商品(PK) 用来描述商品名称 用来记录商品的库存量,当购物车中购买的商品数大于库存量是就不能购买 用来描述商品的单价 用于储存上传的图片的图片名称

创建表的sql语句: Table_goods表

create table table_goods( id number(10), name varchar2(20), gnum number(10), price number(10), picture varchar2(20)

);

1.3.2 序列的建立

Table_goods表的序列 Create sequence goods_seq Increment by 1 Minvalue 1 Maxvalue 1000 Start with 1 Cache 20 Nocycle;

1.3.3 插入测试数据

向table_goods 表插入3条测试数据

insert into table_goods ( id,name,gnum,price,picture ) values

(goods_seq.nextval,'篮球',50,100,'basketball.jpg') insert into table_goods ( id,name,gnum,price,picture ) values (goods_seq.nextval,'QQ公仔',2,98,'qqbat.jpg') insert into table_goods ( id,name,gnum,price,picture ) values (goods_seq.nextval,'橄榄球',18,63,'ganlan.jpg')

注:插入的图片名要与放在项目中的图片的文件名完全一致。

2 界面设计

根据子模块进行界面分析和设计 主页界面

2.1 商品管理模块 2.1.1 查询所有商品

商品卖家进入商品管理模块,进入显示所有已添加的商品。

select id,name,gnum,price,picture from table_goods order by id

界面:

2.1.2 新增商品

卖家进入新增查询所有商品页面后,点击新增商品,跳转到新增商品页面。填写商品的属性:商品名称,商品数量,商品单价,添加商品图片。点击提价后,继续跳到查询所有商品页面,显示所有已添加商品。

同时,新增也面还对添加的属性做了校验。首先,文本域内的内容不能为空,其次,添加商品数量和商品单价都必须是数字。否则提交不回通过,并跳回笨页面,显示错误内容。

insert into table_goods (id,name,gnum,price,picture)

values(goods_seq.nextval,'新增商品的名称','新增商品的库存量','新增商品的单价','新增商品图片的图片名');

界面:

校验的页面

2.1.2 删除商品

卖家进入新增查询所有商品页面后,点击删除商品,该商品被删除,再次查询所有商品,跳转到所有商品页面。删除该商品时,同时删除了该商品上传时匹配的图片。

delete table_goods where id ='该商品的商品编号'

2.2 购买商品模块

2.2.1 查询所有商品

买家进入主页后点击购买商品,查询所有商品后跳转到商品列表页面,显示所有 商品。

select id,name,gnum,price,picture from table_goods order by id ;

界面:

2.2.2 加入购物车

在商品列表页面点击添加购物车后,进入确认添加到购物车页面,显示商品的名称,单价

和图片,买家填写添加的数量。点击提交跳转到购物车页面。

页面:

购物车显示界面:

2.2.2 继续购物

在购物车页面点击继续购物,进入商品列表页面,继续选购,添加到购物车。如果选购

的是同种商品,跳转到购物车后会合并已有的商品,将数量修改。 界面:

2.2.3 修改数量

在购物车页面的数量栏修改商品数量,点击修改。购买数量就会被修改,总价钱会改变。 界面:

2.2.4 删除加入购物车中的某个商品

在购物车也面点击删除,对应的该条商品就会在购物车中被删除掉。 界面:

2.2.5 清空购物车

清空购物车后,购物车中所有选购的商品都已清空。 界面:

3 代码设计

所有代码附文件。

四、设计心得

一个月的课程设计终于在今天基本完成了。在这次课程设计中我用了JAVA WEB 做了这次的购物车项目,对web开发又有了更深的认识和更多的了解。

要做好这个web项目,首先要对这些过程进行全面的分析,了解每一步与下一步的关系,中间传递数据的处理,以求最简洁的完成数据处理。其次是减小系统开销,之前考虑在购买商品模块对数据的处理也是用数据库,添加个状态位,在购买商品模块中进行的增删改查只是修改了状态位。之后想想,这样做不仅数据繁琐,而且连接数据库增加了系统的开销。而将数据放在session中处理,节省了系统的开销。

在做这个项目时,得意之处是添加了分页的功能,每页显示三个,如果显示太多会使得页面看起来很乱。使用struts框架应用了form的特性,对添加新的商品页面进行了form校验。使得校验能很容易的完成。

但使用form校验同样给我带来了麻烦,没校验之前项目能够运行,form中加上校验方法后项目不能运行了。通过查资料了解的,在form中写校验方法后,不需要校验的页面如果也配置了相同form,就应该在struts-config.xml文件中action的validate属性设置为false。

当然,不足之处还有很多。比如没有实现库存量与购买数的比较,没有添加完整的购买过程,购买后修改库存量的个数。我相信这些内容通过以后的学习会不断地完善。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top