高校固定资产管理系统.docx_第1页
高校固定资产管理系统.docx_第2页
高校固定资产管理系统.docx_第3页
高校固定资产管理系统.docx_第4页
高校固定资产管理系统.docx_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

重庆邮电大学理学院信息与计算科学专业集中实践报告 题 目:高校固定资产管理系统 指导老师: 李永红_ 专 业: 数理科学与信息技术_ 班 级: 1121302、1121301_ 学 号: 2013213055、2013213058_ 姓 名: 何锐、周海渝_ 成 绩:_ 20 16 年 06 月 16 日一、 需求分析随着社会的发展,人们的生活节奏不断加快。为了节约宝贵的时间,高校固定资产管理系统应运而生。在管理固定资产的过程中,需要修改、更新大量的表单。如果使用计算机来辅助填写及保存相应的记录,则能大大提高固定资产管理的效率。因此,需要开发一个固定资产管理系统。该系统应该支持快速录入关键信息,例如,固定资产的借出、归还等。这些信息需要被保存在数据库中以便以后查看。通过对程序需要实现的功能进行分析,完成数据库和程序界面的设计。通过对高校固定资产管理系统的了解,要求其具备如下功能。1. 登录系统登录系统可以有效地保障系统的安全性,防止非法用户使用系统。只有输入合法的用户名和密码才能够正常登录,否则不能进行登录。2. 添加信息用户进入系统后,通过对“资产信息管理”菜单中的“类别管理”菜单项,可以进行大类(总的分类)的添加。同样,在其他几个菜单中也可进行信息添加。3. 删除信息用户进入系统后,通过对“账户管理”菜单中的“删除帐户”菜单项,可以进行帐户的删除。同样,在其他几个菜单中也可进行信息删除。4. 修改信息考虑到操作人员录入的失误,需要提供信息的修改功能。通过“职员管理”菜单中的“修改职员”菜单项,可以对职员信息进行修改。同样,在其他几个菜单中也可进行信息修改。5. 查询信息用户进入系统后,可以通过“按编号查”、“按类别查”、“按使用者查”的不同类别进行信息查询。6. 添加用户进入系统后,可以通过“账户管理”菜单的“添加用户”菜单项添加新的用户,并为其指定密码。一旦新用户添加成功,以后就可以通过该用户进入系统进行操作。7. 修改密码为了提高系统的安全性,通常建议管理员定期修改密码。使用“账户管理”菜单的“修改密码”菜单项可以进行密码的修改。 二、 总体设计1. 通过对系统进行深入的分析得知,本系统需要实现以下目标。系统管理资产信息管理账户管理职员管理资产还借管理帮助查询按编号查询:按类别查询:按使用者查询:资产信息分类显示显示当前时间2. 构建开发环境操作系统:windows7JDK版本:jdk1.8.0_31IDE版本:Eclipse开发语言:Java后台数据库:SQL Server 2008三、 控制类设计(部分类代码)在cn.tsc.asset.contrl包中1. ConnectionManager控制类作用:数据库连接代码:package cn.tsc.asset.contrl;import java.sql.DriverManager;import java.sql.Connection;import java.sql.CallableStatement;import java.sql.ResultSet;import java.sql.SQLException;import javax.swing.JOptionPane;/* * 控制类-数据库连接管理 * */* * author pengwenfu * */public final class ConnectionManager / 驱动类 private static final String DRIVER_CLASS = com.microsoft.jdbc.sqlserver.SQLServerDriver;/ 数据库地址private static final String DATABASE_URL = jdbc:microsoft:sqlserver:/:1433;databaseName = Assets;/ 数据库登录名private static final String USER_NAME = sa;/ 密码private static final String PASSWORD = 1234;/* * 构造方法 禁止实例化 */private ConnectionManager() /* * 取得数据库连接 * * return */public static Connection getConnection() try Class.forName(DRIVER_CLASS);Connection con = DriverManager.getConnection(DATABASE_URL,USER_NAME, PASSWORD);return con; catch (ClassNotFoundException e) e.printStackTrace();JOptionPane.showMessageDialog(null, 没有找到连接数据库所需的驱动类!, 错误,JOptionPane.ERROR_MESSAGE);return null; catch (SQLException e) e.printStackTrace();JOptionPane.showMessageDialog(null, 数据库连接错误!请核实配置文件是否有误!, 错误,JOptionPane.ERROR_MESSAGE);return null;/* * 关闭数据库连接 * * param conn */public static void closeConnection(Connection con) try if (con != null & !con.isClosed() con.close(); catch (SQLException e) e.printStackTrace();/* * 关闭数据库操作对象 * * param cst */public static void closeStatement(CallableStatement cst) try if (cst != null) cst.close(); catch (SQLException e) e.printStackTrace();/* * 关闭记录集 * * param rs */public static void closeResultSet(ResultSet rs) try if (rs != null) rs.close();rs = null; catch (SQLException e) e.printStackTrace();2DBWorker控制类作用:数据库操作代码:package cn.tsc.asset.contrl;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.Collection;import cn.tsc.asset.entity.Asset;import cn.tsc.asset.entity.Category;import cn.tsc.asset.entity.Employee;import cn.tsc.asset.entity.Lent;import cn.tsc.asset.entity.Operator;import cn.tsc.asset.entity.Returned;import cn.tsc.asset.entity.Subcate;/* * 控制类-数据库操作 * */* * author pengwenfu * */public class DBWorker /* * 查找管理员信息 * * param name * 名称 * param pwd * 密码 * return */public static Collection selOperator(String name, String pwd,OperatorSelType inNamePwd) / 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;/ 建一个操作员列表Collection opc = new ArrayList();try String proc = call proc_selOperator + name + , + pwd+ , + inNamePwd + ;/ 取得操作员表数据cst = con.prepareCall(proc);rs = cst.executeQuery();while (rs.next() Operator op = new Operator();op.setName(rs.getString(Oname);op.setPwd(rs.getString(Opwd);opc.add(op); catch (SQLException ex) ex.printStackTrace(); finally ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);return opc;/* * 查找职员信息 * * param param * 姓名或职务 * param selType * 查找类型 * return */public static Collection selEmp(String param, EmployeeSelType selType) / 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;/ 建一个职员列表Collection empc = new ArrayList();try String proc = call proc_selEmp + param + , + selType+ ;/ 取得职员表数据cst = con.prepareCall(proc);rs = cst.executeQuery();while (rs.next() Employee emp = new Employee();emp.setId(rs.getInt(Eid);emp.setName(rs.getString(Ename);emp.setSex(rs.getString(Esex);emp.setAge(rs.getInt(Eage);emp.setPosition(rs.getString(Eposition);emp.setRemark(rs.getString(Eremark);empc.add(emp); catch (SQLException ex) ex.printStackTrace(); finally ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);return empc;/* * 查找大类信息 * * param name * 大类名 * param selType * 查找类型 * return */public static Collection selCate(String name, CateSelType selType) / 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;/ 建一个类别列表Collection cc = new ArrayList();try / 取得类别表数据cst = con.prepareCall(call proc_selCate + name + ,+ selType + );rs = cst.executeQuery();while (rs.next() Category c = new Category();c.setId(rs.getInt(Cid);c.setName(rs.getString(Cname);cc.add(c); catch (SQLException ex) ex.printStackTrace(); finally ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);return cc;/* * 查找子类信息 * * param param * 存储过程参数 * param selType * 查找类型 * return */public static Collection selSubcate(String param, SubcateSelType selType) / 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;/ 建一个子类列表Collection scc = new ArrayList();try / 取得子类表数据cst = con.prepareCall(call proc_selSubcate + param + ,+ selType + );rs = cst.executeQuery();while (rs.next() Subcate sc = new Subcate();sc.setId(rs.getInt(Sid);sc.setName(rs.getString(Sname);sc.setCateId(rs.getInt(SCid);scc.add(sc); catch (SQLException ex) ex.printStackTrace(); finally ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);return scc;/* * 查找资产信息 * * param procName * 存储过程名 * param param * 存储过程参数 * return */public static Collection selAsset(String proc, String param) / 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;/ 建一个资产信息列表Collection ac = new ArrayList();try / 取得资产信息表数据cst = con.prepareCall(call + proc + + param + );rs = cst.executeQuery();while (rs.next() Asset a = new Asset();a.setId(rs.getInt(1);a.setName(rs.getString(2);a.setCateName(rs.getString(3);a.setSubcateName(rs.getString(4);a.setModel(rs.getString(5);a.setPrice(rs.getDouble(6);a.setPurDate(rs.getString(7);a.setStatus(rs.getString(8);a.setUseBy(rs.getString(9);a.setRemark(rs.getString(10);ac.add(a); catch (SQLException ex) ex.printStackTrace(); finally ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);return ac;/* * 查找借出资产信息 * * param param * 存储过程参数 * param selType * 查找类型 * return */public static Collection selLent(String param, LentSelType selType) / 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;/ 建一个借出记录列表Collection lc = new ArrayList();try / 取得借出记录表数据cst = con.prepareCall(call proc_selLent + param + ,+ selType + );rs = cst.executeQuery();while (rs.next() Lent l = new Lent();l.setId(rs.getInt(Lid);l.setAssetId(rs.getInt(LAid);l.setEmpId(rs.getInt(LEid);l.setOperatorName(rs.getString(LOname);l.setDate(rs.getString(Ldate);l.setPurpose(rs.getString(Lpurpose);l.setRemark(rs.getString(Lremark);l.setAssetName(rs.getString(Aname);l.setModel(rs.getString(Amodel);l.setSubcateName(rs.getString(Sname);l.setUseBy(rs.getString(Ause_by);lc.add(l); catch (SQLException ex) ex.printStackTrace(); finally ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);return lc;/* * 查找归还记录 * * return */public static Collection selReturned() / 连接数据库Connection con = ConnectionManager.getConnection();CallableStatement cst = null;ResultSet rs = null;/ 建一个归还记录列表Collection rc = new ArrayList();try / 取得归还记录表数据cst = con.prepareCall(call proc_selReturned);rs = cst.executeQuery();while (rs.next() Returned r = new Returned();r.setId(rs.getInt(Rid);r.setAssetId(rs.getInt(RAid);r.setAssetName(rs.getString(RAname);r.setUser(rs.getString(Ruse_by);r.setLentDate(rs.getString(RLdate);r.setReturnDate(rs.getString(Rdate);r.setLentOname(rs.getString(RLOname);r.setReturnOname(rs.getString(RROname);r.setRemark(rs.getString(Rremark);rc.add(r); catch (SQLException ex) ex.printStackTrace(); finally ConnectionManager.closeResultSet(rs);ConnectionManager.closeStatement(cst);ConnectionManager.closeConnection(con);return rc;/* * 修改记录:包括添加、删除、修改 * * param strProcInvoke * 调用存储过程的字符串 * return */public static int modifyRecord(String strProcInvoke) Connection con = ConnectionManager.getConnection();try return con.prepareCall(call + strProcInvoke + ).executeUpdate(); catch (SQLException e) e.printStackTrace();return 0; finally ConnectionManager.closeConnection(con);/* * 子类别查找类型 * * author Tom */public enum SubcateSelType BY_NAME, BY_CATE_NAME/* * 大类别查找类型 * * author Tom */public enum CateSelType BY_NAME, BY_HAVE_SUBCATE, ALL/* * 管理员名查找类型 * * author Tom * */public enum OperatorSelType IN_NAME, IN_NAME_PWD/* * 借出记录查找类型 * * author Tom * */public enum LentSelType BY_OPERATOR_NAME, BY_EMPLOYEE_ID, BY_ASSET_ID, ALL/* * 职员查找类型 * * author Tom * */public enum EmployeeSelType BY_NAME, BY_POSITION, ALL四、 实体类设计(部分类代码)在cn.tsc.asset.entity包中1 Asset实体类作用:定义资产信息代码:package cn.tsc.asset.entity;/* * 实体类-资产信息 * */public class Asset private int id;private String name;private String cateName;private String subcateName;private double price;private String model;private String purDate;private String status;private String useBy;private String remark;public String getCateName() return cateName;public void setCateName(String cateName) this.cateName = cateName;public int getId() return id;public void setId(int id) this.id = id;public String getModel() return model;public void setModel(String model) this.model = model;public String getName() return name;public void setName(String name) = name;public double getPrice() return price;public void setPrice(double price) this.price = price;public String getPurDate() return purDate;public void setPurDate(String purDate) this.purDate = purDate;public String getRemark() return remark;public void setRemark(String remark) this.remark = remark;public String getStatus() return status;public void setStatus(String status) this.status = status;public String getSubcateName() return subcateName;public void setSubcateName(String subcateName) this.subcateName = subcateName;public String getUseBy() return useBy;public void setUseBy(String useBy) this.useBy = useBy;2. Employee实体类作用:定义职员信息代码:package cn.tsc.asset.entity;/* * 实体类-职员信息 * */public class Employee private int id;private String name;private String sex;private int age;private String position;private String remark;public int getId() return id;public void setId(int id) this.id = id;public String getName() return name;public void setName(String name) = name;public String getPosition() return position;public void setPosition(String position) this.position = position;public String getRemark() return remark;public void setRemark(String remark) this.remark = remark;public String getSex() return sex;public void setSex(String sex) this.sex = sex;public int getAge() return age;public void setAge(int age) this.age = age;五、 用户界面类设计(部分类代码)在cn.tsc.asset.userinterface包中1 MM用户界面类作用:生成主界面代码:package cn.tsc.asset.userinterface;/ download by import java.awt.BorderLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ComponentAdapter;import java.awt.event.ComponentEvent;import java.io.File;import java.util.Collection;import java.util.Timer;import javax.swing.BorderFactory;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.event.TreeSelectionEvent;import javax.swing.event.TreeSelectionListener;import javax.swing.tree.DefaultMutableTreeNode;import cn.tsc.asset.contrl.DBWorker;import cn.tsc.asset.contrl.DateTimeView;import cn.tsc.asset.contrl.ImageGetter;import cn.tsc.asset.contrl.MenuFactory;import cn.tsc.asset.contrl.WindowCenter;/* * 用户界面类-主界面 * */public class MM extends JFrame private static final long serialVersionUID = 1L;/ 树的要根结点public DefaultMutableTreeNode root = null;/ 树面板public CategoryTreeView trp = null;/ 表格面板public AssetTableView tap = null;/ 表头public String head = 资产编号, 资产名称, 大类名称, 子类名称, 资产型号, 价格,购入日期, 状态, 使用者, 备注 ;/ 查询面板private QueryView qp = null;/ 左上面板:放查询面板private JPanel pnlCTop = null;/ 左下面板:放树面板private JPanel pnlCBottom = null;/ 右面板:放表格面板private JPanel pnlCRight = null;/ 高度偏移量(和菜单栏和状态栏的高度之和有关)private final int HEIGHT_OFFSET = 80;/ 显示当前时间private DateTimeView dtv = null;/* * 构造方法 * * param title * 窗口标题 */public MM(String title) super(title);try setDefaultCloseOperation(EXIT_ON_CLOSE);init(); catch (Exception e) e.printStackTrace();/* * 初始化窗口 * * throws Exception */private void init() throws Exception JPanel pnlCenter = new JPanel();JLabel lblStatusBar = new JLabel( );dtv = new DateTimeView(lblStatusBar);Timer timer = new Timer();qp = new QueryView(220, 220);tap = new AssetTableView(570, 520);root = new DefaultMutableTreeNode(高校固定资产管理系统-类别);pnlCTop = new JPanel();pnlCBottom = new JPanel();pnlCRight = new JPanel();trp = new CategoryTreeView(220, 300);pnlCenter.setLayout(null);pnlCBottom.setLayout(null);pnlCRight.setLayout(null);pnlCTop.setBounds(0, 0, qp.getWidth(), qp.getHeight();pnlCBottom.setBounds(0, qp.getWidth(), trp.getWidth(), trp.getHeight();pnlCRight.setBounds(qp.getWidth(), 0, tap.getWidth(), tap.getHeight();/ 设置trp面板的宽高等于pnlCBottom面板的宽高trp.setBounds(0, 0, pnlCBottom.getWidth(), pnlCBottom.getHeig

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论