已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java课程设计任务书任务及要求:一、设计(研究)内容和要求内容:本系统主要完成了网上购物的功能,包括用户登录,用户注册,购物,查看购物车,生成订单,查看自己的订单,查看自己的订单详情等主要模块。采用数据库存储数据。要求:1、软件要求(1)实现界面,可以依次录入网上购物系统登录的界面,主界面,购物的界面,查看购物清单等界面。(2)实现数据库的连接和应用功能。(3)实现对商品信息的查看,商品的购买,用户购物查询,用户商品信息详单。2、文档要求(1) 设计程序结构、画出模块图。(2) 按照指导教师给出的项目文档的模板进行书写。(3) 参考文献数量不得低于4个。二、工作量3周(15个工作日)时间三、计划安排第1个工作日第3个工作日:查找相关资料、书籍,阅读示例文档;设计程序结构、模块图、完成类的设计。第4个工作日第12个工作日:完成程序的编码,并且自己调试、测试。穿插进行项目文档的撰写。第13个工作日第14个工作日:撰写和整理项目文档。第15个工作日:由教师检查软件测试效果、项目文档,给出学生本课程成绩。指导教师签字:2011年9月13日摘 要在当今时代,人们越来越多依靠计算机来解决各种各样的难题。计算机已成为人们生活工作中必不可少的元素。同时,计算机技术处于高速发展的阶段,各类新式的计算机技术层出不穷,不断面世。因此在当今,学习好计算机信息技术已是我们学习中的重中之重。运用计算机技术进行信息管理和控制,可以大大提高工作的效率及安全指标。计算机高效的控制管理优越性在复杂的管理控制系统中得到充分的体现。网上购物已经是这个时代的主流,并且在今后的生活中扮演者一个很重要的角色,人们由于生活及工作的需要,不能够抽出很多时间逛商场进行购物,在网上购物会给我们的日常生活带来非常大的方便,不断节省了时间,也会节省很大的日常开销。在今后发展越来越快速的时代里,网购会是一个很大的需求。所以,我的课程设计基于这个主题的基础之上,经过自己的编写完成了网上购物的功能,在这次课程设计中确实得到了充分的锻炼,对于我以后的学习和工作也是一个很大的鼓励。本次课程设计采用“Java”编写,结合数据库的知识,编写一个简单的采用数据库存储的“网上购物系统”。目 录1需求分析11.1功能要求11.2操作要求11.3系统的性能要求12总体设计12.1系统功能模块划分12.2界面设计12.2数据库逻辑结构与数据库设计22.2.1数据库中的表之间的逻辑关系图22.2.2数据库设计22.3关于数据的处理43详细设计与实现43.1系统包含的类及类之间的关系43.2 java源文件及其功能43.3类的功能设计53.3.1 主类用户类53.3.2商品显示及分页类63.3.3商品购买,查看购物车类63.3.4保存订单,查看订单及查看订单明细类64 测试74.1 系统主界面74.2 用户注册页面84.3 测试8参考文献14附录1 软件源程序14课程设计实践总结191需求分析1.1功能要求 本系统主要完成了网上购物的功能,包括用户登录,用户注册,购物,查看购物车,生成订单,查看自己的订单,查看自己的订单详情等主要模块。采用数据库存储数据。1.2操作要求了解jsp,Servlet运行过程,会操作MyEclipse,部署和使用Tomcat加载WEB工程,会安装JDK,并配置其环境变量,会安装MySQL数据库,会使用Windows系统浏览网页!1.3系统的性能要求Window XP系统或其以上版本MyEclipse8.5Apache-tomcat6.0.18MySQL Server 5.12总体设计2.1系统功能模块划分 本系统主要完成了网上购物的功能,包括用户登录,用户注册,购物,查看购物车,生成订单,查看自己的订单,查看自己的订单详情等主要模块的功能。2.2界面设计网上图书销售界面设计,这个界面使用了jstl标签库和css样式来设计的,外观漂亮大方。图2-1 商品购买首页2.2数据库逻辑结构与数据库设计2.2.1数据库中的表之间的逻辑关系图图2-2 数据库各表之间的关系图2.2.2数据库设计(1)创建图书类别表CREATE TABLE category( id VARCHAR(40) PRIMARY KEY, NAME VARCHAR(40) NOT NULL UNIQUE, #分类名称 description VARCHAR(255) #分类描述);(2)创建图书表create table book(id varchar(40) primary key,name varchar(40) not null unique, #书名price decimal(8,2) not null, #价格author varchar(40) not null, #作者image varchar(255) not null, #图片的位置和图片的名称description varchar(255), #描述category_id varchar(40), #类别idconstraint category_id_FK foreign key(category_id) references category(id);(3)创建用户表CREATE TABLE USER(id VARCHAR(40) PRIMARY KEY, #用户编号NAME VARCHAR(40) NOT NULL UNIQUE, #姓名PASSWORD VARCHAR(40) NOT NULL, #密码phone VARCHAR(40) NOT NULL, #电话cellphone VARCHAR(40) NOT NULL, #手机address VARCHAR(255) NOT NULL, #地址email VARCHAR(100) NOT NULL #email);(4)创建订单表CREATE TABLE orders(id VARCHAR(40) PRIMARY KEY, #订单编号ordertime DATETIME NOT NULL, #订单日期state BOOLEAN NOT NULL, #发货和未发货 0|1price DOUBLE NOT NULL, #订单中所有商品的总价格user_id VARCHAR(40), #用户idCONSTRAINT user_id_FK FOREIGN KEY(user_id) REFERENCES USER(id);(5)创建订单明细表CREATE TABLE orderitem( id VARCHAR(40) PRIMARY KEY, #订单条目编号book_id VARCHAR(40), #图书idquantity INT NOT NULL, #数量price DOUBLE NOT NULL, #每种商品的总价格order_id VARCHAR(40), #订单编号CONSTRAINT book_id_FK FOREIGN KEY(book_id) REFERENCES book(id),CONSTRAINT order_id_FK FOREIGN KEY(order_id) REFERENCES orders(id);2.3关于数据的处理 jap页面上的所有输入数据都会被提交到Servlet中,在Servlet中通过Servlet的内置对象request的getParameter方法获取,然后封装到JavaBean中,通过服务层对象调用服务层方法,将request对象和JavaBean封装的对象作为参数传递到服务层,在服务层在调用DAO层对象,并将数据库的链接connection和JavaBean封装的对象作为参数传递到DAO层,在DAO层调用QueryRunner对象的各种方法,将JavaBean封装的数据存放到数据库中,这就完成了数据的存储功能!3详细设计与实现3.1系统包含的类及类之间的关系本系统共包括10个主要的java源文件。类关系如图3-1所示。图3-1 类之间的关系3.2 java源文件及其功能1.User.java封装用户信息的javaBean2.Book.java封装商品信息的javaBean3.Order.java封装订单信息的javaBean4.BookCart.java封装购物车的javaBean5.Catrgory.java封装商品种类的javaBean6.OrderItem.java封装订单信息的javaBean7. AppUserServlet.java该文件实现注册用户及用户登录8. AppBookServlet.java该文件实现分类显示商品及商品分页9.AppBookCartServlet.java该文件实现商品购买,查看购物车10.AppOrderServlet.java该文件实现保存订单,查看订单及查看订单明细3.3类的功能设计3.3.1 主类用户类(1)成员变量见表3-1表3-1 主要成员变量(属性)成员变量描述变量类型名称nameString用户名PasswordString密码PhoneString座机cellphoneString手机AddressString地址emailStringE-mail(2)方法见表3-2表3-2 主要方法方法描述功能备注Save注册用户实现用户注册功能Login用户登录实现用户登录功能(3)源代码见文件AppUserServlet.java3.3.2商品显示及分页类(1)成员变量见表3-3表3-3 主要成员变量成员变量描述变量类型名称PathString跳转路径CurPageInteger当前页maxSizeInteger页面商品显示数目Category_idString商品类别(2)方法见表3-4表3-4 主要方法方法名功能备注List实现商品的显示及分页-3.3.3商品购买,查看购物车类(1)成员变量见表3-5表3-5 主要成员变量成员变量描述变量类型名称PathString跳转路径bookServiceBookService业务层对象BookBook图书对象(2)方法见表3-6表3-6 主要方法方法名功能备注AddBook2Cart添加图书到购物车-listBookCart查询购物车上平-3.3.4保存订单,查看订单及查看订单明细类(1)成员变量见表3-7表3-7 主要成员变量成员变量描述变量类型名称pathString跳转路经sessionHttpSessionServlet通信对象userUser用户orderServiceOrderService订单实现类对象(2)方法见表3-8表3-8 主要方法方法名功能备注saveOrder添加订单-listUserOrder查询用户订单-4 测试4.1 系统主界面系统主界面间图 4-1图4-1 系统主界面4.2 用户注册页面用户注册界面如图4-2图4-2 用户注册界面4.3 测试(1)用户注册,如果用户不输入任何内容,则会提示错误信息不能为空。如图4-3图4-3 用户注册测试界面(2)用户注册,如果输入的内容不符合要求的时候,会提示相应的错误信息。如下图4-4图4-4 用户注册测试界面(3)用户注册,如果输入的内容全部符合系统要求的信息时,错误信息就会消失。如图4-5图4-5 用户注册测试界面(4)如果用户注册成功会就会提示注册成功,并且可以使用此用户名和账号登陆购物,如图4-6图4-6 用户注册测试界面(5)如果登录系统的用户名和密码出现错误的话就会出现错误信息,如图4-7图4-7 用户登陆测试界面(6)如果用户名密码输入正确后,就会显示当前用户名字,此时就可以通过购物,如图4-8图4-8 用户登陆测试界面(7)当用户点击购买商品的时候,系统会提示购买的商品已经加入到购物车中,如图4-9图4-9 用户购物测试界面(8)返回到主页面点击查看购物车,就可以看到购买的商品信息,如图4-10图4-10 用户购物测试界面(9)如果用户确认购买的商品后统一购买商品,就可以点击生成订单提交购物信息,如图4-11图4-11 用户下订单测试界面(10)返回主页面查看用户的订单,就可以查看到此用户的所有订单,如图4-12图4-12 用户查看订单测试界面(11)在订单信息中点击查看明细,可以查询到此用户的这个订单的信息和此用户的信息,如图4-13图4-13 用户查看订单详情测试界面(12)用户还可以通过点击主页面中的列表,查看对应系列的所有商品,还可以点击页面下方的首页,上一页,下一页,尾页查看商品,如图4-14图4-14 用户查看商品信息测试界面参考文献 1 耿祥义,张跃平.Java 2实用教程(第三版)M.北京:清华大学出版社,2006.8 2 张孝祥. Java就业培训教程M. 北京:清华大学出版社,2003 3 (美)Marty Hall,Larry Brown. Servlet与JSP核心编程.第二版.赵学良译.北京: 清华大学出版社,2004.06 4 程伟,汪孝宜. 开发者突击:JSP网络开发经典模块实现全集. 北京:电子工业出版社,2008附录1 软件源程序注:这里只是附录了四个主要类的Servlet代码,可执行的源代码在BookStore717工程里面,具体的代码部署及执行方式如下:首先需要安装mysql数据库和myeclipse,安装完毕后,在mysql中新建一个 bookstore数据库,再将到工程下找到此BookStore717WebRoottemp201109231316765574341.sql文件,将此文件中的本程序需要的数据导入到mysql数据库中的bookstore数据库中,将BookStore717文件夹导入到myeclipse中,修改src目录下的c3p0数据库连接池配置文件c3p0-config.xml文件里面的数据库连接信息,部署后启动tomcat服务器,在网页中输入http:/localhost:8080/BookStore717/index.jsp即可看到主页面!1).AppBookCartServlet.java实现代码public class AppBookCartServlet extends BaseServlet /* * 增加图书到购物车 */public void addBook2Cart(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String path = /message.jsp;try/获取图书idString id = request.getParameter(id);/通过图书id查询图书信息BookService bookService = new BookService();Book book = bookService.findBookById(id);if(book!=null)/实例化BookItem对象BookItem bookItem = new BookItem();/将图书添加到BookItem中bookItem.setBook(book);/获取购物车,并将bookItem加入购物车BookCart bookCart = SessionUtils.getBookCartFromSession(request,true);bookCart.addbookItem2BookCart(bookItem);request.setAttribute(message, 你购买的书籍 + book.getName() + 已经加入到购物车中);path = /message.jsp;catch(Exception e)e.printStackTrace();request.setAttribute(message, e.getMessage();path = /message.jsp;request.getRequestDispatcher(path).forward(request, response);/* * 查看購物車 */public void listBookCart(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String path = /app/listcart.jsp;try/获取購物車BookCart bookCart = SessionUtils.getBookCartFromSession(request, false);if(bookCart=null)path = /message.jsp;request.setAttribute(message, 你要查询的购物车不存在或者你还没有购买商品);request.getRequestDispatcher(path).forward(request, response);return;/查询购物车request.setAttribute(bookCart, bookCart);path = /app/listcart.jsp;catch(Exception e)e.printStackTrace();request.setAttribute(message, e.getMessage();path = /message.jsp;request.getRequestDispatcher(path).forward(request, response);2). AppBookServlet.java实现代码public class AppBookServlet extends BaseServlet public void list(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String path = /app/index.jsp;Integer curPage = 1;Integer maxSize = 2;String category_id = request.getParameter(category_id);/将当前页放到request域中request.setAttribute(category_id, category_id);String scurPage = request.getParameter(curPage);if(StringUtils.isNotBlank(scurPage)curPage = Integer.parseInt(scurPage.trim();try /获取所有图书类别信息CategoryService categoryService = new CategoryService();List categorys = categoryService.findAllCategory();request.setAttribute(categorys, categorys);/计算开始位置的索引Integer beginIndex = (curPage-1)*maxSize;/获取所有图书信息BookService bookService = new BookService();QueryResult qr = bookService.findPageBooksByCondition(beginIndex,maxSize,category_id);if(qr!=null)request.setAttribute(books, qr.getList();/计算分页功能PageBean pageBean = new PageBean();pageBean.init(curPage, maxSize, qr.getCount();request.setAttribute(pageBean, pageBean);path = /app/index.jsp; catch (Exception e) e.printStackTrace();request.setAttribute(message, e.getMessage();path = /message.jsp;request.getRequestDispatcher(path).forward(request, response);3). AppOrderServlet.java实现代码public class AppOrderServlet extends BaseServlet public void saveOrder(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String path = /message.jsp;HttpSession session = request.getSession();User user = (User) session.getAttribute(user);if(user=null)request.setAttribute(message, 您还没有登录,不能生成订单);path = /message.jsp;request.getRequestDispatcher(path).forward(request, response);return;try/获取购物车BookCart bookCart = SessionUtils.getBookCartFromSession(request, false);/调用购物车业务层方法,生成订单OrderService orderService = new OrderService();orderService.saveOrder(bookCart,user);request.setAttribute(message, 生成订单成功);path = /message.jsp;catch(Exception e)e.printStackTrace();request.setAttribute(message, e.getMessage();path = /message.jsp;request.getRequestDispatcher(path).forward(request, response);/* * 查看自己的订单 */public void listUserOrder(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String path = /message.jsp;HttpSession session = request.getSession();User user = (User) session.getAttribute(user);if(user=null)request.setAttribute(message, 您还没有登录,不能生成订单);path = /message.jsp;request.getRequestDispatcher(path).forward(request, response);return;try/调用购物车业务层方法,生成订单OrderService orderService = new OrderService();List orders = orderService.findUserOrders(user);request.setAttribute(orders, orders);path = /app/listUserOrder.jsp;catch(Exception e)e.printStackTrace();request.setAttribute(message, e.getMessage();path = /message.jsp;request.getRequestDispatcher(path).forward(request, response);/* * 查询订单明细 */public void listOrderDetail(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String path = /message.jsp;String orderId = request.getParameter(order_id);HttpSession session = request.getSession();User user = (User) session.getAttribute(user);if(user=null)request.setAttribute(message, 您还没有登录,不能生成订单);path = /message.jsp;request.getRequestDispatcher(path).forward(request, response);return;try/调用购物车业务层方法,生成订单OrderService orderService = new OrderService();Order order = orderService.findOrderItemByOrderId(orderId);request.setAttribute(order, order);path = /app/listOrderDetail.jsp;catch(Exception e)e.printStackTrace();request.setAttribute(message, e.getMessage();path = /message.jsp;request.getRequestDispatcher(path).forward(request, response);4). AppUserServlet.java实现代码public class AppUserServlet extends BaseServlet public void save(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String path = /message.jsp;try /封装用户信息String name = request.getParameter(name);String password = request.getParameter(password);String phone = request.getParameter(phone);String cellphone = request.getParameter(cellphone);String address = request.getParameter(address);String email = request.getParameter(email);/封装信息到bean中User user = new User();user.setId(UUID.randomUUID().toString();use
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年石嘴山辅警招聘考试真题附答案详解ab卷
- 2025年马鞍山辅警招聘考试题库及答案详解(易错题)
- 2025年湛江辅警招聘考试题库含答案详解(综合题)
- 2025年萍乡辅警招聘考试真题附答案详解(b卷)
- 2025年绍兴辅警招聘考试真题含答案详解(b卷)
- 2025年萍乡辅警协警招聘考试备考题库含答案详解(满分必刷)
- 2025年荆州辅警协警招聘考试备考题库附答案详解
- 2025年石嘴山辅警招聘考试题库含答案详解(a卷)
- 2025年辽源辅警协警招聘考试真题带答案详解(完整版)
- 2025年阜新辅警招聘考试真题含答案详解(满分必刷)
- 《初级会计实务》(第五版) 第六章 所有者权益;第七章 收入、费用和利润;第八章 财务报表
- 舞台设计课件教学课件
- 四川省南充市嘉陵第一中学2024-2025学年九年级上学期11月期中英语试题
- 【合村并居的影响因素探究的国内外文献综述6400字】
- ASTM-D3359-(附著力测试标准)-中文版
- 九年级历史上册期中考试重点复习知识
- 期中测试卷-2024-2025学年语文四年级上册统编版
- 《交通运输经济学》练习题集
- 初二数学《数据的分析》公开课说课
- 2024版金矿居间合同书协议书书
- JTS∕T 276-3-2019 沿海港口工程参考定额(非正式出版稿)
评论
0/150
提交评论