1、java蓝宇快递打印系统 综合实验 蓝宇快递打印系统文档 *一 综合实验问题的需求分析 1.1 实验内容和实验目的 1.2 问题描述 1.3设计要求和功能描述二 总体设计 2.1 系统目标 2.2 构建开发环境 2.3系统功能结构三 数据库设计 3.1 数据库概要说明 3.2 数据库E-R图 3.3 数据库结构四 公共类设计 4.1公共类DAO 4.2公共类SaveUserStateTool五 程序主要系统开发六 调试与测试实验结果七 实验总结参考文献附录(源代码) 一 综合实验问题的需求分析 1.1 实验内容和实验目的(1) 开发一个快递打印系统,以支持表单内容的记录与打印。(2) 通过本次
2、综合实验,更进一步的了解和掌握Java语言。 1.2 问题描述 随着社会的发展,人们的生活节奏不断加快。为了节约宝贵的时间,快递业务应运而生。在快递过程中,需要填写大量的表单。如果使用计算机来辅助填写及保存相应的记录,则能大大提高快递的效率。因此,需要开发一个快递打印系统。该系统应该支持快速录入关键信息,例如发件人和收件人的姓名、电话和地址等,快递物品的信息等。并将其保存在数据库中以便以后查看。 1.3设计要求和功能描述 通过以上对快递系统的了解,要求其具备如下功能:(1)具有安全可靠的登陆系统。(2)能够添加快递单信息。(3)可以修改快递单信息。(4)可以打印快递单信息。 (5)进入系统后,
3、可以通过“添加用户”功能添加新的用户信息。(6)能修改密码,提高系统的安全性。 二 总体设计 2.1 系统目标 通过对系统进行深入的分析得知,本系统需要实现以下目标: (1) 操作简单方便,界面整洁大方。 (2)保证系统的安全性。 (3)方便添加和修改快递信息。 (4)完成快递单的打印功能。 (5)支持用户添加和密码修改操作。 2.2 构建开发环境 操作系统:Windows 7 旗舰版 JDK版本:jdk-7u3-windows-i586 IDE版本:Indigo Service Release 2 开发语言:Java 后台数据库:SQL Server 2005 分辨率:最佳效果1024768
4、像素 2.3系统功能结构 在需求分析的基础上,确定了该系统需要实现的功能。根据功能设计出该系统的功能结构图,如下图所示。 三 数据库设计 3.1 数据库概要说明 本系统采用SQL Server 2005作为后台数据库。根据需求分析和功能结构图,为整个系统设计了两个数据表,分别用于存储快递单信息和用户信息。根据这两个表的存储信息和功能,分别设计对应的E-R图和数据表。 3.2 数据库E-R图 快递单信息表tb_receiveSendMessage的E-R图,如左图所示。用户信息表tb_user的E-R图,如右图所示。 3.3 数据库结构 四 公共类设计(1)公共类DAO,用于加载数据库驱动及建立
5、数据库连接。具体设计如下:package com.zzk.dao;import java.sql.Connection;import java.sql.DriverManager;import javax.swing.JOptionPane;public class DAO private static DAO dao = new DAO(); / 声明DAO类的静态实例 /* * 构造方法,加载数据库驱动 */ public DAO() try Class.forName(net.sourceforge.jtds.jdbc.Driver); / 加载数据库驱动 catch (ClassNot
6、FoundException e) JOptionPane.showMessageDialog(null, 数据库驱动加载失败,请将JTDS驱动配置到构建路径中。n + e.getMessage(); /* * 获得数据库连接的方法 * * return Connection */ public static Connection getConn() try Connection conn = null; / 定义数据库连接 String url = jdbc:jtds:sqlserver:/localhost:1433/db_ExpressPrint; / 数据库db_Express的URL
7、 String username = sa; / 数据库的用户名 String password = ; / 数据库密码 conn = DriverManager.getConnection(url, username, password); / 建立连接 return conn; / 返回连接 catch (Exception e) JOptionPane.showMessageDialog(null, 数据库连接失败。n请检查数据库用户名和密码是否正确。 + e.getMessage(); return null; (2)公共类SaveUserStateTool,用于保存登录用户的用户名和
8、密码。该类主要用于修改用户的密码。 具体实现如下:package com.zzk.tool;public class SaveUserStateTool private static String username = null; private static String password = null; public static void setUsername(String username) SaveUserStateTool.username = username; public static String getUsername() return username; public
9、 static void setPassword(String password) SaveUserStateTool.password = password; public static String getPassword() return password; 五 程序主要系统开发1. 系统登录系统设计(1)用于封装用户输入的登录信息的User设计:(2)用于封装用户名和密码进行验证的UserDao类设计:2. 系统主界面系统设计3. 添加快递信息系统设计4. 修改快递信息系统设计5. 打印快递单与打印设置系统设计6. 添加用户窗体系统设计7. 修改用户密码窗体系统设计 六 调试与测试实验
10、结果 ( 附注: 用户使用说明及实验结果如下: )(1)程序说明本程序使用SQL Server 2005数据库开发,导入项目以后需要再对数据库进行配置,配置完数据库运行项目启动文件src/com/zzk/frame/LoginFrame.java就可以运行程序了。(2)操作流程(1)启动程序以后,显示蓝宇快递打印系统登录界面,如图1 所示:图1 登录界面(2)输入用户、与密码之后,进入主界面,如图2所示,系统默认用户名mr,密码mrsoft。(3)进入主界面可以对快递单进行各种操作,如图3所示: 七 实验总结通过本次综合实验,我进一步了解和掌握了Java中类的概念和定义,继承和接口的概念和语法
11、。通过实验,我也进一步了解和掌握了Java中GUI的实现和用法以及数据库等基本操作。当然,在实验的过程中,也遇到了很多问题,但在老师和同学的帮助和指导下终于解决了。对于本次的打印系统综合实验,不仅使我认识到了自己在Java语言学习中的不足,而且增进了我对Java语言学习和编程的兴趣和能力。也为后续Java的学习打下了一个良好的基础。参考文献:(1)Java应用开发与实践-刘乃琦 苏畅 主编。(2)Java从初学到精通-辛立伟 张帆 编著附录(源代码如下:)package 快递打印系统;import java.awt.*;import javax.swing.*;import javax.swi
12、ng.SwingUtilities;import javax.swing.WindowConstants;import javax.swing.ImageIcon;import .URL;import java.awt.FlowLayout;import java.awt.print.PageFormat;import java.awt.print.Printable;import java.awt.print.PrinterJob;import java.util.Vector;import java.awt.Graphics;import java.util.Arrays;import j
13、ava.sql.*;import java.sql.SQLException;import javax.swing.JOptionPane; import java.sql.DriverManager;/class User private String name = null; private String pwd = null; private String okPwd = null; public String getName() return name; public void setName(String name) this.name = name; public String g
14、etPwd() return pwd; public void setPwd(String pwd) this.pwd = pwd; public void setOkPwd(String okPwd) this.okPwd = okPwd; public String getOkPwd() return okPwd; class ExpressMessage private int id = 0; private String sendName = null; private String sendTelephone = null; private String sendCompary =
15、null; private String sendAddress = null; private String sendPostcode = null; private String receiveName = null; private String receiveTelephone = null; private String receiveCompary = null; private String receiveAddress = null; private String receivePostcode = null; private String ControlPosition =
16、null; / 快递单上添加信息的组件位置(坐标) private String expressSize = null; / 快递单的尺寸(大小) public int getId() return id; public void setId(int id) this.id = id; public String getSendName() return sendName; public void setSendName(String sendName) this.sendName = sendName; public String getSendTelephone() return send
17、Telephone; public void setSendTelephone(String sendTelephone) this.sendTelephone = sendTelephone; public String getSendCompary() return sendCompary; public void setSendCompary(String sendCompary) this.sendCompary = sendCompary; public String getSendAddress() return sendAddress; public void setSendAd
18、dress(String sendAddress) this.sendAddress = sendAddress; public String getSendPostcode() return sendPostcode; public void setSendPostcode(String sendPostcode) this.sendPostcode = sendPostcode; public String getReceiveName() return receiveName; public void setReceiveName(String receiveName) this.rec
19、eiveName = receiveName; public String getReceiveTelephone() return receiveTelephone; public void setReceiveTelephone(String recieveTelephone) this.receiveTelephone = recieveTelephone; public String getReceiveCompary() return receiveCompary; public void setReceiveCompary(String recieveCompary) this.r
20、eceiveCompary = recieveCompary; public String getReceiveAddress() return receiveAddress; public void setReceiveAddress(String receiveAddress) this.receiveAddress = receiveAddress; public String getReceivePostcode() return receivePostcode; public void setReceivePostcode(String receivePostcode) this.r
21、eceivePostcode = receivePostcode; public String getControlPosition() return ControlPosition; public void setControlPosition(String controlPosition) ControlPosition = controlPosition; public String getExpressSize() return expressSize; public void setExpressSize(String expressSize) this.expressSize =
22、expressSize; class ExpressMessageDao public static void insertExpress(ExpressMessage m) if (m.getSendName() = null | m.getSendName().trim().equals() JOptionPane.showMessageDialog(null, 寄件人信息必须填写。); return; if (m.getSendTelephone() = null | m.getSendTelephone().trim().equals() JOptionPane.showMessage
23、Dialog(null, 寄件人信息必须填写。); return; if (m.getSendCompary() = null | m.getSendCompary().trim().equals() JOptionPane.showMessageDialog(null, 寄件人信息必须填写。); return; if (m.getSendAddress() = null | m.getSendAddress().trim().equals(|) JOptionPane.showMessageDialog(null, 寄件人信息必须填写。); return; if (m.getSendPost
24、code() = null | m.getSendPostcode().trim().equals() JOptionPane.showMessageDialog(null, 寄件人信息必须填写。); return; if (m.getReceiveName() = null | m.getReceiveName().trim().equals() JOptionPane.showMessageDialog(null, 收件人信息必须填写。); return; if (m.getReceiveTelephone() = null | m.getReceiveTelephone().trim()
25、.equals() JOptionPane.showMessageDialog(null, 收件人信息必须填写。); return; if (m.getReceiveCompary() = null | m.getReceiveCompary().trim().equals() JOptionPane.showMessageDialog(null, 收件人信息必须填写。); return; if (m.getReceiveAddress() = null | m.getReceiveAddress().trim().equals(|) JOptionPane.showMessageDialog
26、(null, 收件人信息必须填写。); return; if (m.getReceivePostcode() = null | m.getReceivePostcode().trim().equals() JOptionPane.showMessageDialog(null, 收件人信息必须填写。); return; Connection conn = null; / 声明数据库连接 / 声明PreparedStatement对象 PreparedStatement ps = null; try conn = DAO.getConn(); / 获得数据库连接 / 创建PreparedState
27、ment对象,并传递SQL语句 ps = conn .prepareStatement(insert into tb_receiveSendMessage (sendName,sendTelephone,sendCompary,sendAddress,sendPostcode,receiveName,recieveTelephone,recieveCompary,receiveAddress,receivePostcode,ControlPosition,expressSize) values(?,?,?,?,?,?,?,?,?,?,?,?); ps.setString(1, m.getSen
28、dName(); / 为参数赋值 ps.setString(2, m.getSendTelephone(); ps.setString(3, m.getSendCompary(); ps.setString(4, m.getSendAddress(); ps.setString(5, m.getSendPostcode(); ps.setString(6, m.getReceiveName(); / 为参数赋值 ps.setString(7, m.getReceiveTelephone(); ps.setString(8, m.getReceiveCompary(); ps.setString
29、(9, m.getReceiveAddress(); ps.setString(10, m.getReceivePostcode(); ps.setString(11, m.getControlPosition(); / 为参数赋值 ps.setString(12, m.getExpressSize(); int flag = ps.executeUpdate(); if (flag 0) JOptionPane.showMessageDialog(null, 添加成功。); else JOptionPane.showMessageDialog(null, 添加失败。); catch (Exception ex) JOpti
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1