书店售书学士学位论文_第1页
书店售书学士学位论文_第2页
书店售书学士学位论文_第3页
书店售书学士学位论文_第4页
书店售书学士学位论文_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

II目录摘要 IABSTRACT II1.绪论 11.1题目背景 11.2题目内容 11.3研究意义 22.需求分析 22.1需求分析 22.2现状分析 22.3可行性分析 32.3.1经济可行性 32.3.2技术可行性 32.3.3社会可行性 42.4开发工具论述 43.概要设计 43.1系统分析 43.2系统的功能描述 53.3信息描述 53.3.1系统的实体及相关属性的描述 53.3.2系统E-R图 63.3.3系统的数据流图 63.3.4性能描述 74.详细设计 84.1接口设计 84.1.1用户界面设计 84.2过程设计 144.2.1模块内算法的描述 145.编码 185.1编码语言的选择 185.2核心代码的实现 185.2.1登录模块的核心代码 185.2.2注册模块的核心代码 195.2.3图书入库模块的核心代码 225.2.4已售书查询功能 246.测试 246.1测试方法 256.2测试方案的设计 256.2.1黑盒测试 256.2.2白盒测试 256.3测试结果的分析 27结论 27参考文献 28答谢 29枣庄学院学士学位论文PAGEI基于C#语言的图书管理销售系统开发专业:计算机科学与技术姓名:房鹏指导教师:单承刚摘要计算机已深入到人们生活的各个角落,成为人类的一个重要助手。如火车站售票系统,网络聊天系统,工厂自动化管理系统等正在为人们提供着各种各样的服务。本图书管理系统正是基于书店销售人员的需求而开发的,其目的在于方便销售人员管理图书和帮助客户查找所需图书。本图书管理系统由前台和后台两部分组成,前台是在MicrosoftVisualStudio2005平台下,使用C#语言编写完成的。后台数据库的设计使用的是SQLServer2000。该图书管理系统所实现的主要功能有:新购图书的入库,图书的查询,图书的销售管理等。其中,图书的查询又分为精确查询和模糊查询两种查询方法,便于对不能确定的图书的查找。图书的销售情况保存在后台数据库中,它可以作为一个市场需求情况的调查记录材料。通过浏览数据库,可以很方便地了解某种图书的销售情况,并以此为依据,选购畅销的图书。目前,有很多书店都开设了分店,考虑到这一点,本图书管理系统增加了连接分店数据库的功能(当然,前提是应保证可以进入分店的数据库,并且分店也使用本图书管理系统),以更好地为顾客服务。本论文主要完成界面设计、登录模块、用户注册模块、图书入库模块、已售书查询和产品介绍模块。关键词图书管理系统,图书入库,图书查询,销售管理,市场需求情况ABSTRACTComputerhasbeeninuseinallfieldsofpeople’slifeasakindofaidedtool.Forexample,trainticketsalesystem,chatsystemonlineandautomationmanagementsystem.Theyareallservingforusindifferentaspects.Thisbookmanagementsystemisdevelopedbasedonthepurposeofsatisfyingthedemandofsalesman.Thissystemistryingtomakeiteasierbothforthesalesmantomanagethebooksandforthecustomertosearchforthebookswhichheneeds.Thissystemiscomposedoftwoparts:thefrontpartandthestage.ThefrontpartisdevelopedwiththelanguageofC#intheenvironmentofMicrosoftVisualStudio2005,andthestageiscompletedwiththehelpofSQLServer2000.Themainfunctionsofthissystemincludes:thestorageofnewbooks,booksearchingandbooksalemanagement.Therearetwowaystosearchforabook:fuzzyenquiryandpreciseenquiry,soastomakeiteasiertofindthebookinneed.Thesituationofsaleofthebooksinthebookstoreisstoredinthetableofsaleinthedatabase.Thissaletablecanbeveryusefulinreflectingtheneedanddemandinthemarket.Bybrowsingthetableofsale,youcaneasilygettheinformationofthesalesituationinthemarketsoastomakeplansinbuyingwhichkindofbooksnexttime.Nowadays,manybookstoreshavetheirbranches.Consideringthis,thissystemintroducedthefunctionoflinkingthebranches(ofcourseintheconditionofthatyoucangetaccessofthedatabasesofthebranchesandthatthebranchesareusingthissystem),inthiswaythisbookmanagementsystemcanbetterserverforthecustomers.Keywords:Bookmanagementsystem,Thestorageofnewbooks,Booksearching,Booksalemanagement,Theneedanddemandinthemarket枣庄学院学士学位论文PAGE作者房鹏第1页共29页1.绪论1.1题目背景如今,市场竞争异常激烈,IT行业更是日新月异。要想使一种系统与软件打入市场,并被人们所接受,这并不是一件易事。图书管理系统要求操作简便,能够让使用者不必经过专门培训就能轻松使用,即使使用者不具备专门的计算机知识,也不存在使用上的问题。作为一种管理型软件,本系统还必须具有较高的可靠性,提供并发可行性,假如有多个用户同时读一个数据库,应当保证不会出现读脏数据,不可重复读等异常。可移植性也是一个重要的标准,要使得用户计算机不必安装专门软件就可以使用本图书管理系统。另外,界面友好也很重要。基于以上特点,选用C#语言编写该系统是最合适不过的了。C#语言是专门为.NET的应用而开发的语言,这从根本上保证了C#与.NET的完美结合。在.NET运行库的支持下,.NET的各种优点都能通过C#体现出来。C#语法简单,它最大的特点就是没有指针,C#中对类、方法的引用的操作符也十分简单;C#具有完善的安全性和错误处理,编程语言的安全性与错误处理能力是衡量一种语言是否优秀的重要依据,在C#的设计中可以消除软件开发过程中许多常见的错误,并提供包括类型安全在内的完整的安全机制,C#中还提供了边界检查和溢出检查功能;C#提供良好的灵活性和兼容性。1.2题目内容图书管理系统是提高效率和方便管理的工具。通过使用图书管理系统,可以更好的为客户服务,同时也能够获得更多的利润。若要实现本系统,首先要做如下工作:(1)使用SQLServer2000做好后台数据库。(2)在.NET平台下使用C#语言开发前台界面。(3)在C#程序中连接到已做好的数据库。(4)用户必须通过身份验证进入系统,如没有帐号,可以注册。进入系统后可以进行图书入库,销售管理,图书查询,数据库备份的操作。在高端企业系统市场,强大的客户关系经常决定了谁能成为市场领导者。及时和准确的销售数据帮助企业更好地了解客户的需求和企业在市场中的地位。通过图书销售管理系统,书店能迅速获得第一手的销售数据,如销售数量、价格、订单、存货、市场趋势和竞争者的有关信息。同时,这个图书销售系统也让公司管理层加强了对散布在全国各地的经销商和销售代表的管理,在任何销售事件发生时就对之有了第一时间的了解。在此综合运用所学知识,把理论和实践相结合,在编程和思考中不断提高自己的动手能力和思维能力。通过对客户关系、销售行动、销售过程等环节记录、管理与分析,使销售管理从经验走向科学、从个人主导走向企业主导,针对中小企业销售管理中存在的诸多问题,从中小企业的销售管理的主要需求出发,充分“以客户为中心”,为中小企业建立弹性化和灵活性的业务流程,开发一个简洁实用的图书销售管理系统。软件开发是一项工程,必须用工程化的方法进行。需求分析,概要设计,详细设计,编码,测试和维护一个步骤都不能少。只有这样才有可能开发出一个令人比较满意的系统。1.3研究意义本图书管理系统是专门为书店的图书销售人员的需求而开发的。在当今世界,生活的节奏越来越快,人们对效率的追求也越来越迫切。如何能提高提高效率,多获利润成为人们的焦点。本图书管理系统正是向着这一目标而开发的,通过使用该系统,可以更好的管理图书,使一切有条不紊,提高效率,进而满足书店获利的需求。因此,本系统市场前景广阔,具有开发的必要性。2.需求分析2.1需求分析计算机技术迅猛发展的今天,利用计算机编写的软件来减轻人们工作上的负担已不是一件新鲜事了。图书管理系统只是众多这类软件中的一员。由于本系统的开发使用的是软件工程的工程化思想,在软件工程的方法中,需求分析作为开发的第一步,意义十分重大。它同时也是软件生存周期中关键的一步。只有做好需求分析才能判断系统开发是否有必要,才能判断系统开发是否有开发成功的可能性。若略过需求分析这一步骤,而直接进行以下的步骤(如概要设计,详细设计等),那么在某一环节,开发者可能会发现由于某方面的限制,系统无法继续开发下去,或者发现他开发的系统市场上根本不需要,也就是说自己的系统没有开发的必要性。这将会是一个巨大的灾难,开发者将会蒙受经济和资源等方面的损失。2.2现状分析在软件发展如此繁荣的今天,市场上有许多形形色色的图书销售系统。这些图书管理系统大都能够完成如下功能:图书查询,图书分类,图书销售,支付管理,系统还原,图书预定等功能,而且界面也比较友好。国外比较有名的有SmartSales销售管理系统(b/s)3.0、js进销存2.0、DaySmart6.10等。国内比较有名的图书管理系统有:颐讯图书销售管理系统,宇杰图书销售管理系统,里诺销售管理系统。虽然目前市场上有较多的图书管理系统,但是在我国,对这种系统的需求还是很大的,原因有三:一是中国的市场大,中国的面积居世界第三,人口更是全球最多的国家,这么大的市场,其需求肯定是巨大的;二是国外的图书管理系统大都没有汉化的版本,用户使用起来很不方便;三是大多数图书管理系统项目规模比较大,相应的价格也比较高,很多用户购买不起,或因为价格的原因不想购买。综上所述,图书管理系统还是有它的市场的,因此,有开发本系统的必要性。2.3可行性分析在软件开发之前对其进行可行性分析是十分必要的,可以知道该软件是否合乎用户的要求,以及行业标准,最重要的是软件的造价是否合乎用户的要求。2.3.1经济可行性经济可行性分析主要是对开发新系统所投入的资金和系统投入使用后所带来的经济效益进行比较,确认新系统是否会带来一定的经济效益。(1)费用估计软件开发项目的成本是指从开发该项目开始到该项目投入运行的整个过程所需的全部费用。硬件费用:使用自己的计算机或者机房的计算机,上网费大约1元/小时,花费比较小。软件费用:开发本系统用到的软件有WindowsVisualstudio2005和SQLserver2000,这两个软件都可以到网上免费下载。资料费用:在学习C#和.NET的资料方面,一部分是由指导老师提供的,其他来源是学校图书馆。(2)效益预测该系统可以提高书店的运营效率,减轻繁重的体力和脑力劳动,并使其增加收入。因此,开发本图书管理系统在经济上是可行的。2.3.2技术可行性技术可行性分析分为以下几个方面:(1)风险分析根据老师和图书馆提供的学习资料,实现本图书管理系统的功能,应该没什么问题。可以满足用户的需求。(2)技术分析WindowsVisualstudio2005的开发平台和C#语言的完美结合,再加上SQLserver2000的强大后台开发工具,实现本系统的开发绰绰有余。(3)资源分析开发本系统所使用的计算机,性能良好,可以用来安装开发软件和调试本系统的程序。2.3.3社会可行性新系统的开发没有与国家法律、政策相抵触的地方。2.4开发工具论述.NET是微软的新一代平台,Microsoft.NET将开创程序开发的新局面,特别对网络程序的开发有很大的推动作用,该平台提供一种更有效更强大的WEB服务;而在应用程序方面,.NET平台下的开发也变得更简洁,通过其丰富的,功能前大的类库可以很快的开发所需要的程序。对.NET平台的开发人员来说,.NET提供的跨越语言的编程方式改变了传统的应用程序开发模式。在.NET平台的开发中,分工更加自由,代码、组件可以很方便的得到重复利用。从而大幅度提高了软件的生产效率,使开发人员能够以更短的时间完成功能强大的开发任务。C#是.NET平台上的一种程序开发语言,是简单的、现代的、功能强大的、安全而灵活的程序设计语言,能够让开发人员在.NET平台上快速建立大量的应用程序。C#语言解决了存在于许多程序设计语言中的问题,如:安全问题,垃圾收集问题,与其他语言协调的能力,跨平台的兼容性等。相对于C++,C#更容易被人们理解和接受。3.概要设计3.1系统分析根据需求分析后的设计思想,得到系统层次结构图,如图3-1所示。它清晰的显示了系统的各个模块。用户使用本系统,首先选择登录系统还是注册新用户,然后登录成功后,可进入本系统的主界面,继而选择图书入库,图书查询,图书销售,已售图书查询,数据库备份等用户操作。图3-1系统层次结构图3.2系统的功能描述(1)登录:用户通过输入账号和密码登录系统,如果数据库中存在该用户名,并且其密码一致,那么用户成功登录,否则报错,重新输入或注册新用户或取消登录。(2)用户注册:注册者需输入注册账号,密码,密码确认和邮箱信息。然后点击“注册”按钮,系统将核实用户名是否已被占用,两次输入的密码是否一致,邮箱是否合法等信息,如有错误将报错,然后用户重新输入或取消注册,没有错误,系统将把这些信息写入数据库,返回登录界面。(3)图书入库:用户输入将入库的图书的书号、书名、作者、出版社、数量、入库日期信息点击“入库”按钮,系统先查看数据库中是否已有书号为输入的书号的记录,如有,则只需更改此记录的数量,使其原值加上输入的数量即可,否则新生成一条记录,存储这些信息。用户也可以点击“取消”按钮,取消图书入库操作。(4)已售书查询:用户选择输入“用户”和“购买者”两查询关键字中的一个或两个,输入查询信息,点击查询按钮,系统将把数据库中的已售书信息在下面的数据表格视图中显示出来。(5)产品介绍:该模块分为“功能特色”和“联系我们”两部分,点击时将出现窗口,其上面的信息将显示本系统的功能特色或者本人的联系方式。3.3信息描述3.3.1系统的实体及相关属性的描述本系统有三个实体:用户、登录界面和主界面。用户的属性有账号,密码,权限和邮箱。登陆界面的属性有用户名检查,密码核查和邮箱合法性检查。主界面的属性有图书入库,图书查询,图书销售和数据库备份。用户与登录界面的联系是登录,用户与主界面的联系是进入。3.3.2系统E-R图利用E-R图,可以更加清晰地描述系统的各实体间的关系。本系统的E-R图如图3-2:图3-2E—R图3.3.3系统的数据流图画数据流程图的基本的是利用它作为交流信息的工具。系统分析员把他对现有系统的认识或对目标系统的设想用数据流图描绘出来,供有关人员审查确认。由于在数据流图中通常仅仅使用四种基本符号,而且不包含任何有关物理实现的细节,因此,绝大多数用户都可以理解和评价它。数据流图的另一个主要用途是作为系统分析和设计的工具。用数据流图描绘一个系统时,系统的功能和实现每个功能的具体方案是混在一起的。因此,系统分析员希望以另一种方式进一步总结现有的系统,这种方式应该着重描绘系统所完成的功能而不是系统的物理实现方案。数据流图是实现这个目的的极好手段。本系统的数据流图如图3-3:图3-3系统数据流图3.3.4性能描述通过对本系统的分析,一个优秀的系统必然要求性能的质量。本系统性能良好的体现有如下几点:(1)易用性:本系统语言简练,含义清晰易懂。操作方便,用户不需掌握深入的计算机专业知识就能方便地操作使用。使用人员无需专门培训,上手很快。(2)可移植性:本系统可移植性较强,可方便的在Windows9X,Windows2000或更高版本上使用。(3)可靠性:本系统设有数据库备份的功能。可通过冗余恢复数据库,不至于导致数据的丢失。(4)可扩充性:是在WindowsVisualStudio2005中使用C#语言编写的,因此具有较高的可扩充性。4.详细设计总体设计将软件系统分为许多模块,确定了每个模块的外部特征,即模块的功能和界面。详细设计则要确定每个模块的内部特征,即模块的内部执行过程。详细设计的目的是为软件结构图中的每一个模块确定采用的算法和块内部数据流程图,用某种选定的描述工具给出清晰的描述,使程序员可以将这种描述直接翻译为某种语言程序。也就是说,经过详细阶段的设计工作,应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。4.1接口设计4.1.1用户界面设计通过用户界面能更清晰的显示出本系统所具有的功能、简单的错误警告及处理能力(1)注册图4-1注册界面(2)登录当用户希望使用本系统时,他必须先进行登录操作。本界面有三个label控件,它们分别是“系统登录”大标题、“账号”和“密码”。有两个TextBox控件,它们分别用来存放用户输入的账号和密码。另外,本界面还有两个Button按钮:“登录”和“取消”。图4-2登录界面(3)主界面该界面是登录成功后进入的第一个界面。它的顶部有一个Menustrip控件,该控件的Menuitem有“文件”,“编辑”,“视图”,“功能”,“备份数据库”,“产品介绍”,和“帮助”。在该Menustrip控件下面有一个Label控件,它是一个欢迎标题“欢迎使用本系统”,在其左右拖放了两个Picturebox控件,用来存放两个相同的欢迎动画图片。图4-3主界面(4)入库图4-4入库界面(5)已售书查询界面图4-5已售书查询界面(6)查询界面:图4-6查询界面(7)销售界面:图4-7销售界面(8)数据库备份界面:图4-8数据库备份界面(9)联系我们界面(10)功能特色界面(11)帮助界面(11)字体设置界面4.2过程设计4.2.1模块内算法的描述(1)登录模块流程图登录界面是进入系统的验证模块,它的功能是既要让合法用户能够成功登录,又必须保证非法用户不能进入系统。该模块的流程图如图4-9图4-9登录模块流程图从以上流程图中可以看出验证的程序是这样的:用户首先输入帐号和密码,系统先查找数据库中是否又该帐号的记录,如果没有,系统报错,用户可以重新输入新的帐号和密码,或者用户可以选择“用户注册”注册一个帐号,或者用户可以取消登录,不使用本系统。否则,如果数据库中存在输入的帐号的记录,那么系统将吧用户输入的密码跟记录中的密码核对,如果二者不一致,系统报错,用户可以重新输入新的帐号和密码,或者用户可以选择“用户注册”注册一个帐号,或者用户可以取消登录,不使用本系统。否则,顺利登陆。(2)用户注册模块流程图图4-10注册模块流程图(3)图书入库模块流程图:用户进入主界面后,可以选择多种操作,其中一种操作就是图书入库,该模块要求用户输入书号、书名、作者、出版社、数量、入库日期等信息。如果数据库中已有该书号的记录,则只需修改该记录的数量字段,使其等于原值加上用户输入的数量值。否则,新建一条记录,插入到数据库的store表中。本系统的图书入库模块的流程图如图4-11:图4-11图书入库模块流程图(4)已售书查询当用户售出大量书籍后,想看看销售记录,则可以使用该模块,输入想查询的书号,或者顾客的名字,就可以显示记录了,流程图如图4-12所示图4-12已售书查询模块流程图5.编码合理的编码结构是系统是否具有生命力的一个重要因素,在设计编码时,应遵循以下基本原则:(1)唯一性:每一个自定义变量只能代表系统中的一个含义,避免因使用混乱而导致的调试运行错误。(2)合理性:编码的结构要合理,尽量反应编码对象的特征。(3)规范性:由于较大的系统都是由多人分工合作而完成的,因此,使用统一的标准和编程习惯是必须的,否则容易造成彼此理解上的混乱,模块间接口设计不合理,更严重的会直接导致系统开发失败。(4)可扩充性:编码时要留有足够的备用代码,以适应以后扩充代码的需要。但备用代码也不能留的过多,以免增加处理难度。5.1编码语言的选择本系统的开发平台是WindowsVisualStudio2005,而考虑到C#与WindowsVisualStudio2005的完美结合性,选择C#作为编码语言,也是无可非议的了。C#是一种现代的面向对象的程序开发语言。.NET提供了大量的工具与服务,能够最大限度的发掘和使用计算及通信能力。它使得程序员能够在.NET平台下快速开发出所需要的应用程序。并且它的面向对象设计和从构建组件形成的高层商业对象到高级系统级的应用程序都是一流的。与C和C++相比较,C#比它们更加简洁,更加高效。C#没有丢失C和C#的基本特征强大的控制能力和高度的灵活性。C#是专门为.NET的应用而开发的语言,这从根本上保证了C#与.NET的完美结合。C#具有语法简洁、面向对象设计、完善的安全性和错误处理和高度的灵活性和兼容性等优点。综上论述,选择C#语言作为本系统的编程开发语言是当之无愧的。5.2核心代码的实现5.2.1登录模块的核心代码privatevoidloginbtn_Click(objectsender,EventArgse){stringUserCode=usertb.Text.Trim();stringUserPswd=passwordtb.Text.Trim();if(UserCode==""){MessageBox.Show("请输入用户帐号!","提示");}else{stringafile="server=xiao-PC;uid=sa;pwd=123;database=bookmanager";SqlConnectionaconnstr=newSqlConnection(afile);SqlCommandacmd=newSqlCommand("Select*fromuserswhere账号='"+usertb.Text.Trim()+"'",aconnstr);SqlDataReaderord=null;aconnstr.Open();try{ord=acmd.ExecuteReader();}catch(Exceptionex){if(ex!=null)MessageBox.Show("执行出错","提示");}if(ord.Read()==false){MessageBox.Show("无此用户","提示");usertb.Text="";passwordtb.Text="";}else{if(ord["密码"].ToString().Trim()==UserPswd){System.Windows.Forms.Formmain=newWindowsApplication1.main();main.Show();this.Hide();}else{MessageBox.Show("密码不正确","提示");passwordtb.Text="";}}ord.Close();aconnstr.Close();}}5.2.2注册模块的核心代码(1)用户名检查:privatevoidcheckuserbtn_Click(objectsender,EventArgse){if(enusertb.Text.Trim()=="")MessageBox.Show("用户名不可以为空!","警告");else{stringafile="server=xiao-PC;uid=sa;pwd=123;database=bookmanager";SqlConnectionaconnstr=newSqlConnection(afile);SqlCommandacmd=newSqlCommand("Select*fromuserswhere账号='"+enusertb.Text.Trim()+"'",aconnstr);SqlDataReaderodr=null;aconnstr.Open();try{odr=acmd.ExecuteReader();}catch(Exceptionex){if(ex!=null)MessageBox.Show("执行出错","错误");}if(odr.Read()==true){MessageBox.Show("本用户名已被使用,请另选用户名","提示");enusertb.Text="";}else{MessageBox.Show("恭喜!可以使用本用户名","提示");}odr.Close();aconnstr.Close();}}(2)用户注册:privatevoidenrollbtn_Click(objectsender,EventArgse){intflag=0;intflag1=0;intflag2=0;if(enusertb.Text==""){MessageBox.Show("用户名不能为空!","提示");flag2=1;}if(emailtb.Text==""){MessageBox.Show("邮箱不能为空!","提示");flag1=0;}if(enpasswordtb.Text!=reenpasswoordtb.Text){MessageBox.Show("两次输入的密码不相同!","错误");enpasswordtb.Text="";reenpasswoordtb.Text="";flag=1;}strings=emailtb.Text;intlen=s.Length;if(len>0){if((s[0]=='@')||(s[0]=='.')||(s[len-1]=='@')||(s[len-1]=='.')){flag1=1;MessageBox.Show("邮箱不合法","错误");}else{intk=0,l=0;for(inti=0;i<len;i++)if(s[i]=='@')k++;for(intj=0;j<len;j++)if(s[j]=='.')l++;if((k!=1)||(l!=1))flag1=1;else{inti,j;for(i=0;i<len;i++)if(s[i]=='@')break;for(j=0;j<len;j++)if(s[j]=='.')break;if(i>j-1)flag1=1;}if(flag1==1){MessageBox.Show("邮箱不合法!","错误");emailtb.Text="";}}if((flag2==0)&&(flag==0)&&(flag1==0)){stringafile="Server=xiao-PC;uid=sa;pwd=123;database=bookmanager";SqlConnectionaconnstr=newSqlConnection(afile);stringinsertsql="insertintousers(账号,密码,权限,邮箱)values('"+enusertb.Text.Trim()+"','"+enpasswordtb.Text+"','用户','"+emailtb.Text.Trim()+"')";SqlCommandicmd=newSqlCommand(insertsql,aconnstr);SqlCommandacmd=newSqlCommand("Select*fromuserswhere账号='"+enusertb.Text+"'",aconnstr);SqlDataReaderodr=null;aconnstr.Open();odr=acmd.ExecuteReader();if(odr.Read()==true){odr.Close();MessageBox.Show("已存在此用户,请另选用户名","提示");enusertb.Text="";enpasswordtb.Text="";reenpasswoordtb.Text="";emailtb.Text="";}else{odr.Close();intexenum=icmd.ExecuteNonQuery();if(exenum==1){MessageBox.Show("注册成功!","提示");this.Close();}else{MessageBox.Show("注册失败","提示");}}aconnstr.Close();}}}5.2.3图书入库模块的核心代码privatevoidbutton1_Click(objectsender,EventArgse){if(booknotb.Text.Trim()==""){MessageBox.Show("书号不能为空!","警告");}elseif(sinpricetb.Text.Trim()=="")MessageBox.Show("进价不能为空!","警告");elseif(bookcounttb.Text.Trim()=="")MessageBox.Show("数量不能为空!","警告");else{stringafile="Server=xiao-PC;uid=sa;pwd=123;database=bookmanager";SqlConnectionaconnstr=newSqlConnection(afile);SqlCommandacmd=newSqlCommand("select*frombookwhere书号='"+booknotb.Text+"'",aconnstr);SqlCommanducmd=newSqlCommand("updatebookset库存数量=库存数量+'"+int.Parse(bookcounttb.Text.Trim())+"'where书号='"+booknotb.Text.Trim()+"'",aconnstr);SqlCommandicmd=newSqlCommand("insertintobook(书号,书名,作者,出版社,进价,库存数量,供货商)values('"+booknotb.Text.Trim()+"','"+booknametb.Text.Trim()+"','"+bookautb.Text.Trim()+"','"+bookpubtb.Text.Trim()+"','"+float.Parse(sinpricetb.Text.Trim())+"','"+int.Parse(bookcounttb.Text.Trim())+"','"+suppliertb.Text.Trim()+"')",aconnstr);SqlDataReaderodr=null;aconnstr.Open();try{odr=acmd.ExecuteReader();}catch(Exceptionex){if(ex!=null)MessageBox.Show("执行出错","提示");}if(odr.Read()==true){odr.Close();intexenum=ucmd.ExecuteNonQuery();if(exenum==1){MessageBox.Show("入库成功!","提示");this.Close();}else{odr.Close();MessageBox.Show("入库失败","提示");}}else{odr.Close();intexenum=icmd.ExecuteNonQuery();if(exenum==1){MessageBox.Show("入库成功!","提示");this.Close();}else{odr.Close();MessageBox.Show("入库失败","提示");}}aconnstr.Close();}}5.2.4已售书查询功能privatevoidbutton1_Click(objectsender,EventArgse){stringsh;stringgmz;stringafile="Server=xiao-PC;uid=sa;pwd=123;database=bookmanager";//连接数据库SqlConnectionaconnstr=newSqlConnection(afile);if((shtb.Text.Trim()=="")&&(gmztb.Text.Trim()==""))//错误处理MessageBox.Show("请输入查询关字");else{if(shcb.Checked==true){sh=shtb.Text.Trim();}else{sh="*";}if(gmzcb.Checked==true){gmz=gmztb.Text.Trim();}else{gmz="*";}stringfilter1="书号like'"+sh+"'and购买者like'"+gmz+"'";saleBindingSource.Filter=filter1;查询过滤器}}6.测试软件测试就是在软件投入运行前,对软件需求分析、设计规格说明书和编码的最终复审,是软件质量保证的关键步骤。测试的过程就是发现软件中的错误而运行软件的过程。6.1测试方法软件测试的方法主要有黑盒测试和白盒测试。(1)黑盒测试:把系统看作一个不透明的黑盒子,不知系统的结构和实现过程,主要测试的是系统所能实现的功能是否满足需求规格说明书,使用户满意。(2)白盒测试:白盒测试的前提是可以把程序堪称装在一个透明的白盒子里,也就是完全了解程序结构和处理过程。这种方法按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。白盒测试又称结构测试。白盒测试的方法主要是采用逻辑覆盖的方法,包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖和条件组合覆盖几种方法。其中条件组合覆盖测试功能最强,本次测试的白盒覆盖就选用条件组合覆盖。6.2测试方案的设计6.2.1黑盒测试(1)登录模块的测试及结果验证合法用户是否能顺利登录,非法用户是否不能登录成功。验证点击“注册“按钮是否能转入注册界面,点击”取消“按钮是否能退出系统。经验证,以上均无误。(2)注册模块的测试及结果验证信息正确时是否能注册成功及信息错误(包括某些信息不完整)时,系统能否报错且不能顺利注册。验证当点击“暂不注册“按钮时能否关闭注册界面而退回登录界面。经验证,系统无误。(3)图书入库模块的测试及结果验证当输入信息不完整时系统是否报错,且不允许写入数据库,验证当入库图书数据库中已存在记录的时候,系统是否只修改其库存数量字段而不插入新纪录,验证当入库图书数据库中不存在记录的时候,系统是否在数据库中插入包含还信息的一条新记录,验证当用户点击“取消“按钮时,系统是否关闭图书入库界面,退回主界面。经验证,本系统在本模块没有错误。(4)已售书模块测试及结果分别选择并输入“书号”和“购买者”关键字的一个或两个,点击查询按钮,查看显示结果与数据库是否一致,经验证,本系统在本模块没有错误。6.2.2白盒测试(1)登录模块的测试及结果第一步,不输入任何信息点击登录。系统提示“请输入用户帐号”,不能进入系统;第二步,输入一个数据库uses表中不存在的账号,密码可以空,也可不空,结果显示“无此用户”,不能进入系统;第三步,输入一个数据库中存在的用户名,但密码不同,结果显示“密码不正确”,不能进入系统;第四步,输入一个数据库中存在的用户名,并且密码一致,结果显示“登陆成功”,进入系统。(2)注册模块的测试及结果第一步,任意空白输入用户名,密码,确认密码和邮箱中的一个或几个,点击“注册”,测试结果,如果用户名为空,则显示“用户名不能为空”,注册失败,如果邮箱为空,显示“邮箱不合法”,注册失败;第二步,输入数据库中的用户名(本次测试123),密码设置为1,确认密码1,邮箱test@,结果显示“用户名已被占用“,注册失败;第三步,输入一个数据库中没有的用户名(本次测试789),密码为1,但确认密码不是1,而是2,邮箱test@,结果显示“两次输入的密码不一致“,注册失败;第四步,输入一个数据库中没有的用户名(本次测试789),密码为1,确认密码1,邮箱分别输入asds.sssd@,ass@hsa@,jkj@aaa.,@,jgh.aaa@com,

温馨提示

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

评论

0/150

提交评论