1、目录学生公寓水电管理系统的设计与实现13.1系统模块分析63.2系统模块的功能84.1数据库的建立124.1.1创建数据库124.1.2 TADOConnection控件对象的设置154.2主程序界面设计164.3用户检测模块程序设计164.4用户管理模块设计214.5密码修改模块设计234.6系统初始化模块的设计254.7寝室管理模块设计254.7.1寝室基本信息模块254.7.2水电费的管理264.8查询模块的设计264.9综合查询模块的设计27学生公寓水电管理系统的设计与实现摘要在中国经济飞速发展的大潮中,高等教育事业的迅速发展,使高等学校的规模不断的扩大。高校的水电设施与用量也在急剧的
2、增长。水电的管理和费用的结算就成为高等学校后勤管理的一个突出的问题。随着科学技术的飞速发展, 计算机已经运用于高校的管理领域, 以便捷、快速的手段, 成为高校管理的不可缺少的工具。以往的靠人工进行水电费结算和管理的方式已经不能再适应高等学校的发展。根据某高校的实际情况和后勤管理的需要,文章对高校的水电管理进行了研究,并对学生公寓水电管理提出了新的设想。目前的水电管理系统基本都是针对大型住宅小区的,针对高校的水电管理比较少,而且功能不全。所以,文章结合某高校的实际情况和后勤管理的需要,运用Delphi7.0应用开发软件和Microsoft Access 2000数据库系统设计了针对高校学生公寓的
3、水电管理系统。它采用ADO技术实现对数据库的管理,不仅能够实现正常的水电费计算和分析功能,还能实现对学生公寓的管理,能够方便的实现寝室学生信息的查询和管理。关键字:水电管理系统;Delphi7.0;Access 2000;ADOThe Design and Implementation of Management System of Water and Electricity in Students DormitoryAbstractWith the rapid development of Chinese economy, high education develops quickly, w
4、hich makes the scale of colleges and universities expands rapidly, and their facilities and the using of water and electricity increases sharply. The management and cost settlement of water and electricity become the outstanding problem of the logistics of colleges and universities. As the science d
5、evelops quickly, computers, which become an important tool, have already been used in the managing area in colleges and universities because of its convenience and quickness. Manual settlement and management cannot adjust to the development of colleges and universities any more. According to the sit
6、uation of some university and the need of its logistics, I have done some researches on the management of water and electricity; I put forward my own idea. Nowadays, most managing systems of water and electricity are designed for communities, systems designed for colleges and universities are less a
7、nd even without complete functions. Thus, combining the fact of the university and the need of the logistics, this paper designs a managing system of water and electricity for students dormitory in colleges and universities by using Delphi 7.0, thesis utilizes, Microsoft Access 2000. It adopts ADO t
8、o implement the management of the database that can calculate and analyses the using of water and electricity as well as manage students dormitory. Whats more, it can implement the search and management of the students information in dormitories.Key Words:Management System of Water and Electricity;D
9、elphi 7.0;Access;ADO1引言中国的高等学校为了满足社会主义建设对人才的需要正在不断扩大招生规模。随着高校事业的迅速发展,高校的规模不断扩大。校园内的水电设施,水电用量也急剧增长。高校的水电问题一直是摆在水电管理者面前的一个难题1。传统的手工操作为主的水电管理方式,信息反馈慢,管理效率低,管理质量差,浪费了较大的人力资源,已经不适合当前社会和高等学校发展的需要了。在当今的信息社会里,计算机被广泛的运用到社会、生活的各个领域。其强大的功能和运用潜力已经被人们所重视。以往的那种仅靠人力的、落后的管理方式与时代的发展速度显得格格不入,应该被时代所淘汰。把计算机引入高校水电管理会带来怎
10、样的变化呢?在目前的市面上,管理系统软件五花八门,各种各样的都有。根据调查和了解,在学生公寓水电管理系统这一方面也有不少好的管理软件。比如:运用PowerBuilder这种独立于数据库的可视化开发工具,并通过内置的数据库专用接口或ODBC (Open DataBase Connectivity,开放数据库互连)访问多种大型数据库来实现水电管理系统。目前,被广大程序员青睐的是Delphi、SQL(Structured Query Language)语言和ADO(Active Data Object)技术。Delphi7.0是Borland公司推出的应用程序开发软件,是可视化应用编程开发环境,面向
11、对象编程语言Object Pascal,快速编译器和数据库编程工具的比较完美的结合,并能够适应不同的运行环境和软、硬件配置,极有利于应用系统的推广和利用。“真正的程序员用c,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi被称为第四代编程语言,它的特点是简单、高效、功能强大。Delphi具有以下特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术。但最重要的还是Object Pascal语言,它才是一切的根本。 Object Pascal语言是在Pascal语言的基础上发展起来的。它具有:数据类
12、型丰富;既支持程序化结构设计,又支持面向对象程序设计;编译速度快等特点。Delphi提供了各种开发工具,包括集成环境、图像编辑(Image Editor),以及各种开发数据库的应用程序,如Desktop Database Expert等。在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件1。正因为Delphi有如此多的优点,所以我选择Delphi7.0作为前端开发工具。SQL语言是关系数据库管理系统中的一种通用的结构代查语言。Delp
13、hi系列工具对关系型数据库的SQL访问是通过Query控件来实现的。Query控件是利用SQL属性来保存应用程序要执行的SQL命令文本的2。Microsoft SQL Sever是在Windows系列操作平台的应用中最为广泛的操作系统,结构化查询语言是最常见是大型数据库编程语言。它最大的特点就是图形化的用户界面,使系统管理和数据管理更加直观、简单 3。ADO技术是微软公司推出的一套数据库管理规范。它使应用程序能够通过OLE DB提供者的驱动程序访问和操作数据库。而OLE DB是有一个基于COM的数据访问规则和API函数的集合,并经过了简化。OLE DB Provider是向应用程序提供这些规则
14、和函数用以访问这些数据库。在访问数据库时,ADO采用的是直接访问技术,采用ADO的优点主要有这样三个:第一,速度快,占用内存小,主要是因为它能直接使用操作系统中的API函数;第二,它支持目前最为热门的Web应用开发;第三,它支持RDS(Remote Data Sever,远程数据服务),即通过客户端程序直接从远程服务器中把数据读取到客户端,待客户端处理完这些数据后,再将修改后的数据返回远程服务器4。这些优点对于以后校园网的建设,以及校区之间的管理都提供了很好的发展空间。在校园网建立以后,运用ADO进行数据库管理的学生公寓管理系统能够较方便的实现系统的扩充。根据学院的具体情况和后勤办公室的老师对
15、该系统提出的要求,我决定选择Delphi7.0Microsoft Access 2000ADO来开发以一个多用户单机数据库管理系统,即学生公寓水电管理系统!2系统的需求分析学生公寓水电管理系统是根据我们学院的实际情况来开发的。我们学院有5栋学生公寓,每个公寓有5层楼,每层楼25间寝室,另外的几栋新公寓还在建设中。每个寝室都拥有独立的水表和电表。根据实际情况的调查和分析,学生公寓水电管理系统应该具有这样一些功能,能够根据管理员每个月所抄的水、电表度数,在输入水电管理系统后,能够自动结算每个寝室的水电费,在月终,还应该能实现报表的制作,方便水电费的结算和查询。这些是一个水电管理系统的最基本要求,也
16、是水电管理系统的主要功能。在分析了水电管理系统应该具有的基本功能之后,我还考虑到应当增加水电费的分析功能。这样通过图形能够直观的显示每一栋寝室在总的水、电费中所占的比例,这样能够给水电的管理带来一定的方便。在和后勤集团的老师沟通后,老师肯定了水电管理基本功能的设计,同时还建议把学生的基本信息和寝室的基本信息也添加在水电管理系统中,这样方便于后勤处的老师对寝室和学生的管理。这样,在实现学生公寓水电管理系统中,我加入了寝室管理和学生管理功能,在建立数据库时,建立了有关学生基本信息的数据表。为了方便对老师对寝室的管理,我还增加了相应的查询功能,能够实现对寝室信息和寝室成员基本信息的方便、快捷的查询。
17、在方便老师对寝室和水电费的管理的同时,考虑到数据库管理和维护的方便,我决定用Delphi7.0Microsoft Access 2000ADO来实现该管理系统的开发。 3系统流程分析3.1系统模块分析本系统分为两个主要模块,即:管理员模块和查询模块。管理员模块是管理员用来对系统进行管理的,包括以下五个功能:用户管理、系统的初始化、寝室管理、水电费管理和综合信息查询。而查询模块是非管理员登陆时,进入的系统,它不同于管理员模块中的综合查询模块。综合查询模块可以实现对水、电费和寝室资料的查询(包括寝室成员信息),而查询模块只能实现寝室水、电费的查询和用户自己密码的修改,系统的结构如图3.1所示。学生
18、公寓水电管理系统系统初始化模块水电费管理模块寝室管理模块用户检测模块综合查询模块用户管理模块管理员模块非管理员模块查询模块密码修改模块图3.1 系统结构图主模块主要设置主菜单和快捷按钮,以及对各功能模块的调用,大部分功能模块均采用对立的窗体设计。在建立数据库系统时,我采用的是单机结构 。每个月,管理人员把抄来的各寝室的水、电表读数输入计算机中的学生公寓水电管理系统,系统会根据输入的数据和设置的水电费单价自动算出每个寝室当月的水费和电费。每个寝室也可以在后勤处的老师那里查询到当月要交的水电费。系统的体系结构如图3.2所示。数据库管理员非管理员判断用户的操作权限管理员模块查询模块ADO图3.2系统
19、结构图3.2系统模块的功能系统主要模块的功能主要有:用户检测模块中主要实现用户的合法性检查和读取操作的权限。用户要通过窗口输入用户名和登陆密码,经过程序的验证后才能进行以后的操作,如果验证的结果不正确,则提示密码错误,不能进行以后的操作。该模块的流程图如图3.3所示。开始图3.3 用户检测模块流程图用户管理模块的功能主要是对用户进行管理,包括用户信息管理和密码管理,它还能够进行用户的增加、删除和修改,并能设置每个用户的权限。这里把用户的操作权限分为2类,即管理员权限、查询权限。每个权限的用户都只能进行该权限以内的操作,不能跨越权限进行操作。用户管理模块是管理员模块中的主要功能之一,非管理员用户
20、不能进入该模块。在该模块的流程图如图3.4所示。开始用户管理界面增加用户修改用户信息删除用户向数据库中添加内容修改数据库中的内容删除数据库中的内容完成添加,存入数据完成修改,存入数据完成删除操作,修改数据表用户选择操作类型图3.4 用户管理模块流程图寝室管理模块只要是维护系统中的寝室信息,它可以对信息进行增加、删除和修改。该模块中以寝室编号为主键,即寝室编号不允许重复,所有的寝室信息都保存在数据库中的寝室表中。综合信息查询模块只在管理员的操作界面中出现,主要实现对寝室水电费的查询以及对寝室信息的查询。水电费的查询以寝室为单位,可以查询单个寝室也可以查询每层楼的所以寝室以及每栋楼的所有寝室。寝室
21、信息查询,可以查询到寝室成员的基本信息。该模块的流程图如3.5所示。开始进入用户查询界面输入寝室号码管理员选择查询内容查询寝室信息查询当前水电费访问数据库中学生管理表访问数据库中水电费管理表显示查询结果显示查询结果图3.5 综合信息查询模块流程图水电费管理模块主要功能是实现对每月的水电费的结算,并能够制作出每月报表。当寝室的水电费低于一定值时能进行及时的提醒。密码修改模块主要是对用户的密码进行修改,只有具有管理权的操作员才可以修改其他操作员的密码,除此之外的操作员只能修改自己的密码。在以上这些功能中,只有管理员才能进行全部的操作,而当没有管理员资格的用户登陆时,只能进行查询和其他相应的操作,这
22、些功能在4.4节中会详细介绍。在学生公寓水电管理系统数据库中,各数据表之间的关系,如图3.6所示。在图中,水电费管理和学生管理的外键是寝室的编号,学生管理中,“所在院系”表的外键是“院系表”。这样,四个表中的关系都确定下来了。在对数据的查询时,也能够比较方便的实现。图3.6 各数据表的关系图4水电管理系统的实现4.1数据库的建立在该管理系统,我使用的后台数据库是Microsoft Access Sever系统。在Access 2000 Sever中建立7个数据库它包含用户管理表、寝室所在栋表、寝室所在层表、寝室号码表、寝室水电费表、学生管理表和学生所在院系表。在用户管理表中,主要有用户名、密码
23、、操作权限等字段。这些字段可以实现操作员的管理,在管理员登陆时,在数据库中查找是否有该用户名,再验证用户名与密码是否正确,在成功登陆后,系统自动阅读操作员的操作权限,从而给出相应的操作菜单。当用户不具有相应的操作权限时,体系会自动提示“对不起,您不具有该使用权限!”。只有管理员才可以进行所有操作,而其他非管理员只能进入查询功能模块。4.1.1创建数据库启动Microsoft Access 2000,并创建用户管理表,设置以下字段名:用户名、密码、所在部门、权限和最后修改日期,并设置相应的数据类型,如表4.1所示。表4.1 用户管理表的设置序号字段名称数据类型数据宽度说明1用户名文本8主键2密码
24、文本83所在部门文本84权限数字5操作员文本86最后修改日期日期/时间设置好的Access数据表如图4.1所示。在这个表格中实现对操作员信息的存储。图4.1 用户管理数据表我把寝室的编号分为三段:寝室所在栋、寝室所在层和寝室门牌号码,分别建立三个寝室表,在设置这三个字段的数据类型时,我把它们都设置为文本,字段大小都设置为2个字节。这样建立数据表,在以后的查询和数据的输入时可以运用Delphi中的下拉列表,可以唯一的选定寝室的编号,从而进行精确的查找和数据的输入,防止管理员在输入数据是输入错误的寝室号码而引起数据库的修改错误。建立寝室号码表,包含寝室的编码和寝室所在楼层这2个字段,寝室编码包含寝
25、室所在栋、层和门牌号码,是这三个字段的叠加,所以在设置字段大小时要设置为6个字节,数据类型也同样设置为文本,如图4.2所示。图4.2 寝室号码数据表寝室所在层数据表包含寝室所在层、寝室所在栋这两个字段,如图4.3所示。图4.3 寝室所在层数据表寝室所在栋数据表如4.4图所示。图4.4 寝室所在栋数据表再建立寝室水电费表。并设置好表中的字段,如图4.5所示。图4.5 寝室水电费数据表在表中设置字段寝室号码、水表度数、水费、电表度数、电费、结算时间和id。数据类型如图4.5所示。我把学生信息中的院系作为单独的一个数据表来设置,因为院系和学生是多对一的关系,如果把院系作为学生的一个属性设置在学生管理
26、表中,在存储学生的信息时,每次都要存储院系,而院系是固定的。如果这样建立表的话,就会造成信息的冗余和存储空间的浪费,所以,我把学生的院系作为单独的数据表来进行建立。在Access中建立院系表,并设置院系、联系电话和id字段,如图4.6所示。图4.6 院系数据表最后建立学生管理的数据表,学生管理数据表中包含学生的基本信息,其中包含学号,姓名等。因为每个学生的学号是唯一的,所以把它设置为主键,如图4.7所示。图4.7 学生管理数据表所有建立好的数据表如图4.8所示。图4.8 学生公寓水电管理数据库在建立好这些表以后,我们就可以选择驱动程序对数据库进行驱动了。4.1.2 TADOConnection
27、控件对象的设置ADO技术是Microsoft提供的一个数据访问标准,在采用ADO技术的应用系统中,数据集控件通过TADOConnection控件对象访问当前所创立的数据库系统,所访问的数据库系统的设置均在TADOConnection控件对象中3。在本系统中也不例外。向每一个FORM中添加TADOConnection组件,在对该组件进行设置。通过Build按钮开打开数据连接属性对话框,在数据库的驱动程序名中选择Microsoft Jet 4.0 OLE DB Provider来对数据表进行驱动。我们可以通过Test Connection对设置好的驱动进行设置,如果已经设置好,则系统会提示已经设置
28、成功。4.2主程序界面设计主程序主要设计主菜单和快捷按键,主要包括“系统管理”、“水电费管理”、“综合查询”通过模块调用实现对各功能模块的调用。程序的主界面如图4.9所示。图4.9 系统主界面图在主界面中加入TMainMenu控件对象,并命名为“系统管理”,里面的菜单条包括“操作员管理”、“密码修改”、 “寝室管理”和“退出”。同样地再加入一些控件,这些控件对象作为相应功能模块的快捷按钮。各控件对象设置如表4.2所示。4.3用户检测模块程序设计该模块的主要功能是实现用户的合法性检查和读取操作权限,再根据用户的操作权限判断是执行管理员模块程序,还是非管理员模块程序。用户在启动应用程序时,首先弹出
29、该模块窗口,要求用户输入登陆名和密码,程序对输入的用户名和密码进行验证(数据表的“操表4.2 主界面的控件属性设置序号对象名属性名属性值说明1SpeedButton1Glyphkey.bmp对应“操作员管理按钮“Hint“操作员管理“ShowHintTure2SpeedButton2Glyphblubon.bmp对应于“密码修改按钮“Hint“密码修改”ShowHintTure3SpeedButton3GlyphUngroup.bmp对应“寝室信息”Hint“寝室信息”ShowHintTure4SpeedButton4Glyphnowfee.bmp对应“当前水电费”Hint“当前水电费”Sho
30、wHintTure5SpeedButton5Glyphcheck.bmp对应“月结算”Hint“月结算”ShowHintTure6SpeedButton6Glyphshow.bmp对应“寝室查询”Hint“寝室查询”ShowHintTure7SpeedButton7Glyphshownow.bmp对应“当前水电费查询”Hint“当前水电费查询”ShowHintTure8SpeedButton8Glyphanalysis.bmp对应“水电分析”Hint“水电分析”ShowHintTure9SpeedButton9Glyphdoorshut.bmp对应“退出”Hint“退出”ShowHintTur
31、e作用户表”中保存了全部的操作用户的信息),如果验证没有通过则允许重试3次,如果3次均出错,则退出,如果正确,则读取该用户的操作权限,传递给主程序,这时主程序设置该用户允许操作的菜单条和快捷按键,当管理员登陆时,他的操作权限为“0”,具有最高的权限,则执行管理员模块;如果是其他用户登陆时,则执行非管理员模块,非管理员模块只具有查询功能,即只能对寝室当前的水电费和历史水电费进行查询,无法进行修改和其他操作。用户检测模块的设计操作界面如图4.10所示。图4.10 用户检测模块界面该模块的设计步骤如下:向该窗体中加入2个TLable控件对象,2个TEdit控件对象和2个TBitBtn控件对象,其Na
32、me属性值分别为Lable1、Lable2、Edit1、Edit2、BitBtn1、BitBtn2。这些控件对象的属性设置如表4.3所示。表4.3 用户检测界面的控件属性设置序号对象名属性名属性值说明1Lable1Caption“用户名”2Lable2Caption“密码”3Edit1Text“ ”输入登陆名MaxLength84Edit2Text“ ”输入登陆密码MaxLength8PasswordChar“*”5BitBtn1Caption“确定”确认输入的登陆名和密码Glyph“check.bmp”6BitBtn2Caption“取消”退出登陆模块Glyph“doorShut.bmp”向
33、窗口里加入1个TDatabase空间对象,用它连接并打开数据库文件。设置该对象的Aliasname属性为apartment,设置LoginPrompt属性值为False,表示在打开数据库文件时不弹出数据库登陆窗口,为了能使数据库文件能正常打开,为该控件对象设置OnLogin事件,当试图打开数据库时触发该事件,一般在该事件处理中提供数据库的用户名和密码。该事件处理的代码如下:procedure TCheckUserForm.Database1Login (Database:TDatabase;LoginParams:TStrings);beginloginparams.Clear;loginpa
34、rams.add(user_name=adminstator);loginparams.add(password=000000);end;选中该窗体,通过双击Object Inpector窗口的Events页的OnActivate栏,创建OnActivate事件处理程序,该程序在主要模块启动时执行,这里还应该完成初始化功能。双击“确定”,建立该按钮的OnClick时间处理程序,即对输入的登陆名和密码进行验证。代码如下:procedure TCheckUserForm.BitBtn1Click(sender:TObject);varquery1:TQuery;beginquery1:=TQuer
35、y.Create(self);query1.DatabaseName:=管理员用户表;database1.Connected:=ture;query1.Close;query1.SQL.Clear;query1.SQL.add(select*from operator where username=:s0 and password=:s1);query1.params.Clear;query1.params.CreateParam(ftstring,s0,ptinput);query1.params0.Value:=edit1.text;query1.params. CreateParam(f
36、tstring,s1,ptinput);query1.params.1.Value:=edit2.text;query1.Prepare;if not query1.IsEmpty thenbeginusername:=edit1.text;right1: query1.FiledByName(right_1).asBoolean;right2: query1.FiledByName(right_2).asBoolean;i:=0;endelse begin i:=i-1;username:= ;Application.MessageBox(您输入的用户名或密码错误,请检查!,提示信息,mb_
37、ok);End;If i=0 thenbeginclose;end;query1.Close;database1.Connected:=flase;end双击“退出”按钮,为该按钮建立OnClick事件,为该模块设置退出功能。在主程序MainForm中,为该模块建立事件调用,通过模块的Object Inspector窗口Events页,建立OnActivate事件,该事件在主程序启动时执行。4.4用户管理模块设计该模块是管理员模块中的主要功能模块,主要功能是进行用户的信息管理。该功能模块能够进行用户的增加、删除和修改,包括用户的基本信息和密码,还能够设置每个用户的操作权限。本系统把用户权限分为
38、两类,即管理员权限和非管理员权限。只有管理员才能进入用户管理模块,实现用户的增加、删除和修改。管理员能够修改任何用户的信息和操作权限。而非管理员模块中不具有这个功能模块,如果非管理员要修改自己的基本信息,要通过管理员才能实现。非管理员只能在非管理员模块中修改自己的密码。该模块设计的操作界面如图4.11所示。图4.11 用户管理界面图该模块所有的控件对象设置如表4.4所示。表4.4 用户管理界面的控件属性设置序号对象属性名属性值说明1GroupBox1Caption“用户信息”2Label1Caption“用户名”3Edit1Text“ ”输入用户名MaxLength84Label2Captio
39、n“密码”5Edit2Text“ ”输入密码MaxLength8passwordChar“*”6Label3Caption“所属部门”7Edit3Text“ ”输入所在部门8GroupBox2Caption“操作类型”9RadioButton1Caption“新增”10RadioButton2Caption“删除”11RadioButton3Caption“修改”12Button1Caption“确定”“确定”按钮GlyphCheck.bmp13Button2Caption“退出”“退出”按钮GlyphDoorShut.bmp4.5密码修改模块设计该模块是非管理员模块的功能之一,主要实现非管理
40、员用户的密码修改,非管理员用户可以进入该界面实现对自己密码地修改。该模块的设计窗口如图4.12所示。图4.12 密码修改界面模块的设计步骤如下:表4.5 密码修改界面的控件属性设置序号对象名属性名属性值说明1Label1Caption“输入用户姓名”2Label2Caption“输入新密码”3Label3Caption“重输新密码”4Edit1Text“ ”5Edit2Text“ ”输入密码PasswordChar“*”6Edit3Text“ ”重输一次密码PasswordChar“*”7BitBtn1Caption“确定”“确定”按钮GlyphCheck.bmp8BitBtn2Caption
41、“取消”“取消”按钮GlyphDoorShut.bmp向窗体中加入1个TDatabase控件对象,其Name属性值为Database1,用Database1控件对象连接并打开数据库文件apartment。设置该对象的Aliasname属性为apartment,设置LoginPrompt属性值为False,表示在打开数据库文件时不弹出数据库登陆窗口,为了能使数据库文件正常打开,为该控件对象设置Onlogin事件,当试图打开数据库时,触发该事件,一般在该事件处理中提供数据库的用户名和密码。该模块中的控件属性设置如表4.5所示。该事件处理的源代码如下:procedure TPasswordForm.
42、FormActivate(sender:TObject);beginEdit2.Text:=;Edit3.Text:=;if not right1 thenbeginedit1.Text:=username;edit1.Enabled:=false;edit2.setfocus; end else beginedit1.text:=;edit1.Setfocus;end;database1.Connected:=ture;end;为Edit1创建OnExit事件处理,当光标离开控件对象时,触发该事件,检测所输入的用户名是否存在。为“确定”按钮创建OnClick事件。当确认输入信息时,触发该事件
43、。最后,在MainForm中建立调用该模块的事件。4.6系统初始化模块的设计系统初始化程序是对学生公寓水电系统中所有数据进行维护,清空除Operator数据表以外的所有数据表,对Operator数据表只设置一个默认的系统管理用户,该用户只有管理权,该模块只有具有管理权的用户才能操作,这部分程序代码直接在主程序的系统初始化菜单条的OnClick事件中实现。4.7寝室管理模块设计4.7.1寝室基本信息模块该模块的主要包括寝室成员的基本信息,如:姓名、年级、所在院系、院系的联系电话。管理员可以对以上信息进行新增、修改和删除等操作。在这里可以实现寝室成员信息的输入和删除。当新生进校时,管理员就根据寝室
44、的分配情况,通过该模块输入每间寝室的学生基本信息。在建立数据库时,寝室的编号是唯一的,并且在“学生管理”数据表中建立“寝室编号”字段,这样就可以通过寝室编号把两个数据表联系起来。在输入寝室成员信息时,管理员只要选择寝室号码,便可以添加该寝室学生的信息了。当学生毕业后,管理员同样可以把寝室成员的信息删除。4.7.2水电费的管理该模块主要用于水电费的结算和管理。可以通过Delphi程序向Excel中导入数据,并用Excel生成每月的报表。在制作报表的表头时,先在Excel中把报表的表头制作好,然后直接往表头以下的空白处导入数据,即可生成报表。利用Delphi中的TChart组件实现对水电费的分析。
45、通过柱状图形能够形象的显示水电费的整体构成。4.8查询模块的设计该模块是非管理员用户用来实现水电费查询功能的。它以寝室编号为单位查询学生所在寝室的水电费。如图4.13所示。图4.13 查询模块界面该窗体只能实现对寝室水电费的查询,在模块界面的“寝室”中打开“栋”下拉列表,就能显示目前整个学院寝室的栋数,然后在“层”的下拉列表里面选择寝室是该栋的哪一层,再在最后的“门牌”中选择寝室所在层的寝室门牌号码,例如:要查询的寝室是二栋125寝室,那么在“栋”的下拉列表中选择“2”,然后在“层”中选择“1”,最后在“门牌”中选择“25”,就可以唯一地选中要查询的寝室编码。按“确定”按钮,实现对寝室水电费的查询。该窗体通过SQL语言对数据库进行查询,从而显示用户要查询的信息。该界面的设置步骤如下:首先建立New Form,并保存为feeseek.pas,设置其Caption属性值为“水电费查询”。在窗体中加入1个GroupBox控件对象,其属性值为“查询类型”,再在窗体中加入1个TDBGrid控件对象、1个TADOConnection控件对象、1个TDataSource控件对象、1个TADOConnection控件对象,并设置好其Name的