中小型超市管理系统设计_第1页
中小型超市管理系统设计_第2页
中小型超市管理系统设计_第3页
中小型超市管理系统设计_第4页
中小型超市管理系统设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

/本科毕业设计论文题目中小型超市管理系统前台设计和实现专业名称计算机信息和技术学生姓名蒲少龙指导老师姚群毕业时间 2012.06设计论文毕业设计论文题目:中小型超市管理系统前台设计和实现指导思想和目的要求:1.指导学生综合运用所学的基础理论学问和专业技术学问分析和解决科研开发工作中的实际问题,培育学生的研发实力;2.学习和驾驭利用各种资料、学问分析和解决实际问题的思路及方法;3.了解和驾驭超市管理系统特点,学习超市系统相关内容模块;4.通过实践,学习JAVA编程语言,驾驭常用的编程技能,理解JAVA、MySQL等概念并能具体应用。5.通过这次毕业设计,让我能够了解开发一个软件产品所要经验的基本过程,驾驭软件开发过程中的设计方法,实现方法以及测试方法,并最终能够供应一个有好用的软件产品。主要技术指标:1.运用JAVA供应的控件和数据库结合,可便利快速的开发信息管理系统2.MySQL在该平台中的应用:创建数据库时如何建立和存取数据。进度和要求:1.第1周:了解毕业设计任务和熟识开发环境,打算相关资料;2.第2周:设计基本方案、分析论证;3.第3周~~第6周:设计方案研制开发;4.第7周:中期检查;5.第8周~~第9周:系统调试/验证、修改和完善;6.第10周~~第11周:毕业设计论文及其相关技术资料文档的整理;7.第12周~~第14周:打算毕业设计(论文)答辩,成果演示、验收。主要参考书及参考资料:【1】.张孝祥,徐明华,单兴华著.Java基础和案例开发详解.北京:清华高校出版社.2009年9月【2】.埃克尔著.Java编程思想.北京:机械工业出版社.2007年6月【3】.卢瀚,王春斌著.JavaWeb开发实战1200例.北京:清华高校出版社.2011年1月【4】.王志刚,江友华著.MySQL高效编程.北京:人民邮电出版社.2005年7月【5】.WattsS.Humphrey著.软件工程规范.北京:清华高校出版社.2006年8月【6】.席国庆著.深化体验Java项目开发.北京:清华高校出版社.2011年7月【7】.毕庶伟著.管理信息系统分析和设计.北京:机械工业出版社.1992年【8】.张基温著.信息系统开发案例.北京:清华高校出版社.1999年【9】.(美)PaulC.Jorgensen著.软件测试.北京:机械工业出版社.2009年3月学生指导老师院(系)主任摘要随着科学技术的飞速发展,计算机在日常生活中应用越来越普及,利用计算机实现超市的管理系统已燃眉之急。当超市发展到确定规模时,传统的常规管理、收银系统明显已经不能满足发展的须要,所以如何实现规范化,标准化的管理系统来提超群市的管理效率,就成为了一个新课题。21世纪是网络经济,电子商务信息化的天下,所以对于中小型超市开发一款经济、好用的管理软件是很有必要的。超市管理系统是市场上很流行的,在超市中最常用的一款软件,它主要包含以下几个模块:系统管理员的设定,数据的录入和删除,数据的汇总和查询,进货和退货管理模块、销售模块、库存模块、人事管理模块、系统模块等,实现了对超市人员,超市商品等各个方面全面、刚好、动态的管理。可以有效的利用最少的资源将整个超市联系成为一个整体。随着计算机网络技术以及数据库技术的快速发展,管理信息系统得到了广泛应用。通过周密的设计,健壮的程序,可以将原本须要很多人力的事情,简化到一台PC机就可以完成,最大限度的降低了成本,同时也避开了错误,因此一个自动化的超市货品管理系统的开发特别必要。在此次系统的开发过程中,我主要负责超市前台的制作和实现。超市前台系统包括整体设计的框架,各模块的位置和功能,前台和后台的切换方式,数据库的设计和后台样式的设计等工作。此次系统的设计我经过分析和考察之后,确定采纳C/S即Client/Server(客户机/服务器)结构,通过将任务合理安排到Client端和Server端,降低了系统的通讯开销,从而节约了成本。当然服务器方面的设计我现在还力不能及的,但是信任以后通过学习之后确定可以实现。关键词:管理系统,数据库ABSTRACTWiththerapiddevelopmentofscienceandtechnology,computerapplicationindailylifeisbecomingincreasinglypopular;theuseofcomputersupermarketmanagementsystemisimminent.Whenthesupermarketdevelopmenttoacertainsize,theconventionalmanagement,cashregistersystemsapparentlycannotmeettheneedsofthedevelopment,sohowtoachievestandardization,standardizationofmanagementsystemstoimprovethemanagementefficiencyofthesupermarkethasbecomeanewtopic.The21stcenturyisthenetworkeconomy,e-commerceinformationtechnologyworld,soforsmallandmedium-sizedsupermarkettodevelopeconomical,practicalmanagementsoftwareisnecessary.Supermarketmanagementsystemisverypopularonthemarket,themostcommonlyusedpieceofsoftwareinthesupermarket,itmainlycontainsthefollowingmodules:systemadministratorsetting,dataentry,anddeletedataaggregationandquery,purchase,andreturnmanagementmodule,salesmodule,inventorymodule,personnelmanagementmodule,thesystemmodule,supermarketstaff,supermarketgoodscomprehensive,timelyanddynamicmanagement.CaneffectivelyusetheleastresourcestothesupermarketlinkedintoanoverallWiththerapiddevelopmentofcomputernetworktechnologyanddatabasetechnology,managementinformationsystemshavebeenwidelyapplied.Throughcarefuldesign,robustprocedures,whichrequirealotofhumanthings,reducedtoasinglePCcanbecompleted,reducecosts,butalsotoavoidanerror,anautomatedsupermarketgoodsmanagementsystemthedevelopmentisverynecessary.Inthesystemdevelopmentprocess,Iamresponsiblefortheproductionofthesupermarketfront.Supermarketfrontsystemincludingtheframeworkoftheoveralldesign,locationandfunctionofeachmodule,foregroundandbackgroundoftheswitchingmode,databasedesignandback-officestyledesign.

Thedesignofthesystemafteranalysisandstudy,IdecidedtousetheC/SClient/Server(Client/Server)structure,thetasksassignedtotheClientsideandServerside,toreducethecommunicationoverheadofthesystem,thussavingcosts.Ofcourse,server-sidedesignalsoforcecannotandIbelievethefuturebylearningafteracertaincanbeachievedKeywords:Managementsystem,Database

目录摘要 IABSTRACT II第1章概述 11.1超市系统的开发背景和意义 11.2本系统的开发目的和内容 21.3国内外超市管理系统的发展 2第2章开发环境和相关技术介绍 42.1Java开发工具 42.1.1Java简介 42.1.2Java的特点 52.2开发环境运行平台eclipse简介 62.3数据库MySQL 62.3.1数据库MySQL简介 62.3.2数据库MySQL的特点 7第3章需求分析 83.1需求分析 83.2模块分析 83.3数据库分析 93.4可行性分析 93.4.1技术可行性 93.4.2操作可行性 10第4章总体设计 114.1系统目标设计 114.2系统功能模块设计 114.3系统数据库设计 124.3.1数据库总体设计 124.3.2后台数据库和前台连接 13第5章具体设计 155.1超市界面设计 155.1.1超市前台界面 155.1.2超市后台界面 185.2商品管理设计 205.3交易管理设计 245.4会员管理设计 275.5后台接口设计 28第6章软件测试 306.1软件测试的目标 306.2软件测试的准则 306.3软件测试的方法 306.4软件测试 316.4.1

模块测试 316.4.2集成测试 316.4.3

验收测试 326.4.4平行运行 326.4.5

具体测试过程 326.4.6

测试结论 35结论 37致谢 39参考文献 40毕业设计小结 41第1章概述1.1超市系统的开发背景和意义二十一世纪人类已进入到了一个高速发展的信息时代。社会的高度信息化要求各企事业单位不停的提高信息管理技术以适应社会的发展。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻相识,它已进入人类社会的各个领域并发挥着越来越重要的作用。特殊是Internet技术的推广和信息高速马路的建立,使IT产业在市场竞争中更加显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切须要,要适应市场竞争,就须要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。我国超市形成在20世纪90年头初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着超市高速的发展,其经营管理也变得愈加困难,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地须要引入新的管理技术。但在目前状况下,大型超市早已运用优良的管理软件,但中小型超市仍存在落后的一面,如:不能有效地管理每种商品,收款结算速度慢,简洁出现营业差错,不宜进行商品调价,盘点效率低等,经济形态的高速发展,使超市经营管理也变得愈加困难,日常所须要处理的数据量也渐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这困难的市场。依靠现代化的计算机信息处理技术来管理超市,从而节约了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够精确快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变更做出相应的决策,加快超市经营管理效率并且降低了超市日常成本。本设计运用MySQL数据库设计软件和eclipse软件设计了一个中小型超市管理系统。运用该软件。超市管理人员可以对超市的各种状况进行管理,像货物的出纳,进货,卖货,退货,人员的调配等进行管理。而且本系统只要会懂得一点的电脑学问就能很快的上手,不存在一些岗前培训什么的,便利用户运用。在计算机日益普及,软硬件快速发展的当今社会上,用户运用计算机来管理强大的数据信息,不失是节约人力和时间的良策。1.2本系统的开发目的和内容1)目的目前市面上流行的管理管理系统不少。但是对于中小型来说,不须要大型的数据库系统。只须要一个操作便利,功能好用,能满足本超市对数据的管理及需求的系统。我们的目标就是在于开发一个功能好用、操作便利,简洁明白的超市管理系统。2)内容本系统是依据超市管理系统模块进行功能分析和设计得出的。可以满足中小型超市管理、销售的需求。可以帮助超市提高工作效率,降低日常成本,实现超市管理的系统化、规范化和自动化。开发一个功能好用、操作便利,简洁明白的超市管理系统。能够录入商品的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询和销售,管理员和会员的设置及密码修改等方面的工作,基本满足日常业务的须要。1.3国内外超市管理系统的发展由于国外超市的信息化建设方面起步较早,加上资金、技术等方面的诸多优势,使得国外超市的管理系统实施胜利率较高,也取得了显著的经济和社会效益,在超市管理的基础理论探讨方面也取得了相当大的成就。我国自80年头起先,才着手开发和应用管理系统,尽管经过了国内很多探讨单位和企业的共同努力,使我国在超市管理系统建设方面取得了很大胜利,但是由于多方面因素的制约,我们国家和国外的差距还是比较大的。第2章开发环境和相关技术介绍本系统的开发应用了MySQL创建数据库,并在eclipse环境下主要应用Java编程语言实现各项功能及对数据库的操作。在本章以下的各节将依次对Java、eclipse及MySQL数据库和技术进行简洁介绍。2.1Java开发工具Java简介Java它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的限制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项支配。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广袤应用前景,于是改造了Oak,以“Java”的名称正式发布。Java编程语言的风格特别接近C、C++语言。Java是一个纯的面对对象的程序设计语言,它继承了C++语言面对对象技术的核心,Java舍弃了C++语言中简洁引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在JavaSE1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型平安的枚举、不定长参数和自动装/拆箱等语言特性。Java不同于一般的编译执行计算机语言和说明执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依靠各种不同平台上的虚拟机来说明执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行须要消耗确定的时间,这同时也在确定程度上降低了Java程序的运行效率。但在J2SE发布后,Java的执行速度有了大幅提升。和传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必需相互兼容。“Java语言靠群体的力气而非公司的力气”是Sun公司的口号之一,并获得了广袤软件开发商的认同。这和微软公司所提倡的留意精英和封闭式的模式完全不同。Sun公司对Java编程语言的说明是:Java编程语言是个简洁、面对对象、分布式、说明性、健壮、平安和系统无关、可移植、高性能、多线程和动态的语言。Java的特点1)平台无关性平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。运用Java编写的程序能在世界范围内共享。Java的数据类型和机器无关,Java虚拟机(JavaVirtualMachine)是建立在硬件和操作系统之上,实现Java二进制代码的说明执行功能,供应于不同平台的接口的。2)面对对象的程序设计Java吸取了C++面对对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java供应了众多的一般对象的类,通过继承即可以运用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类中只有一个父类,子类的父类又有一个父类。Java供应的Object类及其子类的继承关系犹如一棵倒立的树形,根类为Object类,Object类功能强大,常常会运用到它及其它派生的子类。3)健壮性Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出很多开发早期出现的错误。Java自己操纵内存削减了内存出错的可能性。Java还实现了真数组,避开了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还供应了Null指针检测、数组边界检测、异样出口、Bytecode校验等功能。2.2开发环境运行平台eclipse简介Eclipse是一个开放源代码的、基于Java的可扩绽开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来运用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建和Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse供应插件,以及给用户供应一样和统一的集成开发环境而言,全部工具开发人员都具有同等的发挥场所。这种同等和一样性并不仅限于Java开发工具。尽管Eclipse是运用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++和COBOL等编程语言的插件已经可用,或预料将会推出。Eclipse框架还可用来作为和软件开发无关的其他应用程序类型的基础,比如内容管理系统。基于Eclipse的应用程序的一个突出例子是IBM®Rational®SoftwareArchitect,它构成了IBMJava开发工具系列的基础。2.3数据库MySQL数据库MySQL简介MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统运用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并依据特性化的须要对其进行修改。MySQL因为其速度、牢靠性和适应性而备受关注。大多数人都认为在不须要事务化处理的状况下,MySQL是管理内容最好的选择。MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的MontyWidenius的女儿也叫My。这两个究竟是哪一个给出了MySQL这个名字至今依旧是个迷,包括开发者在内也不知道。MySQL的海豚标记的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者。数据库MySQL的特点1)运用C和C++编写,并运用了多种编译器进行测试,保证源代码的可移植性。2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。3)为多种编程语言供应了API。这些编程语言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。4)支持多线程,充分利用CPU资源。5)优化的SQL查询算法,有效地提高查询速度。6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中供应多语言支持,常见的编码如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。7)供应TCP/IP、ODBC和JDBC等多种数据库连接途径。8)供应用于管理、检查、优化数据库操作的管理工具。9)可以处理拥有上千万条记录的大型数据库。

第3章需求分析3.1需求分析由于本系统设计是针对中小型超市,因此在设计之初,要对超市的需求目的经行分析,中小型超市实现系统智能化,就是解决一件商品从进入本超市的仓库到销售完成之后整个过程的智能化。一件商品在销售的过程中应当包括标准化信息入库、上架、销售、售后四方面的问题。由于须要实现需求分析中的若干问题,所以我应当从商品销售的三个大环节中进行功能分析。进货环节解决的主要问题就是,在进货之初,因对货物进行系统编号,以便在销售过程中实现统一管理。通过某种商品它在本超市的显存货数量,销售综合实力的分析得出需进货的数量(此功能在现阶段由于本人学问水平所限,无法在此系统中实现)。销售环节要做到依据商品编号,显示商品信息,包括商品名称、规格、单位、售价、折扣信息。当然在销售过程中还要实现对预付款的找零计算,交易撤销等功能。会员环节主要解决的问题就是通过赐予会员一个编号,然后在以后的商品交易过程中,通过此编号,自动识别会员级别,以及该级别下的会员折扣价格。3.2模块分析由于须要实现系统需求分析中的若干功能,所以在设计该系统时,我确定建立四大模块来一一实现以上功能。销售管理模块:超市前台售货系统是供应应柜员实际操作的前台界面,在此界面下,必需包括货物的全部信息以及在销售过程中的若干操作。仓库模块:仓库管理中应当包含商品的入库、出库时间,商品编号,商品数量,进货价格以及客户的退货信息等。用户管理模块:用户管理中应当包含会员管理、管理员管理、一般柜员三级别操作权限。信息查询模块:信息查询中,可以完成查询商品存货数量,商品信息等功能。3.3数据库分析依据模块分析中的系统五大模块,在建立数据库时应当包含6张表来实现。user:用户信息表:此表完成会员、管理员、柜员区分。各人员名称、卡号、密码、权限等设置。marchandise:商品信息表:此表中应包含商品编号、类别、条形码、进货价等。payinfo:付款信息表:此表中应当包括货币种类、付款方式、付款金额。日期等。b_stock:进出库信息表:此表中应包含商品的仓库编号、进货时间、进货价格、进货数量等。e_stock:进退货信息表:此表中应当有进出库ID号、存货数量、下单数量、进货价格、出仓日期等。sale:销售信息表:此表中应当有销售ID号、销售日期、数量、价格、折扣率等。3.4可行性分析3.4.1技术可行性依据新系统目标来衡量所需的技术是否具备,一般可从硬件、软件的性能要求、环境条件、技术人员水平和数量等方面去考虑和分析,其中开发人员的技术力气应首先考虑实力和水平,并考虑近期内可以培育和发展的技术人员。3.4.2操作可行性对新系统运行后给现行系统带来的影响(包括组织机构、管理方式、工作环境等)和后果进行估计和评价。同时还应考虑现有管理人员的培训、补充,分析在给定时间里能否完成预定的系统开发任务等。按上述两方面进行可行性分析、探讨后,我们认为该项目是可行的。

第4章总体设计4.1系统目标设计本系统是实现对超市的管理,商品出入仓库状况的记录,商品编号、规格、数量售价、折扣状况的记录,还有会员信息统计、会员折扣。前台系统记录了货物的具体销售状况,后台系统记录了会员信息,管理员信息,货物出入仓、调整折扣的信息。1)超市收银终端系统启动会有一个收银界面,将商品的全部信息,经行录入,商品交易时商品信息一目了然,自动找零系统,对于付款经行计算。2)后台终端前台界面右下角有后台终端按钮,通过此处可输入管理员账号和密码登陆后台,经行商品信息修改、会员信息录入、折扣修改、价格修改等。4.2系统功能模块设计开发这个系统的目的就是帮助超市管理提高工作效率,实现超市管理的系统化、规范化和自动化。依据这个系统所要实现的目的和任务,总结出这个系统最终实现的主要功能如下:1)商品信息管理模块:商品上架时对商品信息进行录入,销售过程中商品编码查询、商品信息显示,商品存货量显示等。2)销售管理模块:提示需付金额,依据预付金额计算找零,撤销交易。3)用户管理模块:通过用户种类区分权限,给会员查询会员编号,计算会员折扣4)仓库管理模块:商品进入仓库进行管理,比如进入几号仓库等,商品出仓上架时对商品进行编号。依据上述对系统的功能模块的划分,得到如图4-1所示的功能模块图。中小型超市管理系统中小型超市管理系统商品信息管理模块用户管理模块销售管理模块仓库管理模块商品信息管理模块用户管理模块销售管理模块仓库管理模块商品销售查询商品销售管理会员信息管理商品信息管理付款信息管理选购 信息管理进出库信息管理商品销售查询商品销售管理会员信息管理商品信息管理付款信息管理选购 信息管理进出库信息管理进出货信息管理职工信息管理职工信息管理重新计算折扣查询会员提示应付金额撤销交易计算找零输入预付金额重新计算折扣查询会员提示应付金额撤销交易计算找零输入预付金额图4-1系统功能模块图4.3系统数据库设计数据库总体设计依据整体对超市管理系统的分析,整个系统数据库中应当有6张表,在每张表中应有一个和其他表联系的主键。通过以下6张表就可以完成整个超市管理系统的前后台连接,完成整个需求分析中的全部功能。user:用户信息表<用户ID、用户名、卡号、密码、办卡日期、用户类别、期限、积分、折扣>marchandise:商品信息表<序列号、商品编号、条码、类别编码、商品名称、零售价、商品规格、单位、进货价、保质期、备注>payinfo:付款信息表<单号、供货商、货币、付款金额、付款方式、支票号、日期、经手人、制单人>b_stock:进出库信息表<仓库编号、商品编号、商品名称、数量、价格、时间、进货价、类别、制单人>e_stock:进退货信息表<进出库ID号、库存数量、下单数量、进货价、出货日期、库存编号、备注、进出库标记、下单人>sale:销售信息表<销售ID号、商品ID、销售日期、数量、价格折扣、VIP号、商品名称>4.3.2后台数据库和前台连接添加Business类,用于实现和数据库的连接。在执行任何操作前都要调用此方法和数据库进行连接。在执行任何访问数据库的操作后,在调用该类实例对象的close()方法来断开数据库的连接。具体代码如下:importjava.sql.*;publicclassBusiness{ privatestaticfinalStringDRIVER= "com.mysql.jdbc.Driver"; privatestaticfinalStringURL= "jdbc:mysql://localhost:3306/cs"; privatestaticfinalStringuser="root"; privatestaticfinalStringpass="0000"; publicstaticConnectiongetConnection(){ Connectionconn=null; try{ Class.forName(DRIVER); conn=DriverManager.getConnection(URL,user,pass); }catch(Exceptione){ e.printStackTrace(); } returnconn; }}

第5章具体设计5.1超市界面设计超市前台界面系统框架设计工作是整个项目的基础,框架设计的好和坏干脆关系到后面的开发,和项目的成败关系重大。通过对整体需求的分析和软件设计的美观全面对考虑,程序一起先应当是超市收银系统。如图5-1所示,终端界面包括位于界面中间的表格展示销售商品信息。其次位于上方和下方的信息输入框,供收银员采纳手工输入商品编号,会员卡信息等,第三位于界面右边的“后台终端”按纽,此功能主要真对系统管理员设定,对超市后台数据库进行维护。在此前台界面中,顾客和柜员都可以很清晰的看到商品的全部信息,并且对于柜员的操作简洁明白,在此界面中的数量输入框、预付金额采纳了键盘按下事务数,当你变更数量然后按“enter”键,就可以在顶端的应付金额中显示金额。交易取消、撤销商品以及后台终端都采纳Button按钮,当你须要修改交易时,点击鼠标左键可完成操作。图5-1超市前台收银终端主界面是整个系统的核心,它连接着整体通往各个模块。所以要将各个功能模块的窗体加入主界面中。同时要考虑超市的特性,在界面布局上将就究合理布局,快捷操作。因此在整个主界面加入整个系统的入口函数Main(),通过执行该方法执行整个系统。如下代码所示importjava.awt.Toolkit;publicclassMain{ booleanpackFrame=false; publicMain(){ MainFrameframe=newMainFrame(); if(packFrame){ frame.pack(); }else{ frame.validate(); } DimensionscSize=Toolkit.getDefaultToolkit().getScreenSize(); DimensionfSize=frame.getSize(); if(fSize.height>scSize.height){ fSize.height=scSize.height; } if(fSize.width>scSize.width){ fSize.width=scSize.width; } frame.setLocation((scSize.width-fSize.width)/2, (scSize.height-fSize.height)/2); frame.setVisible(false); } publicstaticvoidmain(String[]args){ SwingUtilities.invokeLater(newRunnable(){ publicvoidrun(){ try{ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); }catch(Exceptionexception){ exception.printStackTrace(); } newMain(); salevendition=newsale(); vendition.setVisible(true); vendition.setTitle("超市收银终端"); } }); }}超市后台界面超市管理系统后台界面是管理员操作的界面如图5-2,在后台界面中,顶端是五大模块菜单,在界面左边是树形框,包含了销售清单、阅读仓库、用户管理、信息查询和商品管理菜单。每个菜单都有二级界面。图5-2超市管理系统后台界面当你在后台界面中,单击选购 菜单时,如图5-3所示,在此界面下,你可以将商品的全部信息进行录入、重置、删除操作。图5-3商品信息录入界面当你在单击仓库菜单的时候,如图5-4所示,在此界面下,可以完成商品的入库时间、仓库号、商品编号、数量、总额、进货价、经办人,进行信息录入。图5-4商品入库信息表当你单击销售清单下的销售统计时,如图5-5所示,在此菜单下,对商品进行汇总。图5-5销售明细查询表5.2商品管理设计输入商品编号和数量后,单击“enter”按钮,就会在正中心显示此次交易的商品全部信息,如图5-6所示。图5-6商品信息界面完成此项功能的具体代码如下:if(meet.getText().length()==0){ JOptionPane.showMessageDialog(this,"商品编号不能为空","错误", JOptionPane.ERROR_MESSAGE); return; } if(advance.getText().length()==0){ JOptionPane.showMessageDialog(this,"商品数量不能为空","错误", JOptionPane.ERROR_MESSAGE); return; } colnames.removeAllElements(); colnames.add("商品编码"); colnames.add("商品名称"); colnames.add("规格"); colnames.add("单位"); colnames.add("数量"); colnames.add("售价"); colnames.add("折扣"); colnames.add("金额"); intt=(int)e.getKeyChar(); if(t==10){ Vectorcolnames2=newVector(); Vectorcolnames3=newVector(); Vectorcolnames5=newVector(); colnames2=find_goods_info.Select_sort2(meet.getText()); colnames3=(Vector)colnames2.get(0); if(jTextField6.getText().length()==0){ } back.setText(colnames3.get(4).toString()); if(colnames3.size()==0){ JOptionPane.showMessageDialog(this,"无此商品","错误", JOptionPane.ERROR_MESSAGE); return; } colnames5.add(colnames3.get(0)); colnames5.add(colnames3.get(3)); colnames5.add(colnames3.get(5)); colnames5.add(colnames3.get(6)); colnames5.add(advance.getText()); colnames5.add(colnames3.get(4)); colnames5.add(jTextField4.getText()); try{ Integernumber1=newInteger(advance.getText()); Doublenumber2=newDouble(back.getText()); Doublenumber3=newDouble(jTextField4.getText()); doublemoney=((int)(number1*number2*number3))/100.0; DoubleMoney=newDouble(money); colnames5.add(Money.toString()); colnames4.add(colnames5); jTable1=Mytable.maketable(colnames4,colnames); jScrollPane1.getViewport().add(jTable1); intnum=0; doublePayment=0; while(num<colnames4.size()){ VectorallMoney=newVector(); allMoney=(Vector)colnames4.get(num); DoubleallMoney1=newDouble(allMoney.get(7).toString()); Payment+=allMoney1; num++; } DoublePaymentAll=newDouble(Payment); jLabel6.setText(PaymentAll.toString()); }catch(Exceptionex){ JOptionPane.showMessageDialog(this,"输入的数量不正确","错误", JOptionPane.ERROR_MESSAGE); } }5.3交易管理设计当须要完成一次商品交易的时候,须要依据顾客所需商品的数量和单价计算出总额,然后系统给定一个推断,当付款金额不足的时候会提示“输入金额不足”,当预付金额大于等于需付金额的时候会完成此次交易。具体操作如图5-7和5-8所示:图5-7输入金额不足提示图5-8胜利交易提示完成此功能的具体代码为:intt=(int)e.getKeyChar(); if(t==10){ try{ Doublegather=newDouble(jTextField5.getText()); doublegathering=((int)(gather*100))/100.0; Doubleaccount=newDouble(jLabel6.getText()); doublegivechange=((int)((gathering-account)*100))/ 100.0; if(givechange<0){ JOptionPane.showMessageDialog(this,"输入的金额不足","错误", JOptionPane.ERROR_MESSAGE); return; } Doublegivechange1=newDouble(givechange); jLabel8.setText(givechange1.toString()); }catch(Exceptionex){ JOptionPane.showMessageDialog(this,"输入的金额有误","错误", JOptionPane.ERROR_MESSAGE); return; } new_Dialogsett=newnew_Dialog(); sett.setSize(400,300); sett.setLocation(300,250); sett.setVisible(true); sett.meet.setText(jLabel6.getText()); sett.advance.setText(jTextField5.getText()); sett.back.setText(jLabel8.getText()); jTextField6.setEditable(true); jTextField6.setText(""); intnum1=0; while(num1<colnames4.size()){ Vectorls=newVector(); ls=(Vector)colnames4.get(num1); Integernumber=newInteger(ls.get(4).toString()); DoublePrice=newDouble(ls.get(5).toString()); Update_Data.out_StockPile(number,ls.get(0).toString()); Insert_goods.Insert_Sale(ls.get(0).toString(), jLabel11.getText(),number, Price,ls.get(6).toString(), jTextField6.getText(), ls.get(1).toString()); num1++; } meet.setText(""); advance.setText("1"); colnames4.removeAllElements(); jTable1=Mytable.maketable(colnames4,colnames); jScrollPane1.getViewport().add(jTable1); }5.4会员管理设计主界面中有会员卡号一栏,只须要在会员卡号中输入会员账号,便可以用会员折扣价购买商品。例如购买001号商品康师傅清茶时,输入会员编号888,就可以以9折及2.25元,购买此商品。如图5-5所示:图5-9会员交易视图实现上述功能代码如下:VectorUser=newVector(); if(jTextField6.getText().length()==0){ }else{ User=find_goods_info.Select_UserManager(jTextField6. getText()); if(User.size()==0){ JOptionPane.showMessageDialog(this,"无此卡号","错误", JOptionPane.ERROR_MESSAGE); return; }else{ Stringstr=User.get(8).toString(); jTextField4.setText(str); jTextField6.setEditable(false); } }5.5后台接口设计通过后台终端按钮,可由前台通过登陆账号和密码干脆登录到后台,经行后台限制如图5-6所示。例如输入管理员admin和密码admin单击登录,就可以进入图5-2界面。5-10后台接口界面实现以上功能具体代码如下:loginadmin=newlogin(this); admin.setVisible(true); admin.setLocation(200,200);第6章软件测试在完成了程序的编写工作后,接下来将进行软件的测试,测试和开发一样,也是一项技术性很强的工作,有着很多的技巧。软件测试是对软件是否健壮、平安、全面的唯一测试方法。6.1软件测试的目标1)测试是为了发觉程序中的错误而执行程序的过程;2)好的测试方案是极可能发觉迄今为止尚未发觉的错误的测试方案;3)胜利的测试是发觉了至今为止尚未发觉的错误的测试。6.2软件测试的准则1)全部测试都应当能追溯到用户需求。2)应当远在测试起先之前就制定出测试支配。3)把Pareto原理应用到软件测试中。4)应当从“小规模”测试起先,并逐步进行“大规模”测试。5)穷举测试是不行能的。6)为了达到最佳的测试效果,应当有独立的第三方从事测试工作。6.3软件测试的方法软件测试有两种方法:黑盒测试和白盒测试。黑盒测试法是在程序接口进行的测试,它只检查程序功能是否能依据规格说明书的规定正常运用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息的完整性。黑盒测试又称为功能测试。白盒测试法是依据程序内部的逻辑测试程序,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试又称为结构测试。6.4软件测试

模块测试也叫单元测试,目的是保证每一个模块作为一个单元能正确运行,模块测试具有下述五个特点:1)模块接口2)局部数据结构3)重要的执行路径4)出错处理通路5)影响上述各方面特性的边界条件模块测试主要由代码审查和计算机软件测试两部分组成。分别对系统模块、员工基本信息模块和考勤信息模块的借口部分进行了相应的测试,并且对考勤信息模块中的“添加员工上下班信息”中的时间边界值进行了测试。集成测试包括系统测试和子系统测试。集成测试是组装软件的系统技术,主要目标是发觉和接口有关的问题。集成测试有两种方法:非渐增式和渐增式,但比较而言,渐增式方法比较好,因为:1)编写的测试软件较少,开销较小。2)较早地发觉模块间的接口错误。3)错误位置简洁推断。4)测试更彻底。因此,本系统集成测试采纳渐增式测试中的混合法,即对软件结构中较上层运用自顶而下的测试方法,而对软件结构中较下层,运用的是自底向上方法,两者结合,找出起先软件中存在的错误,然后添加了部分对代码异样的捕获和对程序的错误处理,从而对程序一步步的修复,这是对模块较多时测试的一种折衷方法。

验收测试这一步是验证软件的有效性。目的是向将来的用户表明系统能够象预定的那样工作,验收测试一般运用黑盒测试法,验收测试有两种可能的结果。1)功能和特性和用户的要求有差距。2)功能和性能和用户要求一样,软件是可以接受的。这个阶段发觉的问题往往和需求分析阶段的差距有关。本软件就是运用的黑盒测试,当一起先测试就发觉列表的位置点了没反应,这是个指向问题,程序中的菜单编辑文件被定向错误,重新修正代码后可以修正软件功能。6.4.4平行运行所谓平行运行就是同时运行。新开发出来的系统和将被它取代的旧系统

温馨提示

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

最新文档

评论

0/150

提交评论