软件工程学年设计之购物车管理系统.docx
《软件工程学年设计之购物车管理系统.docx》由会员分享,可在线阅读,更多相关《软件工程学年设计之购物车管理系统.docx(13页珍藏版)》请在冰豆网上搜索。
软件工程学年设计之购物车管理系统
课程设计
课程名称:
软件工程设计
实验项目:
购物车管理系统
姓名:
XXX
专业:
计算机科学与技术
班级:
XX班
学号:
XXX
指导教师:
XXX
计算机科学与技术学院
实验教学中心
XXXX年XX月XX日
1、需求分析
1总体分析
如今,随着互联网的发展,越来越多的人选择了网上购。
网上购物即经济又便捷,是多数年轻人购物的首选方式。
模拟C2C(ConsumertoConsumer)的网购,设计了简单的购物车系统。
进入购物车系统主页后,卖家进入的是商品管理模块,对自己要卖的商品进行添加,删除,查询的这些基本操作。
买家则进入购买商品模块,查询到卖家所添加的所有商品,选择自己心仪的商品,添加到购物车。
添加购物车时可以填写购买数量,添加到购物车后,还可以修改购买商品的数量。
2功能分析
商品管理
在商品管理模块中,卖家可以添加商品,涉及商品编号id,商品名称,商品价格,商品库存量,商品图片。
数据保存的位置在数据库中,在数据库中进行插入操作。
卖家可以查询商品,涉及涉及商品编号id,商品名称,商品价格,商品库存量,商品图片。
数据保存的位置在数据库中,在数据库中进行查询操作。
卖家可以删除商品,涉及涉及商品编号id,商品名称,商品价格,商品库存量,商品图片。
数据保存的位置在数据库中,在数据库中根据该商品的编号id,对其进行删除操作。
购买商品
在购买商品模块中,买家对其进行操作。
首先查询可以购买的商品,涉及商品编号id,商品名称,商品价格,商品图片。
数据保存的位置在数据库中,在数据库中进行查询操作,查出所有商品。
买家选购商品,涉及商品名称,选购数量,价格,商品图片和商品编号id。
数据在程序中执行并保存。
买家查看购物车,涉及已选购的商品名称,选购数量,价格和商品编号id。
数据在程序中执行并保存。
买家在购物车中取消已选中的某个商品,根据商品id,对该商品进行删除。
数据在程序中执行并保存。
买家在购物车中取消已选中的全部商品,清空购物车。
数据在程序中执行并保存。
买家在购物车中修改已选中商品的数量。
数据在程序中执行并保存。
2、总体设计
1总体模块的划分
购物车管理系统划分为两个子模块。
即:
商品管理模块和购买商品模块。
2模块结构化设计
变换分析
数据流程图
模块结构图
3、详细设计
1数据库设计
数据库物理结构
数据文件
数据字典
数据流名称:
商品信息
来源:
添加商品用户
去向:
连接商品信息,实现商品信息的增删改查
组成:
商品ID(PK)+商品名称NAME+商品库存量GNUM+
商品价格PRICE+商品图片PICTURE
商品ID为确定商品唯一性的标识,是该商品的主键。
商品名称NAME描述该商品的名字。
商品库存量GNUM,添加商品是要添加库存量,当购买商品数量大于库存量是,该商品将不会被购买,显示余量不足。
商品价格PRICE描述该商品的单价。
商品图片PICTURE,添加商品时要添加图片,这里的图片存储在数据库中的是图片的名称,显示中会根据图片名称来寻找该商品的图片来显示。
重做日志文件
建立重做日志文件
控制文件
控制文件直接COPY,然后在启动参数(control_files)里改就可以了
数据库逻辑结构
E-R图
数据库详细设计
表的创建
系统维护的数据表:
用户表:
(商品编号(PK)、商品名称、库存量、商品单价、商品图片)
商品表(table_goods)
字段
类型
含义
说明
id
number(10)
商品ID
用来唯一标识一个商品(PK)
name
varchar2(20)
商品名称
用来描述商品名称
gnum
number(10)
库存量
用来记录商品的库存量,当购物车中购买的商品数大于库存量是就不能购买
price
number(10)
商品单价
用来描述商品的单价
picture
varchar2(20)
商品图片
用于储存上传的图片的图片名称
创建表的sql语句:
Table_goods表
createtabletable_goods(
idnumber(10),
namevarchar2(20),
gnumnumber(10),
pricenumber(10),
picturevarchar2(20)
);
序列的建立
Table_goods表的序列
Createsequencegoods_seq
Incrementby1
Minvalue1
Maxvalue1000
Startwith1
Cache20
Nocycle;
插入测试数据
向table_goods表插入3条测试数据
insertintotable_goods(id,name,gnum,price,picture)values
'篮球',50,100,'')
insertintotable_goods(id,name,gnum,price,picture)values
'QQ公仔',2,98,'')
insertintotable_goods(id,name,gnum,price,picture)values
'橄榄球',18,63,'')
注:
插入的图片名要与放在项目中的图片的文件名完全一致。
2界面设计
根据子模块进行界面分析和设计
主页界面
商品管理模块
查询所有商品
商品卖家进入商品管理模块,进入显示所有已添加的商品。
selectid,name,gnum,price,picturefromtable_goodsorderbyid
界面:
新增商品
卖家进入新增查询所有商品页面后,点击新增商品,跳转到新增商品页面。
填写商品的属性:
商品名称,商品数量,商品单价,添加商品图片。
点击提价后,继续跳到查询所有商品页面,显示所有已添加商品。
同时,新增也面还对添加的属性做了校验。
首先,文本域内的内容不能为空,其次,添加商品数量和商品单价都必须是数字。
否则提交不回通过,并跳回笨页面,显示错误内容。
insertintotable_goods(id,name,gnum,price,picture)
values,'新增商品的名称','新增商品的库存量','新增商品的单价','新增商品图片的图片名');
界面:
校验的页面
删除商品
卖家进入新增查询所有商品页面后,点击删除商品,该商品被删除,再次查询所有商品,跳转到所有商品页面。
删除该商品时,同时删除了该商品上传时匹配的图片。
deletetable_goodswhereid='该商品的商品编号'
购买商品模块
查询所有商品
买家进入主页后点击购买商品,查询所有商品后跳转到商品列表页面,显示所有
商品。
selectid,name,gnum,price,picturefromtable_goodsorderbyid;
界面:
加入购物车
在商品列表页面点击添加购物车后,进入确认添加到购物车页面,显示商品的名称,单价和图片,买家填写添加的数量。
点击提交跳转到购物车页面。
页面:
购物车显示界面:
继续购物
在购物车页面点击继续购物,进入商品列表页面,继续选购,添加到购物车。
如果选购的是同种商品,跳转到购物车后会合并已有的商品,将数量修改。
界面:
修改数量
在购物车页面的数量栏修改商品数量,点击修改。
购买数量就会被修改,总价钱会改变。
界面:
删除加入购物车中的某个商品
在购物车也面点击删除,对应的该条商品就会在购物车中被删除掉。
界面:
清空购物车
清空购物车后,购物车中所有选购的商品都已清空。
界面:
3代码设计
所有代码附文件。
四、设计心得
一个月的课程设计终于在今天基本完成了。
在这次课程设计中我用了JAVAWEB做了这次的购物车项目,对web开发又有了更深的认识和更多的了解。
要做好这个web项目,首先要对这些过程进行全面的分析,了解每一步与下一步的关系,中间传递数据的处理,以求最简洁的完成数据处理。
其次是减小系统开销,之前考虑在购买商品模块对数据的处理也是用数据库,添加个状态位,在购买商品模块中进行的增删改查只是修改了状态位。
之后想想,这样做不仅数据繁琐,而且连接数据库增加了系统的开销。
而将数据放在session中处理,节省了系统的开销。
在做这个项目时,得意之处是添加了分页的功能,每页显示三个,如果显示太多会使得页面看起来很乱。
使用struts框架应用了form的特性,对添加新的商品页面进行了form校验。
使得校验能很容易的完成。
但使用form校验同样给我带来了麻烦,没校验之前项目能够运行,form中加上校验方法后项目不能运行了。
通过查资料了解的,在form中写校验方法后,不需要校验的页面如果也配置了相同form,就应该在文件中action的validate属性设置为false。
当然,不足之处还有很多。
比如没有实现库存量与购买数的比较,没有添加完整的购买过程,购买后修改库存量的个数。
我相信这些内容通过以后的学习会不断地完善。