水费管理系统设计说明书.docx
《水费管理系统设计说明书.docx》由会员分享,可在线阅读,更多相关《水费管理系统设计说明书.docx(32页珍藏版)》请在冰豆网上搜索。
水费管理系统设计说明书
第一章绪论
1.1课题简介
水费管理系统是每一个水资源管理机构管理水资源用户及水费缴纳情况的不可缺少的一个管理信息系统,它的内容对于水资源管理机构的管理者来说是至关重要的,所以水费管理系统应该能够为每一个水资源管理机构的管理者提供充足的信息和快捷的查询手段,大大的方便水资源管理机构的管理者的合理管理。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对水资源用户及水费缴纳情况进行管理,具有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高水资源用户及水费缴纳情况管理的效率,也是水资源管理机构帐收费的科学化、正规化管理,与先进科学技术接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,对于我们即将计算机专业毕业的学生来说,也是一次将计算机应用于现实管理的一次很有意义的实践活动。
1.2开发的意义
1.计算机已经成为我们学习和工作的得力助手,使用其可方便的管理水资源用户及水费缴纳情况
今天,计算机的价格已经十分低廉,性能却有了长足的进步。
它已经应用于许多领域。
现在我国的水资源用户及水费缴纳情况管理水平绝大部分还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
我作为一个计算机应用专业的毕业生,希望可以在这方面有所贡献。
改革的总设计师邓小平同志说过“科学技术是第一生产力”,我希望能用我所学的知识编制出一个实用的程序来帮助水资源管理机构进行水资源用户及水费缴纳情况管理。
开发这一系统的好处大约有以下几点:
第一、可以存储历年水资源用户及水费缴纳情况的信息,安全、高效;
第二、只需一到二名档案录入员即可操作系统,节省人力;
第三、可以迅速查到水资源用户及水费缴纳情况的各类信息。
2.为将来水资源管理机构上网做好准备
跟据2003年中国电信的调查报告显示我国的上网人数已达到1870万,互联网已经十分普及,本系统为水资源管理机构将来的上网作了先期工作,比如水资源管理机构的网络管理模式的建立。
1.3团队构成
指导教师:
*******
成员:
何华
第二章开发环境及实现技术
2.1开发环境
硬件系统:
奔腾100以上CPU、64M以上内存、1G以上硬盘、光驱。
软件系统:
Windows9x或更高版本、VisualBasic6.0中文版、Access数据库。
2.2开发工具简介
微软公司的VisualBasic6.0是Windows应用程序开发工具,使目前最为广泛的、易学易用的面向对象的开发工具。
VisualBasic提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。
故而,实现本系统VB是一个相对较好的选择。
Access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
Access的优点在于它能使用数据表示图或自定义窗体收集信息。
数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。
另外,Access允许创建自定义报表用于打印或输出数据库中的信息。
Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。
Access是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。
如上所述,Access作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。
微软的JET数据库引擎提供了与数据库打交道的途径,我们是通过它以及VisualBasic来访问数据库并对其进行各种操作。
VisualBasic、Access以及其他微软的软件产品都是通过共用JET数据库引擎,从而给用户提供了丰富的数据类型。
DATA控件在数据库中的信息与将信息显示给用户看的VisualBasic程序之间架起了一座桥梁。
我们可以设置DATA控件的各个属性,告诉它要调用那个数据库的哪个部分。
缺省情况下,DATA控件根据数据库中的一个或多个数据表建立一个dynaset-type(动态集合)类型的记录集合。
一个记录集合是动态的也就意味着,当原来的数据表中的容改变了以后,该记录集合中的记录也会随之改变。
DATA控件还提供了用来浏览不同记录的各种跳转按钮。
将DATA控件放置在窗体中之后,我们还必须在该控件与要处理的数据库之间建立联系。
ADO是Mcrosoft提出的第三种数据库访问对象,是Microsoft数据库访问技术的一个主要发展方向,ADO将OLEDB封装在一个数据对象中,使得VB程序中以方便地实现对数据库的访问。
具体的与数据库的关系如下:
VB数据库应用程序一般由用户界面、数据库引擎和数据仓库三大部分组成。
1.用户界面:
用户界面是指应用程序与用户进行交互的界面,包括用于交互的所有界面元素和代码。
它可以显示数据并提供查看或更新数据的所有对象,比如数据作业窗体,添加、删除记录或执行查询的VB代码等,这些对象隐含着用来请求数据库服务的属性、事件和方法。
2.数据库引擎:
所谓数据库引擎,是一种管理数据怎样被存储和检索的软件系统,是应用程序与物理数据库之间的桥梁。
它把应用程序的请求翻译成对各种类型数据库的物理操作,并向应用程序返回结果。
3.数据仓库:
数据仓库是包含数据库表的一个或多个文件,是存放数据的地方。
对于本地的VB数据库来说,就是.mdb格式文件;对于不同的数据库,它可能具备其它格式。
VB访问数据库通常有三种途径:
1.使用数据控件和数据绑定控件访问数据库;
2.通过VB提供的数据访问变量编程访问;
3.通过ODBC接口访问ODBCAPI函数。
VB程序的数据访问通过数据访问接口来实现。
在VB中,主要的数据访问接口有三种:
数据存取对象(DataAccessObject;DAO)、远程数据对象(RemoteDataObject;RDO)、ActiveX数据对象(ActiveXDataObjects;ADO)。
VB通过数据库引擎可以访问的数据库分如下三类:
内部数据库、外部数据库和ODBC数据库。
1、内部数据库——即.MDB格式的数据库,包括DAOAPI、MicrosoftAccess和MicrosoftExcel创建的数据源,也称为本地数据库。
由于是由Jet引擎直接创建和操作这些数据库,可以提供最大程度的灵活性和速度。
2、外部数据库——即"索引顺序存取方法(ISAM)数据库,例如Btrieve、dBASE、FoxPro以及Paradox等。
VB能够创建和操作所有这些数据库,还可以访问MicrosoftExcel或Lotusl-2-3电子表格,以及一些标准的文本文件。
3、ODBC数据库——即符合开放式数据库连接性(ODBC)协议的数据库。
VB可以访问ODBC标准客户/服务器数据库--如MicrosoftSQLServer、Oracle和Sybase。
可使用ODBCObject直接把命令传递给服务器处理,以创建真正的客户机/服务器程序。
第三章系统设计
3.1概要设计
3.1.1概要设计阶段的主要任务
①本人先审查软件计划、软件需求分析提供的文档,提出最佳推荐方案,用系统流程图,组成系统物理元素清单,成本效益分析,系统的进度计划,供指导老师审定,审定后进入设计。
②确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。
确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略。
③编写概要设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具。
选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等。
3.1.2概要设计的过程
概要设计要先进行系统设计,复审系统计划与需求分析,确定系统具体的实施方案;然后进行结构设计,确定软件结构。
3.1.3概要设计的原则
①将软件划分成若干独立成分的依据。
②如何表示不同的成分内的功能细节和数据结构。
③如何统一衡量软件设计的技术质量。
3.1.4系统功能分析
根据水资源管理机构提供的水费管理信息,预测开发的管理系统的达到的功能如下:
第一部分:
系统用户管理
要求:
用户分四类:
超级用户[一切功能可用]、管理员[不可添加系统用户、修改用户密码]、收费员[仅可查询信息、收费功能]
第二部分:
水费管理
要求:
实现缴纳水费及查询缴费情况。
第三部分:
用户管理
要求:
实现编辑用户和浏览用户信息
第四部分打印服务
要求:
实现当日缴费情况打印
第五部分环境设置
要求:
实现缴费月份及当前水价的设置
第六部分帮助
制作帮助文档,介绍各部分功能即可根据以上分析,该系统考虑将整个系统分解成如图3-1模块结构图:
登录
图3-1模块结构图
并且在系统的开发过程中,我尽量注意模块的高内聚、低耦合,使得系统的整体性能提高,并且也有利于投入使用后的系统维护。
3.2详细设计
3.2.1详细设计的任务
详细设计就是要在概要设计的结果的基础上,考虑“怎样实现”这个软件系统,直到对系统中的每个模块给出足够详细的过程性描述。
主要任务如下:
①为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;②确定每一模块使用的数据结构;③确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。
④要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。
3.2.2详细设计的方法
程序流程图、N-S图、PAD图、IPO图
本系统在开发过程中所采用的详细设计方法为IPO图:
1、缴纳水费管理模块模块IPO图:
保存到表
2、缴费查询模块IPO图:
显示查询的结果
3、用户管理模块IPO图:
保存到表
显示查询结果
4、打印模块IPO图:
打印
5、用户管理模块的IPO图
保存到用户管理表
第四章数据库设计
4.1数据库Access简介
Access中文版是MicrosoftOffice2000套装软件的数据库管理系统软件,是目前比较流行的小型桌面数据库管理系统,它适用于小型企业、学校、个人等用户,可以通过多种方式实现对数据收集、分类、筛选处理,提供用户查询或打印报表。
Access具有良好的界面,采用了与Windows和MicrosoftOffice系列软件完全一致的风格,用户可以通过菜单和对话框操作,不用编写任何命令便能有效地实现各种功能的操作,完成数据管理任务。
MicrosoftOffice的一个集成化的程序设计语言是VBA(VisualBasicforApplications),使用VBA可以创建非常实用的数据库应用系统。
Access可以作为个人计算机终端和大型主机系统之间的桥梁。
通过如SQL、ODBC等特定技术,方便地存储、检索和处理服务器平台上的关键信息,提供了灵活、可靠、安全的客户/服务器解决方案。
Access可以接受多种格式的数据,从而方便了用户在不同系统之间进行数据转换。
随着Internet网络应用的发展,Access还增加了使用信息发布Web向导和用HTML格式导出对象的功能。
数据库的概念
数据库是一种存储数据并对数据进行操作的工具。
数据库的作用在于组织和表达信息,简而言之,数据库就是信息的集合。
计算机的数据库可以分为两类:
非关系数据库(flat-file)和关系数据库(relational)。
关系数据库中包含了多个数据表的信息,数据库含有各个不同部分的术语,象记录、域等。
新建一个数据库
创建任何一个数据库的第一步是仔细的规划数据库,设计必须是灵活的、有逻辑的。
创建一个数据库结构的过程被认为是数据模型设计。
1.标识需要的数据;
2.收集被标识的字段到表中;
3.标识主关键字字段;
4.绘制一个简单的数据图表;
5.规范数据;
6.标识指定字段的信息;
7.创建物理表。
修改已建的数据库
数据库的修改分为:
添加、编辑和删除记录。
这三种操作均可由VisualBasic创建的程序来完成,下面的章节将详细描述实现的具体方法。
实现数据库之间的联系
数据库之间的关系指明两个库之间共享一个共同的关键字值。
一个连接是指一种虚拟的表,这种表是在当用户要求从相互关联的各个不同的表中获取信息时建立的,关键字段用于在相互连接的不同表中查找匹配的记录。
一个更高级的连接形式称为自连接。
这种连接是指一个表被连接到它自己的一个字段,或在不同的纪录中由重复数据的组合字段。
数据库中有三种不同类型的关键字:
主关键字、组合关键字和外关键字。
在表中使用的关键字类型用于描述库表示什么以及在数据库中如何与其它的库建立关系。
4.2数据库需求分析
根据调查水资源管理机构的水资源用户及水费缴纳情况管理的实际情况,分析得到如下的数据库结构。
水费管理表:
用户管理表:
当前水价表:
用户表:
4.3测试用例
用户表的测试用例:
水费管理表的测试用例:
当前水价表的测试用例:
帐户表的测试用例:
第五章系统的实现
5.1系统登录模块的实现
1.流程图
主界面
2.界面:
界面包括的控件有标签、文本框、命令按钮等控件。
3.实现过程:
第一步将所需的控件放到窗体的相应位置;方法:
首先在“工具箱”中选中所需的控件图标,然后在表单的恰当位置上单击鼠标并拖动鼠标,即可把由所选取的控件生成的对象添加到窗体上。
如下图:
第二步,选择窗体或控件进行属性设置,如图为窗体的属性设置界面:
第三步双击相应的控件,在控件的相应过程中编写代码:
如此窗体上“进入”与“退出”按钮的代码如下:
改变登录菜单为注销菜单
不同的用户权限打开不同的菜单
并且具有改变“登录”菜单为“注销”菜单的功能。
PrivateSubCommand2_Click()
UnloadMe
EndSub
此程序段中,“IF”语句的作用是判断用户输入的用户名与密码和数据库的是否相同,如果相同,则打开菜单项并执行unloadme,如果用户名或密码输入错误,则提示:
使用户重新输入用户名或密码。
Unloadme语句的作用是下载窗体。
此窗体上另外还有Data1、Text3二个控件在程序运行时是看不到的,它们的作用是使VB与Access数据库相连,然后判断用户输入的用户名与密码是否与数据库中的一致,如果一致,则允许用户进入系统。
此三个控件的创建方法如下:
首先,将Data、Text控件拖放到窗体上,其次,设置它们的属性:
(1)Data1控件的属性设置如下图:
数据库中的表名
此两个属性的作用是保证Data控件与数据库相连。
运行时是否隐藏
Visible属性是使此控件运行时在窗体上不显示。
(2)Text3控件的属性设置如下:
此数据控件绑定到何字段
此数据控件绑定到何数据库
Visible属性的设置同Data1控件。
5.2主界面的实现
主界面是用菜单形式表现的,如图:
菜单的制作过程如下:
首先通过“工具”菜单中的“菜单编辑器”调出菜单编辑器,然后进行菜单的设置,如下图:
调节菜单的级别
此过程中要注意各菜单的名称唯一,还要注意菜单的级别,另外此设计过程中我们还可以给菜单加快捷键。
最后设置如下的代码(只要单击菜单即可设置各菜单代码),代码如下:
主要是通过Show方法调用相应的窗体。
5.3水费管理模块的实现
5.3.1缴纳水费模块的实现:
1、流程图:
退出
2、运行界面:
1.实现过程:
第一步将所需的控件放到窗体的相应位置;方法:
首先在“工具箱”中选中所需的控件图标,然后在表单的恰当位置上单击鼠标并拖动鼠标,即可把由所选取的控件生成的对象添加到窗体上。
如下图:
第二步,选择窗体或控件进行属性设置,同上一小结。
其它属性和控件的设置方法类似。
第三步双击相应的控件,在控件的相应过程中编写代码:
窗体的load事件为:
PrivateSubForm_Load()
Form21.Width=7350
Form21.Height=7395
Form21.Move(MDIForm1.Width-Form21.Width)/2,(MDIForm1.Height-Form21.Height)/4
Label5.Caption=Date
EndSub
作用:
使窗体居中显示。
的代码如下:
PrivateSubCommand2_Click()
SQL="select*from用户管理where总户号='"&Trim(Text1(0).Text)&"'"
Data3.RecordSource=SQL
Data3.Refresh
IfData3.Recordset.EOFThen
MsgBox"没有此总户号!
请重新输入[总户号]!
",,"提示"
Text1(0).Text=""
Text1(0).SetFocus
Else
Fori=1To9
Label1(i).Visible=True
Nexti
Fori=1To6
Text1(i).Visible=True
Nexti
Text8.Visible=True
Data1.Recordset.AddNew
Text1(7)=Text6
Text1
(1)=Text3
Text1
(2)=Text4
Text1(4)=Text2
Text1(6).Text=Date$
Text1(3).SetFocus
Text8=Text7
EndIf
EndSub
作用:
先判断用户表中有没有此总户号,如有就收费,没有就提示用户。
界面如下:
的代码如下:
PrivateSubCommand1_Click()
MsgBox"已入库!
",,"提示"
Text5.Text=Val(Text5.Text)+Val(Text1(5).Text)
Data1.UpdateRecord
Text1(0).SetFocus
Text1(0).Text=""
Fori=1To9
Label1(i).Visible=False
Nexti
Fori=1To6
Text1(i).Visible=False
Nexti
Text8.Visible=False
EndSub
作用:
收费入库,并提示收费员相关信息。
此窗体上用了3个data控件,data1与水费管理表相连,data2与用户管理表相连,data3与当前价格表相连,连接方法同前一节,这边不再重复。
5.3.2查询缴费情况模块的实现
1.运行界面:
2.实现过程:
界面的实现方法同上,下面主要看关键代码:
单选按钮组的代码为:
PrivateSubOption1_Click(IndexAsInteger)
Fori=0To2
IfOption1(0).Value=TrueOrOption1
(1).Value=TrueThen
Text1.Visible=True
DTPicker1.Visible=False
Else
IfOption1
(2).Value=TrueThen
Text1.Visible=False
DTPicker1.Visible=True
Else
MsgBox"请选择查询的项!
",,"提示"
EndIf
EndIf
Nexti
Command1.Visible=True
EndSub
主要选择查询的项。
“查询“的主要代码为:
PrivateSubCommand1_Click()
IfOption1(0).Value=TrueThen
SQL="select*from水费管理where总户号='"&Trim(Text1.Text)&"'"
Else
IfOption1
(1).Value=TrueThen
SQL="select*from水费管理where户名='"&Trim(Text1.Text)&"'"
Else
IfOption1
(2).Value=TrueThen
SQL="select*from水费管理where缴费日期='"&Format(DTPicker1.Value,"yyyy-mm-dd")&"'"
EndIf
EndIf
EndIf
Data1.RecordSource=SQL
Data1.Refresh
IfData1.Recordset.EOFThen
MsgBox"没有您要查询的缴纳水费情况!
",,"提示"
EndIf
EndSub
主要作用:
根据用户的选择,通过SQL语句查询并显示结果。
其中,日期采用dtpicker控件实现,如下:
5.4用户管理模块的实现
1.流程图:
保存入表
2.运行界面:
3.实现过程:
8个按纽组的代码如下:
PrivateSubCommand1_Click(IndexAsInteger)
首条
IfIndex=0Then
Data1.Recordset.MoveFirst
Command1
(2).Enabled=False
Command1
(1).Enabled=True
EndIf
IfIndex=1Then
下一条
Command1
(2).Enabled=True
Data1.Recordset.MoveNext
IfData1.Recordset.EOFThen
Data1.Recordset.MoveLast
Command1
(1).Enabled=False
EndIf
EndIf
IfIndex=2Then
前一条
Command1
(1).Enabled=True
Data1.Recordset.MovePrevious
IfData1.Recordset.BOFThen
Data1.Recordset.MoveFirst
Command1
(2).Enabled=False
EndIf
EndIf
末条
IfIndex=3Then
Data1.Recordset.MoveLast
Command1
(1).Enabled=False
Command1
(2).Enabled=True
EndIf
增加
IfIndex=4Then
Data1.