软件工程综合实践报告企业用电管理系统设计专业学生姓名班级学号指导教师完成日期信息工程学院目录1.项目名称:企业用电管理系统 ............................................. 错误!未定义书签。
1.1编写目的...................................... 错误!未定义书签。
1.2背景说明...................................... 错误!未定义书签。
1.3开发环境...................................... 错误!未定义书签。
2. 软件介绍 ................................................................................. 错误!未定义书签。
2.1目标.......................................... 错误!未定义书签。
2.2用户的特点.................................... 错误!未定义书签。
2.3假定与约束.................................... 错误!未定义书签。
3. 需求分析 ................................................................................. 错误!未定义书签。
3.1对功能的规定.................................. 错误!未定义书签。
3.2对性能的规定.................................. 错误!未定义书签。
3.2.1精度........................................ 错误!未定义书签。
3.2.2时间特性要求................................ 错误!未定义书签。
3.2.3灵活性...................................... 错误!未定义书签。
4. 软件的基本结构 ..................................................................... 错误!未定义书签。
4.1数据管理能力要求.............................. 错误!未定义书签。
5.详细设计 ................................................................................. 错误!未定义书签。
6.部分编码 ................................................................................... 错误!未定义书签。
6.1企业信息查询代码.............................. 错误!未定义书签。
6.2企业用电信息查询代码:........................ 错误!未定义书签。
6.3删除企业用电信息代码:........................ 错误!未定义书签。
6.4删除用电企业信息代码:........................ 错误!未定义书签。
7. 软件核心技术,存在问题等 ................................................. 错误!未定义书签。
8. 实验心得 ................................................................................. 错误!未定义书签。
1.项目名称:企业用电管理系统1.1 编写目的需求的编写是为了研究企业用电管理系统软件的开发途径和应用方法。
同时它也是进行项目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试的依据。
本需求的预期读者是与企业用电管理系统软件开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。
1.2 背景说明管理信息系统, 是现在各个行业中普遍使用的软件系统,随着计算机的普及和我国信息化建设的发展,它的使用已经遍及各行各业。
在电力系统中更是如此,它不仅涉及一些常规的管理,更有些行业的特征。
本系统针对目前在企业用电的使用过程中企业信息以及用电信息的复杂,;因此对企业用电的管理工作已势在必行。
本系统主要分为两张表,分别为企业信息跟企业用电信息,按照企业编号或者名称查询相关信息,同时也查询该企业的用电信息,并且可以进行插入、修改、删除等操作。
本系统研究的就是此过程,即为电能的管理提供一个管理信息系统。
1.3 开发环境采用java编写,可以运行于所有的jdk6.0环境的JEE服务器上。
使用my eclipse开发工具开发,数据库采用sql server 2005。
2. 软件介绍2.1 目标建立的企业用电管理系统,可以简洁明了的实现对企业用电管理,能够对企业以及企业用电信息实现查询、添加、修改、删除等要求。
2.1.1 开发意图a. 为了企业用电管理系统更完善;b. 为了使电力部门对企业用电的管理更方便;c. 为了减轻电力部门人员的工作负担。
2.1.2 应用目标通过本系统软件,能帮助相关电力管理人员利用计算机,快速方便地对企业用电的管理。
2.1.3 作用及范围本软件适用于小范围电力部门管理,以及学生以及相关爱好者学习使用。
2.2 用户的特点本软件的使用对象是相关电力部门及相关编程爱好者,有一定的行业特点。
2.3 假定与约束技术约束:本项目的设计是JAVA程序设计语言的条件下进行的,技术设计采用软硬一体化的设计方法。
环境约束:运行该软件所适用的具体设备必须是奔腾4、内存256兆以上的计算机;3. 需求分析3.1 对功能的规定1、理解需求理解需求是在问题及其最终解决方案之间架设桥梁的第一步。
开发者只有和用户充分理解了需求之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。
下面是对系统的终端用户和客户调研后得到的需求规格说明书。
(1)由于使用者为相关电力部门及学习使用,系统开始时,便可以进入到欢迎界面。
(2)进入到系统之后,友好的界面可以很清晰的分为企业信息管理跟企业用电信息管理两大选择。
(3)点击企业信息管理,下拉菜单中选项可以实现对企业信息的查询、添加、修改、删除操作。
(4)点击企业用电管理信息,下拉菜单中选项可以实现对企业用电管理信息的查询、添加、修改和删除操作。
(5)系统客户端运行在Windows平台下,服务器可以运行在Windows或Unix 平台下。
系统还应该有一个较好的图形用户界面。
(6)系统应该有很好的可扩展性。
2、需求分析需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,确定系统的功能需求。
这个步骤是对理解需求的升华,直接关系到该系统的质量。
分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通机制,因此,系统的需求分析也应该是开发人员和用户或客户一起完成的。
<1>系统功能模块划分根据开发者和客户的需求分析后,可以把系统功能分为两个大的个功能模块:(1)用电企业基本信息模块包括:用电企业编号、地址、电话、联系人的查询、添加、修改、删除等操作模块。
(2)电费信息包括:单价、电量的查询、添加、修改、删除等操作模块。
3.2 对性能的规定3.2.1 精度在精度需求上,根据使用需要,在各项数据的输入,输出及传输过程中,可以满足各种精度的需求。
如:根据关键字精度的不同,查找可分为精确查找和泛型查找,精确查找可精确匹配系统使用者所知道的企业名称及编号快速便捷的查询所要知道的信息。
3.2.2 时间特性要求在软件方面,响应时间,更新处理时间都比较快且迅速,完全满足用户要求。
3.2.3 灵活性当用户需求,如操作方式,运行环境,结果精度,数据结构于其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。
4. 软件的基本结构查询企业信息:输入关键字为企业编号或者联系人姓名,按照精确匹配为主,再索引关联字。
输出时列出索引到的所有企业信息,具体信息包括企业地址,电话等,方便电力管理者查找。
查看企业用电信息:进入企业用电信息管理系统,输入关键字为企业编号或者联系人姓名,按照精确匹配为主,再索引关联字。
输出时列出索引到的所有企业信息,具体信息包括电费单价、电量等。
4.1 数据管理能力要求定时整理数据:系统管理员根据企业用电信息定时整理系统数据库,对用电企业以及企业用电信息的增减等均可有计算机执行,并将运行结果归档。
查询库存量:能随时查询库中用电企业以及企业用电的库存量,以便准确、及时、方便地为企业提供信息,但不能修改数据,无信息处理权。
5.详细设计本系统包含企业信息查询、添加、修改删除跟企业用电信息查询、添加、修改、删除这几大模块。
1、欢迎界面系统打开时,友好的欢迎界面包括了两大选项,即企业信息管理跟企业用电信息管理两大模块。
2、企业信息查询功能在该模块中采用对企业进行编号方式或者企业用电量来管理。
管理者点击进入系统页面之后,便可以输入企业编号,实现对企业信息的查询。
3、企业信息添加功能这部分主要完成的是电力管理者输入用电企业编号、联系人姓名、地址、联系电话,点击添加按钮实现添加功能。
4、企业信息修改功能这部分通过输入要更新的企业编号,输入新的联系人姓名、地址、新的电话,然后点击提交修改按钮,实现对企业信息的修改。
5、企业信息删除功能这部分只要输入企业编号,点击提交删除按钮便可以实现删除功能。
6、企业用电信息查询的功能在该模块中采用对企业用电进行编号来管理。
管理者点击进入系统页面之后,便可以输入企业编号,实现对企业用电信息的查询。
7、企业用电信息添加功能这部分主要完成的是电力管理者输入用电企业编号、输入电费单价,用电量,点击添加按钮实现添加功能。
8、企业用电信息修改功能这部分输入要更新的企业编号,新的电费单价,新的用电量,点击提交修改按钮,实现修改功能。
9、企业用电信息删除功能这部分只要输入企业编号,点击提交删除按钮就可以实现删除功能。
流程图如下:图(1)总体设计图(2)修改操作数据库结构设计:表一:member表字段名数据类型、长度小数点位数是否为空字段含义qiyenumber Char(10) No 企业编号address Char(20) No 企业地址lianxiren Char(10) No 联系人phone Interger No 电话号码表二:dianfei表6.部分编码6.1企业信息查询代码package myservlet.control;import java.sql.*;public class QueryQiye{ String databaseName="ssh"; //数据库名String tableName="member"; //表名String user="sa" ; //用户String secret="ycit" ; //密码StringBuffer queryResult; //查询结果public QueryQiye(){ queryResult=new StringBuffer();try{ Class.forName("com.mysql.jdbc.Driver"); }catch(Exception e) {}}public void setDatabaseName(String s){ databaseName=s.trim();queryResult=new StringBuffer();}public String getDatabaseName(){ return databaseName;}public void setTableName(String s){ tableName=s.trim();queryResult=new StringBuffer();}public String getTableName(){ return tableName;}public void setSecret(String s){ secret=s.trim();queryResult=new StringBuffer();}public String getSecret(){ return secret;}public void setUser(String s){ user=s.trim();queryResult=new StringBuffer();}public String getUser(){ return user;}public StringBuffer getQueryResult(){ Connection con;Statement sql;ResultSet rs;try { queryResult.append("<table border=1>");Stringuri="jdbc:mysql://127.0.0.1:3306/ssh?user=root&password=&useUnicode=t rue";String id=user;String password=secret;con=DriverManager.getConnection(uri);DatabaseMetaData metadata=con.getMetaData();ResultSet rs1=metadata.getColumns(null,null,tableName,null);int 字段个数=0;queryResult.append("<tr>");while(rs1.next()){ 字段个数++;String clumnName=rs1.getString(4);queryResult.append("<td>"+clumnName+"</td>");}queryResult.append("</tr>");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM "+tableName); while(rs.next()){ queryResult.append("<tr>");for(int k=1;k<=字段个数;k++){ queryResult.append("<td>"+rs.getString(k)+"</td>"); }queryResult.append("</tr>");}queryResult.append("</table>");con.close();}catch(SQLException e){ queryResult.append("请输入正确的用户名和密码");}return queryResult;}}6.2企业用电信息查询代码:package myservlet.control;import java.sql.*;public class QueryDianfei{ String databaseName="ssh"; //数据库名String tableName="dianfei"; //表名String user="sa" ; //用户String secret="ycit" ; //密码StringBuffer queryResult; //查询结果public QueryDianfei(){ queryResult=new StringBuffer();try{ Class.forName("com.mysql.jdbc.Driver"); }catch(Exception e) {}}public void setDatabaseName(String s){ databaseName=s.trim();queryResult=new StringBuffer();}public String getDatabaseName(){ return databaseName;}public void setTableName(String s){ tableName=s.trim();queryResult=new StringBuffer();}public String getTableName(){ return tableName;}public void setSecret(String s){ secret=s.trim();queryResult=new StringBuffer();}public String getSecret(){ return secret;}public void setUser(String s){ user=s.trim();queryResult=new StringBuffer();}public String getUser(){ return user;}public StringBuffer getQueryResult(){ Connection con;Statement sql;ResultSet rs;try { queryResult.append("<table border=1>");Stringuri="jdbc:mysql://127.0.0.1:3306/ssh?user=root&password=&useUnicode=t rue";String id=user;String password=secret;con=DriverManager.getConnection(uri);DatabaseMetaData metadata=con.getMetaData();ResultSet rs1=metadata.getColumns(null,null,tableName,null);int 字段个数=0;queryResult.append("<tr>");while(rs1.next()){ 字段个数++;String clumnName=rs1.getString(4);queryResult.append("<td>"+clumnName+"</td>");}queryResult.append("</tr>");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM "+tableName);while(rs.next()){ queryResult.append("<tr>");for(int k=1;k<=字段个数;k++){ queryResult.append("<td>"+rs.getString(k)+"</td>");}queryResult.append("</tr>");}queryResult.append("</table>");con.close();}catch(SQLException e){ queryResult.append("请输入正确的用户名和密码");}return queryResult;}}6.3删除企业用电信息代码:package myservlet.control;import java.sql.*;public class DelDianfei{ String number="", //企业编号danjia="", //联系人姓名dianliang=""; //地址String delMessage="";public DelDianfei(){ try{ Class.forName("com.mysql.jdbc.Driver");}catch(Exception e){ }}public void setNumber(String s){ number=s.trim();}public void setDanjia(String s){ danjia=s.trim();try{ byte bb[]=danjia.getBytes("ISO-8859-1");danjia=new String(bb,"gb2312");}catch(Exception e){}}public void setDianliang(String s){ dianliang=s.trim();}public String getDelMessage(){ String delCondition="delete from dianfei where qiyenumber="+number+"";String str="";Connection con;Statement sql;try{Stringuri="jdbc:mysql://127.0.0.1:3306/ssh?user=root&password=&useUnicode=t rue";con=DriverManager.getConnection(uri);sql=con.createStatement();if(number.length()>0){ int m=sql.executeUpdate(delCondition);if(m!=0){ str="对表中删除"+m+"条记录成功";}else{ str="删除记录失败";}}else{ str="必须要有企业编号";}con.close();}catch(SQLException e){ str=""+e;}return str;}}6.4删除用电企业信息代码:package myservlet.control;import java.sql.*;public class DelQiye{ String number="", //企业编号name="", //联系人姓名address="", //地址phone=""; //电话String delMessage="";public DelQiye(){ try{ Class.forName("com.mysql.jdbc.Driver");}catch(Exception e){ }}public void setNumber(String s){ number=s.trim();}public void setName(String s){ name=s.trim();try{ byte bb[]=name.getBytes("ISO-8859-1");name=new String(bb,"gb2312");}catch(Exception e){}}public void setAddress(String s){ address=s.trim();}public void setPhone(String n){ phone=n;}public String getDelMessage(){ String delCondition="delete from member where qiyenumber="+number+""; String str="";Connection con;Statement sql;try { String uri="jdbc:mysql://127.0.0.1:3306/ssh?user=root&password=&useUnicode=true";con=DriverManager.getConnection(uri);sql=con.createStatement();if(number.length()>0){ int m=sql.executeUpdate(delCondition);if(m!=0){ str="对表中删除"+m+"条记录成功";}else{ str="删除记录失败";}}else{ str="必须要有企业编号";}con.close();}catch(SQLException e){ str="输入的联系人不允许重复"+e;}return str;}}测试:本系统用的是用了黑盒与白盒测试的方法。