
网上商城的设计与实现讲解学习.doc
19页AU瑯遂/磬课程设计报告(2015 / 2016 学年 第1学期)题 目:网上商城的设计与实现-商品查询、订购、更改、支付模块评分<见项 分 评55 现5 z(\ 度 态 习 学5O ^15O ^1 z(\ 况 情 实 匕匕 厶冃 功 题 谍O ^1 z(\ 性 R 二 理 合O ^15 告 报O ^1O ^1O ^1简短评语日 月 年评分等级备注隼 中 良网上商城的设计与实现——商品查询、订购、支付、更改模块一、课题内容和要求根据现有的网上购物系统的现状设计并实现一种基于 web勺网上商城,该商城能 够实现用户注册,购物车管理,商品搜索,用户资料修改等功能,实现管理员的商 品管理,用户信息管理等功能要求实现的最基本的功能如下:网站公告模块;留言板模块;用户中心模块;商品查询模块;商品订购模块;支付模块; 管理员模块(商品管理、用户管理、订单管理等,可以通过后台功能及时 受理,修改,删除用户的定单等信息,还可以添加,修改,删除商品等信 息)其它个性化功能扩展二、需求分析1. 随着网络技术的发展,越来越多的人喜欢在网上宣传自己的产品,喜欢网 上购物图书产品从其外部特征来看,品种繁多,实体书店或其它图书发行者 无法有足够大的店面来展示所有品种;单价不高,在网络信用还存在缺失的环 境下能造成的损失较小,读者也乐于尝试购买。
所以网上书店网站也在互 联网上 纷纷出现本次课程设计我们小组做的课题就是网上书城,我负责部 分是商品查询模块、商品订购模块、支付模块和用户模块中的图书管理部 分2. 商品查询模块:进行书籍的查询,用户可以按图书类别、按书名、按作者、按出版社进行 查询每本书都显示了书名、作者、定价、特价等,如果想了解每本书的详细信息可以点击书名,详细信息还包括了书籍描述、内容简介等3. 商品订购模块:用户在浏览书籍时,按下“放入购物车”按钮,就可以将书籍放入自己的 购物车中,便于购买用户还可以根据自己的需要,进行查看、修改和清空购 物车的操作确认购买可点击“购买”进入支付系统4. 支付模块:用户在确认购买书籍后可点击“购买”进入支付系统,进行网上支付5. 管理员模块(添加,修改,删除,查询商品):管理系统是系统管理员对整个网站后台数据库进行维护,是此网站最重要 的大门后台管理使用本地数据库,与因特网上的数据库实时同步,保证购书 定单安全及时有效处理强大的统计分析功能,便于管理者及时了解财务状况、 销售状况在进入本栏目时系统会提示输入系统管理员的用户名和密码,对于 其他用户此界面是不可见的它包括用户管理、书籍管理、订单管理,这里重 点介绍书籍管理。
书籍管理包主要为图书库存管理,管理员可以添加新书、添加书籍分类以 及修改书籍库存信息和删除书籍三、概要设计该网上书城系统由用户和管理员两个子系统构成1•体系结构图:图1体系结构图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) {pageSize = Integer.parseInt(pageSize_str);}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",bookPager.getBookMap().values());request.getRequestDispatcher("Admin/pages/manageBooks.jsp").forward( request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doGet(request, response);} }添加书籍在管理员模块当中,管理员可在数据库后台添加书籍的出版社、出版 日期、版本、作者、价格、 ID 号、内容等详细信息,采用 java 语言编写代码。
相关 代码如下: 添加书籍:public class AddBookServlet extends HttpServlet {private ServletConfig config;// 初始化 Servletfinal public void init(ServletConfig config)throws ServletException{this.config=config;}五、测试数据及其结果分析1.用户查询模块:查询功能界面:首匝"捜索结果皇帝柠橡2皇帝高级播素我们的杠拉竝2价格二25.0们格:36.0作者:布售斯亲死布笹斯出版社:文字山版社虫版社;新华出版社上架时间^2016-01 ・10 20:21:41.0上架日寸同二2316-01 ・10 20:21:41.0垃—搜奈结果D所有相关书籍皇帝柠榻22.商品订购界面:k 喬彊播索用户茗 hester_t^ngISBN书曙容单价数重200907040皇帝柠檬216 S115.9总你1S.B下订单返回购呦车k3. 商品支付界面:d我的购物车图片书辭S3总价皇帝柠厳16.8116.8[碼.ifTi总价16.8喘续购物4.管理员模块:(1)添加商品:所属兴:选择类别:一级分娄―迭择一级分类一 * 二级旨粪(2)添加、修改商品界面:查询按书名查询;圉 书 ID圉书屯介绍皇帝柠檬2老皇帝与柠榻经济学中 的人性沖讲iS7:皇帝 和柠槪有什2关系?如▼ 果我们把皇帝和大臣之.2!《我们的杜拉拉卡收录 了李可独家诂谈,柳传 志、徐静蕾、姚晨=赵丁 越、郎平以艮千万读者3i佐蘇可士和的超整理术2以佐庭可士和的超整理- :如果谥原研哉鹫 走了无印良品的设计哲▼ 学的话「那佐豚可士和5iEnglishBook2This xs the Asian adap七ation of K- Gregory fflankiw s market, leading3!唳间西红柿减肥本书是曰本梢里第一的 美咨减肥畅誚书,上市 {个月狂卖05万册。
本” 书作者,^曰本第一的首页1 2 3下一页尾页六、调试过程中的问题问题1:商品搜索只能检索英文,无法检索中文i?7??7?2D16-01-11 2D: 50: 4乩.C首页亍1 层页问题原因:为数据库文字匹配问题解决方案:(1)重装MySQL设置成utf8,因为utf8可以兼容世界上所有的字符(2) 创建数据库时使用语句:CREATE DATABASE 'test'CHARACTER SET 'utf8'COLLATE 'utf8_ge neral_ci';(3) 建表和建库时使用相同的编码格式修改后问题得到解决问题2:无法连接到数据库(1)如首页书库显示没有书籍同面 申?S岸 特刖推特 于人中心、 用戸窗当 联承戕£门 :主賦 ttESS我们是 悄岀惟- 优处鶴I B^ttW nfrini^i 育4快 头少谨(2)用户注册以后登录显示用户不存在问题原因:代码中的连接数据库代码出现问题 解决方案:将连接部分代码改成下图所示吠订(){less .forNc?^e(*cam»m/5ql -idbc .Driver1*) \cn = 。
