• 2.29 MB
  • 2022-05-16 18:35:00 发布

仓库管理系统文档本科毕业设计

  • 74页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
郑州航空工业管理学院专业综合设计系统名称:仓库管理系统学校:XXXXXXXXXXXXXXXX学院系别:计算机科学与应用系s专业:计算机科学与技术 郑州航空工业管理学院摘要随着现代工业的发展,计算机信息管理系统越来越受到企业重视,库存管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立一个数据一致性、完整性以及安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本设计采用VisualStudio2005的开发环境,而后台数据库选用数据库软件SQLServer2005,主要完成了库存管理系统的需求分析、功能模块的划分、数据库模式分析,并由此完成了数据库结构和应用程序的实现,系统基本实现了所需功能,界面友好,操作方便。本系统主要是让仓库的管理实现信息化、系统化,方便化,把计算机用于仓库管理中,这样可以很大程度上提高管理者分析和决策的科学性,提高经营管理水平。关键词:仓库管理VisualStudio2005SQLServer2005 郑州航空工业管理学院ABSTRACTWiththedevelopmentofmodernindustry,theinformationmanagementsystemofthecomputerisbeingpaidattentiontobyenterprises.ThestockmanagementsystemisatypicalMIS.It’sdevelopmentmostlyincludethefoundationandmaintenanceoftheDatabaseandthedevelopmentoftheclientapplicationprogramme.Fortheformerwemusteatablishabetterdatabase,whichhaswelldataconsistencyanddatasecurity.Forthelatterwemustmaketheprogrammehasself-containedfunctionandeasytobeuse.ThedesignofthedevelopmentenvironmentusingVisualstudio2005,thedatabasesoftwareisSQLServer2005,mainlycompletedinventorymanagementsystemneedsanalysis,thedivisionoffunctionalmodules,thedatabasemodelanalysis,andthuscompletedthedatabasestructureandapplicationimplementation,Thesystembasicallyachievestherequiredfunction,itsinterfaceisgood,andisusedwell.Thesystemisdesignedtoallowthemanagementinformationizedandsystematic,usedcomputerinthecateringmanagementofsupermarket,soitcanimprovethescientificofana-lysisanddecision-making,andenhancethemanagementlevel.Keywords:stockmanagementVisualStudio2005SQLServer2005 郑州航空工业管理学院目录第一章绪论11.1仓库管理系统11.2仓库管理系统的研究背景与意义1第二章开发工具简介32.1VisualStdio2005简介32.2SQLServer2005简介3第三章仓库管理系统分析43.1开发系统的目的43.2需求分析43.3可行性分析53.3.1技术可行性53.3.2经济可行性53.3.3管理可行性53.3.4社会可行性63.5系统流程图7第四章仓库管理系统数据库分析84.1数据库介绍84.1.1用户数据84.2创建数据库9第五章仓库管理系统数据库设计105.1数据库概念设计105.2仓库管理系统E-R图115.3仓库管理系统数据表清单125.4数据库逻辑结构设计12第六章界面展示及部分功能模块主要代码176.1模块划分176.2本程序登录界面176.3本程序运行后的效果186.4选择主窗体196.4.1入库管理窗体206.4.2出库管理窗体216.4.3借货管理窗体236.4.4还货管理窗体246.4.5盘点管理窗体266.5选择主窗体276.5.1供应商信息窗体286.5.2仓库管理窗体296.5.3货物管理窗体306.6选择主窗体316.6.1数据备份窗体326.6.2数据还原窗体336.6.3数据压缩窗体346.7选择主窗体366.7.1更改密码窗体36IV 郑州航空工业管理学院6.7.2用户管理窗体376.8选择主窗体396.8.1库存查询界面40第七章软件测试及维护43第八章致谢45第九章结论46参考文献47IV 第一章绪论1.1仓库管理系统当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,计算机最大的好处在于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性,尤其针对复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。仓库作为一种货品资源的集散地,货品的种类繁多,包含很多的信息数据的管理。据调查得知,以前仓库进行信息管理的方式主要是基于文本、表格等介质的手工处理,对于货品的出入库情况的统计和核实等往往采用对账本的人工检查,对管理者的管理权限等不受约束,任何人都可查看,这样容易引起资料外泄。另外,数据信息处理工作量大,容易出错,数据繁多,容易丢失,且不易查找。总的来说,缺乏系统、规范的信息管理手段。而且,一般的存储情况是记录在账本上的,仓库的工作人员和管理员也只是当时记得比较清楚,时间一长,如果再要进行查询,就得在众多的资料中翻阅查找了,这样造成费时、费力,如要对很长时间以前的货品进行更改就更加困难了。因此,很有必要建立一个库存管理系统,使货品管理工作规范化、系统化、程序化。提高信息处理的速度和准确性。1.2仓库管理系统的研究背景与意义众所周知,仓库管理是一种既麻烦又单调的工作,每天都是重复记录一些货物的存入与取出,而且货物的种类繁多,存取有很大的随机性,这样为工作人员带来了很大的不便,在操作过程中,由于人为的计算出错率很高,一旦出错改正也很困难,这样简单繁重的工作要很多人来做,为经营者增加了很多成本,所以开发一个可行的仓库管理系统是十分必要的。 随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。面对庞大的产品信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,库存管理的重点是销售信息能否及时反馈,从而确保企业运行效益。而库存管理又涉及入库、出库的产品、经办人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由仓库管理系统来提高库存管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。 第二章开发工具简介2.1VisualStdio2005简介开发这个系统使用VisualStdio2005工具来开发,VisualStdio2005是当前最流行的一款程序开发工具,利用它可以开发功能强大的、运行在Windows平台上的、能够操作数据库的应用系统,因此能够适应我们开发本系统的要求,并且简单易用,实现功能的代码量比其他语言减少许多,这样就缩短了软件开发周期,大大节约了软件开发成本。2.2SQLServer2005简介SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理,SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。SQLServer2005中包含了非常丰富的新特性:通过提供一个更安全、可靠和高效的数据管理平台,增强企业组织中用户的管理能力,大幅提升IT管理效率并降低运维风险和成本;通过提供先进的商业智能平台满足众多客户对业务的实时统计分析、监控预测等多种复杂管理需求,推动企业管理信息化建设和业务发展;同时,SQLServer2005将提供一个极具扩展性和灵活性的开发平台,实现Internet数据业务互联。 第三章仓库管理系统分析3.1开发系统的目的开发仓库管理系统,主要为减轻仓库管理人员的负担,使货物的存入记录与取出记录相对完善,便于货物的增加与减少,降低出错率,使管理更加合理、科学,也为经营者节省开支。本系统完面考虑了仓库在管理中要解决的所有需求,最终向用户提供一套方便可行的系统,该系统具备以下特征:配置必要的数据库和应用服务程序,提供查询、统计货物的种类、数量及所属公司等所有信息的功能,操作人员使用的界面要清晰、美观,布局合理,内容尽量简单明了,提供的信息详细全面。客户端程序要求安全性高,可靠性高。3.2需求分析市场经济的一个重要特征,就是生产的相对过剩和产品的相对过剩。它决定了这是一个买方市场。对企业来说,库存的增加或积压,无论是原材料、半成品或制成品,都意味着企业运作处于一种不良的状态,都是一种直接的或潜在的损失。大量的库存挤占了企业的有限资金,使得资金流速减缓,现金流发生困难,甚至导致资金紧张,影响企业的正常运作。此外,大量的库存增加了保管与仓储的压力,占用了相当的人力和物力,使得企业负担加重。凡此种种,一直困扰着企业的生产经营管理活动,影响企业经济效益的实现。显而易见,切实而有效地控制库存,是摆在众多企业面前的当务之急,也是缓解企业经济压力、减负增效的重要途径。需求分析是软件定义时期的最后一个阶段,它的基本任务是准确地回答“系统必须做什么” 这个问题,是对目标系统提出完整、准确、清晰、具体的要求。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证。软件需求分析过程是整个系统开发的重要阶段,分析的成功与否,决定着整个系统功能的完善性以及稳定性。在该阶段分析人员需要确定整个产品的功能要求,并将提供一种可转化为数据设计、结构设计和过程设计的数据与功能表示。在软件完成后,需求分析阶段研究的对象是软件项目的用户要求。3.3可行性分析可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是的效益是否达到值得投资开发这个系统的程度。一般来说,可行性分析应从经济可行性、技术可行性、经济可行性、操作可行性、社会可行性等方面进行研究。本系统的可行性分析如下:3.3.1技术可行性随着国内软件开发的日益发展壮大,各种中小企事业单位已具备独立开发各种类型的软件的能力,能够满足不同行业的特别的需求,现在,市场上可以选购的应用开发产品很多,流行的也有数十种。此外,从开发人员的水平考虑,作为计算机科学与技术专业毕业的学生,大学四年所积累的专业知识使我们从一定程度上具备了开发一个小型系统的能力,而且学校现有的计算机设备也完全能够满足开发的需要。本系统主要管理的是货物的入库,出库,查询相关的一些信息等,采用C#和MicrosoftVisualStudio作为前台用户界面的开发语言和工具,而后台的数据库采用微软的SQLServer2005。由于主要采用数据库来进行管理,实现起来比较简单,从技术上来说是完全可行的。3.3.2经济可行性 对于整个系统而言,在系统未运行之前,初期投资比较大,花费相当而言比较多。各部门必须配置电脑、服务器、打印机、传真机及相关的网络设备,但是在整个系统投入运行之后,将会给该企业带来前所未有的方便和快捷,减少不必要的中间环节以及不必要的开支,而且可以给其带来更大的利润。总之,这个系统的经济效益远远大于开发成本,而同时又减少了数据的流通环节,不必要花费那么多的时间,也就是说最重要的就是提高了效率,而又保证了各项数据的准确性,也避免了工作人员的流动造成的收据丢失等问题,适应了当前的发展形势。3.3.3管理可行性传统的库存管理系统,一般有两种方式:一是手工管理,这种方式应用最传统的“笔纸操作系统”,将库存的货物信息、销售信息、厂商信息管理及单据管理等均以纯手工的形式进行,将信息以表格文件的表现形式记录在纸上,再进行统一保存。这种方式虽然在简单信息查询时会有一定的方便,但是存在着更多的不便:信息保存时间和条件很受限制、容易被损坏、信息查询不便、信息传达容易造成失误等。另一种常见的信息管理方法是应用管理系统,本系统就是一款做的相对到位的库存管理系统,随着时代的发展,人员素质已逐步提高,库存管理人员已经有丰富的信息管理经验,不论是对于电脑系统的基本操作还是对于系统的维护都有了一定的基础,同时还可以配置专业的电脑维护人员来维护电脑不必担心电脑故障问题。3.3.4社会可行性该系统是作为毕业设计,不会对社会造成严重影响,也不用考虑到版权、法律等社会因素,所以在社会方面也是可行的。3.4系统功能描述及系统安全性一、库存管理系统是一套对货品入库、出库、库存进行全面管理的系统,在设计该系统时,应尽可能便于用户管理和操作。系统在实现上应该具有如下功能:(1)系统要求用户必须输入正确的用户名和密码才能进入系统。(2)系统能实现货物的入,出库功能。(3)系统提供查询现在库存的情况,及入库、出库和货物年统计等的记录。(4)系统提供管理员设置仓库信息和修改货物信息等。(5)系统提供管理员增加、删除、修改用户账户的功能。二、由于库存管理系统包含比较重要的信息,因此,在系统设计时除了注重用户的需求,还要保证系统的安全性和一致性, 该系统中管理权限上应当进行严格控制,体现如下:(1)安全性:本系统中共分为三类不同的用户,分别具有不同的权限。要想对该库存管理系统进行操作就应当具有某些操作权限,没有权限的用户将不能通过任何渠道来登录该系统,查看该系统的任何信息和数据,以确保系统的严密性和安全性,系统用户分为管理员用户和普通用户,管理员用户可对普通用户信息进行增、删、改,普通用户则只能查询。在具体实现时还应为系统管理员和普通用户设定不同的操作权限,系统管理员应当可以操作系统的所有模块,普通用户对于货物管理和基本档案管理模块是无权使用的。(2)一致性:系统的数据要保证一致性、准确性,当某一数据库中记录发生改变时,与之相关联的数据库也随之变化。3.5系统流程图本系统流程图如图3-1所示。图3-1系统流程图 第四章仓库管理系统数据库分析4.1数据库介绍数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库结构也将有利于程序的实现。设计数据库时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计是在既定(本系统使用SQLServer)的数据库管理系统基础之上建立数据库的过程。其过程是将现实存在的数据及其应用处理关系进行抽象,从而形成数据库结构。数据库是数据库应用程序的核心,数据库设计是建立一个应用程序最重要的一步。一个好的数据库结构和文件设计可以使系统在已有的条件下具有处理速度快,占用存储空间少,操作处理过程简单,查找容易,系统开销和费用低等特点。具体实现时,应首先明确用户对数据的需求,在此基础上,建立数据库的概念模型,概念模型主要是用来反映用户的现实环境和需求,它独立于具体的数据库管理系统,并且与数据库怎样实现无关,建立概念模型的主要工具为实体关系(E-R )图,在建立数据库概念模型之后,要真正实现与数据库管理系统的结合,即能够由既定的数据库管理系统所支持,还必须进行逻辑结构的设计,在逻辑设计阶段,主要完成建立数据库的逻辑模型,并解决数据的完整性、一致性、安全性和有效性等问题;最后一个阶段是数据库的物理结构设计,其任务是为系统逻辑结构模型确定合理的存储结构、存取方法、以及数据表示和数据存储空间分配等内容,从而得到具体的数据库物理结构。数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。4.1.1用户数据目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表,表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。(1)元数据数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描述称作元数据。因为DBMS产品是用来存储和操纵表的,所以大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指出每一个表中有多少列,那一列是主关键字,每一列的数据类型的描述,它也存储索引、关键字、规则和数据库结构的其他部分。在表中存储元数据不仅对DBMS是有效的,对用户也是方便的,因为他们可以使用与查询用户数据同样的查询工具来查询元数据。(2)索引第三种类型的数据改进了数据库的性能和可访问性,这种数据经常称作开销数据,尽管有时也采用其他类型的数据结构,如链表,但它主要还是索引。索引可以用来排序和快速访问数据。(3)应用元数据存储在数据库中的第四种数据是应用元数据,它用来存储用户窗体、报表、查询和其他形式的查询组件。并非所有的DBMS都支持应用组件,支持组件的DBMS也不一定把全部组件的结构作为应用元数据存储在数据库中。然而,大多数现代的DBMS产品存储这种数据作为数据库的一部分。一般来说,数据库开发人员和用户都不直接访问应用元数据,相反 ,他们通过DBMS中的工具来处理这些数据。4.2创建数据库数据库模式定义了数据库的结构、表、关系、域和业务规则。数据库模式是一种设计,数据库的应用正是建立在此基础上的。域是一列可能拥有的值的集合。必须为每一个表的每一列确定域。除了数据的物理格式外,还需要确定是否有些域对表来说是唯一的。数据库模式的最后一个要素是业务规则,它是对需要反映在数据库和数据库应用程序中的业务活动的约束。业务规则是模式的一个重要部分,因为他们指定了无论什么数据变化到达DBMS引擎,允许的数据值必须满足的约束。不管无效的数据变化请求是来自窗体的用户、查询、修改请求还是应用程序,DBMS都应该拒绝。遗憾的是,不同的DBMS产品用不同的方法实施业务规则。在某些情况下,DBMS产品不具备实施必要业务规则的能力,必须以代码形式把它们编入应用程序。第五章仓库管理系统数据库设计5.1数据库概念设计本系统涉及的实体有:管理员,商品,仓库,供应商。他们的实体及其属性图分别如下:(1)货物的实体及其属性图如图5-1所示。 图5-1货物实体及其属性图(2)仓库的实体及其属性图如5-2所示。图5-2仓库实体及其属性图(3)管理员的实体及其属性图如图5-3所示。 图5-3管理员的实体及其属性图(4)供应商的实体及其属性图如图5-4所示。图5-4供应商实体及其属性图5.2仓库管理系统E-R图本系统E-R图如图5-5所示。 图5-5系统E-R图5.3仓库管理系统数据表清单表5-1库存管理系统数据表清单数据表名称数据表用途tb_BorrowGoods保存货物的借货详细信息tb_CheckGoods保存货物的盘点详细信息tb_GoodsIn保存货物的入库详细信息tb_GoodsInfo保存货物的基本信息tb_GoodsOut保存货物的出库详细信息tb_ProviderInfo保存供应商的基本信息tb_ReturnGoods保存货物的还货详细信息tb_StorehouseInfo保存仓库的基本信息tb_UserInfo保存用户的基本信息表5-15.4数据库逻辑结构设计 在上面的实体以及实体之间的关系的基础上,形成数据库中的表格以及各个表格之间的关系。仓库管理系统数据库中的各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。(1)tb_BorrowGoods表如表5-2列名数据类型长度是否为主键可否为空GoodsBorrowIDintYES不能为空GoodsNamevarchar50NO可为空GoodsStorehousevarchar50NO可为空GoodsProvidervarchar50NO可为空GoodsUnitvarchar50NO可为空BorrowNumint10NO可为空BorrowDatedatetimeNO可为空BorrowPeoplevarchar50NO可为空Handlervarchar50NO可为空Infovarchar1000NO不能为空表5-3(2)tb_CheckGoods表如表5-3列名数据类型长度是否为主键可否为空GoodsCheckIDintYES不能为空GoodsBorrowIDintNO可为空GoodsNamevarchar50NO可为空GoodsStorehousevarchar50NO可为空GoodsProvidervarchar50NO可为空InNumintNO可为空OutNumintNO可为空NeedNumvarchar100NO可为空CheckPeoplevarchar50NO可为空CheckDatedatetimeNO可为空Infovarchar100NO不能为空 表5-3(3)tb_GoodsIn表如表5-4列名数据类型长度是否为主键可否为空GoodsInIDint10YES不能为空GoodsNamevarchar50NO可为空GoodsStorehousevarchar50NO可为空GoodsProvidervarchar50NO可为空GoodsUnitvarchar50NO可为空GoodsNumintNO可为空GoodsPriceInmoneyNO可为空GoodsAllPriceNO可为空GoodsInDatedatetimeNO可为空GoodsAddervarchar50NO可为空GoodsInfotextNO不能为空表5-4(4)tb_GoodsInfo表如表5-5列名数据类型长度是否为主键可否为空GoodsIDint10YES不能为空GoodsNamevarchar50NO不能为空GoodsStorehousevarchar50NO可为空GoodsProvidervarchar50NO可为空GoodsUnitvarchar50NO可为空GoodsNumintNO可为空GoodsPriceInmoneyNO可为空GoodsPriceOutmoneyNO可为空GoodsInfotextNO可为空AddDatedatetimeNO可为空AddUservarchar50NO可为空GoodsLeastintNO可为空 GoodsMostintNO可为空表5-5(5)tb_GoodsOut表如表5-6列名数据类型长度是否为主键可否为空GoodsOutIDintYES不能为空GoodsNamevarchar50NO可为空GoodsProvidervarchar50NO可为空GoodsUnitvarchar50NO可为空GoodsNumintNO可为空GoodsPriceOutmoneyNO可为空GoodsAllPriceNO可为空GoodsOutDatedatetimeNO可为空GoodsOutPeoplevarchar50NO可为空GoodsOutCompanyvarchar50NO可为空Handlervarchar50NO可为空GoodsInfotextNO不能为空表5-6(6)tb_ProviderInfo表如表5-7列名数据类型长度是否为主键可否为空ProviderIDintYES不能为空ProviderNamevarchar50NO不能为空ProviderManagervarchar50NO可为空ProviderPhonevarchar50NO可为空ProviderFaxvarchar50NO可为空ProviderEmailvarchar10NO可为空ProviderAddressvarchar1000NO可为空ProviderInfotextNO可为空AddDatedatetimeNO可为空AddUservarchar1000NO可为空 表5-7(7)tb_ReturnGoods表如表5-8列名数据类型长度是否为主键可否为空ReturnGoodsIDintYES不能为空GoodsNamevarchar50NO可为空GoodsStorehousevarchar50NO可为空GoodsProvidervarchar50NO可为空GoodsUnitvarchar50NO可为空ReturnNumintNO可为空ReturnDatedatetimeNO可为空ReturnPeoplevarchar50NO可为空Handlervarchar50NO可为空Infovarchar1000NO可为空表5-8(8)tb_StorehouseInfo表如表5-9列名数据类型长度是否为主键可否为空StorehouseIDintYES不能为空StorehouseNamevarchar50NO可为空StorehouseManagervarchar50NO可为空StorehousePhonevarchar50NO可为空StorehouseInfotextNO可为空AddDatedatetimeNO可为空AddUservarchar50NO可为空表5-9(9)tb_UserInfo表如表5-10列名数据类型长度是否为主键可否为空UserIDintYES不能为空UserNamevarchar20NO不能为空UserPwdvarchar20NO不能为空 UserLevelvarchar20NO不能为空表5-10第六章界面展示及部分功能模块主要代码6.1模块划分本系统模块图如图6-1所示。图6-1系统模块图 6.2本程序登录界面出于对系统安全性的考虑,本系统设置了登录模块,只有持有效用户名和密码的用户才能登录该系统。此外,本系统设置了访问权限,不同访问权限的用户进入系统后能完成不同的操作,普通用户只具有查询的权限,管理员用户可对普通用户的信息进行更改和入出库等所有操作。具体的登录页面如图6-2所示。图6-2系统登录界面主要实现代码如下:privatevoidfrmLogin_Load(objectsender,EventArgse){dataoperate.ComboxDataBind("SELECT*FROMtb_UserInfo","UserInfo","UserName",cboxUserName);}privatevoidcboxUserName_SelectedIndexChanged(objectsender,EventArgse){try{stringstrCMD="SELECTUserLevelFROMtb_UserInfoWHEREUserName=""+cboxUserName.Text+""";SqlDataReaderdr=dbcontrol.SqlExecuteReader(strCMD);if(dr.Read()){strUserLevel=dr["UserLevel"].ToString();lblUserLevel.Text=strUserLevel;}dr.Close();}catch(Exceptionex){MessageBox.Show(ex.Message); }}privatevoidbtnLogin_Click(objectsender,EventArgse){intiResult=dataoperate.Login(cboxUserName.Text.Trim(),txtPwd.Text.Trim());if(iResult==0){MessageBox.Show("用户名或密码错误!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}if(iResult==1){strUserName=cboxUserName.Text.Trim();strUserPwd=txtPwd.Text.Trim();frmMainfrm=newfrmMain();frm.Show();this.Hide();}}6.3本程序运行后的效果当使用正确的用户名和密码登陆系统以后就进入系统的主界面,在系统的主界面中可以选择你要进入的系统模块,在系统的下面显示了你登陆的用户名,用户权限以及登录时间等。系统主界面如图6-3所示。 图6-3系统主界面6.4选择主窗体选择主窗体上的[货物管理]或货物管理页面上的按钮可以进入入库管理、出库管理、借货还货和盘点管理功能窗体,如图6-4所示。图6-4货物管理菜单界面 6.4.1入库管理窗体入库管理窗体中设置了入库管理的基本信息,如图6-5所示。图6-6货物入库管理窗体主要实现代码如下:privatevoidfrmGoodsIn_Load(objectsender,EventArgse){ds=dbcontrol.GetDataSet("SELECT*FROMtb_GoodsIn","GoodsIn");if(ds.Tables[0].Rows.Count==0){btnDelete.Enabled=false;}else{btnDelete.Enabled=true;dgvGoodsIn.DataSource=ds.Tables[0];}dataoperate.ComboxDataBind("SELECTProviderNameFROMtb_ProviderInfo","ProviderName","ProviderName",cboxProvider);dataoperate.ComboxDataBind("SELECTStorehouseNameFROMtb_StorehouseInfo","StorehouseName","StorehouseName",cboxStorehouse);}privatevoidbtnGoodsIn_Click(objectsender,EventArgse) {if(txtGoodsName.Text.Trim()==""){MessageBox.Show("货物名称不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(txtGoodsNum.Text.Trim()==""){MessageBox.Show("货物数量不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(txtGoodsPriceIn.Text.Trim()==""){MessageBox.Show("货物进价不能为空不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{try{dataoperate.GoodsIn(txtGoodsName.Text.Trim(),cboxProvider.Text.Trim(),cboxStorehouse.Text.Trim(),cboxGoodsUnit.Text.Trim(),txtGoodsNum.Text.Trim(),txtGoodsPriceIn.Text.Trim(),DateTime.Now,txtGoodsAdder.Text.Trim(),txtGoodsInfo.Text);MessageBox.Show("入库成功!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);frmGoodsIn_Load(sender,e);Clear();}catch(Exceptionex){MessageBox.Show(ex.Message);}}}6.4.2出库管理窗体出库管理窗体中设置了出库管理的基本信息,如图6-7所示。 图6-8货物出库管理窗体主要实现代码如下:privatevoidfrmGoodsOut_Load(objectsender,EventArgse){ds=dbcontrol.GetDataSet("SELECT*FROMtb_GoodsOut","GoodsOut");if(ds.Tables[0].Rows.Count==0){btnDelete.Enabled=false;}else{btnDelete.Enabled=true;}dgvGoodsOut.DataSource=ds.Tables[0];dataoperate.ComboxDataBind("SELECTDISTINCTGoodsStorehouseFROMtb_GoodsInfo","Storehouse","GoodsStorehouse",cboxStorehouse);}privatevoidcboxStorehouse_SelectedIndexChanged(objectsender,EventArgse){dataoperate.ComboxDataBind("SELECTDISTINCTGoodsProviderFROMtb_GoodsInfoWHEREGoodsStorehouse=""+cboxStorehouse.Text+""","ProviderInfo","GoodsProvider",cboxProvider);cboxGoodsName.Text="";} privatevoidcboxProvider_SelectedIndexChanged(objectsender,EventArgse){dataoperate.ComboxDataBind("SELECTGoodsNameFROMtb_GoodsInfoWHEREGoodsStorehouse=""+cboxStorehouse.Text+""ANDGoodsProvider=""+cboxProvider.Text+""","GoodsName","GoodsName",cboxGoodsName);}privatevoidcboxGoodsName_SelectedIndexChanged(objectsender,EventArgse){SqlDataReaderdr=dbcontrol.SqlExecuteReader("SELECT*FROMtb_GoodsInfoWHEREGoodsStorehouse=""+cboxStorehouse.Text+""ANDGoodsProvider=""+cboxProvider.Text+""ANDGoodsName=""+cboxGoodsName.Text+""");if(dr.Read()){cboxGoodsUnit.Text=dr["GoodsUnit"].ToString();txtNumNow.Text=dr["GoodsNum"].ToString();txtPriceOut.Text=dr["GoodsPriceOut"].ToString();}dr.Close();}6.4.3借货管理窗体借货管理窗体中设置了借货管理的基本信息,如图6-9所图6-9借货管理窗体 主要实现代码如下:privatevoidbtnBorrow_Click(objectsender,EventArgse){if(txtBorrowNum.Text.Trim()==""){MessageBox.Show("数量不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(errorNum.GetError(txtBorrowNum).Equals("数量格式不正确!")){MessageBox.Show("格式有误!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{try{intiResult=dataoperate.BorrowGoods(cboxGoodsName.Text,cboxStorehouse.Text,cboxProvider.Text,cboxGoodsUnit.Text,txtBorrowNum.Text,DateTime.Now.ToString(),txtBorrowPeople.Text,txtHandler.Text.Trim(),txtInfo.Text);if(iResult==100){MessageBox.Show("没有足够货物!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}if(iResult==200){MessageBox.Show("货物借出成功!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);frmBorrowGoods_Load(sender,e);Clear();}}catch(Exceptionex){MessageBox.Show(ex.Message);}}} 6.4.4还货管理窗体还货管理窗体中设置了还货管理的基本信息,如图6-10所示。图6-10还货管理窗体主要实现代码如下:privatevoidbtnReturn_Click(objectsender,EventArgse){if(txtReturnNum.Text.Trim()==""){MessageBox.Show("还货数量不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(errorReturnNum.GetError(txtReturnNum).Equals("数量格式错误!")){MessageBox.Show("格式有误!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(Convert.ToInt32(txtReturnNum.Text)>(Convert.ToInt32(txtBorrowNum.Text)-Convert.ToInt32(txtReturnedNum.Text))){MessageBox.Show("应还数量超出!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{try {intiResult=dataoperate.ReturnGoods(cboxGoodsName.Text,cboxGoodsStorehouse.Text,cboxGoodsProvider.Text,cboxUnit.Text,txtReturnNum.Text,DateTime.Now.ToString(),txtReturnPeople.Text.Trim(),txtHandler.Text.Trim(),txtInfo.Text,strBorrowDate);if(iResult==200){MessageBox.Show("还货成功!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);frmReturnGoods_Load(sender,e);Clear();}}catch(Exceptionex){MessageBox.Show(ex.Message);}}}6.4.5盘点管理窗体盘点管理窗体中设置了盘点管理的基本信息,如图6-11所示。图6-11盘点管理窗体 主要实现代码如下:privatevoidbtnCheck_Click(objectsender,EventArgse){try{intiResult=dataoperate.GoodsCheck(cboxGoodsID.Text,txtGoodsName.Text,txtGoodsStorehouse.Text,txtGoodsProvider.Text,txtGoodsIn.Text,txtGoodsOut.Text,txtNeedNum.Text,txtCheckPeople.Text,DateTime.Now.ToString(),txtInfo.Text);if(iResult==100){MessageBox.Show("此货物已盘点!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}if(iResult==200){MessageBox.Show("盘点成功!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);Clear();frmGoodsCheck_Load(sender,e);}}catch(Exceptionex){MessageBox.Show(ex.Message);}}6.5选择主窗体选择主窗体上的[基本信息]或基本信息页面上的按钮可以进入供应商信息、仓库信息、货物档案功能窗体,如图6-12所示。 图6-12基本信息界面6.5.1供应商信息窗体供应商信息窗体中设置了供应商的基本信息,如图6-13所示。图6-13供应商信息管理窗体主要实现代码如下: privatevoidbtnAdd_Click(objectsender,EventArgse){if(cboxProviderName.Text.Trim()==""){MessageBox.Show("供应商名称不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(errorIsPhoneNum.GetError(txtPhone).Equals("电话号码格式错误")||errorIsFaxNum.GetError(txtFax).Equals("传真号码格式错误")||errorIsEmail.GetError(txtEmail).Equals("电子邮箱格式错误")){MessageBox.Show("格式有误!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{dataoperate.AddProvider(cboxProviderName.Text.Trim(),txtProviderManager.Text.Trim(),txtPhone.Text.Trim(),txtFax.Text.Trim(),txtEmail.Text.Trim(),txtAddress.Text.Trim(),txtProviderInfo.Text.Trim(),DateTime.Now.ToString(),frmLogin.strUserName);frmProviderInfo_Load(sender,e);}}privatevoidtxtPhone_TextChanged(objectsender,EventArgse){if(txtPhone.Text.Trim()!=""){if(!dataoperate.IsNum(txtPhone.Text.Trim())){errorIsEmail.Clear();errorIsFaxNum.Clear();errorIsPhoneNum.SetError(txtPhone,"电话号码格式错误!");}else{errorIsEmail.Clear();errorIsFaxNum.Clear();errorIsPhoneNum.Clear();errorIsPhoneNum.Dispose();}}} 6.5.2仓库管理窗体仓库管理窗体中设置了仓库的基本信息,如图6-14所示。图6-14仓库信息管理窗体主要实现代码如下:privatevoidbtnAdd_Click(objectsender,EventArgse){if(cboxStorehouseName.Text.Trim()==""){MessageBox.Show("仓库名称不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(errorIsPhoneNum.GetError(txtPhone).Equals("电话号码格式错误!")){MessageBox.Show("格式错误!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{dataoperate.AddStorehouse(cboxStorehouseName.Text.Trim(),txtStorehouseManager.Text.Trim(),txtPhone.Text.Trim(),txtStorehouseInfo.Text,DateTime.Now.ToString(),frmLogin.strUserName);frmStorehouseInfo_Load(sender,e);}}privatevoidbtnModify_Click(objectsender,EventArgse){ if(cboxStorehouseName.Text.Trim()==""){MessageBox.Show("名称不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(errorIsPhoneNum.GetError(txtPhone).Equals("电话号码格式错误!")){MessageBox.Show("格式错误!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{dataoperate.ModifyStorehouse(Convert.ToInt32(dgvStorehouseInfo[0,dgvStorehouseInfo.CurrentCell.RowIndex].Value),cboxStorehouseName.Text.Trim(),txtStorehouseManager.Text.Trim(),txtPhone.Text.Trim(),txtStorehouseInfo.Text.Trim(),DateTime.Now.ToString(),frmLogin.strUserName);frmStorehouseInfo_Load(sender,e);}}6.5.3货物管理窗体货物管理窗体中设置了货物的基本信息,如图6-15所示。图6-15货物信息管理窗体主要实现代码如下:privatevoidbtnModify_Click(objectsender,EventArgse) {if(txtPriceOut.Text.Trim()==""){MessageBox.Show("出价不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(errorLeast.GetError(txtLeast)=="最低警戒线必须为数字!"||errorMost.GetError(txtMost)=="最高警戒线必须为数字!"||errorPriceOut.GetError(txtPriceOut)=="出价必须为数字!"){MessageBox.Show("格式有误!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{dataoperate.ModifyGoodsInfo(txtGoodsName.Text,cboxGoodsUnit.Text,txtPriceOut.Text.Trim(),txtLeast.Text.Trim(),txtMost.Text.Trim());MessageBox.Show("修改成功!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);frmGoodsInfo_Load(sender,e);Clear();}}6.6选择主窗体选择主窗体上的[数据管理]或数据管理页面上的按钮可以进入数据备份、数据还原、数据压缩功能窗体,如图6-16所示。 图6-16数据管理界面6.6.1数据备份窗体数据备份窗体中设置了备份名称和备份路径,如图6-17所示。图6-17数据备份窗体主要实现代码如下:privatevoidbtnBackup_Click(objectsender,EventArgse){if(txtName.Text.Trim()==""){MessageBox.Show("备份名称不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(txtPath.Text.Trim()==""){ MessageBox.Show("备份路径不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{stringstrPath=txtPath.Text+txtName.Text.Trim()+".bak";if(System.IO.File.Exists(strPath)){MessageBox.Show("该文件名已存在!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);txtName.Text="";txtName.Focus();}else{stringstrCMD="BACKUPDATABASEdb_SRMSTODISK=""+strPath+""";try{dbcontrol.SqlExecuteNonQuery(strCMD);MessageBox.Show("备份成功!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);txtName.Text="";txtPath.Text="";}catch(Exceptionex){MessageBox.Show(ex.Message);}}}}6.6.2数据还原窗体数据还原窗体中设置了数据还原功能,如图6-18所示。图6-18数据还原窗体 主要实现代码如下:privatevoidbtnRestore_Click(objectsender,EventArgse){if(txtPath.Text.Trim()==""){MessageBox.Show("请先选择要还原的备份!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{try{stringstrPath=txtPath.Text;stringstrCMD="USEMASTERRESTOREdb_SRMSFROMDISK=""+strPath+""";MessageBox.Show("数据还原成功!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);txtPath.Text="";txtPath.Focus();}catch(Exceptionex){MessageBox.Show(ex.Message);}}}6.6.3数据压缩窗体数据压缩窗体中设置了数据压缩的基本信息,包括压缩前和压缩后,如图6-19所示。图6-19数据压缩窗体主要实现代码如下: privatevoidbtnCompress_Click(objectsender,EventArgse){if(txtBefore.Text.Trim()==""){MessageBox.Show("请选择要压缩的数据","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(txtAfter.Text.Trim()==""){MessageBox.Show("请选择要存放的位置","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{try{stringstrPathFrom=txtBefore.Text;stringstrFileName=txtBefore.Text.Substring(txtBefore.Text.LastIndexOf("\"));stringstrPathTo=txtAfter.Text+strFileName+".rar";//实例化一个基流FileStreamfs=newFileStream(strPathFrom,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite);//实例化一个字节数组,存放流byte[]barry=newbyte[fs.Length];//将基流读入入字节数组intiCount=fs.Read(barry,0,barry.Length);//实例化一个目标流FileStreamfsTo=newFileStream(strPathTo,FileMode.OpenOrCreate,FileAccess.Write);//实例化一个压缩流GZipStreamgzs=newGZipStream(fsTo,CompressionMode.Compress,true);gzs.Write(barry,0,barry.Length);gzs.Close();fsTo.Close();fs.Close();MessageBox.Show("压缩成功!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);txtBefore.Text="";txtAfter.Text="";}catch(Exceptionex){MessageBox.Show(ex.Message);} }}6.7选择主窗体选择主窗体上的[用户管理]或用户管理页面上的按钮可以进入更改密码、用户管理功能窗体,如图6-20所示。图6-20用户管理界面6.7.1更改密码窗体更改密码窗体中设置了更改密码的基本信息,如图6-21所示。图6-21用户密码更改窗体 主要实现代码如下:privatevoidbutton1_Click(objectsender,EventArgse){if(txtOldPwd.Text.Trim()==""){MessageBox.Show("旧密码不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(txtOldPwd.Text.Trim()!=frmLogin.strUserPwd){MessageBox.Show("旧密码输入错误!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(txtNewPwd.Text.Trim()==""||txtNewPwdAgain.Text.Trim()==""){MessageBox.Show("新密码必须输入两次!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(txtNewPwd.Text.Trim()!=txtNewPwdAgain.Text.Trim()){MessageBox.Show("两次新密码输入不一致!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{dataoperate.ModifyPwd(txtUserName.Text.Trim(),txtNewPwd.Text.Trim());}}6.7.2用户管理窗体用户管理窗体中设置了用户管理的基本信息,包括用户名、密码和权限,设置了添加、修改、删除和关闭功能。如图6-22所示。 图6-22用户管理窗体主要实现代码如下:privatevoidbtnAdd_Click(objectsender,EventArgse){if(cboxUserName.Text.Trim()==""){MessageBox.Show("用户名不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(txtUserPwd.Text.Trim()==""){MessageBox.Show("密码不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(cboxUserLevel.Text==""){MessageBox.Show("用户权限不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{intiResult=dataoperate.AddUser(cboxUserName.Text.Trim(),txtUserPwd.Text.Trim(),cboxUserLevel.Text);if(iResult==1){MessageBox.Show("该用户已经存在!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else {MessageBox.Show("添加成功!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}frmUserManagement_Load(sender,e);}}privatevoidClear(){cboxUserName.Text="";txtUserPwd.Text="";cboxUserLevel.Text="";}privatevoidbtnModify_Click(objectsender,EventArgse){if(cboxUserName.Text.Trim()==""){MessageBox.Show("用户名不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(txtUserPwd.Text.Trim()==""){MessageBox.Show("密码不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseif(cboxUserLevel.Text==""){MessageBox.Show("用户权限不能为空!","提示!",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{dataoperate.ModifyUserInfo(Convert.ToInt32(dgvUserInfo[0,dgvUserInfo.CurrentCell.RowIndex].Value),cboxUserName.Text.Trim(),txtUserPwd.Text.Trim(),cboxUserLevel.Text.Trim());frmUserManagement_Load(sender,e);}} 6.8选择主窗体选择主窗体上的[查询统计]或查询统计页面上的按钮可以进入库存查询、入库查询、出库查询和货物借出查询、货物归还查询和出入库货物年统计查询功能窗体,如图6-23所示。图6-23查询统计界面6.8.1库存查询界面由于各种查询界面均相似,图6-24为库存查询界面,选择相应的查询条件和关键字时,其相关的信息将显示在下面的滚动条中,不选中时点击查询将显示所有信息。 图6-24库存查询窗体主要实现代码如下:privatevoidbtnLook_Click(objectsender,EventArgse){try{if(txtLkWord.Text.Trim()==""){frmGILook_Load(sender,e);}else{if(cboxLCondition.Text.Trim()=="货物编号"){ds=dbcontrol.GetDataSet("SELECT*FROMtb_GoodsInfowhereGoodsID="+txtLkWord.Text.Trim()+"","tb_GoodsInfo");dgvGInfo.DataSource=ds.Tables[0];}if(cboxLCondition.Text.Trim()=="货物名称"){ds=dbcontrol.GetDataSet("SELECT*FROMtb_GoodsInfowhereGoodsNamelike"%"+txtLkWord.Text.Trim()+"%"","tb_GoodsInfo");dgvGInfo.DataSource=ds.Tables[0];}if(cboxLCondition.Text.Trim()=="仓库名称"){ds=dbcontrol.GetDataSet("SELECT*FROMtb_GoodsInfowhere GoodsStorehouselike"%"+txtLkWord.Text.Trim()+"%"","tb_GoodsInfo");dgvGInfo.DataSource=ds.Tables[0];}}}catch(Exceptionex){MessageBox.Show(ex.Message,"提示,MessageBoxButtons.OK,MessageBoxIcon.Information");}}6.9帮助主窗体帮助主窗体上的[帮助]或帮助页面上的按钮可以选择注销、关于、退出功能,如图6-25所示。图6-25帮助界面(1)选择注销功能则重新回到登录界面。(2)选择关于功能则显示此系统的一些基本信息,如图6-26所示。 图6-27关于窗体(3)选择退出功能则提示是否退出,单击是则退出系统,单击否重回界面,如图6-28所示。图6-28退出窗体第七章软件测试及维护软件测试的目的是尽可能多地发现并排除软件中潜藏的错误,最终把一个高质量的软件系统交给用户使用。测试产品有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用,这叫黑盒测试;如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照需求规定正常进行,这叫白盒测试。白盒测试在测试过程的早期阶段进行,而黑盒测试主要用于测试过程的后期,黑盒测试着重测试软件功能。为了测试软件的稳定性、实用性,我们对该库存管理进行了测试并编写了软件测试分析报告。该报告主要方便我们对软件进行分析及维护,用户也可从报告中得到系统使用情况,方便客户对系统提出进一步改进意见。 本软件测试采用了确认测试,确认测试也称为验收测试,它的目标是验证软件的有效性。确认测试必须有用户积极参与,或者以用户为主进行,通常使用黑盒测试法。本软件的测试使用了Bata测试过程,即由软件的最终用户们在一个或多个客户场所进行的测试,这是软件在开发者不能控制的环境中的“真实”应用。7.1登录模块功能测试当不同的用户名和密码同时输入正确时将成功登录系统,否则提示用户名或密码错误,所以此功能正常。7.2库存管理模块功能测试(1)当管理员进入入库管理窗体时,货物可以正常入库且可以成功删除,普通用户则不能,所以此功能正常。(2)当管理员进入出库管理窗体时,货物可以正常出库且可以成功删除,普通用户则不能,所以此功能正常。(3)当管理员进入借货还货管理窗体时,货物可以正常借货或还货且可以成功删除,普通用户则不能,所以此功能正常。(4)当管理员进入盘点管理窗体时,货物可以随意盘点、修改且可以成功删除,普通用户则不能,所以此功能正常。7.3基本信息模块功能测试(1)当管理员进入供应商信息窗体时,供应商信息可以成功添加、修改和删除,普通用户则不能,所以此功能正常。(2)当管理员进入仓库信息窗体时,仓库基本信息可以成功添加、修改和删除,普通用户则不能,所以此功能正常。(3)当管理员进入货物档案窗体时,货物档案基本信息可以成功修改和删除,普通用户则不能,所以此功能正常。7.4数据管理模块功能测试由于可以成功执行数据备份,数据还原和数据压缩,所以此模块功能正常。7.5用户管理模块功能测试当管理员登录时可以成功进行用户名、密码的添加、修改和删除,而普通用户则只能更改密码,所以此模块功能正常。7.6查询统计模块功能测试可以根据不同的查询条件对货物进行查询,所以此模块功能正常。7.7帮助模块功能测试 本系统可以成功注销和退出,所以此模块功能正常。第八章致谢感谢学院的领导多年来对我的培养和支持,是他们为我提供了良好的学习环境和学习机会。感谢我的指导老师—高洁老师。他在我的专业综合设计完成过程中,给予了我许多理论和实践上的指导。让我能够在遇到难以解决的问题时,及时给于我帮助,保证了我按时的完成这次专业综合设计。还要感谢帮助过我的同学,他们给了我支持与鼓励、信心与力量,是我人生中无价的财富。 第九章结论 在这次专业综合设计中,我的能力得到了锻炼,自己也有许多体会。以前仅仅是对软件的开发有一个大体的印象,通过这次的专业综合设计,我对软件的开发有了切身的体会。软件并不像我原来所想的那样十分神秘,而是有着一个相对固定的模式和流程。我们只要按照这个模式和流程,就能够比较规范的完成一个软件的制作。软件的制作是一个系统的工程,需要我们掌握多方面的知识。在这次专业综合设计中,我觉得自己的知识面还是有欠缺的。需要在以后的学习中加以注意,要全面的提高自己的知识面与知识层次。系统开发的过程中,我深刻体会到了一个问题,那就是:一个系统开发的过程中编码不是最重要的,重要的是对系统进行分析以及建立恰当的系统模型。有了一个好的系统模型之后,我们再将其划分成几个模块,那样做起来就会容易得多。在该库存管理系统设计中,从系统的实用性出发,我能够在开发该系统时站在用户的角度看问题,本着用户操作界面友好、清晰、易学易用的原则进行设计。如开发过程中我尽可能地设想记录为空,输入为空,输入出错等边界条件,然后在这些边界上,设置出错检测,使系统能自动捕获出错点,给出提示,允许用户重新进行操作,使系统能够安全的运行下去,而不是退出系统。在这次专业综合设计中,我遇到了很多困难,这主要是由于我开发软件的经验不足,工具的应用也不够熟练,虽然用的语言是C#,但是由于以前基础不够扎实,对我来说可以算是一个全新的尝试,整个开发过程并不是很顺利,却使我从中充分体会到学习的快乐,系统也在从理论到实践,再从实践到理论的反复中一步步得到完善。总之,这次的系统开发,实现了我自己动手完成一个系统开发的目标,也学习到很多东西,不只是实践经验,还有一些做事的道理:在工作时,要尽量把要遇到的问题考虑周全,提前做好准备,那样就不会在遇到问题时有措手不及的感觉;做事一定要不断地去尝试,然后尽自己最大的努力去完成它,人的发展潜力是巨大的,不要一开始就否定自己,低估自己,虽然不能说只要努力就会取得成功,但是如果不努力,就永远不会成功。参考文献[1]姜玲玲C#数据库入门经典清华大学出版社2008年[2]李律松VisualC#+SQLServer数据库开发与实例[M]清华大学出版社2006年 [3]王珊,萨师煊数据库系统概论高等教育出版社2006年[4](美)戴维森SQLServer2008数据库设计与实现人民邮电出版社2009年[5](英)夏普著,周靖译VisualC#2005从入门到精通清华大学出版社2006年[6](美)维埃拉(VieiraR.)著,董明译SQLServer2005高级程序设计人民邮电出版社2008年 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:      学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日 指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日 评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日 教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日14 学位论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全意识到本声明的法律结果由本人承担。学位论文作者(本人签名):年月日学位论文出版授权书本人及导师完全同意《中国博士学位论文全文数据库出版章程》、《中国优秀硕士学位论文全文数据库出版章程》(以下简称“章程”),愿意将本人的学位论文提交“中国学术期刊(光盘版)电子杂志社”在《中国博士学位论文全文数据库》、《中国优秀硕士学位论文全文数据库》中全文发表和以电子、网络形式公开出版,并同意编入CNKI《中国知识资源总库》,在《中国博硕士学位论文评价数据库》中使用和在互联网上传播,同意按“章程”规定享受相关权益。论文密级:□公开□保密(___年__月至__年__月)(保密的学位论文在解密后应遵守此协议)作者签名:_______导师签名:______________年_____月_____日_______年_____月_____日14 独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名:二〇一〇年九月二十日 毕业设计(论文)使用授权声明本人完全了解滨州学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名:二〇一〇年九月二十日14 致谢时间飞逝,大学的学习生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和默默支持,我将无法顺利完成今天的学业。四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。最后,我要特别感谢我的导师赵达睿老师、和研究生助教熊伟丽老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。毕业设计(论文)原创性声明和使用授权说明原创性声明14 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名:     日 期:     指导教师签名:     日  期:     使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名:     日 期:     14 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日14 独创声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知,除文中已经注明引用的内容外,本设计(论文)不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本声明的法律后果由本人承担。 作者签名:年月日 毕业设计(论文)使用授权声明本人完全了解**学院关于收集、保存、使用毕业设计(论文)的规定。本人愿意按照学校要求提交学位论文的印刷本和电子版,同意学校保存学位论文的印刷本和电子版,或采用影印、数字化或其它复制手段保存设计(论文);同意学校在不以营利为目的的前提下,建立目录检索与阅览服务系统,公布设计(论文)的部分或全部内容,允许他人依法合理使用。(保密论文在解密后遵守此规定) 作者签名:年月日14 基本要求:写毕业论文主要目的是培养学生综合运用所学知识和技能,理论联系实际,独立分析,解决实际问题的能力,使学生得到从事本专业工作和进行相关的基本训练。毕业论文应反映出作者能够准确地掌握所学的专业基础知识,基本学会综合运用所学知识进行科学研究的方法,对所研究的题目有一定的心得体会,论文题目的范围不宜过宽,一般选择本学科某一重要问题的一个侧面。毕业论文的基本教学要求是:1、培养学生综合运用、巩固与扩展所学的基础理论和专业知识,培养学生独立分析、解决实际问题能力、培养学生处理数据和信息的能力。2、培养学生正确的理论联系实际的工作作风,严肃认真的科学态度。3、培养学生进行社会调查研究;文献资料收集、阅读和整理、使用;提出论点、综合论证、总结写作等基本技能。毕业论文是毕业生总结性的独立作业,是学生运用在校学习的基本知识和基础理论,去分析、解决一两个实际问题的实践锻炼过程,也是学生在校学习期间学习成果的综合性总结,是整个教学活动中不可缺少的重要环节。撰写毕业论文对于培养学生初步的科学研究能力,提高其综合运用所学知识分析问题、解决问题能力有着重要意义。毕业论文在进行编写的过程中,需要经过开题报告、论文编写、论文上交评定、论文答辩以及论文评分五个过程,其中开题报告是论文进行的最重要的一个过程,也是论文能否进行的一个重要指标。撰写意义:14 1.撰写毕业论文是检验学生在校学习成果的重要措施,也是提高教学质量的重要环节。大学生在毕业前都必须完成毕业论文的撰写任务。申请学位必须提交相应的学位论文,经答辩通过后,方可取得学位。可以这么说,毕业论文是结束大学学习生活走向社会的一个中介和桥梁。毕业论文是大学生才华的第一次显露,是向祖国和人民所交的一份有份量的答卷,是投身社会主义现代化建设事业的报到书。一篇毕业论文虽然不能全面地反映出一个人的才华,也不一定能对社会直接带来巨大的效益,对专业产生开拓性的影响。但是,实践证明,撰写毕业论文是提高教学质量的重要环节,是保证出好人才的重要措施。2.通过撰写毕业论文,提高写作水平是干部队伍“四化”建设的需要。党中央要求,为了适应现代化建设的需要,领导班子成员应当逐步实现“革命化、年轻化、知识化、专业化”。这个“四化”的要求,也包含了对干部写作能力和写作水平的要求。3.提高大学生的写作水平是社会主义物质文明和精神文明建设的需要。在新的历史时期,无论是提高全族的科学文化水平,掌握现代科技知识和科学管理方法,还是培养社会主义新人,都要求我们的干部具有较高的写作能力。在经济建设中,作为领导人员和机关的办事人员,要写指示、通知、总结、调查报告等应用文;要写说明书、广告、解说词等说明文;还要写科学论文、经济评论等议论文。在当今信息社会中,信息对于加快经济发展速度,取得良好的经济效益发挥着愈来愈大的作用。写作是以语言文字为信号,是传达信息的方式。信息的来源、信息的收集、信息的储存、整理、传播等等都离不开写作。论文种类:毕业论文是学术论文的一种形式,为了进一步探讨和掌握毕业论文的写作规律和特点,需要对毕业论文进行分类。由于毕业论文本身的内容和性质不同,研究领域、对象、方法、表现方式不同,因此,毕业论文就有不同的分类方法。14 按内容性质和研究方法的不同可以把毕业论文分为理论性论文、实验性论文、描述性论文和设计性论文。后三种论文主要是理工科大学生可以选择的论文形式,这里不作介绍。文科大学生一般写的是理论性论文。理论性论文具体又可分成两种:一种是以纯粹的抽象理论为研究对象,研究方法是严密的理论推导和数学运算,有的也涉及实验与观测,用以验证论点的正确性。另一种是以对客观事物和现象的调查、考察所得观测资料以及有关文献资料数据为研究对象,研究方法是对有关资料进行分析、综合、概括、抽象,通过归纳、演绎、类比,提出某种新的理论和新的见解。按议论的性质不同可以把毕业论文分为立论文和驳论文。立论性的毕业论文是指从正面阐述论证自己的观点和主张。一篇论文侧重于以立论为主,就属于立论性论文。立论文要求论点鲜明,论据充分,论证严密,以理和事实服人。驳论性毕业论文是指通过反驳别人的论点来树立自己的论点和主张。如果毕业论文侧重于以驳论为主,批驳某些错误的观点、见解、理论,就属于驳论性毕业论文。驳论文除按立论文对论点、论据、论证的要求以外,还要求针锋相对,据理力争。按研究问题的大小不同可以把毕业论文分为宏观论文和微观论文。凡届国家全局性、带有普遍性并对局部工作有一定指导意义的论文,称为宏观论文。它研究的面比较宽广,具有较大范围的影响。反之,研究局部性、具体问题的论文,是微观论文。它对具体工作有指导意义,影响的面窄一些。另外还有一种综合型的分类方法,即把毕业论文分为专题型、论辩型、综述型和综合型四大类:14 1.专题型论文。这是分析前人研究成果的基础上,以直接论述的形式发表见解,从正面提出某学科中某一学术问题的一种论文。如本书第十二章例文中的《浅析领导者突出工作重点的方法与艺术》一文,从正面论述了突出重点的工作方法的意义、方法和原则,它表明了作者对突出工作重点方法的肯定和理解。2.论辩型论文。这是针对他人在某学科中某一学术问题的见解,凭借充分的论据,着重揭露其不足或错误之处,通过论辩形式来发表见解的一种论文。3.综述型论文。这是在归纳、总结前人或今人对某学科中某一学术问题已有研究成果的基础上,加以介绍或评论,从而发表自己见解的一种论文。4.综合型论文。这是一种将综述型和论辩型两种形式有机结合起来写成的一种论文。如《关于中国民族关系史上的几个问题》一文既介绍了研究民族关系史的现状,又提出了几个值得研究的问题。因此,它是一篇综合型的论文。写作步骤:毕业论文是高等教育自学考试本科专业应考者完成本科阶段学业的最后一个环节,它是应考者的总结性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际问题的能力。从文体而言,它也是对某一专业领域的现实问题或理论问题进行科学研究探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。首先是选择课题。选题是论文撰写成败的关键。因为,选题是毕业论文撰写的第一步,它实际上就是确定“写什么”的问题,亦即确定科学研究的方向。如果“写什么”不明确,“怎么写”就无从谈起。14 教育部自学考试办公室有关对毕业论文选题的途径和要求是“为鼓励理论与工作实践结合,应考者可结合本单位或本人从事的工作提出论文题目,报主考学校审查同意后确立。也可由主考学校公布论文题目,由应考者选择。毕业论文的总体要求应与普通全日制高等学校相一致,做到通过论文写作和答辩考核,检验应考者综合运用专业知识的能力”。但不管考生是自己任意选择课题,还是在主考院校公布的指定课题中选择课题,都要坚持选择有科学价值和现实意义的、切实可行的课题。选好课题是毕业论文成功的一半。第一、要坚持选择有科学价值和现实意义的课题。科学研究的目的是为了更好地认识世界、改造世界,以推动社会的不断进步和发展。因此,毕业论文的选题,必须紧密结合社会主义物质文明和精神文明建设的需要,以促进科学事业发展和解决现实存在问题作为出发点和落脚点。选题要符合科学研究的正确方向,要具有新颖性,有创新、有理论价值和现实的指导意义或推动作用,一项毫无意义的研究,即使花很大的精力,表达再完善,也将没有丝毫价值。具体地说,考生可从以下三个方面来选题。首先,要从现实的弊端中选题,学习了专业知识,不能仅停留在书本上和理论上,还要下一番功夫,理论联系实际,用已掌握的专业知识,去寻找和解决工作实践中急待解决的问题。其次,要从寻找科学研究的空白处和边缘领域中选题,科学研究。还有许多没有被开垦的处女地,还有许多缺陷和空白,这些都需要填补。应考者应有独特的眼光和超前的意识去思索,去发现,去研究。最后,要从寻找前人研究的不足处和错误处选题,在前人已提出来的研究课题中,许多虽已有初步的研究成果,但随着社会的不断发展,还有待于丰富、完整和发展,这种补充性或纠正性的研究课题,也是有科学价值和现实指导意义的。14 第二、要根据自己的能力选择切实可行的课题。毕业论文的写作是一种创造性劳动,不但要有考生个人的见解和主张,同时还需要具备一定的客观条件。由于考生个人的主观、客观条件都是各不相同的,因此在选题时,还应结合自己的特长、兴趣及所具备的客观条件来选题。具体地说,考生可从以下三个方面来综合考虑。首先,要有充足的资料来源。“巧妇难为无米之炊”,在缺少资料的情况下,是很难写出高质量的论文的。选择一个具有丰富资料来源的课题,对课题深入研究与开展很有帮助。其次,要有浓厚的研究兴趣,选择自己感兴趣的课题,可以激发自己研究的热情,调动自己的主动性和积极性,能够以专心、细心、恒心和耐心的积极心态去完成。最后,要能结合发挥自己的业务专长,每个考生无论能力水平高低,工作岗位如何,都有自己的业务专长,选择那些能结合自己工作、发挥自己业务专长的课题,对顺利完成课题的研究大有益处。14 致谢这次论文的完成,不止是我自己的努力,同时也有老师的指导,同学的帮助,以及那些无私奉献的前辈,正所谓你知道的越多的时候你才发现你知道的越少,通过这次论文,我想我成长了很多,不只是磨练了我的知识厚度,也使我更加确定了我今后的目标:为今后的计算机事业奋斗。在此我要感谢我的指导老师——***老师,感谢您的指导,才让我有了今天这篇论文,您不仅是我的论文导师,也是我人生的导师,谢谢您!我还要感谢我的同学,四年的相处,虽然我未必记得住每分每秒,但是我记得每一个有你们的精彩瞬间,我相信通过大学的历练,我们都已经长大,变成一个有担当,有能力的新时代青年,感谢你们的陪伴,感谢有你们,这篇论文也有你们的功劳,我想毕业不是我们的相处的结束,它是我们更好相处的开头,祝福你们!我也要感谢父母,这是他们给我的,所有的一切;感谢母校,尽管您不以我为荣,但我一直会以我是一名农大人为荣。通过这次毕业设计,我学习了很多新知识,也对很多以前的东西有了更深的记忆与理解。漫漫求学路,过程很快乐。我要感谢信息与管理科学学院的老师,我从他们那里学到了许多珍贵的知识和做人处事的道理,以及科学严谨的学术态度,令我受益良多。同时还要感谢学院给了我一个可以认真学习,天天向上的学习环境和机会。即将结束*大学习生活,我感谢****大学提供了一次在**大接受教育的机会,感谢院校老师的无私教导。感谢各位老师审阅我的论文。14