精品数据库原理及应用课程设计能源收费系统设计与实现.docx
《精品数据库原理及应用课程设计能源收费系统设计与实现.docx》由会员分享,可在线阅读,更多相关《精品数据库原理及应用课程设计能源收费系统设计与实现.docx(15页珍藏版)》请在冰豆网上搜索。
精品数据库原理及应用课程设计能源收费系统设计与实现
数据库原理及应用课程设计能源管理收费系统设计与实现
《数据库原理及应用》
课程设计报告
能源管理收费系统设计与实现
姓名:
XXX
班级:
11级计师
学号:
XXXXXXXXXXXXX
完成时间:
2013年6月5日
西南大学计算机与信息科学学院
2013-6-5
1需求分析
1.1背景分析
信息化建设是供电局建设的重要部分,是一项基础性、长期性和经常性的工作,其建设水平是供电局整体管理水平、供电局形象和地位的重要标志。
信息技术的发展可谓日新月异,然而它在管理电费上的应用却比较滞后。
近几年,各校的供电局信息化建设都在如火如荼地进行着,“供电局信息化管理”被提的很多,但就目前全国供电局的总体情况来看,大多仍处于信息性阶段,我们仍然在摸索怎样才能更有效地让这些信息技术手段为管理电费服务。
供电局相对一般单位而言,拥有更多更专业的人才,掌握着更多的技术和信息,有更活跃的思维,理应在这条路上走在前端。
如何将信息化技术引入到现代供电局管理中来,已是摆在我们每一个人员面前的课题。
为了在供电局信息化管理方面的探索,我选择了“电费系统”的开发作为自己的课程设计课题。
通过这篇课程论文,我将对这段时间的学习作做一回顾,并详细论述采用在B\S模式下ASP技术分析、设计、开发供电局的电费系统的过程。
该系统基本满足了用户(供电局)在电费管理方面的需求,用户界面友好。
系统对用户数据有效地实现了信息电子化处理,从而降低了人工劳动并增加的信息的准确性。
本系统采用PowerBuilder与SQLServer作为开发工具,通过数据库的连接,让PowerBuilder运行在服务器端,每当用户进入系统,可以查询每月的能源用量,收费情况。
1.2功能分析
通过对系统的初步调查,明确了系统开发的目标为:
按照管理信息系统的原理和方法,采用相对成熟、先进的信息技术和手段,支持供电局能源收费管理全过程,该系统基本满足了用户(供电局)在电费管理方面的需求,系统对用户数据有效地实现了信息电子化处理,从而降低了人工劳动并增加的信息的准确性。
系统需主要完成的功能有:
◆用户登录:
用户能登陆该系统,并使每次进入统时会自动提示并验
证用户身份,达到安全管理的目的。
◆用户管理:
方便管理员进行用户信息的增加,删除,修改以及对用
户权限的的设置。
◆能源管理:
增加能源的种类、更改能源的单价等。
◆信息查询:
使用户能够进行能源单价和能源用量以及用户需缴纳费
用的查询。
◆用户交费:
查询出能源使用情况及需缴纳费用之后可以通过网上银
行进行自助缴费。
为了创建一个能源管理收费系统的概貌并实现基本功能,需要完成以下模块:
图1.2-1系统构造模型
1.3运行环境
1.硬件环境
硬件环境:
硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。
由于本系统是一个小型互动交流系统,因此对计算机硬件的要求不高,比较经济,只要配备如表1-1所示的就可以:
表1-1系统开发环境基本配置表
内容
最低配置
建议配置
主机
PⅢ
PⅢ以上
内存
256MB
256MB以上
硬盘
80GB
80GB以上
显示器
SVGA以上
——
2.软件环境
操作系统:
Windows2000/WindowsXP
数据库:
SQLServer2000
软件开发语言:
ASP
该软件的界面美观大方,软件运行稳定。
3.系统开发模式—B/S模式
C/S,即Client/Server,采用Intranet技术,适用于局域网环境,可重用性差。
服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。
客户端需要安装专用的客户端软件。
本系统基于互联网,而B/S,即Browser/Server模式是一种非常合适的体系结构,客户端采用浏览器,WEB服务器采用Windows2000Server+IIS,数据库服务器采用Windows2000Server+SQLServer,IIS服务器通过ODBC与数据库连接,WEB服务器平台采用微软PowerBuilder技术。
WEB服务器作为中间层服务器,单独放置在一台主机上隔离外界与数据库,起到了信息服务器和防火墙的作用。
采用B/S网络结构具有以下优点:
一是简化了客户端,只需在客户端安装浏览器软件(IE或Netscape),不用在不同的客户端上安装不同的客户运用程序;
二是简化了系统的开发和维护,B/S结构的所有功能都在WEB服务器上实现,使开发和维护工作大大减;
三是用户的操作使用更加简单;
四是网上的信息发布更加便利。
(3)B/S模式的三层结构
B/S(Browser/Server)即浏览器/服务器结构的简称。
从图1-1的B/S结构图来看,该结构的核心是中间层服务器,包括WEB服务器和相关的接口程序。
WEB服务器负责接收WEB浏览器的WEB页请求和数据请求,并处理WEB页请求。
数据库接口程序将数据请求转换成数据库服务器能够接受的形式(如SQL),并送到数据库服务器。
在数据库服务器根据数据请求执行相应的数据库操作(如查询、修改、统计等)后,数据库接口程序再将数据结果转换送回WEB服务器。
WEB服务器将结果处理成WEB浏览器能够接受的形式(如HTML)后,发送WEB浏览器。
WEB浏览器解释执行结果并将其显示出来[6]。
图1-1Browser/Server模式的三层分布结构
2总体设计
2.1功能模块设计
系统从功能模块的角度上划分为以下几个功能模块:
人员管理、能源管理、能源查询、用户缴费四大部分,以下是该系统的功能模块图见下图2-1:
图2-1系统模块图
以下是各个模块具体实现功能介绍:
1.人员管理功能:
(1)用户信息管理:
用户登录、用户信息查询。
(2)管理员权限管理:
1)注册用户信息:
包括添加用户的工号,姓名,单位,住址,电话等
信息。
2)修改用户信息:
包括修改用户的工号,姓名,单位,住址,电话等
信息。
3)删除用户信息:
可以删除任意用户的信息。
2.能源管理:
(1)能源用量管理:
包括每月能源使用量的查询与预计。
(2)能源价格管理:
能源价格的调整更新。
3.能源查询:
查询能源情况,包括水、电、气等的单价和用户使用量。
4.用户缴费信息查询:
根据用户能源使用情况及能源价格由系统计算并给出用户需要交费的情况,可查到水、电、气等的用量及单价、费用、总价等。
3数据库设计
3.1数据库概念结构设计
概念结构设计的主要任务是根据用户需求设计数据库的概念数据模型。
概念模型独立于具体的数据库管理系统,它描述的是从用户角度看到的数据库,反映了用户的现实环境,而与数据库将来怎样实现无关。
在需求分析基础上设计出能够满足用户各种需求的实体及它们之间的关系,从而为以后的逻辑结构设计作好铺垫。
本系统实体E-R图:
(1)数据库的管理员概念结构:
(E—R图)
(2)数据库的能源概念结构:
(E—R图)
(3)数据库的管理员概念结构:
(E—R图)
(4)关系图:
(E—R图)
3.2数据库逻辑结构设计
逻辑设计是将现实世界的概念数据模型设计成为适应于特定数据库管理系统的逻辑数据模式。
逻辑数据模式也被简称为逻辑模型或数据模式,关系数据库的数据模式是关系模式。
如果数据库采用关系数据库,则需要把E-R图或类图描述的概念数据模型转换为等价的关系模式及其约束。
1.权限表:
字段名
数据类型
是否为空
是否主键
说明
number
char
否
是
工号
password
char
否
否
密码
gran
char
否
否
是否管理员
2.能源单价表:
字段名
数据类型
是否为空
是否主键
说明
month
long
否
是
月份
water
Decimal
是
否
水单价
electricity
Decimal
是
否
电单价
gas
Decimal
是
否
气单价
3.能源用量表:
字段名
数据类型
是否为空
是否主键
说明
month
long
否
是
月份
number
char
否
是
工号
waternum
Decimal
是
否
用水量
electricitynum
Decimal
是
否
用电量
gasnum
Decimal
是
否
用气量
4.用户权限表:
字段名
数据类型
是否为空
是否主键
说明
number
Char
否
是
工号
name
Char
是
否
姓名
company
Char
是
否
单位
department
Char
是
否
部门
address
Char
是
否
住址
phone
Char
是
否
电话
4详细设计
4.1系统总体结构设计
开放式机房互动交流系统对用户进行权限设置,保证合法用户最大限度的获得自己的合法操作。
用户的每次操作,系统都会对用户的身份作出验证,保证系统的最大安全性。
由于系统的数据都保存在数据库中,所以当访问数据时,都要使用ADO进行数据访问,这样可以避免系统直接访问数据库,保证数据的安全。
开放式机房互动交流系统主要包括以下功能:
(1)用户信息查询
(2)能源价格查询
(3)能源用量查询
系统的总体工作示意图如图4-1所示:
图4-1系统工作示意图
4.2系统登录模块的设计
在这个能源管理收费系统中,由登录主界面进行管理员权限确定,从而进入管理界面或是查询界面。
在进行用户登录的时候,要求检验用户名和密码的一致性,否则不能登录。
过程如下:
输入:
用户名和密码。
处理:
检验用户名和密码的一致性。
输出:
管理界面或是查询界面。
根据上述功能介绍,得到该模块的程序流程图,如图4-1所示:
图4-1能源管理登陆模块流程图
5系统实现
5.1登录模块的实现
本页面为能源管理收费系统提供一个登录的界面。
选择登陆身份:
是否为管理员,点击登录,进入登陆界面。
用户登录界面,如图5-1所示:
********这是用户登录界面******
图5-1用户登录界
实现的程序代码为:
stringpwd,gran
sle_1.text=trim(sle_1.text)
sle_2.text=trim(sle_2.text)
gonghao=sle_1.text
pwd=sle_2.text
ifsle_1.text=""orsle_2.text=""then
messagebox("提示","请键入必要的信息",Information!
)
endif
////////////////////////////////
ifsle_1.text<>""andsle_2.text<>""then
selectQualification.graninto:
granfromQualificationwhereQualification.number=:
gonghaoandQualification.password=:
pwd;
ifsqlca.sqlcode<>0orsqlca.sqlcode=100then
messagebox("错误","无此用户,请检查用户名和密码"+sqlca.sqlerrtext,Information!
)
elseifgran=rb_1.textthen
open(w_user)
elseifgran=rb_2.textthen
open(w_manager)
endif
endif
sle_2.text=""
sle_1.text=""
rb_1.checked=true
5.2系统主界面设计
登录以后,如果是管理员则进入信息管理模块:
*******这是能源价格管理模块********(下图)图5.2-2
********这是能源用量管理模块********(上图)图5.2-3
实现的程序代码为:
tab_1.tabpage_1.dw_1.settransobject(sqlca)
tab_1.tabpage_1.dw_1.retrieve()
intll_info
ifdw_1.deletedcount()>0ordw_1.modifiedcount()>0then
ll_info=messagebox("提示","数据已经改动,确认修改?
",Information!
yesno!
2)
choosecasell_info
case1
dw_1.update()
case2
return
endchoose
endif
ifdw_1.update()>0then
commitusingsqlca;
messagebox("提示","成功修改数据库",information!
)
endif
tab_1.tabpage_2.dw_2.settransobject(sqlca)
tab_1.tabpage_2.dw_2.retrieve()
intll_info
ifdw_2.deletedcount()>0ordw_2.modifiedcount()>0then
ll_info=messagebox("提示","数据已经改动,确认修改?
",Information!
yesno!
2)
choosecasell_info
case1
dw_2.update()
case2
return
endchoose
endif
ifdw_2.update()>0then
commitusingsqlca;
messagebox("提示","成功修改数据库",information!
)
endif
tab_1.tabpage_3.dw_3.settransobject(sqlca)
tab_1.tabpage_3.dw_3.retrieve()
intll_info
ifdw_3.deletedcount()>0ordw_3.modifiedcount()>0then
ll_info=messagebox("提示","数据已经改动,确认修改?
",Information!
yesno!
2)
choosecasell_info
case1
dw_3.update()
case2
return
endchoose
endif
ifdw_3.update()>0then
commitusingsqlca;
messagebox("提示","成功修改数据库",information!
)
endif
tab_1.tabpage_4.dw_4.settransobject(sqlca)
tab_1.tabpage_4.dw_4.retrieve()
intll_info
ifdw_4.deletedcount()>0ordw_4.modifiedcount()>0then
ll_info=messagebox("提示","数据已经改动,确认修改?
",Information!
yesno!
2)
choosecasell_info
case1
dw_4.update()
case2
return
endchoose
endif
ifdw_4.update()>0then
commitusingsqlca;
messagebox("提示","成功修改数据库",information!
)
endif
5.3普通用户则进入用户查询模块
实现的程序代码为:
ifddlb_1.text=""then
messagebox("提示","请选择要查询的月份",Information!
)
else
yuefen=ddlb_1.text
dw_1.settransobject(sqlca)
dw_1.retrieve(gonghao)
dw_2.settransobject(sqlca)
dw_2.retrieve(yuefen)
dw_3.settransobject(sqlca)
dw_3.retrieve(gonghao,yuefen)
endif
参考文献
[1]陈明.软件工程学教程[M].科技出版社,2002.
[2]萨师煊,王珊.数据库系统概论(第三版)[M].高等教育出版社,2000.
[3]汪晓平,钟军主编.PowerBuilder9.0网络开发技术[M].北京:
人民邮电出版社,2003.12
[4]王健南主编.PowerBuilder9.0数据库管理项目精解[M].北京:
航空工业出版社,2006.10.
[5]傅雅慧.戚红军.高宁军主编.基于Web开发科研管理与服务信息系统[J].中华医学科研管理杂志,2004,03:
89-91.
.
总结
遇到的问题及解决方案
(1)在进行了需求分析后就开始画业务流程图、数据流图和E-R图等,但是发现画了很多次在后面的设计中总会有没想到的部分,主要原因在于对整个系统不太熟悉,没有系统的规划,后来通过自顶向下的方法,一步一步的分析并画出功能分析图,然后才进行具体的其他设计工作。
(2)在建立数据库的各基本表的过程中,总会出现错误,有语法错误,有变量同名错误,后来通过整体先进行逻辑结构设计先确定各变量名,边写SQL语言边执行,慢慢的出错就少了。
(3)在将设计的界面与数据库连接时总是连接不上,后来通过老师的指导慢慢的把不对的地方改了就连接成功了。