毕业设计(户籍管理系统)_第1页
毕业设计(户籍管理系统)_第2页
毕业设计(户籍管理系统)_第3页
毕业设计(户籍管理系统)_第4页
毕业设计(户籍管理系统)_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

设计题目户籍管理系统函授站:函授站专业、班级:计算机科学与技术2014级设计人:*****山东科技大学成人教育学院2006年10

毕业设计任务书毕业设计任务书发给计算机科学与技术专业2014级******一、设计题目户籍管理系统二、设计题:三、设计原始资料:(1)常住人口档案。(2)户口常表。(3)系统要求调查表。(4)户口索引表。(5)户口统计表。四、设计应解决下列各主要问题:(1)对户籍的变动进行处理。(2)对所管辖户籍的计算、统计。(3)查询统计功能。(4)报表打印功能。(5)用户管理功能。五、设计说明书应附下列图纸:六、命题发出日期:2006.7.30设计完成日期2006.10.20设计指导人(签章):教研室主任(签章):系主任(签章):

指导教师对毕业设计的评语指导教师对毕业设计的评语指导教师(签章):2016年月日

特邀评阅人意见特邀评阅人意见评阅人(签章):职称:2016年月日

答辩(考试)委员会鉴定意见答辩(考试)委员会鉴定意见答辩(考试)成绩:鉴定意见:主任(签章):副主任(签章):2016年月日山东科技大学成人教育学院毕业设计(论文)PAGE45户籍管理系统摘要【摘要】户籍管理系统使用MICROSOFT公司的VisualFoxPro6.0开发工具,利用其提供的各种面向对象的开发工具,方便而简洁操纵数据库的智能化对象。整个系统从符合操作简便、界面友好、灵活、实用、安全的要求出发,实现了从户口迁入、落户、迁出、注销的全过程,到户籍信息的修改、查询、报表、打印、统计等管理工作。户籍管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。【关键词】VisualFoxPro6.0信息管理系统户籍查询

TheSystemofHouseholdRegisterManagement【Abstract】ThehouseholdregistermanagementsystemusesMICROSOFTCorporationVisualtheFoxPro6.0developmentkits,useseachkindofobject-orienteddevelopmentkitwhichitprovides,convenientandsuccinctoperationdatabaseintellectualizedobject.Theoverallsystemfromconformedtotheoperationeasily,thecontactsurfacefriendly,nimble,practical,thesaferequestembarks,hasrealizedtheentireprocesswhichmovedintofromtheregisteredpermanentaddress,settlesdown,transfersout,cancels,tohouseholdregistersupervisoryworkandsooninformationrevision,inquiry,reportform,printing,statistics.Thehouseholdregistermanagementsystemistypicalmanagementinformationsystem(MIS),itsdevelopmentmainlyincludesthebackstagedatabasetheestablishmentandthemaintenanceaswellasfrontendtheapplicationproceduredevelopmenttwoaspects.Establishesthedatauniformityandtheintegrityregardingtheformerrequeststrong,thedatasecuritygoodstorehouse.Butrequeststheapplicationprocedurefunctionregardingthelattertobecomplete,easytouseandsoonthecharacteristics.【KeyWord】VisualFoxPro6.0ManagementInformationSystemHouseholdRegisterInquiry

目录摘要……………………….IABSTRACT……………… II目录…………………… III引言…..……………….… 1第1章户籍管理系统概述………………..……………...21.1系统的主要功能……… 21.2实现方法……………….…………….. 2第2章MIS系统基本理论…………….. 4第3章系统平台的选用………..……….. 53.1系统开发工具选择………………… 53.2软件工程分析……………..……… 6第4章户籍管理系统分析设计…..…….. 74.1需求分析……….…… 74.2系统设计…………… 74.3系统功能模块…….… 84.4数据库结构设计……….…………… 94.5E-R图……………….….…………… 10第5章、设计与实现计……………………115.1数据库设计…………….115.2数据录入部分功能的实现…….………..…….……….115.2.1迁入及落户表单……………………..115.2.2迁出、注销表单的设计……………..125.3统计汇总………………..125.3.1户口报表…………..………………….125.3.2分年龄段统计………….…………….135.4查询修改………………..145.4.1快速查询………….…………………...145.4.2查询修改表单…….…………………..155.4.3查询所有记录…………155.5数据导出…………………165.6用户设置……….………...175.7打印设置…………….……17第6章系统性能测试与分析.……………….18结论………...…………….. …19致谢……………..……………20参考文献…………………... 21附录A:附加图、表……… 22附录B:主要源程序清单…………………. 27附录C:(光盘)……… 33山东科技大学成人教育学院毕业设计(论文)引言运输部是莱钢下属的一个二级单位。位于莱芜市钢城区艾山办事处东首。主要经营铁路运输,担负着莱钢原材燃料的输入,成品、半成品的输出以及衔接各生产厂生产的运输任务,是钢铁生产的主要工序之一。运输部共有职工1017人,其中工人850人。有科技人员167人,其中高级技术职务的3人,中级技术职务的63人,初级技术职务的79人。自1970年建部以来,在管户籍人口数为2670人,流动人口240人。由于一直没有专业户籍管理软件,使户籍管理工作仍旧停留在使用传统人工的方式管理户籍档案。在国有企业现代化管理中户籍管理系统是不可缺少的一部分,但这种落后的管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学的日渐成熟,其强大的功能已被人们深刻地认识和使用,它已进入人类社会的各个领域并发挥着越来越重要的作用。由此,建立高性能的户籍管理系统,作为计算机应用的一部分,使用计算机对户籍档案进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高户籍档案管理的效率,因此,开发这样一套管理软件成为很有必要的事情。经过一个多月时间的努力,大量参考各种资料和进行数据库编程实践,在指导老师的帮助下,已经基本上成功地实现了设计要求。使我设计的数据库系统能够实现户籍管理功能。该系统基本上满足了用户在户籍档案管理方面的需求,用户界面友好。此系统更加贴近信息电子化处理,从而降低了人工劳动并增加了信息的准确性。

第1章户籍管理系统概述1.1、系统的主要功能户籍管理系统的主要任务是用计算机对户籍信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种户籍信息的统计计算和汇总工作,快速打印出报表,针对系统服务对象的具体要求,户籍管理系统主要有以下几大功能:(1)对户籍的变动进行处理。任何管理部门的户籍信息不会是一成不变的,总是在不断的变化:有迁出、有迁入、户口合并,也有因故注销。因此,设计系统时应考虑到这些情况,实现户籍的日常管理工作。(2)对所管辖户籍的计算、统计。可以对各年龄段的户口进行统计,计算符合条件的户口人数,进行核对无误后,生成档案文件进行转存,保证数据的安全完整。(3)查询统计功能。要求即可以单项查询,比如查看某个人工的户口情况等;也可以多项查询,比如同一户口特征的户口浏览,并按照所需的要求进行数据的转存。(4)报表打印功能。在每个工作周期,可实现报表的打印,减轻人工点取档案的工作量。(5)用户管理功能。实现数据的保密安全,对没有授权的用户不能进行户籍管理系统的操作。1.2实现方法户籍管理系统是采用面向对象的程序设计思想进行编制的,整个系统由若干个表单、类、报表以及一个主菜单组成,有项目管理器统一管理全部程序的编写和调试。用户可以通过主菜单或总表单调用系统的各项功能。户籍管理系统是建立在一系列类基础之上的,其编程的思想是:先根据一定的需要创建一系列的子类或直接调用vfp提供的基类,编制程序时,由这些类派生出相应的对象,所派生出的对象继承了其父类所有的功能,而且具有很好的封装性。面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性,便于程序的维护与扩展。在户籍管理系统中,定义了六个类,分别对应按钮:“上一个”、“下一个”、“第一个”、“最后一个”、“修改/保存”、“添加”,加入代码,实现记录的移动和数据的修改,这样在以后的表单就可以直接调用,而不用再次编码。类可视为一个产品模具、一个模块。在面向对象设计中,类是对象的原型,是对象的制作器。类的概念是面向对象程序设计最重要的特征。所谓类,是指由数据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性质相同的对象的程序描述,概括了对象的共同性质和数据。所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西”。一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一。对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。用户无需知道其任何细节,操作是封闭的,对象之间能通过函数调用相互通信。面向对象设计的核心是类的设计。在户籍管理系统中也调用了一部分系统中定义的类,在“查询表单”中的“查找”、“修改”等,就使用了这种类,从而简化了程序代码,缩短了系统的开发时间。

第2章MIS系统基本理论管理信息系统(MIS)是一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体。1985年,管理信息系统创始人,明尼苏达大学卡尔森管理学院的著名教授戴维斯(Gordon.B.Davis)给出了一个具有代表性的定义:管理信息系统是一个利用计算机硬件和软件,手工作业、分析、计划、控制和决策模型以及数据库的用户-机器系统。管理信息系统应具有如下几个功能。(1)数据处理功能:数据处理是管理信息系统最基本的功能,它包括对各种类型数据的收集、加工处理、传递、存储等工作。(2)实测功能:通过对数据的加工处理,可以随时了解各部门的实际运行情况,如各生产车间今天生产的产品数量、销售部接受的订单等。(3)预测功能:通过运用一定的数学方法和预测模型,对过去的数据进行分析,就可能对未来可能发生的情况进行预测,为高级管理人员进行管理决策提供依据。(4)控制功能:通过信息的反馈可以对整个企业生产经营的各个部门、各个环节的运行情况进行监测、协调、控制,保证系统的正常运行。(5)辅助决策功能:通过对数据的加工处理,可以快速地获取对决策有影响的信息,从而为合理的配置企业的各项资源,做出最佳的决策提供科学的依据。

第3章系统开发工具数据库是数据处理的主要工具,是管理信息系统(MIS)的核心部分。数据库是60年代末出现的一门计算机软件技术,到现在虽然只有三十多年的历史,但在理论和时间上都得到了和很大的发展。数据库系统是当今计算机信息系统的核心,是计算机技术和应用发展的关键。传统的数据库系统旨在处理永久、稳定的数据,强调维护数据的完整性、一致性。3.1工具选择现在市场上有很多管理系统的开发工具,如:Visualbasic、delphi、ASP等等,数据库开发工具又有很多种,如:Access,SQLSever,Oracle等等。这些都是很出色的管理信息系统及数据库的开发工具。不过Visualfoxpro6.0有着以下几项特点:(1)、面向对象的复杂的数据结构,数据的结构化是数据库的主要特征之一,是数据库与文件系统的根本区别。(2)、数据冗余度小,易扩充。数据库从整体观点看待和描述数据,数据不再是面向某一应用,而是面向整体系统,这样可以大大减少数据的冗余度,既节约了存储空间,减少了存取时间,又可避免数据之间的不相容性和不一致性。(3)、就有较高的数据和程序独立性,把数据的定义和描述从应用程序中分离出去。此外,数据的存取又有DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。(4)、统一的数据控制功能。系统提供一下三个方面的数据控制功能:数据的安全性控制、数据的完整性控制、并发控制。(5)、数据的最小存取单位是数据项。即可以存取数据库中的某个数据项或一组数据项,也可以存取一个记录或一组记录。由于数据库具有上述特征,它的出现使信息系统的研制从围绕加工数据的程序为中心转变到围绕共享的数据库来进行。这既便于数据的集中管理,也有利于应用程序的研制和维护,提高了数据的利用率和相容性,从而提高了做出决策的可靠性。因此,大型复杂的信息系统多以数据库为核心。3.2软件工程分析户籍管理系统严格按照软件工程开发的原则和要求而开展,贯串到整个系统的软件生存期,包括问题定义与可行性分析、软件计划、需求分析、总体设计、详细设计、编码、测试、运行维护。软件工程是一个软件开发者针对要开发的软件产品而规定的工作步骤。该工作步骤应该具有较高的科学性和可管理性,否则按该步骤开发的软件质量难以保证,开发进度和成本难以控制。随着社会信息化的进程,计算机软件产业正在成为知识经济重要组成部分,以知识经济重要组成部分,以软件的定义、开发、维护和管理为内容的软件工程开发的技术人员已经普遍认识到,如果一个项目不遵循软件工程的基本原则,不自觉的使用软件工程方法,不能提交规范的软件文档,必将受到实践的惩罚。软件工程覆盖的范围包括软件开发技术、软件工程环境、软件工程管、软件质量与可靠性控制、软件经济学和软件心理研究等方面内容。从方法学角度看,目前软件工程正处于面向对象技术的过度期。但是,百变不离其宗,软件工程始终以如何高效地生产质量、可维护软件产品作为其目标。主要介绍以软件生存期为主线,重点讨论结构化思想为主的软件开发基本方法和技术,包括结构化需求分析、设计、编码和测试,同时也兼顾到他们与面向对象技术的联系与发展。第4章户籍管理系统的分析设计4.1需求分析迁入、落户户口注销户口迁出迁入、落户户口注销户口迁出户籍信息处理过程查询修改存档打印(数据流程图)确定了户籍管理系统需要实现的功能:1、实现户口迁入、落户。2、迁出。3、注销录入的全过程。4、查询和维护户籍信息的档案数据。5、实现户口信息的打印与保存。4.2系统设计通过使用户籍管理系统,使企业的户籍管理工作系统化、规范化、自动化,从而达到提高企事业管理效率的目的。系统开发的总体任务是使办公人员可以轻松快捷地完成户籍管理的任务。根据户籍管理系统需求分析中需要实现的功能,要综合考虑各种约束,利用一切可用的技术手段和方法进行各种具体设计,确定新系统的实施方案,解决“系统怎么做”的问题。结构化系统设计是指利用一组标准的图表工具和准则,确定系统有哪些模块,用什么方法连接,如何构成良好的系统结构,并进行系统输入、输出、数据处理、数据存储等环节的详细设计。这一阶段的重点是设计好系统的总体结构,选择最经济合理的技术手段,做好各数据之间的连接,在界面上力求简单明了。4.3系统功能模块通过系统功能需求分析,根据VFP程序编制的特点,得到如图所示的系统功能模块图。户籍管理系统大致分为六个功能模块:数据输入、查询修改、统计汇总、数据导出、用户设置、打印管理。户籍管理系统户籍管理系统数据输入查询修改统计汇总数据导出用户设置打印管理帮助迁入落户数据输入户口迁出户口注销快速查找数据导出户口年报分段汇总帮助户籍库修改迁出库修改注销库修改电子表格数据库文件件编辑修改增加用户打印设置迁入落户数据输入打印预览打印(户籍管理系统功能模块图)各功能模块具体说明如下:1、数据输入模块。实现户籍管理工作中最基本的户籍输入功能,完成户籍信息数据的采集,并按照一定的结构存储在数据库中,以便于使用结构化查询语言进行系统维护和设计。2、查询修改模块。在系统数据库中按照一定的要求,实现对户籍的查询、修改,反映详细的户籍信息,并通过个性化的人机界面显示出来。3、统计汇总模块。充分发挥Visualfoxpro6.0的强大功能,根据系统需求分析的要注,实现户籍工作中常用工作报表的编制,统计各种户口信息,自动计算生成统计结果表。根据工作业务的需要,实现不同特性户籍信息的汇总,并生成报表。4、数据导出模块。可以按照要求将户籍信息进行输出为两种格式文件(EXECL、FoxPro),实现与其他软件数据的共享和数据库信息的转存归档,确保了户籍信息的安全完整。5、用户设置模块。对系统登录权限进行验证,确保户籍信息的安全。提供系统登录用户的维护、用户的增加功能。6、打印管理模块。根据实际工作需要,打印各处报表。并可查询结果输出到打印机。4.4数据库概念结构设计通过对企业户籍管理的内容和数据流程分析,针对本程序,设计数据项和数据结构如下:户籍库数据项:户号、户主、与户主关系、姓名、性别、曾用名、民族、出生日期 监护人、出生地、监护关系、出生证签发、住址、籍贯、宗教信仰、身份证号、迁入时间、户别、文化程度、配偶、兵役状况、迁入证、工作单位、现状、迁出、注销。因迁出库、注销库信息量不是太大,所以迁出库数据项、注销库数据项基本与户籍库相同,单独设立,分别保存归档管理。为实现不同查询、统计汇总信息的保存,设置两个临时数据表,数据结构同与户籍库数据结构。4.5E——R图根据上面的设计规划与业务流程,通过分析,得到该程序的ER模型(简化):迁入、落户迁入、落户户籍库户口迁出查询修改户籍科户口注销注销库迁出库转存归档(ER模型图)第5章设计与实现5.1数据库设计运行Visualfoxpro6.0点击文件、新建项目设计器,建立项目文件“项目1”,修改Visualfoxpro6.0的默认路径,设置为“项目1”年在位置:D:\BYSJHG。打开项目管理器,先建立数据库,再建立表:户籍库.dbf、注销.dbf、迁出.dbf、FDHZ.dbf、TEMP.dbf。各表的结构见后附表。5.2数据录入部分功能实现(数据录入表单)数据录入分为三个部分:迁入落户、户口迁入、户口注销通过下拉菜单选择要实现的功能。5.2点击菜单中的“迁入落户”,弹出下同的“户口迁入、新生落户”窗口,本表单通过以下方式实现户口输入功能。(户口迁入、新生落户表单)运行表单设计器新建表单“Form1”,在表单上右键调出属性窗口,从数据环境中加入户籍库表,将字段加入到表单中,修改标题“caption”为“户口迁入、新生落户”。定义六个类,分别对应按钮:上一个、下一个、第一个、最后一个、修改/保存、添加,以备在以后的表单中使用,加入代码,实现记录的移动和数据的修改。将以上几个按钮加入到表单中实现输入表单的基本功能。表单的“init”事件中设定初始变量:settalkoffpublic首记录,末记录,tj,xssz,ngobottom末记录=recno()gotop首记录=recno()thisform.第一个.enabled=.f.thisform.上一个.enabled=.f.ifthisform.添加.caption="添加"thentj=.t.n=recno()appendblank//添加一个空白记录thisform.refreshbegintransaction修改按钮“click”事件ifthis.caption="修改"thentj=.f.begintransactionscattermemotoxsszthisform.户号1.readonly=.f.thisform.户主1.readonly=.f.thisform.与户主关系1.readonly=.f.thisform.姓名1.readonly=.f.thisform.性别1.readonly=.f.thisform.曾用名1.readonly=.f.thisform.民族1.readonly=.f.thisform.出生日期1.readonly=.f.thisform.监护人1.readonly=.f.thisform.出生地1.readonly=.f.thisform.监护关系1.readonly=.f.thisform.出生证签发1.readonly=.f.thisform.住址1.readonly=.f.thisform.籍贯1.readonly=.f.thisform.宗教信仰1.readonly=.f.thisform.身份证号1.readonly=.f.thisform.迁入时间1.readonly=.f.thisform.户别1.readonly=.f.thisform.文化程度1.readonly=.f.thisform.配偶1.readonly=.f.thisform.兵役状况1.readonly=.f.thisform.迁入证1.readonly=.f.thisform.工作单位1.readonly=.f.thisform.qfdm1.readonly=.f.thisform.现状1.readonly=.f.thisform.照片1.readonly=.f.thisform.修改.caption="保存"thisform.添加.caption="还原"thisform.第一个.visible=.f.thisform.上一个.visible=.f.thisform.下一个.visible=.f.thisform.最后一个.visible=.f.thisform.第一个.visible=.f.thisform.户号1.setfocus()thisform.refreshelseendtransactionthisform.户号1.readonly=.t.thisform.户主1.readonly=.t.thisform.与户主关系1.readonly=.t.thisform.姓名1.readonly=.t.thisform.性别1.readonly=.t.thisform.曾用名1.readonly=.t.thisform.民族1.readonly=.t.thisform.出生日期1.readonly=.t.thisform.监护人1.readonly=.t.thisform.出生地1.readonly=.t.thisform.监护关系1.readonly=.t.thisform.出生证签发1.readonly=.t.thisform.住址1.readonly=.t.thisform.籍贯1.readonly=.t.thisform.宗教信仰1.readonly=.t.thisform.身份证号1.readonly=.t.thisform.迁入时间1.readonly=.t.thisform.户别1.readonly=.t.thisform.文化程度1.readonly=.t.thisform.配偶1.readonly=.t.thisform.兵役状况1.readonly=.t.thisform.迁入证1.readonly=.t.thisform.工作单位1.readonly=.t.thisform.qfdm1.readonly=.t.thisform.现状1.readonly=.t.thisform.照片1.readonly=.t.thisform.修改.caption="修改"thisform.添加.caption="添加"thisform.第一个.visible=.t.thisform.上一个.visible=.t.thisform.下一个.visible=.t.thisform.最后一个.visible=.t.n=recno()gobottom末记录=recno()gotop首记录=recno()gondocasecaserecno()=首记录thisform.第一个.enabled=.f.thisform.上一个.enabled=.f.thisform.下一个.enabled=.f.thisform.最后一个.enabled=.f.caserecno()=末记录thisform.第一个.enabled=.t.thisform.上一个.enabled=.t.thisform.下一个.enabled=.t.thisform.最后一个.enabled=.t.otherwisethisform.第一个.enabled=.t.thisform.上一个.enabled=.t.thisform.下一个.enabled=.t.thisform.最后一个.enabled=.t.endcasethisform.refreshendif5.2迁出表单的数据环境同样是数据库中的户籍库表,加入两个文本框“TEXT1”、“TEXT2”一个“COMMAND1”,通过在文本框中接入到的输入,寻找符合条件的记录,经过确认后加上迁出标记,从户籍表中移出到迁出表中。在“COMMAND1”的click事件中加入以下代码:thisform.releasedimensionqian(30)closealluse户籍库copytoarrayqianforqc=.t.use迁出appefromarrayqianuse户籍库deleforqc=.t.useclosedatabase同样注销表单也采用相同的方法实现数据记录的转移。5.3统计汇总完成各种统计汇总、计算功能。5.利用VisualFoxPro6.0强大的数据库功能,实现户籍工作中最为繁重的户口统计年报工作。(户口统计表单)(户口统计表单)分别针对三种性质的户口与上级户口部门进行核对,完成数据上报。在表单中针对每种户口加入三个文本框,分别显示统计的男、女、合计人数,并加入验证代码,未通过验证则弹出提示窗口。如:command2为今年人口总数的统计,其“Click”事件:use户籍库.dbfcounalltoncounallfor性别='男'tom1counallfor性别='女'ton1thisform.text4.value=m1thisform.text5.value=n1thisform.text6.value=nifn<>m1+n1messagebox("请核对今年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshuse计算按钮“click”事件:use户籍库.dbfcounalltoncounallfor性别='男'tom1counallfor性别='女'ton1thisform.text4.value=m1thisform.text5.value=n1thisform.text6.value=nifn<>m1+n1messagebox("请核对今年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusen3=0m2=0n2=0use户籍库.dbfcounallforyear(出生日期)<>year(date())ton3thisform.text1.value=m2thisform.text2.value=n2thisform.text3.value=n3ifn3<>m2+n2messagebox("请核对上年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusethisform.text7.value=m1-m2thisform.text8.value=n1-n2thisform.text9.value=n-n3ifn-n3<>(m1-m2)+(n1-n2)messagebox("请核对增加人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusez1=0x1=0z=0use注销.dbfcounalltozcounallfor性别='男'toz1counallfor性别='女'tox1thisform.text14.value=z1thisform.text15.value=x1thisform.text16.value=zifz<>z1+x1messagebox("请核对今年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusez3=0z2=0x2=0use注销.dbfcounallforyear(出生日期)<>year(date())toz3thisform.text17.value=z2thisform.text18.value=x2thisform.text19.value=z3ifz3<>z2+x2messagebox("请核对上年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusethisform.text20.value=z1-z2thisform.text21.value=x1-x2thisform.text22.value=z-z3ifz-z3<>(z1-z2)+(x1-x2)messagebox("请核对增加人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusea=0a1=0s1=0use迁出.dbfcounalltoacounallfor性别='男'toa1counallfor性别='女'tos1thisform.text26.value=a1thisform.text27.value=s1thisform.text28.value=aifa<>a1+s1messagebox("请核对今年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshuses=0a2=0s2=0use迁出.dbfcounallforyear(出生日期)<>year(date())tosthisform.text29.value=a2thisform.text30.value=s2thisform.text31.value=sifs<>a2+s2messagebox("请核对上年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusethisform.text32.value=a1-a2thisform.text33.value=s1-s2thisform.text34.value=a-sifa-s<>(a1-a2)+(s1-s2)messagebox("请核对增加人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshuse5.实现各种年龄段区间的人数统计,在表单中“TEXT1”、“TEXT2”的文本框中输入需要查询的日期,通过函数转换,将输入的文本转为日期型,在数据库中进行统计。然后将结果验证后生成文件或打印。(分年龄段人口汇总表单)汇总按钮:storctod(thisform.text1.value)toddstorctod(thisform.text2.value)toddduse户籍库.dbfcounallfor出生日期<ddd.and.出生日期>ddtommmthisform.text3.value=mmm1thisform.text4.value=mmm2thisform.text5.value=mmmthisform.text1.value=''thisform.text2.value=''ifmmm<>mmm1+mmm2messagebox("请核对人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.text1.setfocus()thisform.refreshuse浏览保存结果:ifnnnnn<1MESSAGEBOX("浏览结果并保存!",0,"保存")usefdhz.dbfEXCLUSIVEzapappefrom户籍库.dbffor出生日期<ddd.and.出生日期>ddbrownoeditnnnnn=nnnnn+1elseMESSAGEBOX("已经导出一次!",0,"提示")brownoeditendifuse5.4查询修改。根据需要可实现多种方式的查找、修改功能。(查询修改菜单)5.4.1快速查询。利用结构化查询语言SQL的iflen(alltrim(thisform.text2.value))=0messagebox("请输入姓名!",0,"输入")elseSELECT*;FROM户籍数据库!户籍库;WHERE户籍库.姓名=alltrim(thisform.text2.value);ORDERBY户籍库.户号;INTOTABLEtemp.dbf(快速查找表单)5.(查询修改表单)先查找需要修改记录,在表单中可以直接修改后点击保存按钮。同时可在右侧的表格中快速浏览相近记录的内容。5.在表单中加入带有五个页面的页框。分别显示“户籍”、“注销”、“迁出”、“分年龄段人口查询”、“快速查询”记录的内容。上面一个“退出”按钮,用于退出表单,并关闭打开的数据库。其代码如下:closeallusethisform.releaseclosedatabase(浏览所有表单)5.5数据导出。在表单中加入8个“command”按钮,在“click”事件中加入代码,实现数据的转存归档,或与其他系统的数据交换,分别可导出到MicrosoftOfficeExcel电子表格文档和VisualFoxPro文件。代码:usefdhz.dbfCOPYTOd:\fdhz.xlsTYPEXL5usemessagebox("文件已保存到d:\fdhz.xls!",0,"保存")(文件导出表单)5.6用户设置。根据本单位户籍管理的需要,决定允许哪些人员登录本系统或禁止该用户登录本系统,提供修改密码功能供用户定期修改密码,以确保系统的安全性。为美化界面,Photoshop制作了一幅背景图,并使用“山东科技大学******”文字水印效果。(用户登录窗口)5.7打印设置。打印表单中加入3个命令按钮,实现各种报表的打印。在表单按钮的“click”事件中加入下面代码,调用报表程序,提示放入A4纸到打印机,完成打印任务。MESSAGEBOX("请放入A4纸到打印机!",0,"打印")REPORTFORM户籍库.frxNOEJECTNOCONSOLETOPRINTER(打印表单)第6章性能测试与分析实际开发过程中不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,必须经过周密测试后系统才能投入运行,否则将会造成难以想像的后果,因此系统测试与分析是MIS开发过程中为保证软件质量必须进行的工作。在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。程序完成后,将工作中的实际数据输入计算机,对各模块进行测试。对任何程序都有两种测试方法:一种是黑盒测试法,另一种是白盒测试法。如果知道了程序应该具有的功能,可以通过测每个功能是否都能正常使用则称为黑盒法。如果想测试程序内部动作是否按照操作说明书的规定正常进行则称为白盒法。我们此次用的是黑盒法进行测试的,检测程序是否能够接收输入的数据,并能产生正确的输出信息,并保持外部信息的完整性。(1)启动程序,进入登录表单填入相似的用户名和相似的密码进行测试,均不能通过。说明系统比较安全。(2)启动程序,能进入功能选项,均能运行。程序通过测试后,又在实际中运行了一段时间,在此段时间听取了同事们的意见和建议,逐步改进和完善。运行正常。

结论通过一系列的测试修改,以及在户籍管理部门的试用系统达到了预定的设计要求,能够顺利地完成从户口迁入、落户、迁出、注销的全过程,到户籍信息的修改、查询、报表、打印、统计等管理工作,减轻了户籍管理工作人员的工作负担,提高了工作效率,实现了预期目标。经过在工作中实际使用证明,本文所设计的户籍管理系统实现了设计要求,满足了户籍管理的需要。通过这次的毕业设计,发现感觉到看似容易的问题,做起来相当难,有时为了一处代码往往花费一天的时间,真所谓“眼高手低”啊!当然,通过毕业设计,也培养了我刻苦钻研的学习精神和严肃认真的学习态度,这对我以后的学习和工作有很大的益处

致谢经过2个多月的构思与设计,在指导老师的精心指导和安排下,本系统已经设计完毕。其使用功能基本符合本单位在实际工作的需要,具有一定的实用性。但是由于时间比较仓促,加上本人软件设计经验的不足。因此,在分析问题、解决问题时显得不够严密、完善,还需要在以后的工作中不断地改进和完善。在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、慎密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。同时,也要感谢我的老师和同学们及实习企业在本系统的设计过程中给予我的支持和帮助。

参考文献[1] 严蔚敏吴伟民数据结构北京:清华在学出版社1996[2] 中文VisualFoxPro6.0实用教程.西安:工业大学出版社2002.12[3] 软件工程张为群2001.8[4] VisualFoxPro.西安电子科技大学出版社2003.11[5] 高级语言程序设计迟成文经济科学出版社2000.3[6] FoxPro命令和函数详细剖析田华1998.1

附录A:附加图、表表一:户籍库.dbf库结构字段字段名类型宽度字段字段名类型宽度1户号字符型816身份证号字符型182户主字符型817HH2字符型53与户主关系字符型818迁入时间字符型64姓名字符型819户别字符型65性别字符型220文化程度字符型46曾用名字符型621配偶字符型67民族字符型222兵役状况字符型108出生日期日期型823迁入证字符型189监护人字符型824工作单位字符型1010出生地字符型1025QFDM数值型311监护关系字符型1026现状字符型1012出生证签发日期型827照片通用型413住址字符型3028QC逻辑型114籍贯字符型3029ZX逻辑型115宗教信仰字符型10总计**259

表二:迁出.dbf库结构字段字段名类型宽度字段字段名类型宽度1户号字符型816身份证号字符型182户主字符型817HH2字符型53与户主关系字符型818迁入时间字符型64姓名字符型819户别字符型65性别字符型220文化程度字符型46曾用名字符型621配偶字符型67民族字符型222兵役状况字符型108出生日期日期型823迁入证字符型189监护人字符型824工作单位字符型1010出生地字符型1025QFDM数值型311监护关系字符型1026现状字符型1012出生证签发日期型827照片通用型413住址字符型302814籍贯字符型302915宗教信仰字符型10

表三:注销.dbf库结构字段字段名类型宽度字段字段名类型宽度1户号字符型816身份证号字符型182户主字符型817HH2字符型53与户主关系字符型818迁入时间字符型64姓名字符型819户别字符型65性别字符型220文化程度字符型46曾用名字符型621配偶字符型67民族字符型222兵役状况字符型108出生日期日期型823迁入证字符型189监护人字符型824工作单位字符型1010出生地字符型1025QFDM数值型311监护关系字符型1026现状字符型1012出生证签发日期型827照片通用型413住址字符型3014籍贯字符型3015宗教信仰字符型10

附图一:数据流程图迁入、落户迁入、落户户口注销户口迁出户籍信息处理过程查询修改存档打印附图二:功能模块图户籍管理系统数据输入查询修改统计汇总数据导出用户设置打印管理帮助迁入落户数据输入户籍管理系统数据输入查询修改统计汇总数据导出用户设置打印管理帮助迁入落户数据输入户口迁出户口注销快速查找数据导出户口年报分段汇总帮助户籍库修改迁出库修改注销库修改电子表格数据库文件件编辑修改增加用户打印设置迁入落户数据输入打印预览打印(户籍管理系统功能模块图)附图三:E-R图迁入、落户户籍库户口迁出查询修改户籍科户口注销注销库迁出库转存归档

附录B:主要源程序迁入、落户户籍库户口迁出查询修改户籍科户口注销注销库迁出库转存归档户籍管理系统源程序1.主程序:geng.prgcloseallclearallcloseallSETDOHISTORYOFFSETESCAPEONSETOPTIMIZEONSETREFRESHTO0,0SETSTATUSBAROFFSETSTATUSOFFSETTALKOFFSETVIEWOFF//设置系统运行环境use户籍库.dbfEXCLUSIVEpackuseuse迁出.dbfEXCLUSIVEpackuseuse注销.dbfEXCLUSIVEpackusesetsysmenutosetsafeoffsetdatetoymdsetDEFATOd:\bysjhgsetpathtod:\bysjhgdoformfirst.scxdoformpass.scxreadevents//建立事件循环2.用登录验证gotopcs=cs+1mmm=thisform.text1.valuennn=thisform.text2.valueiflen(alltrim(mmm))=0messagebox("请输入用户名,重新进入系统!",0,"用户名不能为空")elseiflen(alltrim(nnn))=0messagebox("密码不能为空,请重新进入系统!",0,"密码错误")elselocatefor=alltrim(mmm)ifalltrim(user.pass)=alltrim(nnn)thisform.releasereleasecsdoformback.scxreadeventselseifcs<3messagebox("密码错误,请重新输入!",0,"密码错误")thisform.text1.value=''thisform.text2.value=''elsemessagebox("密码三次错误,请重新进入系统!",0,"密码错误")releasecsthisform.releasecleareventsendifendifendifendif3.年报报表use户籍库.dbfcounalltoncounallfor性别='男'tom1counallfor性别='女'ton1thisform.text4.value=m1thisform.text5.value=n1thisform.text6.value=nifn<>m1+n1messagebox("请核对今年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusen3=0m2=0n2=0use户籍库.dbfcounallforyear(出生日期)<>year(date())ton3counallforyear(出生日期)<>year(date()).and.性别='男'tom2counallforyear(出生日期)<>year(date()).and.性别='女'ton2thisform.text1.value=m2thisform.text2.value=n2thisform.text3.value=n3ifn3<>m2+n2messagebox("请核对上年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusethisform.text7.value=m1-m2thisform.text8.value=n1-n2thisform.text9.value=n-n3ifn-n3<>(m1-m2)+(n1-n2)messagebox("请核对增加人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusez1=0x1=0z=0use注销.dbfcounalltozcounallfor性别='男'toz1counallfor性别='女'tox1thisform.text14.value=z1thisform.text15.value=x1thisform.text16.value=zifz<>z1+x1messagebox("请核对今年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusez3=0z2=0x2=0use注销.dbfcounallforyear(出生日期)<>year(date())toz3counallforyear(出生日期)<>year(date()).and.性别='男'toz2counallforyear(出生日期)<>year(date()).and.性别='女'tox2thisform.text17.value=z2thisform.text18.value=x2thisform.text19.value=z3ifz3<>z2+x2messagebox("请核对上年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusethisform.text20.value=z1-z2thisform.text21.value=x1-x2thisform.text22.value=z-z3ifz-z3<>(z1-z2)+(x1-x2)messagebox("请核对增加人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusea=0a1=0s1=0use迁出.dbfcounalltoacounallfor性别='男'toa1counallfor性别='女'tos1thisform.text26.value=a1thisform.text27.value=s1thisform.text28.value=aifa<>a1+s1messagebox("请核对今年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshuses=0a2=0s2=0use迁出.dbfcounallforyear(出生日期)<>year(date())toscounallforyear(出生日期)<>year(date()).and.性别='男'toa2counallforyear(出生日期)<>year(date()).and.性别='女'tos2thisform.text29.value=a2thisform.text30.value=s2thisform.text31.value=sifs<>a2+s2messagebox("请核对上年人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshusethisform.text32.value=a1-a2thisform.text33.value=s1-s2thisform.text34.value=a-sifa-s<>(a1-a2)+(s1-s2)messagebox("请核对增加人口数!",0,"男人口数与女人口数有误")elsemessagebox("核对通过!",0,"正确")endifthisform.refreshuse4、户口输入表单“保存”按钮“click”事件:ifthis.caption="添加"thentj=.t.n=recno()appendblankthisform.refreshbegintransactionthisform.户号1.readonly=.f.thisform.户主1.readonly=.f.thisform.与户主关系1.readonly=.f.thisform.姓名1.readonly=.f.thisform.性别1.readonly=.f.thisform.曾用名1.readonly=.f.thisform.民族1.readonly=.f.thisform.出生日期1.readonly=.f.thisform.监护人1.readonly=.f.thisform.出生地1.readonly=.f.thisform.监护关系1.readonly=.f.thisform.出生证签发1.readonly=.f.thisform.住址1.readonly=.f.thisform.籍贯1.readonly=.f.thisform.宗教信仰1.readonly=.f.thisform.身份证号1.readonly=.f.thisform.迁入时间1.readonly=.f.thisform.户别1.readonly=.f.thisform.文化程度1.readonly=.f.thisform.配偶1.readonly=.f.thisform.兵役状况1.readonly=.f.thisform.迁入证1.readonly=.f.thisform.工作单位1.readonly=.f.thisform.qfdm1.readonly=.f.thisform.现状1.readonly=.f.thisform.照片1.readonly=.f.thisform.修改.caption="保存"thisform.添加.caption="还原"thisform.删除.enabled=.f.thisform.第一个.visible=.f.thisform.上一个.visible=.f.thisform.下一个.visible=.f.thisform.最后一个.visible=.f.thisform.户号1.setfocus()thisform.refreshelseiftj=.f.gathermemofromxsszthisform.refreshelsedele*packgonthisform.refreshendifendtransactionthisform.户号1.readonly=.t.thisform.户主1.readonly=.t.thisform.与户主关系1.readonly=.t.thisform.姓名1.readonly=.t.thisform.性别1.readonly=.t.thisform.曾用名1.readonly=.t.thisform.民族1.readonly=.t.thisform.出生日期1.readonly=.t.thisform.监护人1.readonly=.t.thisform.出生地1.readonly=.t.thisform.监护关系1.readonly=.t.thisform.出生证签发1.readonly=.t.thisform.住址1.readonly=.t.thisform.籍贯1.readonly=.t.thisform.宗教信仰1.readonly=.t.thisform.身份证号1.readonly=.t.thisform.迁入时间1.readonly=.t.thisform.户别1.readonly=.t.thisform.文化程度1.readonly=.t.thisform.配偶1.readonly=.t.thisform.兵役状况1.readonly=.t.thisform.迁入证1.readonly=.t.thisform.工作单位1.readonly=.t.thisform.qfdm1.readonly=.t.thisform.现状1.readonly=.t.thisform.照片1.readonly=.t.thisform.修改.caption="修改"thisform.添加.caption="添加"thisform.第一个.visible=.t.thisform.上一个.visible=.t.thisform.下一个.visible=.t.thisform.最后一个.visible=.t.thisform.refreshendif

附录C:软件(光盘)软件(光盘)说明E.1目录结构所附光盘中的目录结构如下所示。(注:光盘存放的软件和各种文档的目结构图。)E.2文件说明E.2.1某某目录中文件列表目录名文件名主要功能IMAGEACPOWER.BMP系统使用图标、图像。APILIBRA.BMPAPPS.BMPARROW1.ICOARROW3.ICOARROW4.ICOARROW5.ICOBACK.GIFBOOK.GIFBOOK1.ICOIMGABACKIMG.JPG背景图像、数据库插图。肖像1.BMP肖像2.BMP肖像4.BMPBACK1.JPGZHJ54.BMPBACKIMG1.JPGBACKIMG3.JPG1户籍库.dbf户籍数据表2户籍数据库.DCT主数据库3查询修改.scx查询个性户口信息4输入.scx户口输入表单5项目1.PJT项目6迁出.dbf迁出数据表7注销查询修改.scx注销查询修改8查对迁出.scx户口迁出窗口9first.scxLOG窗口10print.scx打印设置11USER.DBF用户登录验证数据表12fdhz.scx分年龄人口统计汇总13help.scx帮助14迁出查询修改.scx迁出记录查询修改15注销.scx户口注销窗口16pass.scx用户登录验证17gengxin.prg主程序18back.scx顶层表单19FDHZ.DBF数据表20baobiao.scx年报报表21daocu.scx数据导出窗口22PRINTSS.SCX打印窗口23TEMP.DBF临时数据表24表单2.scx快速查找25ALL.SCX浏览所有数据表记录26bysj.exe主执行程序基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳

温馨提示

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

评论

0/150

提交评论