网上图书销售系统课程设计Word文件下载.docx
《网上图书销售系统课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《网上图书销售系统课程设计Word文件下载.docx(49页珍藏版)》请在冰点文库上搜索。
通过密码验证登陆,可实现安全登录,方便可靠。
(2)图书管理管理系统的功能模块有:
系统登陆界面,美观大方,按enter键进入密码验证登陆界面,输入正确密码登陆主菜单选择框架界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。
①:
买家(即用户)的功能有
1:
查看所有图书
2:
输入关键字搜索图书
3:
按图书分类搜索图书
4:
查看书籍的详细信息
5:
加入购物车
6:
查看购物城,在购物车里面可以修改购买的书的数量,也可以删除不想支付的书籍
7:
提交订单
8:
提交订单后有历史使用地址记录,可以直接添加进来设置为默认地址,也可以修改地址
9:
再有查看过书籍后,点击历史查看记录,可以看到之前查看的书籍
②:
买家(即管理员)的功能有
添加书籍分类
添加书籍
查看所有书籍
查看,修改,删除某一书籍的信息
查看新增订单
处理订单
程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。
2.2业务需求
(1)安全性:
用户必须通过帐号和密码才能进行对该系统的管理。
(2)权限分配:
超级管理员通过输入密码和帐号可以对数据库的数据进行各种操作,而普通用户仅仅可以进行一部分的操作。
(3)易操作性:
可以快速进行查询操作,进行数据的汇总。
2.2总体设计流程图
图2 总体设计流程图
该流程图为此次网上图书系统的总体流程图,用户进入界面以后可以看到登陆密码界面,密码输入正确后,不同的用户会进入不同的登陆界面1:
买家的登陆界面。
卖家的登陆界面
密码登陆函数流程图:
该函数为密码登陆函数模块,当输入的密码不正确的时候,系统会提示“密码输入错误,请重新输入”,直到输入正确密码为止。
选择框架函数流程图:
输入信息函数流程图:
输入书籍函数模块,用户可以根据提示的信息来进行每一步的输入操
作,当输入不当时,系统会自动提示,并让用户进行正确的操作。
在此系统中,要求用户输入的只有字符型和数值型数据,设计了相应的函数来进行数据校验工作,保证数据输入的准确性。
显示信息流程图:
当用户进入查询信息模块时,系统会显示内部存储的内容。
查询信息流程图:
买家加入购物车到评论流程图
三系统设计
3.1系统功能结构图
设计数据库系统时应充分满足各种信息的输入和输出。
据此,网上图书管理系统所需完成的主体任务。
学生信息管理系统主要任务如下:
(1)基本信息的输入。
包括书籍信息,价格,作者,图片,总数的输入。
(2)基本信息的修改。
包括学图书价格,图片,总数的修改。
(3)基本信息的查询。
所有图书、订单查询。
基于需求分析及主要任务的表述,可对上述各项功能按照结构化程序设计的要求进行集中、分层结构化,自上而下逐层设置得到系统功能模块结构图:
图3.1系统功能结构图
四系统数据库设计
4.1数据表的创建
根据系统特点,由数据模型利用SQLServer进行数据库的详细设计,学生信息管理系统数据库中各个表格的设计结果如下:
表1:
书籍表
表2:
买家信息表
表3:
书籍分类
表4:
评论表
表5:
历史浏览记录表
表6:
订单表
表7:
卖家表
表8:
购物车表
表9:
地址表
4.2数据库的连接
配置文件连接数据库的代码:
packagecom.softeem.bookonline.dbutil;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassDBConnection{
privatestaticfinalStringCLASSDRIVER="
com.microsoft.sqlserver.jdbc.SQLServerDriver"
;
privatestaticfinalStringURL="
jdbc:
sqlserver:
//127.0.0.1:
1433;
databasename=bookonline"
privatestaticfinalStringUSERNAME="
sa"
privatestaticfinalStringPASSWORD="
123456"
static{
try{
Class.forName(CLASSDRIVER);
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
}
publicstaticConnectiongetConn(){
Connectionconn=null;
conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);
}catch(Exceptione){
returnconn;
publicstaticvoidclose(ResultSetrs,Statementstat,Connectionconn){
if(rs!
=null)rs.close();
if(stat!
=null)stat.close();
if(conn!
=null)conn.close();
}catch(SQLExceptione){
}
五系统实现
根据整个系统的总体设计以及相关子系统的相关模块功能的设计,我们进行了系统的软件开发。
详细设计和功能展示如下:
5.1系统实现工具与支持平台
(1)用户界面
本系统采用MyEclipse8.5设计.
(2)开发和运行环境
工具软件:
MyEclipse,SQLServer
系统软件:
Oracle10g
开发环境:
Windows7Professional
运行环境:
Windows98\NT\2000\XP\2003
硬件配置:
PentiumⅢ以上CPU、256MB以上的内存、4GB以上的硬盘空间
5.2公用模块的设计
部分界面截图
登陆界面
卖家界面
3:
修改书籍信息
买家界面
4.1书籍详细信息
4.2:
我的购物车
图5.1主控窗口
六:
部分核心代码展示,Servlet里面的代码展示
packagecom.softeem.bookonline.Servlet;
importjava.awt.print.Book;
importjava.io.IOException;
importjava.io.PrintWriter;
importjava.io.UnsupportedEncodingException;
importjava.util.List;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
importcom.softeem.bookonline.DAO.IOrderDAO;
importcom.softeem.bookonline.DAOImpl.AddressDAOImpl;
importcom.softeem.bookonline.DAOImpl.BooksDAOImpl;
importcom.softeem.bookonline.DAOImpl.CategoryDAOImpl;
importcom.softeem.bookonline.DAOImpl.HistoryDAOImpl;
importcom.softeem.bookonline.DAOImpl.OrderDAOImpl;
importcom.softeem.bookonline.DAOImpl.SellerDAOImpl;
importcom.softeem.bookonline.DAOImpl.ShopCarDAOImpl;
importcom.softeem.bookonline.Services.BuyerServices;
importcom.softeem.bookonline.Services.SellerServices;
importcom.softeem.bookonline.View.AddrOrderImpl;
importcom.softeem.bookonline.View.AddrOrderVW;
importcom.softeem.bookonline.dto.Addr;
importcom.softeem.bookonline.dto.Books;
importcom.softeem.bookonline.dto.Category;
importcom.softeem.bookonline.dto.History;
importcom.softeem.bookonline.dto.Order;
importcom.softeem.bookonline.dto.ShopCar;
import.httpserver.HttpsConfigurator;
publicclassBuyerServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
doPost(request,response);
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
request.setCharacterEncoding("
utf-8"
);
response.setContentType("
text/html;
charset=utf-8"
Stringflag=request.getParameter("
flag"
System.out.println("
传过来的flag---->
"
+flag);
if("
findallbook"
.equals(flag)){
findallbook(request,response);
}elseif("
bookinfo"
bookinfo(request,response);
addtoshopcar"
addtoshopchar(request,response);
buynow"
buynow(request,response);
myshopcar"
showmyshopcar(request,response);
desone"
//减少一本书
desone(request,response);
deleshopcar"
deleshopcar(request,response);
addone"
addone(request,response);
sub"
createoreder(request,response);
submitorder"
submitorder(request,response);
history"
historyread(request,response);
showmyorder"
myorder(request,response);
showalladdr"
showalladdr(request,response);
useoldaddr"
useoldaddr(request,response);
}
privatevoiduseoldaddr(HttpServletRequestrequest,
HttpServletResponseresponse){
Booleanb=newBuyerServices(newOrderDAOImpl()).addtoOrder(request,response);
if(b){
HttpSessionsess=request.getSession();
Stringbks=sess.getAttribute("
bks"
).toString();
System.out.println(bks);
bks=bks.substring(1,bks.length());
String[]booknums=bks.split("
"
System.out.println("
输出这个的长度"
+booknums.length);
IOrderDAOodao=newOrderDAOImpl();
//删除购物车中相关的信息
booleann=odao.delshorcar(bks);
if(n){
System.out.println("
购物车里面的数据删除成功"
}
List<
ShopCar>
listsc=newBuyerServices(newShopCarDAOImpl()).findAllChopCar();
Books>
listbook=newSellerServices(newBooksDAOImpl()).findAllBooks(request,response);
request.setAttribute("
listsc"
listsc);
listbook"
listbook);
try{
request.getRequestDispatcher("
myshopcar.jsp"
).forward(request,response);
订单提交成功"
}catch(ServletExceptione){
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
}else{
订单提交失败"
privatevoidshowalladdr(HttpServletRequestrequest,
List<
Addr>
listad=newBuyerServices(newAddressDAOImpl()).findAllAddr(request,response);
if(listad!
=null){
for(inti=0;
i<
listad.size();
i++){
去得到的地址ID-->
+listad.get(i).getAddrId());
listad"
listad);
order.jsp"
else{
privatevoidmyorder(HttpServletRequestrequest,
HttpServletResponseresponse)throwsUnsupportedEncodingException{
//在视图里面查询我的订单的相关信息
AddrOrderVW>
listadd=newAddrOrderImpl().findAll();
----------------------->
try{
PrintWriterpw=response.getWriter();
if(listadd==null){
pw.println("
<
script>
alert('
您还没有订单,赶紧去购物一波吧'
)<
/script>
buyermain1.jsp"
}else{
request.setAttribute("
listadd"
listadd);
}catch(ServletExceptione){
e.printStackTrace();
}catch(IOExceptione){
privatevoidhistoryread(HttpServletRequestrequest,
//查询历史浏览记录
List<
History>
listhis=newSellerServices(newHistoryDAOImpl()).findA