毕业设计(论文)基于C++及SQL的电力管理系统设计.doc

上传人:仙人指路1688 文档编号:4027571 上传时间:2023-04-01 格式:DOC 页数:30 大小:767.50KB
返回 下载 相关 举报
毕业设计(论文)基于C++及SQL的电力管理系统设计.doc_第1页
第1页 / 共30页
毕业设计(论文)基于C++及SQL的电力管理系统设计.doc_第2页
第2页 / 共30页
毕业设计(论文)基于C++及SQL的电力管理系统设计.doc_第3页
第3页 / 共30页
毕业设计(论文)基于C++及SQL的电力管理系统设计.doc_第4页
第4页 / 共30页
毕业设计(论文)基于C++及SQL的电力管理系统设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《毕业设计(论文)基于C++及SQL的电力管理系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于C++及SQL的电力管理系统设计.doc(30页珍藏版)》请在三一办公上搜索。

1、摘 要 在我国电力管理中,乡村用电是不可缺少的。电力不可避免地要成为国际化企业的动力员,而实现电力信息化是电力管理的必要条件。但是电力管理的多样性及其灵活多变的输出方式,加上相关投入量的限制,使得很多乡村电力没有进行信息化建设。实际上大部分电力需要的只是能解决电力管理、财务管理等的基础软件。因此,开发基于电力应用的管理系统尤为重要。本文以电力管理系统为例详细地介绍了一个电力管理系统的过程。系统基于Microsoft Visual C#.NET 2005和Microsoft SQL Server 2000进行开发,通过密码登陆系统、查询等系统的程序代码,展现整个系统的各项功能模块的具体实现。用户

2、可通过系统增加、查询、修改和删除户主资料中的信息,当交纳电费时可通过户主查询进行智能化的交费,用户还可以通过权限管理对其他用户进行权限设置(仅对电力的管理员有效),用户根据自己的权限实现对不同模块的查询。本文所设计的电力管理系统可以基本上满足电力输出管理。关键词:电力管理系统,Microsoft Visual C#.NET,Microsoft SQL Server目 录第1章 绪论11.1 选题背景11.2 乡村电力管理系统简介及作用1第2章 需求分析22.1 系统需求分析22.2 项目任务目标22.3 乡村电力管理系统的开发工具2第3章 总体设计63.1 功能需求63.2 数据库设计ER-图

3、73.3 数据库列表8第4章 乡村电力管理系统实现104.1 MVC结构104.2 登录功能实现114.3 用户信息维护194.4 村子信息维护窗体204.5 户主查询204.6户主信息维护214.7收费21第5章结果测试及部署225.1 结果测试225.2. 部署26结束语27第1章 绪论1.1 选题背景在市场经济中,用电是人们生活中的重要环节,远距离频繁的业务信息构成了这些电力业务活动的主要特点。这种信息传递、管理方式不仅效率低、可靠性和保密性都无法满足要求,而且数据统计时间严重滞后,往往是当领导了解到业务的出现问题时,就已经远离了问题出现的时间和地点。通过管理系统,及时通过网络把决策信息

4、传递到相关决策人,从而可以及时发现问题解决问题,更好地把握机会。现在的电力管理,大都采用传统的人工管理的模式,这对于规模较小来说,是可以应付日常的管理需要的。但是,随着电力的使用范围扩大,人力的管理已经管理不了,改善电力管理以及整个供应链 各个环节的管理、调度及资源配置成为了当前必须考虑的问题。而解决这些问题的途径之一,就是将计算机引入到管理机制中来。21世纪是信息时代,在这个信息时代里竞争异常激烈,手工管理这种传统的管理方法必然被计算机为基础的信息技术所取代,所以实现的信息智能化管理特别重要。通过电力管理系统可以解决日常中包括人们用电、交纳电费等所有业务环节在内的科学化管理,完成业务数据共享

5、及决策支持。彻底解决与“供应链“体系相关联的一切信息化问题。1.2 乡村电力管理系统简介及作用乡村电力管理系统是为了加强电力管理,以便通过输出电量和交纳电费等信息,从而可以及时发现问题,解决问题,更好地运用时间和减少人工管理。本系统主要包含用户维护模块、户主信息维护模块、村庄信息维护模块、交纳电费模块、查询模块。乡村电力管理系统是基于先进的软件和高速、大容量的硬件基础上的新的记录管理模式,通过集中式的信息数据库,将业务的经营和电脑有机的结合起来,达到数据共享、提高效率、改进服务等项目。第2章 需求分析2.1 系统需求分析软件的发展和市场竞争的加剧将业务推上了风口浪尖,除了积极迎接挑战而别无选择

6、。网络的兴起与电子商务的发展带来了时空界限的突破、贸易方式的变革以及经济活动的革命,在某种意义上,这些变化为中小企业创造了同大企业、同国外企业平等的有利条件。然而,管理水平的差异会弱化这种平等的实际意义。具体而言,电力管理在环节的管理上都存在着一定程度的不足,而这些不足无疑将使其在市场竞争中陷入举步维艰的境地。显然在网络经济的时代背景下,进行有效的进销存管理已经成为电力管理存身立业的头等要事。然而对于一贯疏于管理的电力管理而言,实现有效的管理必然存在着一定的难度,因此必须借助现代化的管理方法和管理技术计算机管理系统。2.2 项目任务目标通过项目中查询,实现管理工作系统化、规范化、自动化,正确的

7、控制,减少管理费用,从而提高效率。电力管理系统是对电力全面管理,满足如下要求:1. 基本的用户维护:通过增.删.改来编辑用户;2. 基本村民信息维护:通过增.删.改来编辑户主信息;3. 基本的村子资料维护:通过增.删.改来编辑村子信息;4. 村民用电查询:通过相关信息来查询户主信息;5. 员工业务维护:通过增.删.改来编辑员工业务信息;6. 员工信息维护:通过增.删.改来编辑员工信息;7. 员工信息查询:通过相关信息来查询员工信息;8. 收费:通过户主姓名可进行交费;2.3 乡村电力管理系统的开发工具本系统采用Microsoft Visual Studio.NET 为主要开发工具,结合SQL

8、Server 2000 企业版的数据库管理系统。既考虑了系统的需求,又兼顾了运行的效率,以及今后系统的功能拓展等。具有运行效率、开发周期短、扩展能力强、技术规范等特点。2.3.1 Visual Studio.NET 2005Visual Studio.NET(vs)Visual Studio.NET 2005是Microsoft的第二代开发工具,用于构建和部署功能强大而安全的连接Microsoft.NET的软件。Visual Studio.NET 向开发人员提供最具效率的工具,用于为Microsoft Windows和Web创建下一代应用程序。Visual Studio.NET 开发环境拥有大

9、量的窗口、工具栏和工具箱窗口,在开发Visual C# 应用程序时,将会用到它们。该环境可以完全自定义,并且大部分窗口的位置和外观可以按照需要来定义。除了用于编辑文本和窗体的子窗口之外,还有许多窗口驻留在Visual Studio.NET 主窗口的四周:解决方案资源管理器,类视图,资源视图,属性,任务列表,服务器资源管理器,工具箱,其他窗体,可停靠窗口和选项卡式窗口。解决方案能够使用用户把注意力集中在对应用程序的开发和部署来说是必须的项目或项目组上,而不是把注意力分散到管理这些项目的文件和对象等细节上。解决方案允许:在开发环境的同一实例上管理多个项目,同时处理彝族项目的子项、设置和选项,管理解

10、决方案或项目的其他各种外部文件,“解决方案资源管理器”是解决方案的图形化视图,它可以用来组织并管理所有设计、开发和部署应用程序所需的项目和文件。2.3.2 SQL Server 2000Microsoft SQL Server 2000 是一个高性能的客户端/服务器结构的关系数据库管理系统(RDBMS,Relational Database Management System).SQL Server 2000 是为支持高容量的事务处理(比如在线订购录入、存货目录、记帐或制造)以及数据仓库和决策支持系统(比如销售分析应用)而设计的。SQL Server 是一个包含开发工具、系统管理工具、分布式系

11、统组件和开放式开发接口的一系列完整产品的核心部分,它也是Microsoft BackOffice的关键部分。SQL Server 是能够满足OLTP和OLAP环境下的数据存储要求的一系列产品和技术。可以使用SQL Server 完成事务处理、存储和分析数据以及创建新的应用程序。SQL Server 2000还提供了以下新的特性:(1)与Internet的紧密结合:SQL Server2000的数据库引擎集成了对XML的支持,同时以可扩展、易于使用和安全的特点成为建设大型Web站点最好的数据存储设备之。 (2)可扩展性和高可靠性:通过对高端硬件平台以及最新的网络和存储技术的支持,可以为大型的We

12、b站点和企业级的应用提供可扩展性和高可靠性。 (3)企业级数据库和简单、友好的操作界面:SQL Server2000关系数据库引擎具备完善而强大的数据处理功能,它的分布式查询允许用户引用多处数据源,但友好的界面使用户管理好像自始至终都在使用同一个数据源。(4)强大的数据仓库支持:为了满足现代企业对大规模数据进行有效分析和利用的要求,SQL Server2000包含了一系列提取、分析、总结数据的工具,从而使联机分析处理成为可能。SQL Server 2000是Microsoft公司与2000年推出的大型客户/服务器网络关系数据库管理系统,是一个大规模联机事务处理(OLTP)、数据仓库和电子商务应

13、用的优秀数据库平台。SQL Server 2000具有高可靠性、高可伸缩性、支持大型Web站点和支持数据仓库等待点,而且使用方便,易于维护,已被国内外众多用户所使用。其主要特点如下:(1)高性能设计,可充分利用WindowsNT的优势。(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。(3)强壮的事务处理功能,采用各种方法保证数据的完整性。(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。2.3.3 C/S体系结构C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统。C

14、/S结构是在网络基础上,以数据库管理系统为后援,以微机为工作站的一种系统结构。其关键点在于“一分为二”,既把数据存取与应用程序分离开,分别由数据库(Server端)及工作站(Client端)来执行,从而明显地既保证整个系统的运行性能,又增加了系统的易开发性、可扩展性和可维护性。在C/S体系结构中,应用程序分为两大部分:即客户机部分和服务器部分。客户机部分负责执行前台功能;服务器部分执行后台服务。服务器端一定要有一个完整的高效能的关系数据库管理系统(RDBMS, Relational Data Base Management System)。C/S结构应用系统基本运行关系体现为:“请求/响应”的

15、应答模式。每当用户需要访问服务器时就由客户机发出“请求”,服务器接受“请求”并“响应”,然后执行相应的服务,将执行结果送回给客户机,由它进一步处理后再提交给用户。C/S模式的优点由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度快。 操作界面漂亮、形式多样,可以充分满足客户自身的个性化要求。 C/S结构的管理信息系统具有较强的事务处理能力,能实现复杂的业务流程。2.3.4 语言C# Microsoft C#(读作 C sharp)是一种新的编程语言,它是为生成运行在 .NET Framework 上的、广泛的企业级应用程序而设计的。C# 从 Microsoft C 和 Microso

16、ft C+ 演变而来,它是一种简单、现代、类型安全和面向对象的语言。C# 代码被作为托管代码编译,这意味着它能够从公共语言运行库的服务中受益。这些服务包括:语言互操作性、垃圾回收、增强的安全性以及改进的版本支持。C# 在 Visual Studio .NET 套件中作为 Visual C# 引入。对 Visual C# 的支持包括项目模板、设计器、属性页、代码向导、一个对象模型以及开发环境的其他功能。Visual C# 编程的库是 .NET Framework。第3章 总体设计3.1 功能需求3.1.1叙述功能 通过登陆进入主窗体通过收费来储存户主电费,通过用户维护来注册用户,通过乡村信息维护

17、编辑附近乡村,通过户主信息维护来编辑户主信息,通过查询户主的用电信息.3.1.2 电力管理系统主要包括图3-1 系统功能框图主要功能描述:进入程序后,首先出现的是用户登录窗口,在窗体用户名文本框中输入用户名后按Tab键,程序将自动查询用户名并跳到密码输入框中,输入密码后回车即可进入系统。而且必须通过它进行用户的合法性验证,即除非用户输入正确的用户号密码,否则将无法使用进一步的程序功能,如果用户号或密码输入不正确就会出现错误提示。系统的主界面,它是一个简单的窗体,根据用户不同的选择,以便在该窗体的菜单栏和状态栏中间的区域内打开不同的子窗体。用户信息维护,只有管理人员才能进入,可以增加,修改,删除

18、用户的信息。乡村信息维护,用户增加,修改,删除乡村信息,只要是和电力有关的员工就可进入。这是户主信息查询,用户可以在这里查询户主信息,并且可以通过查询可以查询想要得到的信息。3.2 数据库设计ER-图 图3-2 登陆实体图 图3-3乡村信息实体图 图3-4户主信息实体图图3-5员工业务实体图图3-6员工信息实体图 图3-7 数据库关系图3.3 数据库列表3.3.1登陆表表3-1登陆表表 名UserInfo使用模块基本信息管理功能描述登陆序 号字段名中文解释字段类型大小备注01UserName用户名Varchar20PK02UserPwd密码Varchar30 3.3.2 村子信息表表3-2村子

19、信息表表 名Cun使用模块基本信息管理功能描述保存信息序 号字段名中文解释字段类型大小备注01ID村子编号intPK02Name村子名称Varchar503.3.2 户主信息表表3-3 户主信息表表 名Huzhu使用模块基本信息管理功能描述保存信息序 号字段名中文解释字段类型大小备注01ID户主编号Varchar30PK02Name户主名称Varchar3003Tell户主电话Varchar5004CunID所在村intFK 3.3.3 员工业务表表3-4 员工业务表表 名yuanlay使用模块基本信息管理功能描述保存信息序 号字段名中文解释字段类型大小备注01ID业务编号Varchar30P

20、K02Name业务名称Varchar503.3.4 员工信息表表3-5 员工信息表表 名Yuangong使用模块基本信息管理功能描述保存信息序 号字段名中文解释字段类型大小备注01ID员工编号Varchar30PK02Name员工姓名Varchar3003Tell员工电话Varchar5004Dizhi员工地址Varchar5005Minzu员工民族Varchar5006YuanID员工业务varchar30FK 第4章 乡村电力管理系统实现4.1 MVC结构MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础。MVC结构是为

21、那些需要为同样的数据提供多个视图的应用程序而设计的,它很好的实现了数据层与表示层的分离。MVC作为一种开发模型,通常用于分布式应用系统的设计和分析中,以及用于确定系统各部分间的组织关系。对于界面设计可变性的需求,MVC(Model-View-Controller)把交互系统的组成分解成模型、视图、控制器三种部件,模型、视图、控制器三者之间的关系和各自的主要功能。4.1.1 MVC图图4-1MVC 模式4.1.2 系统类关系图图4-2 系统类关系4.2 登录功能实现4.2.1 登录界面图4-3 登录界 4.2.2 登陆功能代码(1)实体类/*模块名称:登录窗体*功能简述:此代码是封装字段*开发人

22、: 王振兴*/namespace wangzhenxing.Model.UserInfo class UserInfoEntity private string userName; private string userPwd; public string UserPwd get return userPwd; set userPwd = value; public string UserName get return userName; set userName = value; (2)接口/*模块名称:登录窗体*功能简述:此代码是接口*开发人:王振兴*/ namespace wangzhe

23、nxing.Model.UserInfo interface UserInfoDAO bool AddUserInfo(UserInfoEntity userinfo); bool UpdateUserInfo(UserInfoEntity userinfo); bool DeleteUserInfo(string userName); bool SeleteUserInfo(UserInfoEntity userinfo); DataTable SeleteUserName(); (3)操作类/*模块名称:登录窗体*功能简述:此代码实现接口方法*开发人:王振兴 */namespace wan

24、gzhenxing.Model.UserInfo class UserInfoDAOImpl : UserInfoDAO SqlCommand cmd = null; public bool AddUserInfo(UserInfoEntity userinfo) bool flag = false; try cmd = new SqlCommand(insert into UserInfo values(userName,userPwd), ConnectionDatabase.getConOpen(); cmd.Parameters.Add(userName, SqlDbType.VarC

25、har, 20).Value = userinfo.UserName; cmd.Parameters.Add(userPwd, SqlDbType.VarChar, 30).Value = userinfo.UserPwd; cmd.ExecuteNonQuery(); flag = true; catch (Exception ee) flag = false; finally ConnectionDatabase.getConClose(); return flag; public bool UpdateUserInfo(UserInfoEntity userinfo) bool flag

26、 = false; try cmd = new SqlCommand(update UserInfo set UserPwd=userPwd where UserName=userName, ConnectionDatabase.getConOpen(); cmd.Parameters.Add(userName, SqlDbType.VarChar, 20).Value = userinfo.UserName; cmd.Parameters.Add(userPwd, SqlDbType.VarChar, 30).Value = userinfo.UserPwd; cmd.ExecuteNonQ

27、uery(); flag = true; catch (Exception ee) flag = false; finally ConnectionDatabase.getConClose(); return flag; public bool DeleteUserInfo(string userName) bool flag = false; try cmd = new SqlCommand(delete from UserInfo where UserName=userName, ConnectionDatabase.getConOpen(); cmd.Parameters.Add(use

28、rName, SqlDbType.VarChar, 20).Value = userName; cmd.ExecuteNonQuery(); flag = true; catch (Exception ee) flag = false; finally ConnectionDatabase.getConClose(); return flag; public bool SeleteUserInfo(UserInfoEntity userinfo) bool flag = false; try cmd = new SqlCommand(select count(*) from UserInfo

29、where UserName=userName and UserPwd=userPwd , ConnectionDatabase.getConOpen(); cmd.Parameters.Add(userName, SqlDbType.VarChar, 20).Value = userinfo.UserName; cmd.Parameters.Add(userPwd, SqlDbType.VarChar, 30).Value = userinfo.UserPwd; int i = (int)cmd.ExecuteScalar(); if (i 0) flag = true; else flag

30、 = false; catch (Exception ee) flag = false; finally ConnectionDatabase.getConClose(); return flag; public DataTable SeleteUserName() DataTable dt = null; try dt = new DataTable(); SqlDataAdapter sda = new SqlDataAdapter(); cmd = new SqlCommand(select UserName,UserPwd from UserInfo, ConnectionDataba

31、se.getConOpen(); sda.SelectCommand = cmd; sda.Fill(dt); catch (Exception ee) dt = null; finally ConnectionDatabase.getConClose(); return dt; (4) 登陆事件代码:/*模块名称:登录窗体*功能简述:此代码验证了登陆不成功时提示错误*开发人:王振兴*/UserInfoEntity info = new UserInfoEntity();UserInfoDAO user = new UserInfoDAOImpl();private void btnOk_Cl

32、ick(object sender, EventArgs e) if (txtUserName.Text.Trim() = ) MessageBox.Show(用户不能为空, 提示, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); txtUserName.Focus(); return; if (txtUserPwd.Text.Trim() = ) MessageBox.Show(密码不能为空, 提示, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); txtUserPwd.Focus()

33、; return; info.UserName = txtUserName.Text; info.UserPwd = txtUserPwd.Text; if (user.SeleteUserInfo(info) this.Hide(); MainForm frm = new MainForm(); frm.ShowIcon = false; frm.ShowInTaskbar = false; frm.ShowDialog(); else MessageBox.Show(用户名或密码错误, 提示, MessageBoxButtons.OK, MessageBoxIcon.Exclamation

34、); txtUserName.Text = ; txtUserPwd.Text = ; txtUserPwd.Focus(); return; 4.3 用户信息维护 图4-4 用户信息维护窗体4.4 村子信息维护窗体图4-5 村子信息维护窗体4.5 户主查询图4-6 户主信息查询窗体4.6户主信息维护图4-7户主信息维护窗体4.7收费 图4-7收费窗体第5章结果测试及部署5.1 结果测试5.1.1 单元测试单元测试(模块测试)是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我

35、们期望的一致。单元测试的优点:1、它是一种验证行为。程序中的每一项功能都是测试来验证它的正确性。它为以后的开发提供支缓。就算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不用担心这个过程中会破坏重要的东西。而且它为代码的重构提供了保障。这样,我们就可以更自由的对程序进行改进。2、它是一种设计行为。编写单元测试将使我们从调用者观察、思考。特别是先写测试(test-first),迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。3、它是一种编写文档的行为。单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同

36、步。4、它具有回归性。自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。5.1.2 黑盒测试黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否 都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。 黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。“黑盒” 法着眼于程序外部结

37、构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。5.1.3 白盒测试白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是 否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号