数据库课程设计能源管理收费系统.doc

上传人:文库蛋蛋多 文档编号:3741653 上传时间:2023-03-18 格式:DOC 页数:17 大小:671KB
返回 下载 相关 举报
数据库课程设计能源管理收费系统.doc_第1页
第1页 / 共17页
数据库课程设计能源管理收费系统.doc_第2页
第2页 / 共17页
数据库课程设计能源管理收费系统.doc_第3页
第3页 / 共17页
数据库课程设计能源管理收费系统.doc_第4页
第4页 / 共17页
数据库课程设计能源管理收费系统.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数据库课程设计能源管理收费系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计能源管理收费系统.doc(17页珍藏版)》请在三一办公上搜索。

1、数据库原理课程设计报告数据库原理课程设计报告专业: 信息安全 班级: 0441002 学号:2010212144、2010212146、2010212169 姓名: 潘馨 吴雅琳 贺竞辉 题目名称: 能源管理收费系统 完成日期: 2012.06.06 1、系统定义随着时代的发展,用户对效率要求越来越高,老式的人工能源收费已经不能满足用户的要求,特别是对于大的能源收费管理,人们不仅查询和缴纳费用不方便,管理员也不方便对用户的管理,如果有了一个软件能够方便的管理这些繁琐的事情,将大大的提高整个流程,所以设计一个能源收费管理系统是非常有必要的。该系统的设计主要是用于帮助一个小型能源收费站点的管理,通

2、过该系统,用户可以很方便的查询自己每月份所需要交纳的水,电,气费用,而管理员则可以通过该系统方便的管理用户,并且及时的将每月的水电气费用和用户所需缴纳的费用放入该系统中,从而帮助管理员和用户更方便有效的完成自己的工作。2、需求分析2.1用户需求分析系统总体功能要求是为了方便用户操作,和查看能源消费情况,并且帮助管理员更有效,方便的管理用户和能源收费。将其细分可分为用户,管理员和系统三方面的需求,其主要功能如下:(1) 用户基本信息的录入:包括用户的单位、部门、姓名、联系电话、住址;(2) 用户水、电、气数据的录入(每个月的数据的录入);(3) 水、电、气价格的管理;(4) 工号的管理;(5)

3、查询、统计的结果的输出;(6) 系统维护;2.2 用户需求分析(1) 用户可以查看自己的个人信息;(2) 用户可以查询自己的消费记录和水、电的具体价格及变化;(3)用户可以查看自己所缴纳费用的历史记录。2.3 管理员需求分析(1) 管理员需通过账号,密码登陆以后才能进行后面的步骤;(2) 管理员可以查看和修改用户的基本信息(包括用户的单位、部门、 姓名、联系 电话、住址);(3) 管理员可以添加和删除用户;(4) 管理员可以对所有用户使用的水,电,气数据进行录入(每个月 的数据的录入);(5) 管理员可以修改相应的水,电,气价格的数据;2.4系统需求分析(1) 对计算机的配置要求一般,所需的开

4、销较小;(2) 开发工具为:eclipse和oracle数据库;能源管理系统2.5 系统功能结构图 账号密 码管理登 录 系 统历 史 记 录管理能 源 信 息管理个 人 信 息管理2.6 数据流图由于该系统的设计主要涉及到用户的查询和管理员的管理,而他们之间的联系相对较少,所以数据流图相对较为简单,数据的总体流程2.6.1总体数据流图能源管理收费系统登录管理员登录提示管理用户信息用户管理账号,密码查看个人信息管理能源费用查看收费信息管理历史记录查看历史记录数据库顾客信息 账号信息能源费用记录历史信息2.6.2 一层数据流图用户表1 个人 信息 存放查看数据库存放能源信息表 2 费用 信息用户

5、需缴纳费用存放历史纪录表 3 历史 记录查看历史记录2.6.3 二层数据流图用户表1 用户 信息 管理和修改存放数据库 2 能源 信息管理员能源信息表能源价格录入存放 3 费用 信息能源费用录入存放管理与录入历史纪录表 4 历史 记录2.7 数据字典名字:用户信息描述:描述用户的个人基本信息定义:由用户的姓名,性别,所在的单位,联系电话,地址和用户编号组成位置:用户信息表名字:能源使用信息描述:描述了用户使用能源的情况定义:由用户水,电,气的价格,使用量,用户编号和月份组成位置:能源使用信息表名字:历史信息描述:记录了用户所有的能源使用信息定义:由用户编号,用户使用水,电,气总量组成位置:历史

6、信息表名字:不成功提示描述:返回用户各种操作不成功的原因 ;不返回系统级错误 ;定义:用户人为操作失败的原因位置:建立用户,登录处理名字:成功提示描述:当删除用户成功后返回给用户的相关信息 ;定义:包含删除用户的用户名和删除该用户对系统的影响 ;位置:建立用户,登录处理3、系统设计3.1 主界面的设计为了实现上述的各项功能,我们需要设计一个可以直接使用并且帮助管理员和用户直接使用的菜单运行界面,该界面能将上述的所有功能具体的实现,能真正的供管理员和用户使用,用户和管理员通过该图形界面的相关操作便可以直接得到他们想要的得到的结果,由于下面将详细的讲述该系统的使用发法,所以这里不在将图进行展示。3

7、.2 系统E-R图根据上缅的数据流图和数据字典,我们可以画出相应的E-R图3.2.1用户信息实体图所在单位部门用户编号用户姓名地址联系电话用户信息3.2.2账号,密码信息管理实体图账号,密码信息管理员账号管理员密码3.2.3能源信息气价格电价格水价格用户编号总应缴纳费用应缴纳气费使用气量使用电量应缴纳电费月份用户编号使用水量应缴纳水费能源信息3.2.5历史信息实体图缴纳水费缴纳气费缴纳电费历史信息用户编号月份总加纳用3.2.6总以E-R图n1查看历史信息1组成nn1n查看管理能源使用情况用户nnn录入管理nn管理员3.3 数据库设计3.3.1 关系模式用户(用户编号,姓名,联系电话,部门,所在

8、单位)能源的价格(用户编号,姓名,月份,需缴水费,需缴电费,需缴气费)历史信息(用户编号,姓名,月份,已缴纳水费,已缴纳电费,已缴纳气费)账号信息(用户编号/管理员编号,账号,密码)3.3.2 相应的表及其选项(1)用户信息表字段名数据类型是否为空是否主键说明u_idvarchar否是用户编号u_manevarchar是否姓名u_conmpanyvarchar是否所在单位u_deptvarchar是否部门u_telvarchar是否联系电话u_addressvarchar是否地址(2)用户信息表字段名数据类型是否为空是否主键说明u_idvarchar否是管理员编号u_manevarchar是否

9、姓名u_conmpanyvarchar是否所在单位u_deptvarchar是否部门u_telvarchar是否联系电话u_addressvarchar是否地址(3)能源信息表字段名数据类型是否为空是否主键说明s_timeDatetime否否用户编号e_timeDatetime否否姓名p_waterFloat是否需缴水价p_eletricityFloat是否需缴电价p_gasfloat是否需缴气价p_idint是是月份(4)能源信息表字段名数据类型是否为空是否主键说明s_timeDatetime否否用户编号e_timeDatetime否否姓名p_waterFloat是否已缴水价p_eletri

10、cityFloat是否已缴电价p_gasfloat是否已缴气价p_idint是是月份(5)账号信息表字段名数据类型是否为空是否主键说明namechar否是用户编号账号passwchar是否密码 4、详细设计用户基本信息4.1流程图能源使用情况用户端历史记录查询管理员登陆用户基本信息管理员端能源价格管理修改用户密码数据的录入5、系统实现与测试5.1开发平台和工具选择该能源收费管理系统的开发与运行环境如下:开发环境:Windows 7;辅助工具:eclipse,word绘图工具;数据库管理系统:oracle数据库;运行环境:Windows XP/7;5.2系统测试由于水平有限,本次测试使用了黑盒测

11、试。点击“登陆”按钮进入该“能源收费管理系统”。管理员从此登录进入。界面如下: 登陆失败提示界面如下:登陆成功提示界面如下:登陆后程序主界面如下:点击“用户信息录入”按钮进入该“用户信息录入”。界面如下:录入一个用户信息,成功后,提示如下:点击“价格查询”按钮进入该“价格查询”并查询能源价格,界面如下:点击“价格更改”按钮进入该“价格更改”并更改能源价格,界面如下:点击“用户信息录入”按钮进入该“用户信息录入”并录入一个用户信息,界面如下:点击“收费查询”按钮进入该“消费查询”并查询消费(收费)信息,界面如下:点击“删除用户”按钮进入该“删除用户信息”并删除以为用户,界面如下:至此,所有功能均

12、已演示完毕。六、课程设计总结在本次课程设计中,在规定的时间内,我组基本上完成了课程设计的要求,开发出了题目所要求的软件。通过本次课程设计,使我们对软件工程的理论有了更深刻的认识,认识到软件开发的步骤是紧密联系的,包括可行性研究,需求分析,总体设计,详细设计,实现和测试。每一步骤都是不可缺少的,而且前面的步骤做的越详细,后面的工作就越好做。越是在后面发现异议,需要修改,那么花费的成本就越大,即开发过程的返工强度就越大。在软件开发的过程当中,合作的力量是不可忽视的。一个人的作用终究是有限的,面对一个比较复杂的系统,只有很好的分工合作,才能在最短时间内完成任务。由于软件开发需要分工合作,那么文档的严

13、格规范性就显得尤为重要,自己的文档不能只有自己能看懂,严格意义上来说,一份文档对于所有程序员来说,开发出来的结果是一样的。我们在开发的过程当中就是因为实体关系研究不够透彻,来回返工,浪费的大量时间。再加上相关知识掌握不够深入,开发过程是相当困难的。但是我们并没有放弃,每当困难的时候,就向指导老师请教,总能有所收获。在开发过程当中还发现自己的知识有限,许多任务不能出色的完成,这就要求增强自学能力,通过查找相关资料,自学慢慢来完成。通过本次课程设计,对于java编程,数据库的理论知识有了更深入的理解,培养了一定的自学能力,对于软件开发的过程有了初步的了解,掌握了软件开发的一些基本的技巧,锻炼的团队

14、合作的能力,增强了自身的综合素质,受益颇多。虽然完成了此次课程设计的任务,但只软件中还存在着很多可以完善的地方,有待以后在实践中积累更多知识并加以完善。本小组成员完成课程设计的情况:小组成员姓名学号完成任务的情况贺竞辉2010212169系统总体设计,负责需求分析,java程序代码的初级编写。潘馨2010212144数据库系统详细设计与实现。负责java程序代码的调校和修改,以及应用程序的测试。吴雅琳2010212146搜集资料,文档资料的编写,图形的绘制。参考文献1. 解析java程序设计/甘玲,张璞编著.-北京:清华大学出版社,2006.92. 数据库系统基础教程/厄尔曼,怀德姆著.-北京

15、:机械工业出版社,2008.8附录:部分关键代码 用户信息录入 模块package user_info_insert;import java.awt.BorderLayout;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.sql.Statement;import java.sql.Connection;import java.sql.DriverManager;i

16、mport javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingConstants;public class insert_user_information extends JFrame implements ActionListener /* * */private static f

17、inal long serialVersionUID = 1L;private Connection con = null;Statement stmt = null;private JLabel Title = new JLabel(请输入新用户的信息, SwingConstants.CENTER);private JLabel idlabel = new JLabel(用户ID );private JTextField id = new JTextField(15);private JLabel namelabel = new JLabel(姓名 );private JTextField

18、name = new JTextField(15);private JLabel sexlabel = new JLabel(性别 );private JTextField sex = new JTextField(15);private JLabel addresslabel = new JLabel(家庭地址);private JTextField address = new JTextField(15);private JLabel telephonelabel = new JLabel(电话 );private JTextField telephone = new JTextField

19、(15);private JLabel workplacelabel = new JLabel(工作地点);private JTextField workplace = new JTextField(15);private JLabel departmentlabel = new JLabel(部门 );private JTextField department = new JTextField(15);private JLabel remarklabel = new JLabel(备注 );private JTextField remark = new JTextField(15);priv

20、ate JButton commit = new JButton(提交);public insert_user_information() setTitle(用户信息录入);setSize(400, 400);getContentPane().setLayout(new GridBagLayout();JPanel jp1 = new JPanel();jp1.add(idlabel);jp1.add(id);JPanel jp2 = new JPanel();jp2.add(namelabel);jp2.add(name);JPanel jp3 = new JPanel();jp3.add(

21、sexlabel);jp3.add(sex);JPanel jp4 = new JPanel();jp4.add(addresslabel);jp4.add(address);JPanel jp5 = new JPanel();jp5.add(telephonelabel);jp5.add(telephone);JPanel jp6 = new JPanel();jp6.add(workplacelabel);jp6.add(workplace);JPanel jp7 = new JPanel();jp7.add(departmentlabel);jp7.add(department);JPa

22、nel jp8 = new JPanel();jp8.add(remarklabel);jp8.add(remark);JPanel jp9 = new JPanel();jp9.setLayout(new GridLayout(9, 1);jp9.add(Title);jp9.add(jp1);jp9.add(jp2);jp9.add(jp3);jp9.add(jp4);jp9.add(jp5);jp9.add(jp6);jp9.add(jp7);jp9.add(jp8);JPanel jp10 = new JPanel();jp10.setLayout(new BorderLayout()

23、;jp10.add(Center, jp9);add(jp10);add(commit);commit.addActionListener(this);try String url = jdbc:oracle:thin:172.23.26.148:1521:orcl;Class.forName(oracle.jdbc.driver.OracleDriver);/System.out.println(驱动程序已装载);/System.out.println(即将连接数据库);con = DriverManager.getConnection(url, DBdesign128, 111);Syst

24、em.out.println(load ok);stmt = con.createStatement(); catch (Exception ex) System.out.println(ex.getMessage();public void actionPerformed(ActionEvent evt) String uid = id.getText().trim();String uname = name.getText().trim();String usex = sex.getText().trim();String uadd = address.getText().trim();S

25、tring utele = telephone.getText().trim();String uwork = workplace.getText().trim();String udepart = department.getText().trim();String ure = remark.getText().trim();String command = insert into user_info values( + uid + , + uname+ , + usex + , + uadd + , + utele + , + uwork+ , + udepart + , + ure +

26、);if (uid.length() != 0) try stmt.executeUpdate(command);JOptionPane.showMessageDialog(commit, 录入成功!, 提示,JOptionPane.INFORMATION_MESSAGE);stmt.close(); catch (Exception ex) System.out.println(ex.getMessage();JOptionPane.showMessageDialog(commit, 输入错误, 警告,JOptionPane.ERROR_MESSAGE); else JOptionPane.showMessageDialog(commit, ID不能为空, 警告,JOptionPane.ERROR_MESSAGE);public static void main(String args) JFrame myframe = new insert_user_information();myframe.setVisible(true);17

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

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号