ImageVerifierCode 换一换
格式:DOC , 页数:59 ,大小:729.50KB ,
资源ID:3733032      下载积分:16 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3733032.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(企业用电管理系统设计复习过程.doc)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

企业用电管理系统设计复习过程.doc

1、 企业用电管理系统设计 精品文档 数据库课程实训报告 ( 2015-- 2016年度第2学期) 题目: 企业用电管理系统 专业 软件工程 学生姓名 成晓伟 班级 软件141 学号 1410075094 指导教师 徐静 完成日期 2016.7.1 收集于网络,如有侵权请联系管理员删除 目 录 目 录 2 1 课题内容和要求 1 1.1课题描述 1 1.2 课题要求

2、1 2 需求分析 1 2.1 对功能的规定 1 2.2 数据需求分析 2 3 系统设计 3 3.1 功能模块设计 3 3.2 数据库概念设计 4 3.2.2 E-R图 4 3.3 数据库逻辑设计 5 3.4 数据库物理设计 5 3.5 数据库表间联系 6 4系统实现 6 4.1登陆模块实现 6 4.2查询模块实现 7 4.3 添加模块实现 8 4.4 删除模块实现 9 4.5 修改模块实现 10 4.6 生成电费单模块实现 10 5 代码调试与功能测试 11 5.1 测试方案 11 5.2 测试结果 12 6 收获与体会 16 参考文献 17 附 

3、 录 18 附录1源程序部分清单 18 企业用电管理系统设计 1 课题内容和要求 1.1课题描述 系统设计的的信息有: (1) 用电企业(用电企业编号、用电企业名、地址、电话、联系人); (2) 电费信息(谷价、峰价); (3) 用电情况(用电企业编号、谷电量、峰电量、年月、年合计用电量、年合计用电费)。 1.2 课题要求 要求能够进行如下操作: (1) 能够统计各个用电企业的月耗电量以及电费; (2) 能够统计查询各个用电企业的总的谷电量和峰电量; (3) 能够统计该地区的峰谷电量比例以及电费情况; (4) 能维护基本数据; (5) 用户

4、分级管理,人机界面良好。 2 需求分析 2.1 对功能的规定 1、理解需求 理解需求是在问题及其最终解决方案之间架设桥梁的第一步。开发者只有和用户充分理解了需求之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。 下面是对系统的终端用户和客户调研后得到的需求规格说明书。 (1)由于使用者为相关电力部门及学习使用,系统开始时,便可以进入到欢迎界面。  (2)进入到系统之后,友好的界面可以很清晰的分为企业信息管理跟企业用电信息管理两大选择。 (3)点击企业信息管理,下拉菜单中选项可以实现对企业信息的查询、添加、修改、删除操作。  (4)点击企业用电管理信息,

5、下拉菜单中选项可以实现对企业用电管理信息的查询、添加、修改和删除操作。  (5)系统客户端运行在Windows平台下,服务器可以运行在Windows或Unix平台下。系统还应该有一个较好的图形用户界面。  (6)系统应该有很好的可扩展性。 2、需求分析 需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户业务问题的分析,确定系统的功能需求。这个步骤是对理解需求的升华,直接关系到该系统的质量。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通机制,因此,系统的需求分析也应该是开发人员和用户或客户一起完成的。 2.2 对性能的规定 1、精度 在精度需

6、求上,根据使用需要,在各项数据的输入,输出及传输过程中,可以满足各种精度的需求。如:根据关键字精度的不同,查找可分为精确查找和泛型查找,精确查找可精确匹配系统使用者所知道的企业名称及编号快速便捷的查询所要知道的信息。 2、时间特性要求 在软件方面,响应时间,更新处理时间都比较快且迅速,完全满足用户要求。 3、灵活性 当用户需求,如操作方式,运行环境,结果精度,数据结构于其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。 2.2 数据需求分析 数据字典 (1)factory 名称:factory 别名:无 描述:企业的基本信息 组成

7、factory=(num+facname+repname+tel+usefnum+usegnum+usemoney) (2) worker 名称:worker 别名:无 描述:员工及管理员的基本信息 组成:worker=(id+workername+password+level) 3 系统设计 3.1 功能模块设计 3.2 数据库概念设计 3.2.1实体属性图 3.2.2 E-R图 3.3 数据库逻辑设计 企业(编

8、号,企业名,法人代表) 电价(峰电量,谷电量,峰电价,谷电价,总电费) 系统用户(编号,姓名,密码,权限) 3.4 数据库物理设计 表一: factory 列名 数据类型 允许Null值 num varchar(50) 是 facname varchar(50) 是 repname varchar(50) 是 tel varchar(50) 是 usefnum int 是 usegnum int 是 usemoney int 是 num facname repname tel usefnum usegnum

9、 usemoney 001 新华书店 陈国勇 17802590001 1314 1022 2333 002 苏果超市 陈博文 17802590002 1516 2253 2863 003 微软公司 毕世勇 17802590003 3685 2467 4952 004 乐天玛特 丁小杰 17802590004 3011 2794 3105 005 三厂中学 陈家勇 17802590005 2422 1974 2875 表二: worker 列名 数据类型 允许Null值 id int 否 worker

10、name varchar(50) 否 password varchar(50) 否 [level] int 否 id workername password [level] 111 张三 123456 1 112 李四 123456 1 113 熊大 123456 2 114 熊二 123456 2 3.5 数据库表间联系 数据库中所建的两张表factory与worker之间并没有任何直接的联系,一个代表的是企业信息,一个代表的是员工信息。 4系统实现 4.1登陆模块实现 private

11、class ButtonactionPerformed implements ActionListener //为登陆按钮ButtonactionPerformed添加事件监视器 { public void actionPerformed(ActionEvent e)//从worker表中获得元组信息进行登陆,下面为获得元组登陆代码 { a=username2.getText(); s=password2.getText(); try { conn=DriverManager.getConnection(url, user, password

12、); conn.setAutoCommit(true); System.out.println("和数据库已经建立连接!!!"); stmt=(Statement) conn.createStatement(); rs=(ResultSet)stmt.executeQuery("select * from worker "); if(c.equals(a)&&b.equals(s)) { message.setText("姓名和密码不能为空"); } else if(true) { w

13、hile(rs.next()) { if(rs.getString(2).equals(a)&& rs.getString(3).equals(s)&&rs.getInt(4)==level) { message.setText("数据库连接成功!"); if(level==1) { operate2 app2=new operate2(); app2.setLocationRelativeTo(null); } else { operate app3=

14、new operate(); app3.setLocationRelativeTo(null); } } else { message.setText("用户名和密码或者身份不正确"); } } } rs.close(); stmt.close(); conn.close(); } 4.2查询模块实现 private class ButtonactionPerformed implements ActionListener //为查询按钮Buttonaction

15、Performed添加事件监视器 { public void actionPerformed(ActionEvent e) //从worker表中获取元组,并且显示在系统上 { facname=search.getText(); try { conn=DriverManager.getConnection(url, user, password); conn.setAutoCommit(true); System.out.println("和数据库已经建立连接!!!"); stmt=(Sta

16、tement) conn.createStatement(); rs=(ResultSet)stmt.executeQuery("select * from factory "); while(rs.next()) { if(rs.getString(2).equals(facname)) { text1.setText(rs.getString(1)); text2.setText(rs.getString(2)); text3.setText(rs.getString(3)); text4.setT

17、ext(rs.getString(4)); text5.setText(""+(rs.getInt(5))); text6.setText(""+rs.getInt(6)); text7.setText(""+rs.getInt(7)); } } rs.close(); stmt.close(); conn.close(); } 4.3 添加模块实现 private class ButtonactionPerformed implements ActionListener //为添加按钮Button

18、actionPerformed添加事件监视器 { public void actionPerformed(ActionEvent e) //在系统内输入要添加的元组信息,通过添加按钮添加到数据库中的factory表内 { x1=text1.getText(); x2=text2.getText(); x3=text3.getText(); x4=text4.getText(); x5=text5.getText(); x6=text6.getText(); x7=text7.getText(); try

19、 { conn=DriverManager.getConnection(url, user, password); conn.setAutoCommit(true); System.out.println("和数据库已经建立连接!!!"); prepstmt1=(PreparedStatement) conn.prepareStatement("INSERT INTO factory(num,facname,repname,tel,usefnum,usegnum,usemoney)" +"VALUES(?,?,?,?,?,?,?)");

20、 prepstmt1.setString(1, x1); prepstmt1.setString(2, x2); prepstmt1.setString(3, x3); prepstmt1.setString(4, x4); prepstmt1.setString(5, x5); prepstmt1.setString(6, x6); prepstmt1.setString(7, x7); prepstmt1.executeUpdate(); conn.close(); } 4.4 删除模块实现 private c

21、lass ButtonactionPerformed implements ActionListener { public void actionPerformed(ActionEvent e) { x1=text1.getText(); try { conn=DriverManager.getConnection(url, user, password); conn.setAutoCommit(true); System.out.println("和数据库已经建立连接!!!"); stmt=(S

22、tatement) conn.createStatement(); stmt.executeUpdate("delete from factory where num="+x1); conn.close(); } 4.5 修改模块实现 private class ButtonactionPerformed implements ActionListener { public void actionPerformed(ActionEvent e) { x1=text1.getText(); x2=text2.getText();

23、 x3=text3.getText(); x4=text4.getText();try { conn=DriverManager.getConnection(url, user, password); conn.setAutoCommit(true); System.out.println("和数据库已经建立连接!!!"); prepstmt2=(PreparedStatement) conn.prepareStatement("update factory set num=?,usegnum=?,usefnum=?,usemone

24、y=? where num=?"); prepstmt2.setString(1, x1); prepstmt2.setString(2, x2); prepstmt2.setString(3, x3); prepstmt2.setString(4, x4); prepstmt2.setString(5, x1); prepstmt2.executeUpdate(); prepstmt2.close(); conn.close(); } 4.6 生成电费单模块实现 private class ButtonactionP

25、erformed implements ActionListener { public void actionPerformed(ActionEvent e) { facname=search.getText(); try { conn=DriverManager.getConnection(url, user, password); conn.setAutoCommit(true); System.out.println("和数据库已经建立连接!!!"); stmt=(Statement) conn.c

26、reateStatement(); rs=(ResultSet)stmt.executeQuery("select * from factory "); while(rs.next()) { if(rs.getString(2).equals(facname)) { x1=rs.getString(5); x2=rs.getString(6); x3=rs.getString(7); text1.setText(rs.getString(5)); text2.setText(rs.getSt

27、ring(6)); text3.setText(rs.getString(7)); } } rs.close(); stmt.close(); conn.close(); } 5 代码调试与功能测试 5.1 测试方案 (1)分别输入用户、管理员查看登陆进去后的界面 (2)分别用用户和管理员查询企业用电信息 (3)添加企业用电信息 (4)修改企业用电信息 (5)删除企业用电信息 (6)生成电费单 5.2 测试结果 管理员登陆

28、 管理员登陆后的界面 管理员登陆后查询的界面 用户登陆后查询的界面 点击添加后的界面 输入数据 添加成功 点击修改进行修改

29、信息 修改成功 点击删除后出现的界面 删除成功 点击生成电费单出现的界面 在桌面生成的电费单 6 收获与体会 一、这次课程设计的心得体会通过实践我的收获如下: 一开始接触数据结构课程设计真的挺难的,好多都不会,不是逻辑方面的问题,而不具备动手能力,脑子里总有一团火,比如对于这个题目,一开始

30、有很多的想法,想到了从逻辑上怎么实现他,要编写哪些程序,但是一到需要编写了就开始为难了,可以说是几乎不知道从哪里入手,参考了书本里的程序,仿照他的结构一步一步做下来,现在对于单链表的各种操作已经算是比较熟练了,但我知道光有理论知识还远远不够,需要多动手,写的多了自然就能手到擒来。 二、根据我在实习中遇到得问题,我将在以后的学习过程中注意以下几点: 1、认真上好专业实验课,多在实践中锻炼自己。 2、写程序的过程中要考虑周到,严密。 3、在做设计的时候要有信心,有耐心,切勿浮躁。 4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。 5、在课余时间里多写程序,熟练

31、掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。 参考文献 [1] 钱雪忠,王燕玲,林挺.数据库原理及技术[M].北京:清华大学出版社,2011. [2] 钱雪忠,罗海驰,陈国俊.数据库原理及技术课程设计[M].北京:清华大学出版社,2014. 附  录 附录1源程序部分清单 附录1.1record代码 import java.awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQ

32、LException; import java.sql.ResultSet; import java.sql.Statement; import javax.swing.*; public class Record extends JFrame { private static final long serialVersionUID = 1L; private JLabel username,password; private JTextField username2; private JTextField password2,message; private

33、 JButton button; private JRadioButton box1,box2; private ButtonGroup buttongroup; private String a,s; private String c=""; private String b=""; private int level=2; //private String juzi; public Record() { super("Record"); setSize(300,300); try { UIManager.setLoo

34、kAndFeel(UIManager.getSystemLookAndFeelClassName()); }catch(Exception e){} Container container=getContentPane(); container.setBackground(Color.lightGray); container.setLayout(null); username=new JLabel("用户名:",JLabel.RIGHT); password=new JLabel(" 密码: ",JLabel.RIGHT); buttongroup=

35、new ButtonGroup(); box1=new JRadioButton("员工",true); box2=new JRadioButton("管理员"); username2=new JTextField(20); password2=new JTextField(20); message=new JTextField("欢迎使用企业用电管理系统"); message.setHorizontalAlignment(JTextField.CENTER); button=new JButton("登录"); username.setBoun

36、ds(50, 50, 50, 25); username2.setBounds(100, 50, 120, 25); password.setBounds(50, 85, 50, 25); password2.setBounds(100,85, 120, 25); message.setBounds(55,160, 190, 25); box1.setBounds(50,120,50,25); box2.setBounds(110,120,70,25); button.setBounds(190, 120, 60, 25); buttongrou

37、p.add(box1); buttongroup.add(box2); ButtonactionPerformed buttoner=new ButtonactionPerformed(); button.addActionListener(buttoner); RadioButtonHandler handler = new RadioButtonHandler(); box1.addItemListener(handler); box2.addItemListener(handler); container.add(username); co

38、ntainer.add(username2); container.add(password); container.add(password2); container.add(box1); container.add(box2); container.add(button); container.add(message); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] ar

39、gs) { Record app=new Record(); app.setLocationRelativeTo(null); } private class RadioButtonHandler implements ItemListener { public void itemStateChanged(ItemEvent event) { if(box1.isSelected()) { message.setText("员工登录"); level=2; } else if(box2.

40、isSelected()) { message.setText("管理员登录"); level=1; } } } private class ButtonactionPerformed implements ActionListener { public void actionPerformed(ActionEvent e)//登录 { a=username2.getText(); s=password2.getText(); try { Class.forName("driv

41、er"); } catch(ClassNotFoundException arg0) { System.out.print("class not find exception occur. message is:"); } try{ Class.forName("driver");//加载驱动 } catch(ClassNotFoundException event){System.out.print("class not find exception occur. message is:");}

42、 Statement stmt; ResultSet rs; String url="jdbc:sqlserver://localhost:1433; DatabaseName=企业用电"; String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; String user="sa"; String password="123456"; Connection conn=null; try { conn=DriverManager.ge

43、tConnection(url, user, password); conn.setAutoCommit(true); System.out.println("和数据库已经建立连接!!!"); stmt=(Statement) conn.createStatement(); rs=(ResultSet)stmt.executeQuery("select * from worker "); if(c.equals(a)&&b.equals(s)) { message.setText("姓名和密码不能为空");

44、 } else if(true) { while(rs.next()) { if(rs.getString(2).equals(a)&& rs.getString(3).equals(s)&&rs.getInt(4)==level) { message.setText("数据库连接成功!"); if(level==1) { operate2 app2=new operate2(); app2.setLocationRelativeTo(null); }

45、 else { operate app3=new operate(); app3.setLocationRelativeTo(null); } } else { message.setText("用户名和密码或者身份不正确"); } } } rs.close(); stmt.close(); conn.close(); } catch(SQLException eb) { System.out.print(

46、"SQL exception occur. message is:"); System.out.print(eb.getMessage()); } } } } 附录1.2 operate代码 import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.DriverManager;

47、 import java.sql.SQLException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.UIManager; import java.sql.ResultSet; import java.sql.Statement; public class operate extends JFrame { private static final

48、long serialVersionUID = 1L; private JButton b1,b2,b3,b4,b5,b6; private JLabel c1,c2,c3,c4,c5,c6,c7; private JTextField text1,text2,text3,text4,text5,text6,text7; private JTextField search; private JLabel name; private String facname; public operate() { super("operate"); setSiz

49、e(700,400); try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); }catch(Exception e){} Container container=getContentPane(); name=new JLabel("输入企业名:",JLabel.RIGHT); c1=new JLabel("企业编号:",JLabel.RIGHT); c2=new JLabel("企业名称:",JLabel.RIGHT); c3=new JLab

50、el("企业代表人:",JLabel.RIGHT); c4=new JLabel("企业联系电话:",JLabel.RIGHT); c5=new JLabel("企业谷电量:",JLabel.RIGHT); c6=new JLabel("企业峰电量:",JLabel.RIGHT); c7=new JLabel("企业用电费:",JLabel.RIGHT); b1=new JButton("查询"); b2=new JButton("取消"); b3=new JButton("添加"); b4=new JButton("删除"); b5=ne

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服