版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
户籍管理系统 【摘要】户籍管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。
经过分析,我们使用MICROSOFT公司的VISUALBASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。【关键词】Access2000控件窗体域TheSystemofManagingCensusRegisterAbstractThesystemofmanagingcensusregisterfileisatypicalapplicationofmanaginginformationsystem(knowasMIS),whichmainlyincludesbuildingupdata-baseofback-endanddevelopingtheapplicationinterfaceoffront-end.Theformerrequiredconsistencyandintegralityandsecurityofdata.Thelatershouldmaketheapplicationpowerfulandeasilyused.
Bylookinguplotsofdatum,weselectedVisualBasicpresentedbyMicrosoftbecauseofitsobjectivetoolsinWin32.VBofferedaseriesofActiveXoperatingadata-base.Itcangiveyouashort-cuttobuildupaprototypeofsystemapplication.Theprototypecouldbemodifiedanddevelopedtillusersaresatisfiedwithit.KeyWord、Access2000、ActiveX、Form、Field引言户籍管理系统是公安部门不可缺少的一部分,它的内容对于公安部门的决策者和管理者来说都至关重要,所以户籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理户籍档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学的日渐成熟,其强大的功能已被人们深刻地认识和使用,它已进入人类社会的各个领域并发挥着越来越重要的作用。由此,建立高性能的户籍管理系统,作为计算机应用的一部分,使用计算机对户籍档案进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高户籍档案管理的效率,也是公安部门的科学化、正规化管理的体现。因此,开发这样一套管理软件成为很有必要的事情,我经过一个月的时间,参考各种资料和进行数据库编程实践,在指导老师的帮助下,已经基本上成功地实现了设计要求。使我设计的数据库系统能够实现户籍管理功能。该系统基本上满足了用户在户籍档案管理方面的需求,用户界面友好。此系统更加贴近信息电子化处理,从而降低了人工劳动并增加了信息的准确性。所以急需开发一小型C/S系统,目的是为了提高工作效率及管理水平。在下面的各章中我将以开发一套户籍管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。由于作者水平有限,论文中难免存在错误和不足之处,恳请各位导师在百忙之中,予以批评指导,在此向各位导师表示诚挚的谢意!第一章概述、课题介绍计算机的发明与发展给人类社会带来的巨大影响是有目共睹的,这种影响还继续深入,并将在未来的相当长的时间里持续存在,毫无疑问,计算机技术势必将深入到我们社会的方方面面。21世纪是知识经济时代,计算机网络作为这一时代重要的生产工具,给各个国家带来了巨大的发展机遇。为了在以用户为中心的市场竞争中获胜,各单位必须对不断变化的市场做出快速反应,要把单位各关键应用结合成一体,形成一个坚强的信息共享共同体。国内一些中小型企业为了提高自身的工作效率,以适应市场的需要,都实现了办公自动化(OA)。户籍管理是全国各公安部门管理工作的基础,做好这项工作才能进一步管理好整个社会的治安。以前各部门一直采用手工管理方式,但随着信息时代的到来,随着人口不断的移动,迁入、迁出等给管理带来了不便,不能及时的查询、登记所需的信息,各种数据得不到充分的利用。为了更好的维护社会治安,必须加强管理,积极采用先进的科学技术和管理方法来提高工作效率。实现户籍管理的计算机化,可以简化繁琐的工作模式,提高户籍管理的工作效率.利用计算机中最为友好、最为方便的windows界面进入系统,使用鼠标、键盘轻松的完成数据的录入、浏览、查询和统计的操作。本课题是由公安部户籍管理部提出的,为其内务部门使用,以提高他们的办公效率。本系统软件的运行环境是以计算机网络为支持的硬件环境及以服务器端以windows2000Server以上、数据库服务器要求Access2000、客户端要求windows98、2000、XP。为了提高各公安部门更好的办公效率,实现自身的由传统办公手工化转向办公自动化(OA),实现全国各公安部门内部数据的共享,以提高数据管理水平和工作成效。户籍管理系统的开发可以从根本上解决现行管理的落后之处,使主要通过纸记载的表等存贮方式对各类数据信息的存储,手工查询统计的管理手段向着科学的计算机管理转变。每一个管理员利用该系统及时对户口和人口方面的信息登录、查询、统计、修改等,大量减少了重复而复杂的人工劳动。它的建立有助于数据录入、查询、管理等各项工作的全面提高,以备存档。从微观角度上分析,该系统的建立,对规范、完善数据管理,加强数据管理措施起到积极作用。因此,该系统的开发具有十分重要的意义.、客户/服务器体系客户/服务器体系的框架由三部分组成:客户机、服务器和中间件。客户机的主要功能是执行用户一方的应用程序,提供面向对象的用户界面。服务器的功能主要是执行共享资源的管理应用程序。中间件是支持客户/服务器进行对话,实施分布式应用的各种软件。它主要承担两方面的功能:一是连接功能,二是管理功能。客户/服务器实现和使用的基本技术是采用基于图形用户界面的应用开发工具,它支持用户直接参与应用软件的开发,只需少量编程,就可方便地把现有实用程序适当组成用户应用处理所需的应用软件以及向客户机上应用处理转移到服务器侧去执行的方向发展。在客户/服务器体系中,客户端的用户请求被传送到数据库服务器,数据库服务器进行处理后,只将结果返回给客户,从而显著减少了网络上的数据传输量,提高了系统的性能、吞吐量和负载能力。客户/服务器体系可分为集中的服务器体系和分布的服务器体系。前者在网络中仅有一台数据库服务器,而客户机是多台。后者在网络中有多台数据库服务器。客户/服务器体系可以应用在多种平台上,可以使用多种工具,从而提供灵活和高质量的用户应用——这就是客户/服务器体系。第二章、开发环境2.1开发工具选择作为开发人员,开发工具的选择非常重要。开发工具应该能够使多个开发人员同时对一个项目进行开发,它应该平衡需求以确保一个开发人员对程序的修改不会被另一个人员所重写,同时又不会因为采用了一些不必要的控制使开发效率受到影响。另外一点是,工具最好能以库的形式来管理对象,这样才能为版本控制、对象重用提供有力的保证。目前,具有代表性的开发工具主要有Microsoft公司的VisualBasic,Microsoft公司的VisualC++,Inprise公司的Delphi,Oracle公司的Developer,Sybase公司的PowerBuilder,本次开发初步确认采用VisualBasic开发工具。VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。Access2000在数据库管理方面的杰出表现,使Access2000得到了非常广泛的应用,也是许多软件开发商的首选工具,所以我在开发工具选择方面,选择了Access2000作为后台数据库。开发工具介绍简介:微软公司的VisualBasic6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。Visualbasic是microsoft公司的第一个编程工具和系统开发的第一个产品,它具有其他数据库开发工具无法比拟的优势,它以优良的性能、极强的系统开发功能、完美的视觉界面和简单易学特点,赢得广大软件开发人员及计算机爱好者的青睐。经过分析,使我们使用易于与数据库连接的MicrosoftVisualBasic6.0开发工具,利用其提供的各种面向对象的开发工具,尤其是数据库窗口这一功能强大而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原形,然后,对初始原型系统进行需求分析,不断修正和改进,直到形成用户满意的可行性系统。故而,实现本系统VB是一个相对较好的选择。2.2.2Access2000Access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。关系数据库的连接:微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及VisualBasic来访问数据库并对其进行各种操作。VisualBasic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。
DATA控件在数据库中的信息与将信息显示给用户看的VisualBasic程序之间架起了一座桥梁。我们可以设置DATA控件的各个属性,告诉它要调用那个数据库的哪个部分。缺省情况下,DATA控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。一个记录集合是动态的也就意味着,当原来的数据表中的内容改变了以后,该记录集合中的记录也会随之改变。DATA控件还提供了用来浏览不同记录的各种跳转按钮。将DATA控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。
ADOData控件(简称ADO)是VB6.0中文版提供的一个ActiveX控件,与VB固有的Data控件相似,使用ADOData控件,可以利用利用MicrosoftActiveXDataObjects(ADO)快速建立数据绑定的控件和数据提供者之间的连接。ADOData控件可以实现的功能是:连接本地数据库或远程数据库;打开指定的数据库表,将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值;添加新记录,或根据更改显示在绑定的控件中的数据来更新数据库.第三章、需求分析3.1、需求分析需求分析是软件定义时期的最重要一个阶段,它的基本任务是准确地回答“系统必须做什么”这个问题,是对目标系统提出完整、准确、清晰、具体的要求。需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的方法对软件需求进行严格的审查验证。需求分析一般是按图3-1所示的过程进行:图3-1需求分析图面对一个复杂的系统时,一个比较好的方法是分层次地描绘这个系统。首先用一张高层次的系统流程图描绘系统的总体概貌,表明系统的关键功能。然后分别把每个关键功能扩展到适当的详细程度,画在单独的一页纸上。这种分层次的描绘方法便于阅读者按从抽象到具体的过程逐步深入地了解一个复杂的系统。大体上了解了系统数据的流向和各部分相互之间的关系,经过需求分析的了解和掌握,根据要求和数据流向,数据的流向大致如下图:输入用户名及密码输入用户名及密码出错信息密码错系统功能主界面正确功能处理系统登录界面登录处理数据库图3-2系统流程图系统登录处系统登录处功能界面数据编辑数据查询数据导入数据导出系统管理人口/户口表明细添加修改删除查询退出分类查询导入导出导出报表增加用户删除用户修改密码数据库Access图3-3系统功能流程图3.2、可行性研究、系统开发的可行性:在开发任何一个新系统之前是无法知道该项目能否以现有的技术进行开发,也无法知道该项目是否有开发的价值,无法估计系统的成本效益比,所以要对系统开发的可行性进行分析,可行性研究实际上是一次大大压缩和简化的系统分析和设计的过程,其主要目的是探索该项目是否值得去解决,是否有可行的解决方法。不过这个阶段的任务是研究问题的范围,估计系统的成本和效益,而不是具体的解决问题。、系统开发的必要性:时代的发展,社会的进步,落后的管理手段不再满足人们的需要。因此,用现代化手段进行管理已成为一种趋势。随着网络技术和数据库技术的发展,现在越来越多的部门建立了以计算机网络为中心的数据库管理系统,以实现内部各部门通过计算机网络进行信息交流与共享,为适应市场经济的发展提供了必要的基础,同时也促进了网络技术、数据库技术的飞速发展。现在的数据库开发工具操作越来越简单、方便,界面越来越美观、友好,使程序员的工作量大大减少,另外软件技术的发展,也为管理软件的开发提供了技术保证,从技术和管理两方面来看,开发这个系统是必要的.由于以前数据记录只是记录在纸上,各种数据的统计都是通过手工管理,这样即费时、费力又容易出现错误,而利用计算机辅助管理可以发挥计算机自身处理速度快、准确和信息共享的优势,来解决手工管理的弊端,并且动态生成表单,大大减低工作人员的工作量,提高工作效率,实现了数据的自动更新,方便的查询功能,使户籍管理更合理更方便。、系统的基本功能经过分析,最后得出新的户籍管理系统应具有以下功能模块:户籍管理:可以随意地添加户口、人口,迁入或迁出需要改动的户口和人口.查询修改:实现对户口、人口相关信息的查询及修改.报表统计:对户口、人口报表进行统计,浏览所有信息.系统管理:对登录用户进行设置和管理,可以添加、修改用户列表.从下图中可以看出系统(最小化)至少包括如下一级子模块:户籍管理、系统管理、查询修改、报表统计。1、户籍管理模块的功能:对户口表、人口表等作为构成户籍档案管理最基本项的表进行增加、查询、修改、删除等操作。2、系统管理模块的功能:这个模块从本质上来讲,当然应该只有管理员才有权使用,这个模块能够实现新用户的增加、已有用户的查找、已有用户的删除、已有用户的密码修改、注销不再使用的用户等功能。3、查询修改模块的功能:这个模块是本系统中相对来讲最大也是最麻烦的,它包含三个方面的功能实现:即查询、修改户口和人口信息内容。系统能按户口号、身份证号码、地址等进行精确或模糊查询,并把查询的结果显示在表格中.4、报表统计模块的功能:本模块是为了用户能方便地浏览已有信息的全部内容,即对修改、查询添加新内容起到参考的作用。户籍管理系统户籍管理查询修改户籍管理系统户籍管理查询修改报表统计系统管理添加或迁入户口迁出户口添加或迁入人口迁出人口删除用户修改密码人口报表添加用户用户列表查询户号户口报表查询修改人口信息列表查询查询住址查询修改户口信息全部户口列表全部人口列表已迁出户口列表、设计技巧:本系统设计中的一些技巧如下:(1)公共模块的设计(2)Access数据库设计方法(3)VB菜单设计方法(对于“普通用户”,有若干菜单项不可选)。(4)统一的数据编辑设计方法以户口表为例进行说明,为了编辑其记录,设计了mainfrm窗体,在其中的DataGrid中显示所有已输入的户籍档案记录。用户可以先通过“设置条件”框找到相应的户籍档案记录,然后单击“添加”或“删除”按钮对户籍档案记录进行添加或删除,而后单击“保存”按钮保存户籍档案记录。(5)事件编程技术窗体上有两个事件过程Load和Activate:它们的执行过程是,在启动该窗体时先执行Load(仅执行一次)事件过程,然后执行Activate事件过程,在该窗体中每次调用其他窗体或预览报表,执行完毕返回时执行Activate事件过程。例如,当前表中没有有效记录时,执行保存和删除功能的按钮不可选。正确的设计这两个事件过程是VB事件编程的关键,本论文中大量采用上述方法进行窗体设计。、数据库设计:(1)数据库的概念数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着WorldWideWeb(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。数据库技术能使Internet应用超越具有早期应用特点的简单的发布。同时,Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库技术的重要性。
数据库的设计和开发及包括艺术有包括工程。理解用户的需求,然后,把它们转变为有效的数据库设计是一个艺术过程。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用,是一个工程过程。
数据库的目的是帮助人们跟踪事务。经典的数据库应用涉及诸如订单、顾客、工作、员工、学生、之类的项,或其它数据量较大、需要密切关注的事务。最近,由于数据库的普及,数据库技术已经被应用到了新的领域,诸如用于Internet的数据库或用于公司内联网的数据库。数据库也被越来越多地应用于生成和维护多媒体应用程序上。
计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。存储器的容量、存储速率直接影响到数据管理技术的发展。从1956年生产出第一台计算机到现在,存储器的发展,为数据库技术提供了良好的物质基础。
使用计算机以后,数据处理的速度和规模,无论是相对于手工方式,还是机械方式,都有无可比拟的优势。通常在数据处理中,计算是比较简单的而数据的管理却比较复杂。数据管理是指数据的收集、整理、组织、存储、维护、检索、传送等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必不可少的共有部分。数据管理技术的优劣,将直接影响数据处理的效率。数据库在一个信息管理系统中占有非常重要的位置,数据库结构设计的好坏将直接对应用系统的效果产生影响。合理的数据库设计可以提高数据库存储效率,保证数据的完整和一致。同时合理的数据结构也将有利于程序的实现。设计数据库系统时,应该首先了解用户的各个方面的需求,包括现有的以及将来可能增加的。(2)创建数据库文件如果操作系统中安装了ACCESS2000的话,可以在开始菜单的程序菜单中可以找到。如下所示:打开ACCESS2000之后,会开启一个窗口,可选择是打开以前的数据库文件还是新建一个新的空数据库文件,如果选择空ACCESS数据库,然后点击确定按钮。这些就新建了一个数据库文件。
最后一步就是要选择一个要保存数据库文件的名字和位置。点击创建就完成。(3)怎样创建一个数据表上面已经讲了如何创建一个数据库文件,按照上面的步骤建立一个数据库文件后,需要在数据库文件中建立一个数据表。在下面的对话框中选”使用设计器创建表”,上面还有三个按钮,一个是打开,一个是设计,一个是新建,点击设计,就可以开始设计数据表了。出现设计的界面后,就可以开始设计数据表了!(4)VB连接ACCESS2000数据库用vb编写一个管理软件,如果不能连接数据库,那也没有什么用处。先看看VB是如何与ACCESS2000数据库相连接的。SubConnStr()'连接数据库Setconn=CreateObject("ADODB.Connection")'建立数据库连接对像DBpath=App.Path&"\"&"data.mdb"'设置数据的路径conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&DBpath'打开数据库连接Setrs=CreateObject("ADODB.Recordset")'设置数据库对像EndSub上面的一段代码就是连接数据库的。上用到了三个变量conn,Dbpath,rs。其中有两个变量要定义为公用的变量,因为这段代码是放在一个模块中的,为了在每一个窗体中能够使用这个变量,所以必须要声明为公用变量。声明公用变量的方法如下:PublicconnPublicrs上面就是声明为公用变量,上面的声明一定要放在模块的最上面。如果声明在下面,那就成了局部变量,那么作用范围就会不同了,作用就更不同,而且在其它窗体中使用到了这个变量,程序会出错。在系统中设计一个数据库db.mdb,其中包含如下数据表:人口表:2、户口表:3、用户表:第四章系统的具体设计、Windows下的VisualBasic编程环境简介VisualBasic应用程序基本的构建块是用户所创建的对象,每一个对象都具有一些特性和行为(属性、事件和方法)。开发人员可以最有效利用所创建的每一个对象。使用应用程序具有可通用性、可扩展性和强有力的功能。VisualBasic应用由一系列对象组成,包括有函数、菜单、结构和数据窗口、用户对象、用户事件等等,对象中又包含若干控件如命令按钮、单行编辑器等这些对象和控件都可在许多应用中重复使用。本节介绍管理系统各组成部分的实现方法,对于窗体,给出执行功能、设计界面、主要对象的属性和方法。、系统模块的具体实现、Frmdl窗体:Frmdl窗体用于接受用户的用户名/密码输入,判断是否合法。如果是合法用户,释放该窗体并调出Frmver窗体;否则信息提示无此用户。Frmdl窗体的设计界面如图所示,窗体中的主要对象及其属性如表所示:对象属性属性取值Text1Caption“用户名“Text2passwordchar“*“Command1Caption“确定”Command2Caption“取消”在该窗体上设计如下事件过程:OptionExplicitPrivateSubCommcancel_Click()EndEndSubPrivateSubCommok_Click()'声明变量DimusernameAsStringDimpasswordAsStringDimlocal_dbAsStringDimrstAsIfText1.Text=""ThenMsgBox"请输入用户名",,"警告"ElseIfText2.Text=""ThenMsgBox"请输入密码",,"警告"EndIfEndIfIfText1.Text<>""AndText2.Text<>""ThenSetrst=Newcnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+App.Path&"\data\db.mdb"+";PersistSecurityInfo=False;"'连接数据库username=Trim(Text1.Text)'检查用户名是否正确local_db="select用户名from用户表"+_"where用户表.用户名="+"'"+_username+"'"rst.Openlocal_db,cnnIfNot(rst.BOFAndrst.EOF)Then'检查密码是否正确local_db="select密码from用户表"+_"where用户表.用户名="+"'"+_username+"'and"+_"用户表.密码="+"'"+password+"'"rst.Openlocal_db,cnnIfNot(rst.BOFAndrst.EOF)ThenUnloadfrmdl'判断登陆用户是否为adminIfusername="admin"Thenmainfrm.xitong.Enabled=True'激活主窗口系统菜单Elsemainfrm.xitong.Enabled=FalseEndIffrmver.Show'显示版本窗口ElseMsgBox"您输入的密码不正确,请重新输入!",,"警告"Text2.Text=""EndIfElseMsgBox"系统中无此用户",,"警告"Text1.Text=""EndIfEndIfEndSubPrivateSubTimer1_Timer()EndSubPrivateSubForm_Load()EndSub、mainfrm窗体:mainfrm窗体是一个多文档窗体,窗体中包含的主要对象及其属性,在该窗体有一个菜单,该菜单的结构如下:PrivateSubadduser_Click()'增加用户guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"添加用户"EndSubPrivateSuballh_Click()frguanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"户口列表"EndSubPrivateSuballp_Click()ed=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"人口列表"EndSubPrivateSubchaxun_Click()GetStatus"查询修改信息"EndSubPrivateSubchuhao_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"查询户号"EndSubPrivateSubchuhome_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"迁出户口"EndSubPrivateSubchupeople_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"迁出人口"EndSubPrivateSubCommand1_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=Falsefrmhome.Frame3.Enabled=Falsefrmhome.Label12.Enabled=Falsefrmhome.Label13.Enabled=Falsefrmhome.Label14.Enabled=Falsefrmhome.Text4.Enabled=Falsefrmhome.Text4.Text=""GetStatus"添加、迁入户口"EndSubPrivateSubCommand2_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"添加、迁入人口"EndSubPrivateSubCommand3_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"查询住址"EndSubPrivateSubCommand4_Click()EndSubPrivateSubCommand5_Click()Beepmainfrm.Enabled=FalseGetStatus"·退出系统"EndSubPrivateSubczhuzhi_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"查询住址"EndSubPrivateSubdel_Click()'删除用户guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"删除用户"EndSubPrivateSubexit_Click()'退出Beepmainfrm.Enabled=FalseGetStatus"·退出系统"EndSubPrivateSubguanli_Click()GetStatus"对户籍进行管理"EndSubPrivateSubhbaobiao_Click()GetStatus"户口报表"EndSubPrivateSubhxinxi_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=Falseabled=FalseGetStatus"查询修改户信息"EndSubPrivateSubmfy_Click()'修改用户guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"修改密码"EndSubPrivateSubpbaobiao_Click()GetStatus"人口报表"EndSub、DataReport报表设计:这里我们设计了两个报表分别打印户口和人口基本信息,先建立数据环境DataEnvionment1,其步骤如下:择“工程”菜单的“更多ActiveX设计器”选项,在出现的下拉菜单中选择“DataEnvionment1”选项,出现如图所示的界面:“Connection1”上单击鼠标右键,在出现的快捷菜单中选择“属性”选项,出现“DataLinkProperties”该对话框中选择“Provider”选项卡,从列表中选择“MicrosoftOLEDBProviderforSQLServer”选项,如图所示:(4)在“Connection1上单击鼠标右键,出现的快捷菜单中选择”添加命令“选项,出现“Connection1属性”对话框,按下图所示的内容进行设置:这样就建好了DataEnvionment1,其结果如图所示:.1DataReport1报表:在建立数据环境后,选择“工程”菜单中的“添加DataReport”选项,启动VB报表设计器,设计DataReport1报表如图所示:将DataReport1报表的DataSource属性设置为“DataEnvionment1”,DataMember属性设置为“Command1”。.2DataReport2报表:打印人口信息,如图所示:将DataReport2报表的DataSource属性设置为“DataEnvionment1”,DataMember属性设置为“Command2”。VB是一种较好的可与用户实行交互的系统软件,在窗体的设计中更是可以随心所欲,从而达到用户所希望的窗体界面环境!所以在此对主窗体设计中的一些菜单项功能窗体不再一一演示给大家其主要程序代码请看附录!VB设计窗口出现数据环境界面,如图:第五章、系统调试5.1性能测试与分析软件测试有两种方法:黑盒调试和白盒调试。黑盒调试是把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。黑盒测试又称为功能测试。与黑盒测试法相反,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试又称为结构测试。在系统开发过程中,白盒测试与黑盒测试的概念分别应用于系统的调试与测试的实践中。因为软件较小,而且时间较短,我们采用自上而下的渐增式测试方法.因为我们采用模块开发,而此模块是直接EXE可执行文件的,所以单元测试比较简单。5.2测试环境系统:Windows98/XP在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地出现错误,有待进一步分析和研究。5.3测试方案使用可以跟踪和记录应用程序的运行情况,使用数据库调试功能可以查出数据访问方面可能存在的瓶颈问题。开发人员应该清晰地认识到,调试应用程序不是为了证明程序不存在错误,而是为了尽可能多地找到所存在的问题,没有找到任何错误的调试是不成功的调试。同时,调试也是费时、费力的创造性工作。功能登录增、删用户修改密码查询信息导入、导出文件预期效果能正确检验用户身份及密码的一致性;若不匹配,能返回错误提示信息。能正确验证用户的身份及密码一致才可决定是否增删用户。能正确验证用户身份,及新密码和确认密码的匹配。能够正确返回用户要查询的信息,然后退出程序。能正确将所需表的数据导入、导出,并通过重启系统将导入数据写入到数据库中的明细表中。表5-1测试方案表5.4生成可执行文件应用程序经过设计、开发、调试和试运行;排除了明显的错误;达到预期功能后,就可以向用户交付了。在交付之前,还有一项重要的任务,就是把应用程序编译成可执行文件,这样用户就可以不需要VisualBasic环境了。致词经过一个多月的设计和开发,我完成了户籍管理的分析、设计与编程工作,系统基本开发完毕。其功能基本符合用户需求,能够完成户籍档案信息的存储和查询及以及各类相关报表的浏览。并提供部分系统管理功能,使用户方便进行新用户的添加、旧用户的修改和删除.对于数据的一致性的问题也通过程序进行了有效的解决。避免了由于人为方式固有的不严密性所带来的各种工作中的疏漏,实现了管理的科学化和严谨化。但是由于系统设计时间较短,所以该系统还有许多不尽如人意的地方,比如功能比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。十分感谢系领导以及曾教导过我们的每一位老师一直以来对我们的学习和生活上的悉心培育和关心!特别感谢张斌在本次毕业设计中,,指导老师老师给予我了极大的帮助,我从老师身上学到了很多东西。张老师认真负责的工作态度,严谨的治学精神和深厚的理论水平和实际操作能力都使我收益匪浅。在他的帮助下使得系统能及时开发完成,非常感谢他耐心的辅导。另外,同学同样给与我不少帮助,这里一并表示感谢。他无论在理论上还是在实践中,都给予我很大的帮助,使我得到不少的提高和认识.这对于我以后的工作和学习都是一种极大的帮助,我在此真诚地感谢他耐心的辅导和帮助!最后要感谢在这四年的学习和生活中我们所遇到的每一位可敬的老师们,感谢你们的无私奉献!感谢你们的悉心教导!感谢你们的点点滴滴!第六章主要参考文献VisualBasic程序设计谭浩强薛淑斌袁玫编著出版社:清华大学出版社
2、VisualBasic数据库系统设计与开发李春葆张植民编著出版社:清华大学出版社3、VisualBasic课程设计与系统开发案例伍俊良主编出版社:清华大学出版社4、VisualBasic程序设计杭国英主编出版社:机械工业出版社5、Access2000项目案例导航郑小玲王学军编著出版社:科学出版社出版日期:2003年7月第七章附录数据库数据库登录信息户籍管理查询修改报表统计登录处理合法用户信息反馈主界面信息用户登录主界面及代码:OptionExplicitPrivateSubCommcancel_Click()EndEndSubPrivateSubCommok_Click()'声明变量DimusernameAsStringDimpasswordAsStringDimlocal_dbAsStringIfText1.Text=""ThenMsgBox"请输入用户名",,"警告"ElseIfText2.Text=""ThenMsgBox"请输入密码",,"警告"EndIfEndIfIfText1.Text<>""AndText2.Text<>""Thencnn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+App.Path&"\data\db.mdb"+";PersistSecurityInfo=False;"'连接数据库username=Trim(Text1.Text)'检查用户名是否正确local_db="select用户名from用户表"+_"where用户表.用户名="+"'"+_username+"'"rst.Openlocal_db,cnnIfNot(rst.BOFAndrst.EOF)Then'检查密码是否正确local_db="select密码from用户表"+_"where用户表.用户名="+"'"+_username+"'and"+_"用户表.密码="+"'"+password+"'"rst.Openlocal_db,cnnIfNot(rst.BOFAndrst.EOF)ThenUnloadfrmdl'判断登陆用户是否为adminIfusername="admin"Thenmainfrm.xitong.Enabled=True'激活主窗口系统菜单Elsemainfrm.xitong.Enabled=FalseEndIffrmver.Show'显示版本窗口ElseMsgBox"您输入的密码不正确,请重新输入!",,"警告"Text2.Text=""EndIfElseMsgBox"系统中无此用户",,"警告"Text1.Text=""EndIfEndIfEndSubPrivateSubForm_Load()EndSubPrivateSubTimer1_Timer()EndSub系统主界面及代码:PrivateSubadduser_Click()'增加用户guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=Falseled=FalseCommand3.Enabled=FalseGetStatus"添加用户"EndSubPrivateSuballh_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=Falsebled=FalseGetStatus"户口列表"EndSubPrivateSuballp_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"人口列表"EndSubPrivateSubchaxun_Click()GetStatus"查询修改信息"EndSubPrivateSubchuhao_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"查询户号"EndSubPrivateSubchuhome_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"迁出户口"EndSubPrivateSubchupeople_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"迁出人口"EndSubPrivateSubCommand1_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=Falsefrmhome.Frame3.Enabled=Falsefrmhome.Label12.Enabled=Falsefrmhome.Label13.Enabled=Falsefrmhome.Label14.Enabled=Falsefrmhome.Text4.Enabled=Falsefrmhome.Text4.Text=""GetStatus"添加、迁入户口"EndSubPrivateSubCommand2_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"添加、迁入人口"EndSubPrivateSubCommand3_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"查询住址"EndSubPrivateSubCommand4_Click()EndSubPrivateSubCommand5_Click()Beepmainfrm.Enabled=FalseGetStatus"·退出系统"EndSubPrivateSubczhuzhi_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"查询住址"EndSubPrivateSubdel_Click()'删除用户guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"删除用户"EndSubPrivateSubexit_Click()'退出Beepmainfrm.Enabled=FalseGetStatus"·退出系统"EndSubPrivateSubguanli_Click()GetStatus"对户籍进行管理"EndSubPrivateSubhbaobiao_Click()GetStatus"户口报表"EndSubPrivateSubhxinxi_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"查询修改户信息"EndSubPrivateSubmfy_Click()'修改用户guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"修改密码"EndSubPrivateSubpbaobiao_Click()GetStatus"人口报表"EndSubPrivateSubqianchuh_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"迁出户列表"EndSubPrivateSubqianchur_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"迁出人列表"EndSubPrivateSubruhome_Click()'迁入户guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=Falsefrmhome.Frame3.Enabled=Falsefrmhome.Label12.Enabled=Falsefrmhome.Label13.Enabled=Falsefrmhome.Label14.Enabled=Falsefrmhome.Text4.Enabled=Falsefrmhome.Text4.Text=""Command1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"添加或迁入户口"EndSubPrivateSubrupeople_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"添加或迁入人口"EndSubPrivateSubrxinxi_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"查询修改人信息"EndSubPrivateSubTimer1_Timer()Text1.Text=Time$EndSubPrivateSubtongji_Click()GetStatus"报表与统计"EndSubPrivateSubuserlist_Click()guanli.Enabled=Falsechaxun.Enabled=Falsetongji.Enabled=Falsexitong.Enabled=FalseCommand1.Enabled=FalseCommand2.Enabled=FalseCommand3.Enabled=FalseGetStatus"用户列表"EndSubPrivateSubxitong_Click()GetStatus"对系统进行管理"EndSubsoundsthatwerealotlikelaughter.'Youthinkit'sfunny,huh?'Wearyinquired.HewalkedaroundtoBilly'sback.Billy'sjacketandshirtandundershirthadbeenhauleduparoundhisshouldersbytheviolence,sohisbackwasnaked.There,inchesfromthetipsofWeary'scombatboots,werethepitifulbuttonsofBilly'sspine.Wearydrewbackhisrightboot,aimedakickatthespine,atthetubewhichhadsomanyofBilly'simportantwiresinit.Wearywasgoingtobreakthattube.ButthenWearysawthathehadanaudience.FiveGermansoldiersandapolicedogonaleashwerelookingdownintothebedofthecreek.Thesoldiers'blueeyeswerefilledwithblearyciviliancuriosityastowhyoneAmericanwouldtrytomurderanotheronesofarfromhome,andwhythevictimshouldlaugh.ThreeTheGermansandthedogwereengagedinamilitaryoperationwhichhadanamusinglyself-explanatoryname,ahumanenterprisewhichisseldomdescribedindetail,whosenamealone,whenreportedasnewsorhistory,givesmanywarenthusiastsasortofpost-coitalsatisfaction.Itis,intheimaginationofcombat'sfans,thedivinelylistlessloveplaythatfollowstheorgasmofvictory.Itiscalled'moppingup.'Thedog,whohadsoundedsoferociousinthewinterdistances,wasafemaleGermanshepherd.Shewasshivering.Hertailwasbetweenherlegs.Shehadbeenborrowedthatmorningfromafarmer.Shehadneverbeentowarbefore.Shehadnoideawhatgamewasbeingplayed.HerminewasPrincess.TwooftheGermanswereboysintheirearlyteens.Twowereramshackleoldmedroolersastoothlessascarp.Theywereirregulars,armedandclothedfragmentarilywithjunktakenfromrealsoldierswhowerenewlydead.Soitgoes.TheywerefarmersfromjustacrosstheGermanborder,notfaraway.Theircommananderwasamiddle-agedcorporal-red-eyed.,scrawny,toughasdriedbeef,sickofwar.Hehadbeenwoundedfourtimes-andpatchedup,andsentbacktowar.Hewasaverygoodsoldier-abouttoquit,abouttofindsomebodytosurrenderto.HisbandylegswerethrustintogoldencavalrybootswhichhehadtakenfromadeadHungariancolonelontheRussianfront.Soitgoes.Thosebootswerealmostallheownedinthisworld.Theywerehishome.Ananecdote:Onetimearecruitwaswatchinghimboneandwaxthosegoldenboots,andheheldoneuptotherecruitandsaid,'Ifyoulookintheredeeplyenough,you'llseeAdamandEve.'BillyPilgrimhadnotheardthisanecdote.But,lyingontheblackicethere,Billystaredintothepatinaofthecorporal'sboots,sawAdamandEveinthegoldendepths.Theywerenaked.Theyweresoinnocent,sovulnerable,soeagertobehavedecently.BillyPilgrimlovedthem.Nexttothegoldenbootswereapairoffeetwhichwereswaddledinrags.Theywerecrisscrossedbycanvasstraps,wereshodwithhingedwoodenclogs.Billylookedupatthefacethatwentwiththeclogs.Itwasthefaceofablondangeloffifteen-year-oldboy.TheboywasasbeautifulasEve.Billywashelpedtohisfeetbythelovelyboy,bytheheavenlyandrogyne.AndtheotherscameforwardtodustthesnowoffBilly.,andthentheysearchedhimforweapons.Hedidn'thaveany.Themostdangerousthingtheyfoundonhispersonwasatwo-inchpencilstub.Threeinoffensivebangscamefromfaraway.TheycamefromGermanrifles.ThetwoscoutswhohadditchedBillyandWearyhadjustbeenshot.TheyhadbeenlyinginambushforGermans.Theyhadbeendiscoveredandshotfrombehind.Nowtheyweredyinginthesnow,feelingnothing,turningthesnowtothecolorofraspberrysherbet.Soitgoes.SoRolandWearywasthelastoftheThreeMusketeers.AndWeary,bug-eyedwithterror,wasbeingdisarmed.ThecorporalgaveWeary'spistoltotheprettyboy.HemarveledatWeary'scrueltrenchknife,saidinGermanthatWearywouldnodoubtliketousetheknifeonhim,totearhisfaceoffwiththespikedknuckles,tostickthebladeintohisbellyorthroat.HespokenoEnglish,andBillyandWearyunderstoodnoGerman
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省南通市通州高级中学2024-2025学年高二上学期第二次阶段性检测物理试题(含答案)
- 江苏行政职业能力模拟48
- 2022年湖南省湘西州中考数学试卷 (原卷版)
- 浙江公务员面试模拟113
- 可视化教学在小学音乐课堂中的应用
- 2000年新疆公务员面试真题
- 地方公务员辽宁申论80
- 网络服务器搭建、配置与管理-Linux(麒麟欧拉)(微课版)(第5版)课堂实践任务单2-熟练使用Linux基本命令
- 河南行政职业能力测验模拟61
- 湖南行政职业能力模拟122
- 肾素血管紧张素系统药
- 双碱法脱硫操作规程
- 二实小“群文阅读”立项申报书
- 传感器技术习题答案
- 射线作业安全培训课件
- 采油院井下工具介绍
- 轻钢龙骨纸面石膏板隔墙施工法
- 施工机具报审表
- 市场结构理论练习习题
- 材料力学内部习习题集及问题详解
- 灯杆生产工艺流程
评论
0/150
提交评论