图书销售系统设计课程设计.doc

上传人:星星 文档编号:1081836 上传时间:2024-04-14 格式:DOC 页数:37 大小:902.05KB
下载 相关 举报
图书销售系统设计课程设计.doc_第1页
第1页 / 共37页
图书销售系统设计课程设计.doc_第2页
第2页 / 共37页
图书销售系统设计课程设计.doc_第3页
第3页 / 共37页
图书销售系统设计课程设计.doc_第4页
第4页 / 共37页
图书销售系统设计课程设计.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、课程设计 课程名称: 项目设计与开发 设计题目: 网上图书销售系统 专 业: 软件工程 班 级: 1101 学生姓名: 孙元喜 学 号: 2011221104220026指导教师: 郑巧仙 一 引言(或绪论)1.1 课题背景随着网络的不断发展,读书人数不断扩大,学生数量及其信息量的急剧增加,有关买书卖书管理也随之展开,网上图书管理系统应运而生了,它可用来管理图书信息与提高系统管理工作的效率。图书管理系统把MyEclipse(前台开发)与SQL数据库(后台管理)有机地结合,并运用jdbc,js,css等相关技术,完成图书信息的规范管理、科学统计和快速查询,从而可大大减少该管理上的工作量。 数据库

2、在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据库存储的效率,保证数据的完整性和一致性。同时,合理的数据结构也将有利于程序的顺利实现。1.2 系统开发关键技术介绍本系统采用的是MyEclipse开发工具做为开发系统程序,采用SQL sever数据库访问技术完成对数据库信息的规范管理和统计查询。SQL sever使用更加简单灵活的对象模型,适用于各种程序设计语言。SQL sever提供执行以下操作方式:(1) 连接到数据源。(2) 指定访问数据源的命令,可以在命令中指定参数。(3) 执行命令,例如一个SEL

3、ECT语句。(4) 在适当情况下,可以把缓存行的更改内容写回数据库中,更新数据源。(5) 提供常规方法检测错误,错误通常由建立连接或执行命令造成,涉及到 SQL的error对象。二 系统分析2.1 总体设计思想及工作流程用户必须通过已经注册的帐号和密码才能进行对该系统的管理与应用,否则在登录系统前要进行新账号的注册;管理员通过输入密码和帐号可以对数据库的数据进行各种操作,而普通用户仅仅可以进行一部分的操作;用户根据自己的实际情况选择相应的功能来提取自己所需信息。(1) 图书信息管理系统的功能为显示主要操作页面,通过密码验证登陆界面。通过密码验证登陆,可实现安全登录,方便可靠。(2) 图书管理管

4、理系统的功能模块有:系统登陆界面,美观大方,按enter键进入密码验证登陆界面,输入正确密码登陆主菜单选择框架界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。:买家(即用户)的功能有1:查看所有图书2:输入关键字搜索图书3:按图书分类搜索图书4:查看书籍的详细信息5:加入购物车6:查看购物城,在购物车里面可以修改购买的书的数量,也可以删除不想支付的书籍7:提交订单8:提交订单后有历史使用地址记录,可以直接添加进来设置为默认地址,也可以修改地址9:再有查看过书籍后,点击历史查看记录,可以看到之前查看的书籍:买家(即管理员)的功能有1:添加书籍分类2:添加书籍3:查看

5、所有书籍4:查看,修改,删除某一书籍的信息5:查看新增订单6:处理订单程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。2.2 业务需求(1) 安全性: 用户必须通过帐号和密码才能进行对该系统的管理。(2) 权限分配: 超级管理员通过输入密码和帐号可以对数据库的数据进行各种操作,而普通用户仅仅可以进行一部分的操作。(3) 易操作性: 可以快速进行查询操作,进行数据的汇总。2.2 总体设计流程图图2 总体设计流程图该流程图为此次网上图书系统的总体流程图,用户进入界面以后可以看到登陆密码界面,密码输入正确后,不同的用户会进入不同的登陆界面1:买家的登陆界面。1:卖家的登陆界面密码登陆

6、函数流程图:该函数为密码登陆函数模块,当输入的密码不正确的时候,系统会提示“密码输入错误,请重新输入”,直到输入正确密码为止。选择框架函数流程图:选择框架函数开始卖家添加图书分类添加书籍修改书籍信息处理订单联系买家输入信息函数流程图: 输入书籍函数模块,用户可以根据提示的信息来进行每一步的输入操输入信息系统开始上传书籍图片输入书籍名称输入作者输入价格输入书籍总数输入错误重新输入作,当输入不当时,系统会自动提示,并让用户进行正确的操作。在此系统中,要求用户输入的只有字符型和数值型数据,设计了相应的函数来进行数据校验工作,保证数据输入的准确性。显示信息流程图: 当用户进入查询信息模块时,系统会显示

7、内部存储的内容。查询信息流程图:买家加入购物车到评论流程图三 系统设计3.1 系统功能结构图 设计数据库系统时应充分满足各种信息的输入和输出。据此,网上图书管理系统所需完成的主体任务。学生信息管理系统主要任务如下:(1) 基本信息的输入。包括书籍信息,价格,作者,图片,总数的输入。(2) 基本信息的修改。包括学图书价格,图片,总数的修改。(3) 基本信息的查询。所有图书、订单查询。 基于需求分析及主要任务的表述,可对上述各项功能按照结构化程序设计的要求进行集中、分层结构化,自上而下逐层设置得到系统功能模块结构图:图3.1 系统功能结构图四系统数据库设计4.1 数据表的创建根据系统特点,由数据模

8、型利用SQLServer进行数据库的详细设计,学生信息管理系统数据库中各个表格的设计结果如下:表1: 书籍表表2: 买家信息表 表3:书籍分类 表4:评论表 表5: 历史浏览记录表表6: 订单表 表7:卖家表表8:购物车表表9:地址表4.2 数据库的连接配置文件连接数据库的代码:package com.softeem.bookonline.dbutil;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import jav

9、a.sql.Statement;public class DBConnection private static final String CLASSDRIVER=com.microsoft.sqlserver.jdbc.SQLServerDriver;private static final String URL=jdbc:sqlserver:/127.0.0.1:1433;databasename=bookonline;private static final String USERNAME=sa;private static final String PASSWORD=123456;st

10、atictry Class.forName(CLASSDRIVER); catch (ClassNotFoundException e) e.printStackTrace();public static Connection getConn()Connection conn = null;try conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); catch (Exception e) e.printStackTrace();return conn;public static void close(ResultSet rs

11、,Statement stat,Connection conn)try if(rs != null)rs.close();if(stat != null)stat.close();if(conn != null)conn.close(); catch (SQLException e) e.printStackTrace();五 系统实现根据整个系统的总体设计以及相关子系统的相关模块功能的设计,我们进行了系统的软件开发。详细设计和功能展示如下:5.1 系统实现工具与支持平台(1) 用户界面本系统采用MyEclipse 8.5设计.(2) 开发和运行环境工具软件:MyEclipse,SQLServ

12、er系统软件:Oracle 10g开发环境:Windows 7 Professional 运行环境:Windows 98NT2000XP2003硬件配置:Pentium以上CPU、256MB以上的内存、4GB以上的硬盘空间5. 2 公用模块的设计部分界面截图1:登陆界面2:卖家界面3:修改书籍信息4:买家界面4.1书籍详细信息4.2:我的购物车图5.1 主控窗口六:部分核心代码展示,Servlet里面的代码展示package com.softeem.bookonline.Servlet;import java.awt.print.Book;import java.io.IOException;

13、import java.io.PrintWriter;import java.io.UnsupportedEncodingException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;im

14、port com.softeem.bookonline.DAO.IOrderDAO;import com.softeem.bookonline.DAOImpl.AddressDAOImpl;import com.softeem.bookonline.DAOImpl.BooksDAOImpl;import com.softeem.bookonline.DAOImpl.CategoryDAOImpl;import com.softeem.bookonline.DAOImpl.HistoryDAOImpl;import com.softeem.bookonline.DAOImpl.OrderDAOI

15、mpl;import com.softeem.bookonline.DAOImpl.SellerDAOImpl;import com.softeem.bookonline.DAOImpl.ShopCarDAOImpl;import com.softeem.bookonline.Services.BuyerServices;import com.softeem.bookonline.Services.SellerServices;import com.softeem.bookonline.View.AddrOrderImpl;import com.softeem.bookonline.View.

16、AddrOrderVW;import com.softeem.bookonline.dto.Addr;import com.softeem.bookonline.dto.Books;import com.softeem.bookonline.dto.Category;import com.softeem.bookonline.dto.History;import com.softeem.bookonline.dto.Order;import com.softeem.bookonline.dto.ShopCar;import .httpserver.HttpsConfigurator;publi

17、c class BuyerServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.

18、setCharacterEncoding(utf-8);response.setContentType(text/html;charset=utf-8);String flag = request.getParameter(flag);System.out.println(传过来的flag-+flag);if(findallbook.equals(flag)findallbook(request,response);else if(bookinfo.equals(flag)bookinfo(request,response);else if(addtoshopcar.equals(flag)a

19、ddtoshopchar(request,response);else if(buynow.equals(flag)buynow(request,response);else if(myshopcar.equals(flag)showmyshopcar(request,response);else if(desone.equals(flag)/减少一本书desone(request,response);else if(deleshopcar.equals(flag)deleshopcar(request,response);else if(addone.equals(flag)addone(r

20、equest,response);else if(sub.equals(flag)createoreder(request,response);else if(submitorder.equals(flag) submitorder(request,response);else if(history.equals(flag)historyread(request,response);else if(showmyorder.equals(flag)myorder(request,response);else if(showalladdr.equals(flag)showalladdr(reque

21、st,response);else if(useoldaddr.equals(flag)useoldaddr(request,response);private void useoldaddr(HttpServletRequest request,HttpServletResponse response) Boolean b = new BuyerServices(new OrderDAOImpl().addtoOrder(request, response);if(b)HttpSession sess = request.getSession();String bks = sess.getA

22、ttribute(bks).toString();System.out.println(bks);bks = bks.substring(1, bks.length();String booknums = bks.split(,);System.out.println(输出这个的长度+booknums.length);IOrderDAO odao = new OrderDAOImpl();/删除购物车中相关的信息boolean n=odao.delshorcar(bks);if(n)System.out.println(购物车里面的数据删除成功);List listsc = new Buyer

23、Services(new ShopCarDAOImpl().findAllChopCar();List listbook = new SellerServices(new BooksDAOImpl().findAllBooks(request, response);request.setAttribute(listsc,listsc);request.setAttribute(listbook, listbook);try request.getRequestDispatcher(myshopcar.jsp).forward(request, response);System.out.prin

24、tln(订单提交成功); catch (ServletException e) e.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();elseSystem.out.println(订单提交失败);private void showalladdr(HttpServletRequest request,HttpServletResponse response) List listad = new BuyerServices(new AddressDAOImpl(

25、).findAllAddr(request,response);if(listad!=null)for (int i = 0; i +listad.get(i).getAddrId();request.setAttribute(listad, listad);try request.getRequestDispatcher(order.jsp).forward(request, response); catch (ServletException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();elsetry

26、request.getRequestDispatcher(order.jsp).forward(request, response); catch (ServletException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();private void myorder(HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException /在视图里面查询我的订单的相关信息request.set

27、CharacterEncoding(utf-8);response.setContentType(text/html;charset=utf-8);List listadd = new AddrOrderImpl().findAll();System.out.println(-);try PrintWriter pw =response.getWriter();if(listadd=null)pw.println(alert(您还没有订单,赶紧去购物一波吧);request.getRequestDispatcher(buyermain1.jsp).forward(request, respon

28、se);elserequest.setAttribute(listadd, listadd);pw.println(alert(您还没有订单,赶紧去购物一波吧);request.getRequestDispatcher(buyermain1.jsp).forward(request, response); catch (ServletException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();private void historyread(HttpServletRequest request,Http

29、ServletResponse response) /查询历史浏览记录List listhis = new SellerServices(new HistoryDAOImpl().findAllHis();System.out.println(历史浏览记录有+listhis.size()+条);request.setAttribute(listhis, listhis);List list = new SellerServices(new BooksDAOImpl().findAllBooks(request,response);List list1 = new SellerServices(

30、new CategoryDAOImpl().findAllCategory();System.out.println(buyerservlet里面的findallbook+list.size();request.setAttribute(booklist, list);request.setAttribute(list1, list1);try request.getRequestDispatcher(buyermain.jsp).forward(request, response); catch (ServletException e) e.printStackTrace(); catch

31、(IOException e) e.printStackTrace();private void buynow(HttpServletRequest request, HttpServletResponse response) private void submitorder(HttpServletRequest request,HttpServletResponse response) boolean b = new BuyerServices(new OrderDAOImpl().addtoOrder(request, response);if(b)HttpSession sess = r

32、equest.getSession();String bks = sess.getAttribute(bks).toString();System.out.println(bks);bks = bks.substring(1, bks.length();String booknums = bks.split(,);System.out.println(输出这个的长度+booknums.length);IOrderDAO odao = new OrderDAOImpl();/删除购物车中相关的信息boolean n=odao.delshorcar(bks);if(n)System.out.pri

33、ntln(购物车里面的数据删除成功);System.out.println(订单提交成功);/购物车里面生成订单的记录已经从购物车里面删除了,重新查找购物车;float f = new SellerServices(new OrderDAOImpl().findAllCountMoney(request,response);System.out.println(提交后的总钱数为-+f);/修改seller的账户余额boolean bb = new SellerDAOImpl().UpdateSellertotalmon(f+);if(bb)System.out.println(seller账户

34、更新成功);List listsc = new BuyerServices(new ShopCarDAOImpl().findAllChopCar();List listbook = new SellerServices(new BooksDAOImpl().findAllBooks(request, response);/查到订单里面所有的钱;request.setAttribute(listsc,listsc);request.setAttribute(listbook, listbook);try request.getRequestDispatcher(myshopcar.jsp).f

35、orward(request, response); catch (ServletException e) e.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();elseSystem.out.println(订单提交失败);private void deleshopcar(HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException r

36、equest.setCharacterEncoding(utf-8);response.setContentType(text/html;charset=utf-8);Boolean b = new BuyerServices(new ShopCarDAOImpl().deleShopcarByBookNum(request,response);if(b)System.out.println(删除成功);try PrintWriter pw = response.getWriter();pw.println(alert(删除成功); catch (IOException e1) e1.prin

37、tStackTrace();List listsc = new BuyerServices(new ShopCarDAOImpl().findAllChopCar();List listbook = new SellerServices(new BooksDAOImpl().findAllBooks(request, response);try request.setAttribute(listsc,listsc);request.setAttribute(listbook, listbook);System.out.println(跳转到jsp页面-);request.getRequestD

38、ispatcher(myshopcar.jsp).forward(request, response); catch (ServletException e) e.printStackTrace(); catch (IOException e) e.printStackTrace();elseSystem.out.println(删除失败);private void createoreder(HttpServletRequest request,HttpServletResponse response) throws ServletException String bks = request.

39、getParameter(str);String bookprice = request.getParameter(bookprice);String bookcount = request.getParameter(bookcount);String totalmoney = request.getParameter(totalmoney);System.out.println(书本的数量+bookcount+-+书本的单价+bookprice+-+书本的总价+totalmoney);System.out.println(*-+bks);HttpSession sess = request.

40、getSession();sess.setAttribute(bks, bks);if(bks!=null)bks = bks.substring(1, bks.length();String booknums = bks.split(,);System.out.println(从提交页面获取的所有记录-+booknums.length);try System.out.println(将要执行页面跳转);PrintWriter pw = response.getWriter();pw.write();pw.flush();pw.close(); catch (IOException e) e.printStackTrace();private void addone(HttpServletRequest request, HttpServletResponse response) Boolean b = new BuyerServices(new ShopCarDAOImpl().updateShopCarByBookNum(request,response,0);if(b)System.out.println(更

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 学术论文 > 毕业论文

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922