网上商城的设计与实现讲解学习.docx
《网上商城的设计与实现讲解学习.docx》由会员分享,可在线阅读,更多相关《网上商城的设计与实现讲解学习.docx(14页珍藏版)》请在冰豆网上搜索。
网上商城的设计与实现讲解学习
课程设计报告
(2015/2016学年第1学期)
题目:
网上商城的设计与实现
-商品查询、订购、更改、支付模块
评分细则
评分项
成绩
遵守机房规章制度(5分)
上机时的表现(5分)
学习态度(5分)
程序准备情况(5分)
程序设计能力(10分)
团队合作精神(5分)
课题功能实现情况(10分)
算法设计合理性(10分)
用户界面设计(10分)
报告书写认真程度(5分)
内容详实程度(10分)
文字表达熟练程度(10分)
回答问题准确度(10分)
简短评语
教师签名:
年月日
评分等级
备注
评分等级有五种:
优秀、良好、中等、及格、不及格
网上商城的设计与实现
——商品查询、订购、支付、更改模块
一、课题内容和要求
根据现有的网上购物系统的现状设计并实现一种基于web的网上商城,该商城能够实现用户注册,购物车管理,商品搜索,用户资料修改等功能,实现管理员的商品管理,用户信息管理等功能。
要求实现的最基本的功能如下:
•网站公告模块;
•留言板模块;
•用户中心模块;
•商品查询模块;
•商品订购模块;
•在线支付模块;
•管理员模块(商品管理、用户管理、订单管理等,可以通过后台功能及时受理,修改,删除用户的定单等信息,还可以添加,修改,删除商品等信息)
•其它个性化功能扩展
2、需求分析
1.随着网络技术的发展,越来越多的人喜欢在网上宣传自己的产品,喜欢网上购物。
图书产品从其外部特征来看,品种繁多,实体书店或其它图书发行者无法有足够大的店面来展示所有品种;单价不高,在网络信用还存在缺失的环境下能造成的损失较小,读者也乐于尝试在线购买。
所以网上书店网站也在互联网上纷纷出现。
本次课程设计我们小组做的课题就是网上书城,我负责部分是商品查询模块、商品订购模块、在线支付模块和用户模块中的图书管理部分。
2.商品查询模块:
进行书籍的查询,用户可以按图书类别、按书名、按作者、按出版社进行查询。
每本书都显示了书名、作者、定价、特价等,如果想了解每本书的详细信息可以点击书名,详细信息还包括了书籍描述、内容简介等。
3.商品订购模块:
用户在浏览书籍时,按下“放入购物车”按钮,就可以将书籍放入自己的购物车中,便于购买。
用户还可以根据自己的需要,进行查看、修改和清空购物车的操作。
确认购买可点击“购买”进入支付系统。
4.在线支付模块:
用户在确认购买书籍后可点击“购买”进入支付系统,进行网上支付。
5.管理员模块(添加,修改,删除,查询商品):
管理系统是系统管理员对整个网站后台数据库进行维护,是此网站最重要的大门。
后台管理使用本地数据库,与因特网上的数据库实时同步,保证购书定单安全及时有效处理强大的统计分析功能,便于管理者及时了解财务状况、销售状况。
在进入本栏目时系统会提示输入系统管理员的用户名和密码,对于其他用户此界面是不可见的。
它包括用户管理、书籍管理、订单管理,这里重点介绍书籍管理。
书籍管理包主要为图书库存管理,管理员可以添加新书、添加书籍分类以及修改书籍库存信息和删除书籍。
3、概要设计
该网上书城系统由用户和管理员两个子系统构成
1.体系结构图:
图1体系结构图
2.系统数据流程图
图2系统数据流程图
3.图书选购—使用用例图
图3图书选购—使用用例图
4.图书管理—使用用例图
图4图书管理—使用用例图
4、详细设计
1.开发设计思想:
(1)采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
(2)尽量达到操作过程中的直观、方便、实用、安全等要求。
(3)系统采用B/S体系结构,浏览器(浏览器端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server(服务器端)则用于提供数据服务。
(4)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
(5)系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
2.系统具体实现:
(1)采用java、jsp语言编写代码实现各项功能。
(2)网上书城界面采用html语言实现。
(3)采用mysql实现后台数据库的管理。
我个人负责用户子系统中的查询模块和管理员系统中的书籍管理模块,采用java语言编写代码。
相关代码如下:
商品查询模块:
publicclassGetBookByBookNameServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("utf-8");//查询多少条数据
StringpageSize_str=request.getParameter("pageSize");
intoffset=0;
intpagecurrentPageNo=1;
intpageSize=5;
if(pageSize_str!
=null){
pageSize=Integer.parseInt(pageSize_str);
}
StringbookName_str=request.getParameter("bookName");
if(bookName_str!
=null){
byte[]buf=bookName_str.getBytes();
StringbookName=newString(buf);
Modelmodel=newModel();
BookPagerbookPager=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);
}
}
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
this.doGet(request,response);
}
}
添加书籍在管理员模块当中,管理员可在数据库后台添加书籍的出版社、出版日期、版本、作者、价格、ID号、内容等详细信息,采用java语言编写代码。
相关代码如下:
添加书籍:
publicclassAddBookServletextendsHttpServlet{
privateServletConfigconfig;
//初始化Servlet
finalpublicvoidinit(ServletConfigconfig)
throwsServletException{
this.config=config;
}
5、测试数据及其结果分析
1.用户查询模块:
查询功能界面:
2.商品订购界面:
3.商品支付界面:
4.管理员模块:
(1)添加商品:
(2)添加、修改商品界面:
6、调试过程中的问题
问题1:
商品搜索只能检索英文,无法检索中文。
问题原因:
为数据库文字匹配问题。
解决方案:
(1)重装MySQL,设置成utf8,因为utf8可以兼容世界上所有的字符。
(2)创建数据库时使用语句:
CREATEDATABASE`test`
CHARACTERSET'utf8'
COLLATE'utf8_general_ci';
(3)建表和建库时使用相同的编码格式。
修改后问题得到解决
问题2:
无法连接到数据库。
(1)如首页书库显示没有书籍
(2)用户注册以后登录显示用户不存在
问题原因:
代码中的连接数据库代码出现问题。
解决方案:
将连接部分代码改成下图所示
修改完可以成功显示书籍库中的数据
问题3:
支付界面只能显示,无法真正支付。
解决方案:
暂时无法解决。
7、课程设计总结
短短两个星期的专业课程设计,每天忙忙碌碌,一步一步走来,今天终于迎来了自己的成果。
在这期间,经常遇到各种各样的问题,时常为不能解决的问题而一筹莫展,但这并未因此打消我们的信心,而是使我们更加专著的去解决问题,充满了挑战的艰辛与乐趣。
通过这次课程设计使我所学的专业知识得到了综合的运用,对以前很多抽象、枯燥的理论知识加深了理解,同时也使我学会了利用结构化程序设计思想开发管理信息系统,并用模块化方法加以实现。
通过这次课程设计,我深刻地认识到信息系统开发的每一步都是以上一步为基础的。
因此每一步文档的编写都必须正确、完整,否则就会给下一步的工作带来不必要的麻烦,加大工作量。
因为系统是为用户服务的,所以要充分了解用户的需求,考虑用户的特点和使用方面的习惯,以协调人机关系。
在系统实施中应结合各方面的要求,尽可能选择自己熟悉的程序设计语言。
系统测试中要根据实际情况设计有效的测试方法。
在系统设计过程中,从用户的角度出发,在系统的可用性和易用性上做了很多功夫。
在这次的设计过程中,我学到的不仅是知识,我还认识到许多事情。
这次设计使我的编程水平提高了一大步,使我充分的认识到合作的可贵。
由于这次设计涉及到数据库,我的学到了不少编程工具与数据库连接的知识,对数据库的操作有了进一步的了解。
这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。
所以今后我的学习道路还是很漫长的。