课程设计报告
(2015 / 2016学年第1学期)
题目:网上商城的设计与实现
网上商城的设计与实现
——商品查询、订购、支付、更改模块
一、 课题内容和要求
根据现有的网上购物系统的现状设计并实现一种基于web的网上商城,该商城能够实现用户注册,购物车管理,商品搜索,用户资料修改等功能,实现管理员的商品管理,用户信息管理等功能。要求实现的最基本的功能如下:
网站公告模块; 留言板模块; 用户中心模块; 商品查询模块; 商品订购模块; 在线支付模块;
管理员模块(商品管理、用户管理、订单管理等,可以通过后台功能及时受理,修改,删除用户的定单等信息,还可以添加,修改,删除商品等信息)
其它个性化功能扩展
二、需求分析
1.随着网络技术的发展,越来越多的人喜欢在网上宣传自己的产品,喜欢网上购物。图书产品从其外部特征来看,品种繁多,实体书店或其它图书发行者无法有足够大的店面来展示所有品种;单价不高,在网络信用还存在缺失的环境下能造成的损失较小,读者也乐于尝试在线购买。所以网上书店网站也在互联网上纷纷出现。本次课程设计我们小组做的课题就是网上书城,我负责部分是商品查询模块、商品订购模块、在线支付模块和用户模块中的图书管理部分。 2.商品查询模块:
进行书籍的查询,用户可以按图书类别、按书名、按作者、按出版社进行查询。每本书都显示了书名、作者、定价、特价等,如果想了解每本书的详细信息可以点击书名,详细信息还包括了书籍描述、内容简介等。
3.商品订购模块:
用户在浏览书籍时,按下“放入购物车”按钮,就可以将书籍放入自己的购物车中,便于购买。用户还可以根据自己的需要,进行查看、修改和清空购物车的操作。确认购买可点击“购买”进入支付系统。 4.在线支付模块:
用户在确认购买书籍后可点击“购买”进入支付系统,进行网上支付。 5.管理员模块(添加,修改,删除,查询商品):
管理系统是系统管理员对整个网站后台数据库进行维护,是此网站最重要的大门。后台管理使用本地数据库,与因特网上的数据库实时同步,保证购书定单安全及时有效处理强大的统计分析功能,便于管理者及时了解财务状况、销售状况。在进入本栏目时系统会提示输入系统管理员的用户名和密码,对于其他用户此界面是不可见的。它包括用户管理、书籍管理、订单管理,这里重点介绍书籍管理。
书籍管理包主要为图书库存管理,管理员可以添加新书、添加书籍分类以及修改书籍库存信息和删除书籍。
三、概要设计
该网上书城系统由用户和管理员两个子系统构成 1.体系结构图:
图1体系结构图
2.系统数据流程图
图2系统数据流程图
3.图书选购—使用用例图
用户
图3图书选购—使用用例图
4.图书管理—使用用例图
2.系统数据流程图
图2系统数据流程图
3.图书选购—使用用例图
用户
图3图书选购—使用用例图
4.图书管理—使用用例图
管理员
图4图书管理—使用用例图
四、详细设计
1.开发设计思想:
(1)采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
(2)尽量达到操作过程中的直观、方便、实用、安全等要求。
(3)系统采用B/S体系结构,浏览器(浏览器端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server(服务器端)则用于提供数据服务。
(4)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
(5)系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。 2.系统具体实现:
(1)采用java、jsp语言编写代码实现各项功能。 (2)网上书城界面采用html语言实现。 (3)采用mysql实现后台数据库的管理。
我个人负责用户子系统中的查询模块和管理员系统中的书籍管理模块,采用java语言编写代码。相关代码如下: 商品查询模块:
public class GetBookByBookNameServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");//查询多少条数据 String pageSize_str = request.getParameter("pageSize"); int offset = 0;
int pagecurrentPageNo = 1; int pageSize = 5;
if(pageSize_str != null) { }
String bookName_str = request.getParameter("bookName"); if(bookName_str != null) {
byte[] buf = bookName_str.getBytes(); String bookName = new String(buf); Model model = new Model();
BookPager bookPager = model.searchBook(bookName); bookPager.setPageOffset(offset);
bookPager.setPagecurrentPageNo(pagecurrentPageNo); bookPager.setPageSize(pageSize);
request.setAttribute("bookPager", bookPager); request.setAttribute("bookList",
pageSize = Integer.parseInt(pageSize_str);
bookPager.getBookMap().values());
request.getRequestDispatcher("Admin/pages/manageBooks.jsp").forward(
request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse
}
response) }
添加书籍在管理员模块当中,管理员可在数据库后台添加书籍的出版社、出版日期、版本、作者、价格、ID号、内容等详细信息,采用java语言编写代码。相关代码如下: 添加书籍:
public class AddBookServlet extends HttpServlet { private ServletConfig config; //初始化Servlet
final public void init(ServletConfig config) throws ServletException{ this.config=config;
} }
throws ServletException, IOException {
this.doGet(request, response);
五、测试数据及其结果分析
1.用户查询模块:
查询功能界面:
2.商品订购界面:
3.商品支付界面:
4.管理员模块:
(1)添加商品:
(2)添加、修改商品界面:
六、调试过程中的问题
问题1:商品搜索只能检索英文,无法检索中文。
问题原因:为数据库文字匹配问题。
解决方案:(1)重装MySQL,设置成utf8,因为utf8可以兼容世界上所有的字符。 (2)创建数据库时使用语句: CREATE DATABASE `test`
CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; (3)建表和建库时使用相同的编码格式。 修改后问题得到解决
问题2:无法连接到数据库。
(1)如首页书库显示没有书籍
(2)用户注册以后登录显示用户不存在
问题原因:代码中的连接数据库代码出现问题。 解决方案:将连接部分代码改成下图所示
修改完可以成功显示书籍库中的数据
课程设计报告
(2015 / 2016学年第1学期)
题目:网上商城的设计与实现
网上商城的设计与实现
——商品查询、订购、支付、更改模块
一、 课题内容和要求
根据现有的网上购物系统的现状设计并实现一种基于web的网上商城,该商城能够实现用户注册,购物车管理,商品搜索,用户资料修改等功能,实现管理员的商品管理,用户信息管理等功能。要求实现的最基本的功能如下:
网站公告模块; 留言板模块; 用户中心模块; 商品查询模块; 商品订购模块; 在线支付模块;
管理员模块(商品管理、用户管理、订单管理等,可以通过后台功能及时受理,修改,删除用户的定单等信息,还可以添加,修改,删除商品等信息)
其它个性化功能扩展
二、需求分析
1.随着网络技术的发展,越来越多的人喜欢在网上宣传自己的产品,喜欢网上购物。图书产品从其外部特征来看,品种繁多,实体书店或其它图书发行者无法有足够大的店面来展示所有品种;单价不高,在网络信用还存在缺失的环境下能造成的损失较小,读者也乐于尝试在线购买。所以网上书店网站也在互联网上纷纷出现。本次课程设计我们小组做的课题就是网上书城,我负责部分是商品查询模块、商品订购模块、在线支付模块和用户模块中的图书管理部分。 2.商品查询模块:
进行书籍的查询,用户可以按图书类别、按书名、按作者、按出版社进行查询。每本书都显示了书名、作者、定价、特价等,如果想了解每本书的详细信息可以点击书名,详细信息还包括了书籍描述、内容简介等。
3.商品订购模块:
用户在浏览书籍时,按下“放入购物车”按钮,就可以将书籍放入自己的购物车中,便于购买。用户还可以根据自己的需要,进行查看、修改和清空购物车的操作。确认购买可点击“购买”进入支付系统。 4.在线支付模块:
用户在确认购买书籍后可点击“购买”进入支付系统,进行网上支付。 5.管理员模块(添加,修改,删除,查询商品):
管理系统是系统管理员对整个网站后台数据库进行维护,是此网站最重要的大门。后台管理使用本地数据库,与因特网上的数据库实时同步,保证购书定单安全及时有效处理强大的统计分析功能,便于管理者及时了解财务状况、销售状况。在进入本栏目时系统会提示输入系统管理员的用户名和密码,对于其他用户此界面是不可见的。它包括用户管理、书籍管理、订单管理,这里重点介绍书籍管理。
书籍管理包主要为图书库存管理,管理员可以添加新书、添加书籍分类以及修改书籍库存信息和删除书籍。
三、概要设计
该网上书城系统由用户和管理员两个子系统构成 1.体系结构图:
图1体系结构图
2.系统数据流程图
图2系统数据流程图
3.图书选购—使用用例图
用户
图3图书选购—使用用例图
4.图书管理—使用用例图
2.系统数据流程图
图2系统数据流程图
3.图书选购—使用用例图
用户
图3图书选购—使用用例图
4.图书管理—使用用例图
管理员
图4图书管理—使用用例图
四、详细设计
1.开发设计思想:
(1)采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
(2)尽量达到操作过程中的直观、方便、实用、安全等要求。
(3)系统采用B/S体系结构,浏览器(浏览器端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server(服务器端)则用于提供数据服务。
(4)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
(5)系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。 2.系统具体实现:
(1)采用java、jsp语言编写代码实现各项功能。 (2)网上书城界面采用html语言实现。 (3)采用mysql实现后台数据库的管理。
我个人负责用户子系统中的查询模块和管理员系统中的书籍管理模块,采用java语言编写代码。相关代码如下: 商品查询模块:
public class GetBookByBookNameServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");//查询多少条数据 String pageSize_str = request.getParameter("pageSize"); int offset = 0;
int pagecurrentPageNo = 1; int pageSize = 5;
if(pageSize_str != null) { }
String bookName_str = request.getParameter("bookName"); if(bookName_str != null) {
byte[] buf = bookName_str.getBytes(); String bookName = new String(buf); Model model = new Model();
BookPager bookPager = model.searchBook(bookName); bookPager.setPageOffset(offset);
bookPager.setPagecurrentPageNo(pagecurrentPageNo); bookPager.setPageSize(pageSize);
request.setAttribute("bookPager", bookPager); request.setAttribute("bookList",
pageSize = Integer.parseInt(pageSize_str);
bookPager.getBookMap().values());
request.getRequestDispatcher("Admin/pages/manageBooks.jsp").forward(
request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse
}
response) }
添加书籍在管理员模块当中,管理员可在数据库后台添加书籍的出版社、出版日期、版本、作者、价格、ID号、内容等详细信息,采用java语言编写代码。相关代码如下: 添加书籍:
public class AddBookServlet extends HttpServlet { private ServletConfig config; //初始化Servlet
final public void init(ServletConfig config) throws ServletException{ this.config=config;
} }
throws ServletException, IOException {
this.doGet(request, response);
五、测试数据及其结果分析
1.用户查询模块:
查询功能界面:
2.商品订购界面:
3.商品支付界面:
4.管理员模块:
(1)添加商品:
(2)添加、修改商品界面:
六、调试过程中的问题
问题1:商品搜索只能检索英文,无法检索中文。
问题原因:为数据库文字匹配问题。
解决方案:(1)重装MySQL,设置成utf8,因为utf8可以兼容世界上所有的字符。 (2)创建数据库时使用语句: CREATE DATABASE `test`
CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; (3)建表和建库时使用相同的编码格式。 修改后问题得到解决
问题2:无法连接到数据库。
(1)如首页书库显示没有书籍
(2)用户注册以后登录显示用户不存在
问题原因:代码中的连接数据库代码出现问题。 解决方案:将连接部分代码改成下图所示
修改完可以成功显示书籍库中的数据