《超市账单管理系统设计.doc》由会员分享,可在线阅读,更多相关《超市账单管理系统设计.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle数据库管理期末考核设计方案书题 目 超市账单管理系统的设计与实现 学 院 xxxxxxxxxxxxxxxxxxxxxx 专 业 xxxxxxxxxxxxxxxxxxxxxx 学生姓名 xxxxxxxxxxxxxxxxxxxxxx Oracle用户名xxxx 密码 xxxx 学 号 xxxx 年级 xxxx 指导教师 xxxx 职称 xxxx 2014 年 6 月 27 日超市帐单管理系统的设计与实现专 业:计算机科学与技术学 号:xxxx学 生:xxxx指导老师: xxxx摘 要:随着科学技术的不断发展,计算机越来越普及,随之各种软件也相应而出.许许多多的企业也用上了相应的软件,来
2、加快自身的发展。由于超市行业的不断壮大,也需要一套软件来相应的软件来管理.在这种情况下超市账单管理系统也应运而生。超市账单管理系统主要是对超市账单、供应商、用户的简单管理。本系统主要用java语言进行开发,Oracle数据库和myeclipse开发工具;主要用的核心技术是Servlet,用来处理用户的请求和页面之间的跳转,JDBC(Java Data Base Connectivity)连接数据库实现处理与数据库的交互.页面使用的是JSP.本系统能更快,更方便的管理好整个工作流程中的各个模块,使工作效率达到最优化。关键字: java;servlet;Oracle;jsp;目录1绪 论11。1研
3、究背景11。2 项目概述22 需求分析32。1业务需求32。2 项目功能需求32。3 程序流程图52.4 Oracle介绍62。5 MVC设计模式63 概要设计83.1 系统分析83。2 项目包结构设计94 详细设计104.1 界面设计104。2 数据库设计134.2.1 数据库表的设计134。2.2 数据库连接185 系统测试21小 结22I1绪 论1.1研究背景超级市场是以顾客自选方式经营的大型综合性零售商场,又称自选商场。是许多国家特别是经济发达国家的主要商品零售组织形式。 超级市场于20世纪30年代初最先出现在美国东部地区 。我国超市市场形成于20世纪90年代初期,现在已经成为我国零售
4、业的一种重要形态,为国民经济的发展发挥了重要的作用。随着超市行业的高速发展,最初的售货员站柜台的销售方式已不能满足现有的销售业的发展,因此迫切的需要引入新的管理技术.随着科学技术的高速发展,信息技术已经深深的影响着我国各行各业的发展。步入数字化时代,有巨大的数据信息等待着加工处理和传输,超市系统本就需要有一个强大的数据库支持,这就需要对数据库进一步的开发和利用,而对超市的销售管理,信息的存储和处理也显的尤其重要。要适应如今激烈的市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。超市虽然具有各种优点,但当下,它仍存在零售企业所共有的落后的一面,例如:不能有效的管理
5、每种商品、收款结算速度慢,容易出现营业差错,不易进行商品调价,盘库效率低,而且商品的进、销、存不能保证同步更新,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。随着超市形态的高速发展,其经营管理也变的越为复杂,数据库的庞大支撑导致中间流通的数据量大增,中间的商业运转环节也越来越多,传统的管理模式已不能满足,而依靠现信息技术的超市管理系统管理超市,可以节省大量的人力物力,更重要的是能更快更稳的推动超市销售发展,协助管理者做出与时俱进适应市场变化的正确决策,加快超市经营管理效率.超市管理系统是超市对商品的信息化管理系统,本系统可以提高管理水平和工作效率,可以最大限度的减少人工操作带来
6、的错误,使用此系统主要为了实现商品管理的稳定性、可维护性等,从而达到提高商品管理效率并指导经营方向的目的。1。2 项目概述本系统的主要功能就是完成对供应商往来账添加的功能,每一批到货情况,是否付款等情况在这个管理模块中进行记录,并且标有记账时间,似的数据有依可循,供随时查询。此外可以根据商品的名称查出是否记录过,是否已经付款的功能。实现供应商信息的添加查询功能。本系统本身是一个较为简单的项目,所以包含的模块不是太多。经过分析得出主要涉及模块包括:管理员模块:可以对账单中的数据进行增删改查,对供应商的数据进行增删改查。能够对用户的数据进行增删改查。用户模块:对账单中的数据进行增删改查,能对用户本
7、身的数据进行修改。2 需求分析2。1业务需求超市账单管理主要用于对超市的交一张单进行管理,如账单录入,账单修改,账单删除,以及和超市相关的供应商、用户的管理.所谓账单,就是超市与供应商进行交易的凭据.超市采购部的志愿、超市的部门经理是该系统的目标用户。主要涉及模块包括:管理员模块:可以对账单中的数据进行增删改查,对供应商的数据进行增删改查。能够对用户的数据进行增删改查。用户模块:对账单中的数据进行增删改查,能对用户本身的数据进行修改.2.2 项目功能需求序号功能列表1登录:使用用户名和密码登录,成功进入主界面.否则将提示出错信息2账单操作:账单的增删改查,在操作工程中会根据用户权限判断是否能够
8、操作,权限不足返回出错信息.3用户操作:用户的增删改查,在操作过程中根据用户权限判断操作范围。4供应商操作:供应商的增删改查,在操作过程中根据用户的权限判断是否能够操作供应商.权限不足返回出错信息。2。3 程序流程图2。4 Oracle介绍Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。劳伦斯埃里森和他的朋友,之前的同事Bob Miner和Ed Oates在1977年建立了软件开发实验室咨询公司(SDL,Software Development Laboratories)。ORACLE数
9、据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c引
10、入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c成为私有云和公有云部署的理想平台。2.5 MVC设计模式 模块、视图和控制器(MVC)模式是80年代Smalltalk806出现的一种软件设计模式,现在已经被广泛使用。MVC模式是一个描述重现问题及其解决方案的设计
11、范式,其中控制器位于视图和模块之间,对视图如何与模块交互进行管理,这使得视图能够完全独立于控制器和模型,可以轻松实现客户端的设计。将控制器和模型分开就可以在互不影响的情况下修改任何一方。这样有助于减少各个部分之间的关联性。随着电子邮件系统的应用,各领域可以随时方便地进行信息的交流而无须掌握复杂的技术,从而改进了传统的信息交流的模式。MVC设计模式把一个软件组件区分为三个不同的部分:model、view、controller。模型(MODEL)模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑,代表组件状态和低级行为的部分,它管理着自己的状态并且处理所有对状态的操作,Model自己本身并不
12、知道使用自己的view和controller是谁,系统维护着它和view之间的关系,当Model发生了改变系统还负责通知相应的view。视图(VIEW)视图是应用程序中用户界面相关的部分,是用户能看到并与之交互的界面。它代表了管理Model所含有的数据的一个视觉上的呈现,一个Model可以有一个以上的view。控制器(CONTROLLER)控制器的工作就是根据用户的输入,控制用户界面数据显示更新Model对象状态,并管理着Model和用户之间的交互的控制,它提供了一些方法去处理当Model的状态发生了变化时的情况.modelviewcontroller3 概要设计本章将在需求分析的基础上较详细
13、的给出每个模块的名称,实现一些细节,加深读者对项目的理解,同时同时也理清思路,保证后面的开发编码工作可以顺利的进行.3.1 系统分析在本系统中,分为管理员模块,用户管理模块。有两个角色:管理员和普通用户。管理员:拥有所有模块的操作权限普通用户:可以对账单进行操作,本人的资料进行操作。用户登录系统功能模块图:验证普通会员用户管理供应商管理账单管理管理员3.2 项目包结构设计 本设计包括三个包。com.db包中的DBOperation是连接数据库的类。BillOperaion主要是实现账单的增删查改操作.SupplierOperation主要是实现供应商的增删查改。USOperation主要是实现
14、用户的增删查改。com.entity包中的Bill类是用来记录数据库中的账单信息,Supplier类是用来记录数据库中的供应商信息,US是用来记录数据库中的用户信息.Com。Servlet包中的类LoginServlet根据URI决定分发给doGet还是doPost处理请求,然后调用相应的业务逻辑方法,调用相应的页面去执行响应.利用JDBC(Java Data Base Connectivity)技术处理与数据库连接,利用其Servlet API所定义的接口和类来封装与数据库交互的相关操作,使对数据库的操作变得相当容易,减少开发时间,而且能对系统进行灵活的设计和实现,使系统的各模块容易维护和重
15、用.154 详细设计4。1 界面设计登录界面public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /* * Servlet的doPost方法 /public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/h
16、tml;charset=gbk”);PrintWriter out = response。getWriter();String user=;user=request.getParameter(”username);user=user=null?null:new String(user.getBytes(”ISO88591),gbk”);String passWord=”;passWord=request.getParameter(password”);List users=USOperation.select();int n=0;for (int i = 0; i users。size();
17、i+) if(user.equals(users。get(i).getUserName()&passWord.equals(users。get(i)。getPassWord())HttpSession session=request.getSession(true);session。setAttribute(username”, user);session。setAttribute(”password”,passWord );RequestDispatcher view =request.getRequestDispatcher(main.jsp);view。forward(request,
18、response);break;elsen+;主界面账单管理界面管理员登录用户管理界面用户登录本人信息管理界面管理员登录供应商管理界面用户登录供应商管理界面4。2 数据库设计数据库是此类系统的核心,系统中所有的信息都存储在数据库中,在所有jsp页面中通过JDBC与数据库连接,操作数据库中的数据,从而实现所有需要的功能.数据库软件有很多.本系统中数据库采用Oracle作为数据库工具。数据库是网站的核心,数据库设计的合理与否对网站的建设有着至关重要的影响。4。2.1 数据库表的设计本系统有三张表:BILL(账单信息表),SUPPLIER(供应商信息表),US(用户信息表,包括管理员用户和普通用户)
19、。物理数据图:建表代码:create table BILL( BILLID NUMBER not null, GOODSNAME VARCHAR2(20) not null, GOODSNUM NUMBER not null, MONEY BINARY_DOUBLE not null, ISPAY VARCHAR2(4) not null, SUPPLIERNAME VARCHAR2(20) not null, GOODSDESCRIBLE VARCHAR2(40) not null, BILLTIME DATE not null)tablespace USERS pctfree 10 ini
20、trans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );alter table BILL add constraint BILLID primary key (BILLID) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );commit;create table US( USERID NUMBER n
21、ot null, USERNAME VARCHAR2(20), SEX VARCHAR2(10), AGE NUMBER, TELPHONE VARCHAR2(20), ADDRESS VARCHAR2(20), POWER VARCHAR2(20), PASSWORD VARCHAR2(20))tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );alter table US add constraint USERID prim
22、ary key (USERID) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );commit;create table SUPPLIER( SUPPLIERID NUMBER not null, SUPPLIERNAME VARCHAR2(20), SUPPLIERDESCRIBLE VARCHAR2(40), LINKMAN VARCHAR2(20), TELPHONE VARCHAR2(20),
23、 ADDRESS VARCHAR2(40)tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );alter table SUPPLIER add constraint SUPPLIERID primary key (SUPPLIERID) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents
24、1 maxextents unlimited );commit;插入数据后得到表:BILL表:SUPPLIER表:US表:4.2。2 数据库连接 数据库的初始化/ 数据库的初始化 return */private DBOperation getDB()DBOperation dbo1=new DBOperation();dbo1。setDriver(oracle。jdbc。driver。OracleDriver”);dbo1.setUrl(”jdbc:oracle:thin:180.84.33。254:1522/orcl);dbo1.setUser(”B_LIYZ);dbo1。setPassW
25、ord(”123”);return dbo1;数据库的属性/* 定义类的属性 /private String driver=null;/连接数据库的驱动private String url=null;/连接数据库所需要的URLprivate String user=null;/连接数据库时所需要的用户名private String passWord=null;/连接数据库时所需要的密码连接数据库的工具/* * 连接时所需要的工具 /private Connection conn=null;private PreparedStatement ps=null;private ResultSet r
26、s=null;连接数据库及关闭数据库/* * 连接数据库 /public void connectionDB()try /注册驱动Class.forName(driver);/建立数据库的连接conn=DriverManager.getConnection(url,user,passWord); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printS
27、tackTrace(); finally /* 关闭数据库 */private void closeDB() try if(rs!=null)rs.close();if(ps!=null)ps.close();if(conn!=null)conn.close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();5 系统测试软件测试是整个软件开发过程中一段非常重要的阶段,在测试过程中如能按照测试的基本过程来进行测试,这样在测试完一个软件后,软件的质量能有所保障。软件测试不仅有测试目的、测试过
28、程,在测试过程中还应按照一定的测试方法,针对不同的过程应用不同的方法。软件测试的内容是深不可测的,在测试的过程中应结合具体的实际情况采用不同的方法进行测试,以保证软件质量过关。软件测试是一个重要的阶段,也是非常复杂的一个过程,测试过程及方法灵活多变,并不是固定不变的。一个好的测试人员不仅能发现问题、从发现的错误中分析错误出现的原因,更应能拟定软件测试计划、编制软件测试大纲、编写测试用例,从而提高的工作效力,降低了开发产品的成本,更好的保证软件的质量。 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序。通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的
29、每条通路都能按预定的要求正确的工作。这一方法是把测试对象看作一个打开的盒子测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有的逻辑路径进行测试,通过在不同检查程序的状态,状态是否与预期的状态一致.小 结在超市账单管理系统开发过程中,有很多东西值得我们思考并总结.开发过程大体可分为以下几个步骤:实现整个程序大体需要的几个模块和其中用到的JSP和J2EE语言基本操作符、语句等。画出总体设计方案流程图:用流程图的形式展现你的基本编程思想。(3) 流程图具体化:即将流程图中的几大模块的具体实现思考清楚,可以用流程图的形式展现并想好实现的关键代码。(4) 编辑程序代码:这是一个至关重要复杂而且需要反复修改的环节,在此环节中你将发现总体设计和模块思想会存在很多问题,需不断改进如何实现各函数功能,达到预期效果也将是一项繁复的工作.(5)代码的调试:在MyEclipse环境下输入代码并进行调试和正确运行。在调试过程中会遇到很多需要精化的地方,需要十足的耐心与细心,不断改进完善程序。(6)最后修饰:程序可以正确运行之后,再不影响程序功能的情况下,运用各种辅助性符号,使界面更加美观漂亮,操作更人性化增强程序的新意与可行性。