书店管理系统的设计与实现_第1页
书店管理系统的设计与实现_第2页
书店管理系统的设计与实现_第3页
书店管理系统的设计与实现_第4页
书店管理系统的设计与实现_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

书店管理系统的设计与实现——书籍销售管理模块学生姓名:指导老师:摘要本课程设计主要解决书店的管理问题,设计开发一个简单的书店管理系统,实现分类登陆,书籍管理,仓库库存管理,会员管理以及各种查询等功能。在课程设计中,系统开发平台为Windows7,程序设计语言采用Java,数据库采用OracleDatabase11gExpressEdition,程序运行平台为Windows7。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在普通书店的管理中,解决实际问题.关键词书店管理系统;数据库;Java目录TOC\o"1—2"\u1引言 11。1课题背景 11。2课程设计目的 11。3课程设计任务 22系统结构分析 32.1需求分析 32。2功能模块图 43系统数据库设计 63.1概念结构设计 63.2逻辑结构设计 73.3数据库表的建立 84系统实现 94。1数据库的连接 94.2系统功能模块设置 105系统测试方案和测试报告 125.1测试方案 125。2测试过程 126结束语 17参考文献 18附录:部分程序代码 191引言1。1课题背景随着科学技术的不断发展,电子技术悄无声息地走进了我们生活的各个角落,无时无刻的不在影响和改善着我们生活的各个方面。同时,越来越多的人开始意识到计算机技术在日常生活中所起到的重大作用.如今,随着书店规模的不断扩大,书籍种类和数量的不断增加,使得人工管理模式的局限性越发突出.因此,利用计算机技术来优化书店管理具有重大的实际意义。计算机信息管理技术的应用,除了能在相当大的程度上代替人工作业,从而减少人员工作量,减轻工作负担,减少工作中因人为原因而产生的错误从而避免不必要的损失外,更重要的是能建立准确畅通、简便的信息流通渠道,为工作提供所需要的准确、及时的信息以帮助做出正确而及时的选择与决定,从而给采用这门技术的单位带来了巨大的可见或不可见的利益与效益。1。2课程设计目的一个业绩好的书店每天都会销售出大量书籍,使用书店信息管理系统可以大大提高工作效率,减少工作中不必要的失误。与此同时,通过书店管理系统,我们可以知晓书籍的销售情况,从而进一步总结出哪些书籍最为畅销,而哪些书籍鲜有人问津,通过对销售状况的总结,我们就能够知道需要大量购进哪些书籍,以便获得更大的经济效益。而且,通过书店管理系统,我们可以对一些常来书店购书的客户实行适当的会员优惠,以留住一部分客户群体进行长期的合作,这样书店就能获取相当可观的经济效益.本论文旨在论述书店管理系统的设计与开发。通过书店管理系统的设计,熟练掌握Java、OracleDatabase10gExpressEdition等工具软件,系统地掌握需求分析、数据库设计、编码实现、测试等软件开发的流程,提高自身分析问题、解决问题的能力。1。3课程设计任务本课程设计任务是通过开发一个数据库书店管理系统,学习数据库系统的设计与开发,采用JAVA和OracleDatabase11gExpressEdition等软件为开发工具.通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践.在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理.2系统结构分析2。1需求分析书店管理系统是适应时代发展的需要,提高管理的效率而开发设计的.通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为书店管理人员提供全面、准确的各种数据.实现了书店管理的简单化和规划化,提高了书店的工作效率,从而使书店能够以少的投入获得更好的社会效益与经济效益.经过综合分析,确定了书店管理系统的主要包括以下功能:(1).书籍信息管理功能系统设置包括书籍编号设置、书籍名称设置、书籍作者设置、出版社设置、书籍进价、书籍售价和书籍数量。基本信息管理模块可以实现添加和重置书籍信息功能:。(2)。会员信息管理功能系统设置包括会员编号设置、会员姓名设置、会员等级设置、会员折扣设置和会员累计消费。基本信息管理模块可以实现查询和删除会员信息功能。(3)。账单信息管理功能系统设置包括会员姓名设置和当前消费金额设置。通过此模块能基本实现修改会员信息功能.2。2功能模块图根据上述的功能,可以设计出系统的总体功能模块,如图2。1所示。会员信息管理会员信息管理书店管理系统账单信息管理书籍信息管理图2。1书店管理系统功能模块示意图2.“书籍信息管理”功能模块用于书籍编号设置、书籍名称设置、书籍作者设置、出版社设置、书籍进价、书籍售价和书籍数量,其功能模块如图2。2所示。书籍书籍信息管理书籍编号管理书籍数量管理出版社管理书籍进价管理书籍名称管理书籍作者管理书籍售价管理图2。2书籍管理信息设置“会员信息管理”功能模块用于会员编号设置、会员姓名设置、会员等级设置、会员折扣设置和累计消费设置,其功能模块如图2.3所示。会员会员信息设置会员编号管理会员等级管理会员折扣管理会员姓名管理累计消费管理图2.3会员信息管理“账单信息管理”功能模块用于会员姓名设置和当前消费金额设置,其功能模块如图2。4所示。会员姓名管理会员姓名管理当前消费金额管理账单信息管理图2。4账单信息管理3系统数据库设计3。1概念结构设计根据需求分析抽象出信息结构,可得该系统的E—R图.(1)书籍管理E-R图,如图3.1所示。售价售价进价出版社作者名称编号书籍数量图3。1书籍管理E-R图(2)会员管理E—R图,如图3。2所示。会员会员姓名等级折扣编号消费图3.2会员管理E-R图(3)账单管理E-R图,如图3.3所示。当前消费当前消费账单会员姓名图3.3账单管理E-R图3.2逻辑结构设计根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。数据库Book包含以下5个表:书籍信息表book、会员信息表member、账单信息表bill。(1)书籍信息表book订单信息表book用来保存书籍编号、书籍名称、书籍作者、书籍出版社、书籍进价、书籍售价和数量等信息。表book的结构如表3-1所示。表3-1表book的结构编号字段名称数据结构说明1Book_idVarchar2(10)记录书籍编号2Book_nameVarchar2(20)记录书籍名称3Book_authorVarchar2(20)记录书籍作者4Book_pressVarchar2(20)记录出版社5Book_sale_priceNumber(10)记录书籍售价6Book_purchase_priceNumber(10)记录书籍进价7Book_amountNumber(10)记录书籍库存数量通过对上面表的分析,查找等操作,所有模式都符合3NF.前面是通过前台来实现系统安全性的,我们也可以对数据库进行身份验证,可以从服务器角度建一个登录名,使得不同的服务器角色拥有不同的权限,从而实现对数据库的不同权限的管理,以此来增强书店管理系统的安全性.3。3数据库表的建立在设计数据库表结构之前,首先要创建一个数据库。本系统使用的数据库为Book。可以在企业管理器中创建数据库,也可以在查询分析器中执行以下Transact—SQl语句:创建表BookCREATETABLEBOOK( BOOK_IDNUMBER(10), BOOK_NAMEVARCHAR2(20), BOOK_AUTHORVARCHAR2(20), BOOK_PRESSVARCHAR2(20), BOOK_SALE_PRICENUMBER(10), BOOK_AMOUNTNUMBER(10), BOOK_PURCHASE_PRICENUMBER(10))创建表BookidCREATETABLEBOOKID( BOOK_IDNUMBER(10))创建表memberCREATETABLEMEMBER( MEMBER_IDNUMBER(10)NOTNULLENABLE, MEMBER_NAMEVARCHAR2(20)NOTNULLENABLE, MEMBER_LEVELNUMBER(20)NOTNULLENABLE, MEMBER_REBATEFLOAT(2)DEFAULT0。9NOTNULLENABLE, MEMBER_CONSUMPTIONFLOAT(126)NOTNULLENABLE)创建表billCREATETABLEBILL( MEMBER_NAMEVARCHAR2(10), MONEYNUMBER(10))4系统实现4。1数据库的连接在该系统中使用的数据库是OracleDatabase11gExpressEdition。客户端采用的是PL/SQLDeveloper。Java运行环境为EclipseIndigo。在安装好了软件之后,数据库的连接设置在Eclipse里的Properties功能键中。如图4.1所示图4。1数据库连接在JavaBuildPath中的Libraries中,运行AddExternalJARs…找到classes12.jar并添加,则此时已将数据库和Java程序成功连接。4.2系统功能模块设置(1)设计书籍销售管理界面书籍销售管理界面可以用来查询书籍、将选定书籍加入购买目录和账单结算。创建一个选项卡面板,将其命名为OprationInfoPanel。选项卡面板的布局如图4.2所示。图4。2面板OprationInfoPanel的布局面板启动,当你点击查找功能键时,则会出现要查询的书籍信息,此时你可以实现将选定书籍加入购买目录。当用户单击“查询”按钮时,将执行findDao(StringbookName)函数,通过模糊查询检索出相关书籍信息;当用户单击“加入购买目录”按钮时,将执行addShoppingCart(intbookId)函数,系统将会自动加选定书籍添加到购买目录中并在显示出来;当用户单击“账单结算"按钮时,将执行newBillDialog(floatmoney),弹出账单结算对话框.(2)设计账单结算管理对话框账单结算管理对话框可以用来结算账单信息.添加一个对话框,将其命名为BillDialog.对话框的布局如图4.3所示。图4.3对话框BillDialog的布局对话框启动,输入相关信息,当你点击“确认账单”时,将执行confirmBillDao(StringmemberName)函数,则会显示根据数据库所计算出客户所需支付金额,当点击“提交账单”时,将执行submitOrdersDao(OrderVovo)函数,系统自动将本次交易的金额存入会员信息中,以便会员升级和下次调用会员信息。5系统测试方案和测试报告5.1测试方案由于系统规模较小,所以没有安排单独的白盒测试,而是相应地将这部分测试归并到系统编码过程中。整个测试过程基于自顶向下测试的组装模块的方法,先对主模块进行基本测试,然后在按深度优先策略逐一将子模块组装到主模块上进行测试,最后再对系统进行全面的整体测试。5.2测试过程(1)书籍销售管理主界面测试运行程序,登录成功后进入书籍销售管理界面,如图5。1所示:图5。1书籍销售管理界面(2)书籍查询功能测试输入书籍名称可查询到自己想要的书籍信息,本查询为模糊查询,会显示包含所输入字符所有书籍,如图5.2所示:图5.2模糊查询显示出的书籍分五本为一页,通过点击“上页”和“下页”按钮可以查询其他页码的书籍,如图5。3和5.4所示:图5。3分页显示查询结果(a)图5。4分页显示查询结果(b)(3)选择书籍并加入购买目录功能测试选择查询出的一条数据,并单击加入购物车按钮,将自动把选中书籍添加到购买目录中,如图5。5所示:图5.5添加书籍至购买目录(4)订单管理功能测试移除书籍:选定购买目录中的一本书,点击“移除”按钮,将自动把所选书籍从购买目录中移除,如图5。6所示:图5。6移除书籍账单结算:点击“账单结算”,按钮,将自动弹出一个账单结算窗口,“订单查询",如图5。7所示:图5。7账单结算界面输入会员名称和实付金额,点击确认账单,将自动计算根据会员折扣后所需找零金额,如图5.8所示:图5。8账单结算功能点击“提交账单”,将提示账单提交成功,将会吧数据传到数据库,并对相应的数据进行处理,如图5。9所示:图5。9提交账单6结束语本系统完成了一个书店管理系统的基本功能,包括书籍销售管理、库存管理、会员管理等。我们小组将该系统分为三大模块,分别由三位小组成员负责,最后再一起汇总,经过不断的调试,所有功能经过测试均能够正确运行,操作简便,界面友好.通过小组合作完成本次课程设计,我对数据库这门课程有了更加深刻的理解,同时也能熟练的运用eclipse来编写较为简单的java程序,并且也使得自己在对系统数据库的分析、设计有更深刻的了解。我们在各自编写程序中遇到了很多问题,通过查阅相关资料,问题得到了解决,同时也学到了一定的java编程知识。另外,通过运用JDBC数据库连接技术,我对java数据库编程技术也有了一定的了解和认识,希望通过以后的学习继续加深这方面知识的掌握。参考文献[1]王汝传。计算机图形学[M].北京:人民邮电出版社,1999:123-130。[2]刘榴娣,刘明奇,党长民。实用数字图像处理[M].北京:北京理工大学出版,2000:12-25。。[3]李彦,韩光林,李玉波.SQLSERVE完全自学手册[M].北京:电子工业出版社,2007[4]萨师煊,王珊.数据库系统概论.北京:高等教育出版社.2005附录:部分程序代码//程序名称:MainFrame.java//程序功能:主界面//程序作者:漆盛//最后修改日期:2013—09—26package.view;importjava。awt。BorderLayout;importjavax。swing。JFrame;importjavax。swing.JTabbedPane;import。view。panel.MemberInfoPanel;import.view.panel。OprationInfoPanel;import.view.panel。WarehouseInfoPanel;publicclassMainFrameextendsJFrame{ privatestaticfinallongserialVersionUID=1L; privateJTabbedPanetab; privatebooleanflag; publicMainFrame(booleanflag){ this.flag=flag; init(); } privatevoidinit(){ this。add(createTab(),BorderLayout.CENTER); this。setTitle(”书店管理系统”); this。setSize(1000,700); this。setLocationRelativeTo(null); this。setDefaultCloseOperation(JFrame。EXIT_ON_CLOSE); this.setVisible(true); this。setResizable(false); } privateJTabbedPanecreateTab(){ if(tab==null){ tab=newJTabbedPane(); } tab。add(”书籍销售管理”,newOprationInfoPanel()); if(flag){ tab.add(”仓库库存管理",newWarehouseInfoPanel()); tab。add("会员信息管理”,newMemberInfoPanel()); } returntab; }}/*书籍销售管理选项卡面板*/package。view.panel;importjava。util。Vector;importjavax。swing。JButton;importjavax。swing。JLabel;importjavax.swing.JPanel;importjavax。swing。JScrollPane;importjavax.swing。JTable;importjavax。swing.JTextField;importjavax。swing。table。DefaultTableModel;import。action。OprationInfoPanelAction;import。vo。BookVo;import。vo.PageVo;publicclassOprationInfoPanelextendsJPanel{ privatestaticfinallongserialVersionUID=1L; @SuppressWarnings(”rawtypes”) privateVectortitle=newVector(); @SuppressWarnings(”rawtypes”) privateVectortitle1=newVector(); privateJScrollPanescroll; privateDefaultTableModelmodel; privateDefaultTableModelmodel1; privateJTabletable; privateJTablecartTable; privateOprationInfoPanelActionaction=newOprationInfoPanelAction(this); privateJTextFieldbookName=newJTextField(10); privateintrow=-1; privateBookVovo; privateintrows=-1; privateJPanelcreateOprationPanel; privateJPanelcreateCartPanel; privateJTextFieldpageText=newJTextField(2); privatePageVopageVo; privateJPanelpagePanel; privateJLabelcartName=newJLabel("购买目录”); privateJScrollPanecartScroll; privateintcartRow; publicOprationInfoPanel(){ init(); } privatevoidinit(){ this。setLayout(null); this。add(createOprationPanel()); createOprationPanel。setBounds(0,0,1000,40); this。add(createScroll()); scroll.setBounds(0,45,1000,125); this.add(createPagePanel()); pagePanel。setBounds(0,170,1000,40); this。add(cartName); cartName。setBounds(0,200,80,40); this。add(createCartScroll()); cartScroll.setBounds(0,240,1000,250); this。add(createCartPanel()); createCartPanel。setBounds(0,490,1000,50); } privateJPanelcreatePagePanel(){ if(pagePanel==null){ pagePanel=newJPanel(); } pagePanel。add(createBut(”首页”)); pagePanel.add(createBut("上页”)); pagePanel.add(newJLabel("第”)); pagePanel。add(pageText); pagePanel.add(newJLabel("页”)); pageText。setEditable(false); pagePanel。add(createBut(”下页")); pagePanel。add(createBut("末页”)); returnpagePanel; } privateJPanelcreateOprationPanel(){ if(createOprationPanel==null){ createOprationPanel=newJPanel(); } createOprationPanel。add(newJLabel(”书籍名称:")); createOprationPanel。add(bookName); createOprationPanel.add(createBut(”查询”)); createOprationPanel.add(createBut("加入购买目录”)); returncreateOprationPanel; } privateJPanelcreateCartPanel(){ if(createCartPanel==null){ createCartPanel=newJPanel(); createCartPanel。add(createBut(”刷新")); createCartPanel。add(createBut("移除")); createCartPanel。add(createBut(”账单结算”)); } returncreateCartPanel; } privateJScrollPanecreateScroll(){ if(scroll==null){ scroll=newJScrollPane(createTable()); } returnscroll; } privateJScrollPanecreateCartScroll(){ if(cartScroll==null){ cartScroll=newJScrollPane(createCartTable()); } returncartScroll; } @SuppressWarnings("unchecked") privateJTablecreateTable(){ title.add(”书籍编号”); title。add(”书籍名称"); title。add(”作者”); title.add(”出版社"); title.add("价格”); model=newDefaultTableModel(title,0); if(table==null){ table=newJTable(model); } returntable; } @SuppressWarnings(”unchecked”) privateJTablecreateCartTable(){ title1。add("书籍编号"); title1。add("书籍名称”); title1。add(”作者”); title1.add(”出版社”); title1。add(”价格”); title1.add(”数量”); model1=newDefaultTableModel(title1,0); if(cartTable==null){ cartTable=newJTable(model1); } returncartTable; } privateJButtoncreateBut(StringbutName){ JButtonbut=newJButton(butName); but。addActionListener(action); returnbut; } publicStringgetBookName(){ returnbookName.getText(); } publicBookVosetBookVo(){ row=table.getSelectedRow(); if(row!=rows){ vo=null; } if(vo==null){ rows=row; vo=newBookVo(Integer。parseInt(table.getValueAt(row,0) 。toString()),table.getValueAt(row,1).toString(),table。getValueAt(row,2)。toString(),table.getValueAt(row,3).toString(),Integer.parseInt(table.getValueAt(row,4) 。toString())); } returnvo; } @SuppressWarnings("rawtypes”) publicvoidsetModel(VectorrowData){ model.setDataVector(rowData,title); } @SuppressWarnings("rawtypes”) publicvoidsetModel1(VectorrowData){ model1。setDataVector(rowData,title1); } publicintgetBookId(){ intbookId=0; row=table。getSelectedRow(); bookId=Integer.parseInt(table.getValueAt(row,0)。toString()); returnbookId; } publicintgetCartBookId(){ intbookId=0; cartRow=cartTable.getSelectedRow(); bookId=Integer。parseInt(cartTable。getValueAt(cartRow,0)。toString()); returnbookId; } publicPageVogetPageVo(){ if(pageVo==null){ pageVo=newPageVo(); } returnpageVo; } publicvoidsetPageText(Stringpage){ pageText。setText(page); } publicvoidremoveRow(){ cartRow=cartTable。getSelectedRow(); model1。removeRow(cartRow); }}/*按钮事件监听*/package。action;importjava。awt.event.ActionEvent;importjava。awt。event。ActionListener;importjava。util。Vector;importjavax。swing。JOptionPane;import。dao。BookDao;import.dao。PageDao;import。view。dialog。BillDialog;import.view。panel。OprationInfoPanel;publicclassOprationInfoPanelActionimplementsActionListener{ privateOprationInfoPanelpanel; publicOprationInfoPanelAction(OprationInfoPanelpanel){ this.panel=panel; } @SuppressWarnings({”rawtypes”}) @Ocerride publicvoidactionPerformed(ActionEvente){ StringbutName=e。getActionCommand(); BookDaodao=newBookDao(); PageDaopageDao=newPageDao(); if(butName。equals("查询")){ VectorrowData=newVector(); rowData=dao。findDao(panel。getBookName()); panel。getPageVo()。changePageVo(1,1,5); panel.setPageText(Integer.toString(1)); panel。setModel(rowData); }elseif(butName。equals(”加入购买目录")){ VectorrowData; rowData=dao。addShoppingCart(panel.getBookId()); panel。setModel1(rowData); }elseif(butName.equals(”刷新”)){ VectorrowData1; rowData1=dao.refreshCart(); panel.setModel1(rowData1); }elseif(butName.equals(”移除”)){ booleanflag; flag=dao.delBookInfo(panel.getCartBookId()); if(flag){ panel.removeRow(); JOptionPane。showMessageDialog(null,”移除成功!!!",”移除成功”,JOptionPane。OK_CANCEL_OPTION); } }elseif(butName。equals(”账单结算”)){ inti=JOptionPane.showConfirmDialog(null,”是否结算”,"账单结算", JOptionPane。YES_NO_OPTION); if(i==0){ newBillDialog(dao。cartInfoDao()); } }else{ VectorrowData=pageDao.bookPageDao(butName,panel。getBookName(),panel。getPageVo());panel.setPageText(Integer 。toString(panel。getPageVo().getStartLine()/5+1)); panel.setModel(rowData); } }}/*数据库操作代码*/@SuppressWarnings({"rawtypes”,”unchecked”}) publicVectorfindDao(StringbookName){ VectorrowData=newVector(); try{ Class.forName(”oracle。jdbc.driver.OracleDriver”); Connectioncon=DriverManager.getConnection( ”jdbc:oracle:thin:@127。0.0。1:1521:orcl”,"scott”,”tiger”); Stringsql=”select*from(selecte。*,rownumnumfrombookewheree。book_namelike'%” +bookName+”%’)awherea。numbetween1and5”; Statementst=con。createStatement(); ResultSetrs=st。executeQuery(sql); while(rs。next()){ Vectorrow=newVector(); row。add(rs.getInt("book_id")); row.add(rs。getString(”book_name")); row.add(rs。getString(”book_author")); row。add(rs。getString(”book_press”)); row。add(rs。getInt("book_sale_price")); rowData.add(row); } }catch(ClassNotFoundExceptione){ e。printStackTrace(); }catch(SQLExceptione){ e。printStackTrace(); } returnrowData; }@SuppressWarnings({"unchecked",”rawtypes"}) publicVectorrefreshCart(){ VectorrowData=newVector(); try{ Class。forName(”oracle.jdbc.driver.OracleDriver”); Connectioncon=DriverManager。getConnection( ”jdbc:oracle:thin:@127。0.0.1:1521:orcl”,”scott”,”tiger"); Statementst=con.createStatement(); Stringsql="select*frombook,bookIdwherebook。book_id=bookId。book_id"; ResultSetrs=st。executeQuery(sql); while(rs.next()){ Vectorrow=newVector(); row。add(rs。getInt(”book_id”)); row.add(rs。getString(”book_name")); row.add(rs.getString(”book_author”)); row。add(rs。getString(”book_press”)); row.add(rs。getInt(”book_sale_price”)); row。add(1); rowData。add(row); } }catch(ClassNotFoundExceptione){ e。printStackTrace(); }catch(SQLExceptione){ e。printStackTrace(); } returnrowData; }@SuppressWarnings({"rawtypes”,"unchecked"}) publicVectoraddShoppingCart(intbookId){ VectorrowData=newVector(); try{ Class。forName("oracle.jdbc。driver。OracleDriver”); Connectioncon=DriverManager。getConnection( ”jdbc:oracle:thin:@127.0。0.1:1521:orcl”,”scott”,”tiger"); Statementst=con.createStatement(); Stringsql1=”insertintobookIdvalues(”+bookId+")"; st.executeUpdate(sql1); Stringsql="select*frombook,bookIdwherebook.book_id=bookId。book_id”; ResultSetrs=st。executeQuery(sql); while(rs.next()){ Vectorrow=newVector(); row。add(rs。getInt(”book_id")); row.add(rs.getString(”book_name”)); row.add(rs.getString("book_author”)); row.add(rs.getString("book_press”)); row.add(rs。getInt(”book_sale_price")); row.add(1); rowData.add(row); } }catch(ClassNotFoundExceptione){ e.printStackTrace(); }catch(SQLExceptione){ e。printStackTrace(); } returnrowData; }publicbooleandelBookInfo(intbookId){ booleanflag=false; try{ Class。forName(”oracle。jdbc。driver。OracleDriver”); Connectioncon=DriverManager。getConnection( ”jdbc:oracle:thin:@127。0.0.1:1521:orcl”,”scott”,”tiger"); Statementst=con。createStatement(); Stringsql=”deletebookIdwherebook_id=’”+bookId+"'”; intrs=st.executeUpdate(sql); if(rs>0){ flag=true; } }catch(ClassNotFoundExceptione1){ e1.printStackTrace(); }catch(SQLExceptione1){ e1。printStackTrace(); } returnflag; }publicfloatcartInfoDao(){ floatmoney=0; try{ Class.forName(”oracle.jdbc。driver。OracleDriver"); Connectioncon=DriverManager。getConnection( ”jdbc:oracle:thin:@127。0。0.1:1521:orcl”,”scott”,”tiger"); Statementst=con。createStatement(); Stringsql=”selectcount(*)asbookIdAmountfrombookId"; ResultSetrs=st。executeQuery(sql); while(rs.next()){ Stringsql1=”select*frombook,bookIdwherebook.book_id=bookId。book_id"; ResultSetrs1=st。executeQuery(sql1); while(rs1.next()){ money=money+rs1。getInt("book_sale_price"); } System。out。println(money); } }catch(ClassNotFoundExceptione){ e。printStackTrace(); }catch(SQLExceptione){ e.printStackTrace(); } returnmoney; }publicfloatconfirmBillDao(StringmemberName){ floatrebate=0; try{ Class。forName(”oracle。jdbc.driver.OracleDriver”); Connectioncon=DriverManager.getConnection( ”jdbc:oracle:thin:@127.0。0。1:1521:orcl”,”scott”,"tiger”); Statementst=con.createStatement(); Stringsql=”select*frommemberwheremember_name='”+memberName+”’”; ResultSetrs=st。executeQuery(sql); while(rs。next()){ rebate=rs。getFloat(”member_rebate"); } }catch(ClassNotFoundExceptione){ e.printStackTrace(); }catch(SQLExceptione){ e。printStackTrace(); } returnrebate; }publicbooleansubmitOrdersDao(OrderVovo){ booleanflag=false; try{ Class.forName(”oracle。jdbc.driver。OracleDriver”); Connectioncon=DriverManager。getConnection( ”jdbc:oracle:thin:@127.0。0。1:1521:orcl",”scott”,”tiger”); Statementst=con。createStatement(); Stringsql2=”select*frommemberwheremember_name=’” +vo。getMemberName()+”'”; ResultSetrs1=st。executeQuery(sql2); floatmember_consumption=vo.getDiscountAmount(); while(rs1。next()){ member_consumption=rs1。getFloat(”member_consumption”) +vo.getDiscountAmount(); } System。out。println(member_consumption); Stringsql1="updatemembersetmember_consumption=" +member_consumption+”wheremember_name='” +vo.getMemberName()+"'”; st。executeUpdate(sql1); Stringsql="insertintobillvalues(’"+vo.getMemberName() +"’,”+vo。getDiscountAmount()+")"; intrs=st.executeUpdate(sql); if(rs>0){ flag=true; } }catch(ClassNotFoundExceptione){ e。printStackTrace(); }catch(SQLExceptione){ e。printStackTrace(); } returnflag; } publicvoiddelCartDao(){ try{ Class。forName(”oracle。jdbc。driver。OracleDriver”); Connectioncon=DriverManager。getConnection( ”jdbc:oracle:thin:@127。0。0。1:1521:orcl”,"scott",”tiger"); Statementst=con。createStatement(); Stringsql="deletebookId”; st.executeQuery(sql); }catch(ClassNotFoundExceptione){ e。printStackTrace(); }catch(SQLExceptione){ e.printStackTrace(); } }/*分页代码*/package。dao;importjava。sql.Connection;importjava。sql。DriverManager;importjava。sql。ResultSet;importjava。sql.SQLException;importjava.sql。Statement;importjava。util。Vector;import.vo。PageVo;publicclassPageDao{ privateintline=0; privateintpage=0; @SuppressWarnings({”unchecked”,”rawtypes”}) publicVectorbookPageDao(StringbutName,StringbookName,PageVovo){ VectorrowData=newVector(); intstartLine=vo。getStartLine(); intendLine=vo。getEndLine(); try{ Class。forName(”oracle.jdbc.driver.OracleDriver"); Connectioncon=DriverManager 。getConnection(”jdbc:oracle:thin:@127。0.0。1:1521:orcl”, "scott”,"tiger”); Statementst=con.createStatement(); Stringsql1=”selectcount(*)frombookwherebook_namelike’%” +bookName+”%'”; ResultSetrs1=st。executeQuery(sql1); while(rs1。next()){ line=rs1。getInt("count(*)”); } if(line%5!=0){ page=line/5+1; }else{ page=line/5; } if(”首页"。equals(butName)){ startLine=1; endLine=5; }elseif(”上页"。equals(butName)){ startLine=startLine—5; endLine=endLine—5; }elseif(”下页”。equals(butName)){ startLine=startLine+5; endLine=endLine+5; }elseif(”末页”.equals(butName)){ startLine=(1)*5+1; endLine=startLine+4; } if(startLine〈1){ startLine=1; endLine=5; } if(endLine>=line){ startLine=(1)*5+1; endLine=startLine+4; } vo.changePageVo(page,startLine,endLine); Stringsql=”select*from(selecte。*,rownumnumfrombookewheree.book_namelike’%”+bookName+"%')awherea.numbetween" +startLine+”and"+endLine; ResultSetrs=st.executeQuery(sql); while(rs.next()){ Vectorrow=newVector(); row.add(rs。getInt("book_id")); row.add(rs.getString(”book_name")); row.add(rs。getString(”book_author”)); row。add(rs.getString(”book_press”)); row。add(rs.getInt("book_sale_price")); row。add(rs。getInt(”book_purchase_price”)); row.add(rs。getInt("book_amount")); rowData。add(row); } }catch(ClassNotFoundExceptione1){ e1。printStackTrace(); }catch(SQLExceptione1){ e1。printStackTrace(); } returnrowData; }/*账单结算界面*/package。view.dialog;importjavax。swing。JButton;importjavax。swing。JDialog;importjavax.swing.JFrame;importjavax。swing。JLabel;importjavax。swing。JTextField;import.action.BillAciton;import。vo。OrderVo;publicclassBillDialogextendsJDialog{ privatestaticfinallongserialVersionUID=1L; privatefloatmoney; privateJLabelmemberNameLabel=newJLabel(”会员姓名:”); privateJTextFieldmemberNameText=newJTextField(); privateJLabelbookAmountLabel=newJLabel("书籍数量:"); privateJTextFieldbookAmountText=newJTextField(); privateJLabelamountPayableLabel=newJLabel(”应付金额:”); privateJTextFieldamountPayText=newJTextField(); privateJLabeldiscountLabel=newJLabel(”会员折扣:”); privateJTextFielddiscountText=newJTextField(); privateJLabeldiscountAmountLabel=newJLabel(”折后金额:”); privateJTextFielddiscountAmountText=newJTextField(); privateJLabelactualPaymentsLabel=newJLabel(”实付金额:”); privateJTextFieldactualPaymentsText=newJTextField(); privateJLabelchangeLabel=newJLabel("找零金额:”); privateJTextFieldchangeText=newJTextField(); privateBillAcitonaction=newBillAciton(this); publicBillDialog(floatmoney){ this.money=money; init(); } privatevoidinit(){ this。setPanel(); this。setTitle(”账单结算”); this。setSize(450,450); this。setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this。setVisible(true); this.setResizable(false); } privatevoidsetPanel(){ this。setLayout(null); this。add(memberNameLabel); memberNameLabel.setBounds(120,25,80,30); this.add(memberNameText); memberNameText.setBounds(180,25,80,30); this。add(bookAmountLabel); bookAmountLabel.setBounds(120,65,80,30); this.add(bookAmountText); bookAmountText。setBounds(180,65,80,30); this。add(amountPayableLabel); amountPayableLabel。setBounds(120,105,80,30); this。add(amountPayText); amountPayText。setBounds(180,105,80,30); amountPayText。setText(String。valueOf(money)); amountPayText。setEditable(false); this。add(discountLabel); discountLabel。setBounds(120,145,80,30); this.add(discountText); discountText.setBounds(180,145,80,30); discountText.setEditable(false); this.add(discountAmountLabel); discountAmountLabel.setBounds(120,185,80,30); this.add(discountAmountText); discountAmountText.setBounds(180,185,80,30); discountAmountText。setEditable(false); this.add(actualPaymentsLabel); actualPaymentsLabel。setBounds(120,225,80,30); this.add(actualPaymentsText); actualPaymentsText.setBounds(180,225,80,30); this.add(changeLabel); changeLabel。setBounds(120,265,80,30); this。add(changeText); changeText。setBounds(180,265,80,30); changeText。setEditable(false); JButtonbut=createBut(”确认账单"); this。add(but); but.setBounds(140,305,100,30); JButtonbut1=createBut("提交账单”); this。add(but1); but1.setBounds(140,345,100,30); } privateJButtoncreateBut(StringbutName){ JButtonbut=newJButton(butName); but。addActionListener(action); returnbut; } publicStringgetMemberName(){ returnmemberNameText。getText(); } publicvoidsetPayment(floatrebate){ discountText.setText(String.valueOf(rebate)); discountAmountText。setText(String。valueOf(money*rebate)); changeText。setText(String。valueOf(Integer。parseInt(actualPaymentsText。getText())—money*rebate)); } publicStringgetActualPaymentsText(){ returnactualPaymentsText。getText(); } publicvoidsetActualPaymentsText(inti){ actualPaymentsText。setText(String.valueOf(i)); } publicOrderVosetOrderVo(){ OrderVovo=newOrderVo(memberNameText.getText(), Float。parseFloat(discountAmountText.getText())); returnvo; }}/*账单事件监听*/package.action;importjava。awt。event。ActionEvent;importjava。awt.event。ActionListener;importjavax。swing。JOptionPane;importjavax.swing.JTextField;import。dao.BookDao;import.view。dialog。BillDialog;publicclassBillAcitonimplementsActionListener{ privateBillDialogpanel; publicBillAciton(BillDialogpanel){ this。panel=panel; } @OverridepublicvoidactionPerformed(ActionEvente){ StringbutName=e。getActionCommand(); BookDaodao=newBookDao(); JTextFieldtext=newJTextField(); floatrebate; if(butName。equals("确认账单”)){ if(panel。getActualPaymentsText().equals(text.getText())){ panel。setActualPaymentsText(0); } if(panel。getMemberName()。equals(text.getText())){ rebate=1; }else{ rebate=dao。confirmBillDao(panel。getMemberName()); if(rebate==0){ JOptionPane。showMessageDialog(null,”未找到对应会员!!!”, "会员匹配失败",JOptionPane。OK_CANCEL_OPTION); } } panel。setPayment(r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论