论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > JAVA >

网上书店--在线购物及统计分析(论文+程序)

由于购物车是本系统的重要部分,所以下面详细介绍一下此功能的实现和核心代码。

http://www.paper51.com

在设计购物车功能的时候,要实现购物车所必要的几个功能有以下几种,一是选择购书数量功能,二是购书提交功能,三是在购物车里面显示图书的详细情况,包括作者和价钱等相关信息,还有就是考虑到用户在已经将要购买的图书放入购物车后,当该用户浏览网页发现有比此本图书或几本图书更有购买价值之后,那么就应该在购物车里面添加一个单本删除已选图书或几本图书的删除功能。 copyright paper51.com

在购物车功能前台页面代码开发的时候,本人对页面的跳转做了以下的设定。首先在进入书本详细介绍页面的时候,在次页面下添加了选择购书数量的功能,在点击“购买”后,页面返回到主页面,在再次进入到购物车页面后,购物车页面显示了刚才选中图书的详细情况,并且在此有删除该本图书的功能,在点击“提交”后,完成该本书籍的网上购买,系统自动在该用户的余额中扣去相应金额。

内容来自论文无忧网 www.paper51.com

在代码开发中,购物车的功能是由几个类共同完成。Buybookaction.Java类是完成购物车图书详情的功能,并显示所选书籍的user_id,book_id,buynum,和bookname,并且将bookname转码成标准的gb2312格式。而delbuycartaction.Java类是购物车中的删除已选图书的功能,它调用了Javabean中的db.Java的逻辑处理方法, 完成了对单本图书和多本图书删除功能的实现。在前台buycart.JSP页面的代码中,也加入了一些判断语句,对购物车界面的一些操作进行对话框提示,让页面更具友好化。

paper51.com

购物车表单功能核心代码: http://www.paper51.com

// request.getParameter是从页面上获取输入的内容

内容来自论文无忧网 www.paper51.com

 String user_id =request.getParameter("user_id"); copyright paper51.com

        Stringbook_id = request.getParameter("bookid");

copyright paper51.com

        Stringnum = request.getParameter("buynum"); 内容来自www.paper51.com

        Stringbookname = "";

copyright paper51.com

        try{ http://www.paper51.com

        //将bookname转码

内容来自论文无忧网 www.paper51.com

    bookname=newString(request.getParameter("bookname").getBytes( paper51.com

                    "ISO-8859-1"),"gb2312");

paper51.com

        }catch (UnsupportedEncodingException e) {

paper51.com

            //TODO Auto-generated catch block

http://www.paper51.com

            e.printStackTrace();

http://www.paper51.com

        }

内容来自www.paper51.com

    // 新建一个arraylist的列表

内容来自论文无忧网 www.paper51.com

        ArrayListbuybooklist = new ArrayList();

paper51.com

    //设置一些信息,如:user_id等,放进BuyBookList

copyright paper51.com

        BuyBookListblist = new BuyBookList();

内容来自论文无忧网 www.paper51.com

        blist.setuser_id(user_id); copyright paper51.com

        blist.setbook_id(book_id);

paper51.com

        blist.setnum(num); http://www.paper51.com

        blist.setbook_name(bookname); http://www.paper51.com

        blist.setprice(request.getParameter("price"));

paper51.com

删除书籍功能核心代码: paper51.com

try {   copyright paper51.com

        //从页面获取参数:

http://www.paper51.com

            Stringbid[] = request.getParameterValues("bid"); paper51.com

            intn = 0;

paper51.com

        //从全局容器中拿到书的列表:

内容来自论文无忧网 www.paper51.com

            ArrayListbuybooklist = (ArrayList) session 内容来自www.paper51.com

                    .getAttribute("buybooklist"); 内容来自论文无忧网 www.paper51.com

            System.out.println(bid[bid.length- 1]); paper51.com

        //这里是把列表中的书删除掉,这个action是做删除的动作,拿到了用户选择的书的id的数组(多本书)bid,然后根据id去把列表中的书删除掉:

http://www.paper51.com

            for(int i = bid.length - 1; i >= 0; i--) { paper51.com

                n= Integer.parseInt(bid[i]); paper51.com

                buybooklist.remove(n); 内容来自www.paper51.com

            } http://www.paper51.com

        //把删除后的列表放到容器中:

http://www.paper51.com

            session.setAttribute("buybooklist",buybooklist); copyright paper51.com

        //如果列表中没书了,就不要放到容器中,用remove移除: 内容来自论文无忧网 www.paper51.com

            if(buybooklist.size() == 0) { copyright paper51.com

                session.removeAttribute("buybooklist"); paper51.com

                System.out.println("nullnull**********");

内容来自论文无忧网 www.paper51.com

            }

内容来自论文无忧网 www.paper51.com

        //跳转页面:

copyright paper51.com

            pageForward= "delbuycart";

http://www.paper51.com

(2)充值管理功能

内容来自www.paper51.com

本模块是为了方便书店店主以管理员身份进入后台管理界面进行充值操作而设计的,即当顾客在查询到自己余额不足的情况下,通过某种方式与店主取得联系并在网站外完成金额交易(比如:汇款),然后店主以管理员的身份进入到后台管理中的会员充值模块中,选中顾客id后,根据需要对该用户充值相应的金额。 copyright paper51.com

本功能在设计的时候,是将此功能设定在后台管理员界面中用户管理模块里面,方便管理员在对用户信息充值的时候好对用户信息进行查看。在设计充值的时候,调运了user.Java里面的addmoney方法来实现充值功能,为了使管理员能够及时查看到充值过后用户余额的变化,在页面显示了用户的当前余额,并在界面设计中的addmoney.JSP代码中设置了一些对管理员操作的判断,给予一些友好提示。 内容来自www.paper51.com

3.2.2    统计分析模块

内容来自论文无忧网 www.paper51.com

本模块包括了排行榜功能和积分管理功能两大功能,其功能主要是指顾客对本系统书籍的点击数,购买数和积分事件实行的页面实现功能。该模块的功能图如图3-4所示。

copyright paper51.com

内容来自www.paper51.com

内容来自论文无忧网 www.paper51.com

(1)排行榜功能介绍 http://www.paper51.com

排行榜功能说明:排行榜模块的实现是为了方便顾客在浏览本网站图书时,给予顾客选购图书起到一定的推荐作用。本排行榜模块包括了总的点击排行榜,总的销售排行榜,还有日点击排行榜跟周点击排行榜。下面是排行榜界面图, 如图3-5所示。

http://www.paper51.com

http://www.paper51.com

图3-5  排行榜功能界面图

http://www.paper51.com

排行榜在本系主要模块统统计分析模块中占有重要地位,下面就来详细讲解以下排行榜功能的实现和核心代码。

内容来自论文无忧网 www.paper51.com

排行榜功能在设计的时候,考虑到不同用户的爱好,就设定了有总的销售排行榜,总的点击排行榜,周排行榜和日排行榜,在周排行榜和日排行榜都运用了一个系统监听的方法来对时间周期进行判定,从而实现这两个排行榜特殊功能的,在总销售排行榜里,每本书籍后都有销售的数量数,在三个点击排行榜里,每本书后也有点击数显示。本功能的实现是在各个排行榜排列主页面的右方,并运用了下拉滚动条来实现的。 内容来自www.paper51.com

在代码中,排行榜的完成是由paihangaction.Java来实现的,其中 ActionServlet调用了JavaBean中db.Java和book.Java的逻辑处理方法。而在book.Java中运用到了gethotbooklist,gethotbooklistday,gethotbooklistweek和gethotsellbooklist这四个方法,这四个方法便是运用数据库语句将这四个排行榜从数据库中搜索出来,以完成这四个排行榜的实现。在前台pai.JSP页面代码中,实现了下拉滚动条的功能,也运用到了book.Java中的getname,getid,getclick和getnum来对三个点击排行榜里面显示点击数和销售排行榜里面显示销售数的功能实现。在日排行榜和周排行榜中还用到了syscontextlistener.Java中的contextInitialized方法,它实现了日排行榜和周排行榜中时间的判定。

内容来自论文无忧网 www.paper51.com

系统监听器实现的核心代码: 内容来自www.paper51.com

public void contextInitialized(ServletContextEventevent) http://www.paper51.com

  {//在这里初始化监听器,在tomcat启动的时候监听器启动,可以在这里实现定时器功能

内容来自www.paper51.com

      timer = newTimer(true); copyright paper51.com

     event.getServletContext().log("定时器已启动");//添加日志,可在tomcat日志中查看到 paper51.com

     timer.schedule(new exportHistoryBean(event.getServletContext()),0,60*60*1000);//调用exportHistoryBean,0表示任务无延迟,5*1000表示每隔5秒执行任务,60*60*1000表示一个小时。

http://www.paper51.com

     event.getServletContext().log("已经添加任务");

copyright paper51.com

  }

copyright paper51.com

  publicvoid contextDestroyed(ServletContextEvent event) 内容来自www.paper51.com

  {//在这里关闭监听器,所以在这里销毁定时器。

paper51.com

      timer.cancel(); paper51.com

      event.getServletContext().log("定时器销毁");

paper51.com

  }

内容来自www.paper51.com

(2)积分管理功能

内容来自www.paper51.com

积分管理模块中的积分查询是让顾客能够查询到自己的积分情况,本系统中的积分事件功能是当你注册成为会员用户后,在购买书籍金额累计到500元过后(本系统消费一元就等于加积分一点),系统自动将该会员用户升级成vip用户,vip用户享受购书8折优惠。 内容来自论文无忧网 www.paper51.com

在设计该部分时,鉴于该功能的特性,该功能是不能以功能键放置到页面,因此没对该功能做界面设计,便在开发代码的时候,在Javabean中的user.Java里设定了一个moneyupdate方法,用方法中if判断语句来对积分事件进行判定,从而完成该功能实现的。 copyright paper51.com

3.2.3    订单处理模块

http://www.paper51.com

本模块包括了用户的购买记录功能和管理员的消费记录功能,其功能是让顾客和店主能够自己查询已购书本记录和消费订单记录。该模块的功能示意图如图3-6所示。 copyright paper51.com

内容来自www.paper51.com

copyright paper51.com

(1)购买记录功能

copyright paper51.com

该功能让用户在该用户的账户管理中,能够实现用户对自己购买书籍记录的查看。而且还能够实现购买记录的电子报表导出,并且能够完成该页面的打印功能。

copyright paper51.com

该功能在设计的时候,考虑到用户需要对自己购买书本的详细情况进行了解或查询,所以需要有个导出电子报表的功能,好让用户对个人购书记录的情况有个直观了解,而在便于用户对购买记录的即时保存上,本系统在购买记录功能界面添加了打印记录功能。在这两个功能的辅助下,使得用户在对购买记录的查询和保存上有了一定的保障措施。在打印代码的设计时,是由querylistaction.Java实现的,里面运用了if语句来对消费记录为空进行判断,而且其中调用了buybooklist.Java中的getquerylist方法,来对消费记录表进行读取,从而实现打印功能。

http://www.paper51.com

(2)消费记录功能 paper51.com

消费记录功能说明:该功能是让管理员在登录之后,对所有顾客消费记录的查看。其中的查询功能能够根据书名和用户的id号来查询相应书籍的详细记录,而且能够实现购买记录的电子报表导出,也能够完成该页面的打印功能。 内容来自论文无忧网 www.paper51.com

现在介绍下消费记录功能中电子报表导出的功能。设计此功能是为了方便管理员更直观的查看消费记录清单。它能够根据消费记录导出一张excel表,包括了用户id,书籍名,购买数量,购买价格和购买时间这些重要信息的导出。在代码设计中,报表导出的功能主要是用Javabean里面的excelparse.Java来实现,在这个类里,调用了writeexcel这个方法,运用case语句来对excel表导出进行判断来完成此功能。

内容来自论文无忧网 www.paper51.com

Excel表导出功能核心代码: http://www.paper51.com

//这个是导出excel,一个workbook就相当于一个excel文件: copyright paper51.com

HSSFWorkbook wb = new HSSFWorkbook(); copyright paper51.com

    //一个sheet就是excel里面的一个sheet: 内容来自论文无忧网 www.paper51.com

        HSSFSheets = wb.createSheet();

http://www.paper51.com

    //然后为sheet设置名字 paper51.com

wb.setSheetName(0, "购买记录", (short) 1); copyright paper51.com

    //这个是表格的标题,只是定义,还没放到里面去

http://www.paper51.com

        Stringtitle[] = { "用户ID","书籍名", "购买数量","购买价格", "购买时间"};

copyright paper51.com

    //循环写入title:

http://www.paper51.com

        for(short i = 0; i < title.length; i++) { 内容来自www.paper51.com

            //新建一行:

内容来自www.paper51.com

HSSFRow row = s.createRow(0);

http://www.paper51.com

//新建一个cell:

内容来自www.paper51.com

            HSSFCellcell = row.createCell(i); http://www.paper51.com

            //设置编码和值:

copyright paper51.com

cell.setEncoding((short) 1);

copyright paper51.com

            cell.setCellValue(title[i]);

copyright paper51.com

        }

copyright paper51.com

        BuyBookListbbl = new BuyBookList(); 内容来自论文无忧网 www.paper51.com

        //循环列表中的书,然后把内容写进去: http://www.paper51.com

        for(short i = 1; i < list.size() + 1; i++) { 内容来自论文无忧网 www.paper51.com

            bbl= (BuyBookList) list.get(i - 1);

copyright paper51.com

            //新建一行:

paper51.com

            HSSFRowrow = s.createRow(i);

http://www.paper51.com

            //循环5列: 内容来自论文无忧网 www.paper51.com

            for(short j = 0; j < 5; j++) {

copyright paper51.com

                switch(j) {

http://www.paper51.com

                case0: //第一列写入user_id 内容来自论文无忧网 www.paper51.com

                    HSSFCellcell = row.createCell(j);  //新建cell http://www.paper51.com

                    cell.setCellValue(bbl.getuser_id());    //写入值 内容来自论文无忧网 www.paper51.com

                    break;

内容来自www.paper51.com

                case1: //第二列写入bookname

内容来自论文无忧网 www.paper51.com

                    cell= row.createCell(j);

内容来自www.paper51.com

                    cell.setEncoding((short)1);

http://www.paper51.com

                    cell.setCellValue(bbl.getbook_name());

paper51.com

                    break;

内容来自www.paper51.com

                case2: //num 内容来自论文无忧网 www.paper51.com

                    cell= row.createCell(j); paper51.com

                    cell.setCellValue(bbl.getnum()); copyright paper51.com

                    break; http://www.paper51.com

                case3: //price

内容来自www.paper51.com

                    cell= row.createCell(j); 内容来自论文无忧网 www.paper51.com

                    cell.setCellValue(bbl.getprice());

内容来自论文无忧网 www.paper51.com

                    break;

内容来自www.paper51.com

                case4: //buydate 内容来自论文无忧网 www.paper51.com

                    cell= row.createCell(j);

http://www.paper51.com

                    cell.setCellValue(bbl.getbuydate()); http://www.paper51.com

                    break; 内容来自论文无忧网 www.paper51.com

                } 内容来自论文无忧网 www.paper51.com

            } 内容来自www.paper51.com

        } copyright paper51.com

------分隔线----------------------------
联系方式