1、并将其保存在数据库中以便以后查看。 通过以上对快递系统的了解,要求其具备如下功能:(1)具有安全可靠的登陆系统。(2)能够添加快递单信息。(3)可以修改快递单信息。(4)可以打印快递单信息。 (5)进入系统后,可以通过“添加用户”功能添加新的用户信息。(6)能修改密码,提高系统的安全性。 二 总体设计 通过对系统进行深入的分析得知,本系统需要实现以下目标: (1) 操作简单方便,界面整洁大方。 (2)保证系统的安全性。 (3)方便添加和修改快递信息。 (4)完成快递单的打印功能。 (5)支持用户添加和密码修改操作。 操作系统:Windows 7 旗舰版 JDK版本:jdk-7u3-window
2、s-i586 IDE版本:Indigo Service Release 2 开发语言:Java 后台数据库:SQL Server 2005 分辨率:最佳效果1024768像素 在需求分析的基础上,确定了该系统需要实现的功能。根据功能设计出该系统的功能结构图,如下图所示。 三 数据库设计 本系统采用SQL Server 2005作为后台数据库。根据需求分析和功能结构图,为整个系统设计了两个数据表,分别用于存储快递单信息和用户信息。根据这两个表的存储信息和功能,分别设计对应的E-R图和数据表。 快递单信息表tb_receiveSendMessage的E-R图,如左图所示。用户信息表tb_user的
3、E-R图,如右图所示。 四 公共类设计(1)公共类DAO,用于加载数据库驱动及建立数据库连接。具体设计如下: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.jtd
4、s.jdbc.Driver); / 加载数据库驱动 catch (ClassNotFoundException e) JOptionPane.showMessageDialog(null, 数据库驱动加载失败,请将JTDS驱动配置到构建路径中。n + e.getMessage(); * 获得数据库连接的方法 * * return Connection public static Connection getConn() Connection conn = null; / 定义数据库连接 String url = jdbc:jtds:sqlserver:/localhost:1433/db_Ex
5、pressPrint; / 数据库db_Express的URL String username = sa / 数据库的用户名 String password = / 数据库密码 conn = DriverManager.getConnection(url, username, password); / 建立连接 return conn; / 返回连接 catch (Exception e) 数据库连接失败。n请检查数据库用户名和密码是否正确。 return null;(2)公共类SaveUserStateTool,用于保存登录用户的用户名和密码。该类主要用于修改用户的密码。 具体实现如下:pa
6、ckage 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 static void setPassword(St
7、ring password) SaveUserStateTool.password = password; public static String getPassword() return password; 五 程序主要系统开发1. 系统登录系统设计(1)用于封装用户输入的登录信息的User设计:(2)用于封装用户名和密码进行验证的UserDao类设计:2. 系统主界面系统设计3. 添加快递信息系统设计4. 修改快递信息系统设计5. 打印快递单与打印设置系统设计6. 添加用户窗体系统设计7. 修改用户密码窗体系统设计 六 调试与测试实验结果 ( 附注: 用户使用说明及实验结果如下: )(1
8、)程序说明本程序使用SQL Server 2005数据库开发,导入项目以后需要再对数据库进行配置,配置完数据库运行项目启动文件src/com/zzk/frame/LoginFrame.java就可以运行程序了。(2)操作流程(1)启动程序以后,显示蓝宇快递打印系统登录界面,如图1 所示:图1 登录界面(2)输入用户、与密码之后,进入主界面,如图2所示,系统默认用户名mr,密码mrsoft。(3)进入主界面可以对快递单进行各种操作,如图3所示: 七 实验总结通过本次综合实验,我进一步了解和掌握了Java中类的概念和定义,继承和接口的概念和语法。通过实验,我也进一步了解和掌握了Java中GUI的实
9、现和用法以及数据库等基本操作。当然,在实验的过程中,也遇到了很多问题,但在老师和同学的帮助和指导下终于解决了。对于本次的打印系统综合实验,不仅使我认识到了自己在Java语言学习中的不足,而且增进了我对Java语言学习和编程的兴趣和能力。也为后续Java的学习打下了一个良好的基础。参考文献:(1)Java应用开发与实践-刘乃琦 苏畅 主编。(2)Java从初学到精通-辛立伟 张帆 编著附录(源代码如下:)package 快递打印系统;import java.awt.*;import javax.swing.*;import javax.swing.SwingUtilities;import ja
10、vax.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 java.sql.*;import java.sql.S
11、QLException;/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 getPwd() return pwd; public void setPwd(String pwd) this.pwd = pwd; public void setOkPwd(S
12、tring 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 = null; private String sendAddress = null; private String sendPostcode = null; private Stri
13、ng receiveName = null; private String receiveTelephone = null; private String receiveCompary = null; private String receiveAddress = null; private String receivePostcode = null; private String ControlPosition = null; / 快递单上添加信息的组件位置(坐标) private String expressSize = null; / 快递单的尺寸(大小) public int getI
14、d() 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 sendTelephone; public void setSendTelephone(String sendTelephone) this.sendTelephone = sendTe
15、lephone; public String getSendCompary() return sendCompary; public void setSendCompary(String sendCompary) this.sendCompary = sendCompary; public String getSendAddress() return sendAddress; public void setSendAddress(String sendAddress) this.sendAddress = sendAddress; public String getSendPostcode()
16、 return sendPostcode; public void setSendPostcode(String sendPostcode) this.sendPostcode = sendPostcode; public String getReceiveName() return receiveName; public void setReceiveName(String receiveName) this.receiveName = receiveName; public String getReceiveTelephone() return receiveTelephone; publ
17、ic void setReceiveTelephone(String recieveTelephone) this.receiveTelephone = recieveTelephone; public String getReceiveCompary() return receiveCompary; public void setReceiveCompary(String recieveCompary) this.receiveCompary = recieveCompary; public String getReceiveAddress() return receiveAddress;
18、public void setReceiveAddress(String receiveAddress) this.receiveAddress = receiveAddress; public String getReceivePostcode() return receivePostcode; public void setReceivePostcode(String receivePostcode) this.receivePostcode = receivePostcode; public String getControlPosition() return ControlPositi
19、on; public void setControlPosition(String controlPosition) ControlPosition = controlPosition; public String getExpressSize() return expressSize; public void setExpressSize(String expressSize) this.expressSize = expressSize; class ExpressMessageDao public static void insertExpress(ExpressMessage m) i
20、f (m.getSendName() = null | m.getSendName().trim().equals() 寄件人信息必须填写。 return; if (m.getSendTelephone() = null | m.getSendTelephone().trim().equals( if (m.getSendCompary() = null | m.getSendCompary().trim().equals( if (m.getSendAddress() = null | m.getSendAddress().trim().equals(| if (m.getSendPostc
21、ode() = null | m.getSendPostcode().trim().equals( if (m.getReceiveName() = null | m.getReceiveName().trim().equals(收件人信息必须填写。 if (m.getReceiveTelephone() = null | m.getReceiveTelephone().trim().equals( if (m.getReceiveCompary() = null | m.getReceiveCompary().trim().equals( if (m.getReceiveAddress()
22、= null | m.getReceiveAddress().trim().equals( if (m.getReceivePostcode() = null | m.getReceivePostcode().trim().equals( / 声明数据库连接 / 声明PreparedStatement对象 PreparedStatement ps = null; conn = DAO.getConn(); / 获得数据库连接 / 创建PreparedStatement对象,并传递SQL语句 ps = conn .prepareStatement(insert into tb_receiveSe
23、ndMessage (sendName,sendTelephone,sendCompary,sendAddress,sendPostcode,receiveName,recieveTelephone,recieveCompary,receiveAddress,receivePostcode,ControlPosition,expressSize) values(?,?) ps.setString(1, m.getSendName(); / 为参数赋值 ps.setString(2, m.getSendTelephone(); ps.setString(3, m.getSendCompary()
24、; 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(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) 添加成功。 else 添加失败。 catch (Exception ex) JOpti
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1