《高校固定资产管理系统.docx》由会员分享,可在线阅读,更多相关《高校固定资产管理系统.docx(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、重庆邮电大学理学院信息与计算科学专业集中实践报告 题 目:高校固定资产管理系统 指导老师: 李永红_ 专 业: 数理科学与信息技术_ 班 级: 1121302、1121301_ 学 号: 2013213055、2013213058_ 姓 名: 何锐、周海渝_ 成 绩:_ 20 16 年 06 月 16 日一、 需求分析随着社会的发展,人们的生活节奏不断加快。为了节约宝贵的时间,高校固定资产管理系统应运而生。在管理固定资产的过程中,需要修改、更新大量的表单。如果使用计算机来辅助填写及保存相应的记录,则能大大提高固定资产管理的效率。因此,需要开发一个固定资产管理系统。该系统应该支持快速录入关键信息
2、,例如,固定资产的借出、归还等。这些信息需要被保存在数据库中以便以后查看。通过对程序需要实现的功能进行分析,完成数据库和程序界面的设计。通过对高校固定资产管理系统的了解,要求其具备如下功能。1. 登录系统登录系统可以有效地保障系统的安全性,防止非法用户使用系统。只有输入合法的用户名和密码才能够正常登录,否则不能进行登录。2. 添加信息用户进入系统后,通过对“资产信息管理”菜单中的“类别管理”菜单项,可以进行大类(总的分类)的添加。同样,在其他几个菜单中也可进行信息添加。3. 删除信息用户进入系统后,通过对“账户管理”菜单中的“删除帐户”菜单项,可以进行帐户的删除。同样,在其他几个菜单中也可进行
3、信息删除。4. 修改信息考虑到操作人员录入的失误,需要提供信息的修改功能。通过“职员管理”菜单中的“修改职员”菜单项,可以对职员信息进行修改。同样,在其他几个菜单中也可进行信息修改。5. 查询信息用户进入系统后,可以通过“按编号查”、“按类别查”、“按使用者查”的不同类别进行信息查询。6. 添加用户进入系统后,可以通过“账户管理”菜单的“添加用户”菜单项添加新的用户,并为其指定密码。一旦新用户添加成功,以后就可以通过该用户进入系统进行操作。7. 修改密码为了提高系统的安全性,通常建议管理员定期修改密码。使用“账户管理”菜单的“修改密码”菜单项可以进行密码的修改。 二、 总体设计1. 通过对系统
4、进行深入的分析得知,本系统需要实现以下目标。系统管理资产信息管理账户管理职员管理资产还借管理帮助查询按编号查询:按类别查询:按使用者查询:资产信息分类显示显示当前时间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
5、 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.sqlserve
6、r.SQLServerDriver;/ 数据库地址private static final String DATABASE_URL = jdbc:microsoft:sqlserver:/127.0.0.1:1433;databaseName = Assets;/ 数据库登录名private static final String USER_NAME = sa;/ 密码private static final String PASSWORD = 1234;/* * 构造方法 禁止实例化 */private ConnectionManager() /* * 取得数据库连接 * * return
7、*/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_MESSAG
8、E);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 (SQ
9、LException 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.clos
10、e();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.
11、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 /* * 查找管理员
12、信息 * * 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
13、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 C
14、onnectionManager.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 = ConnectionM
15、anager.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.getIn
16、t(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.clos
17、eStatement(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
18、 = 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.printStackTrac
19、e(); 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
20、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(S
21、id);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 * 存储过程名 * par
22、am 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 +
23、 );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
24、.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 * 查找类型 * retu
25、rn */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 +
26、 );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.
27、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);re
28、turn 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.executeQu
29、ery();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.g
30、etString(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 * 调用存储过程的字符串 *
31、 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);/* * 子类别查找类型 * *
32、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,
33、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;p
34、rivate 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;publi
35、c 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) this.name = name;public double getPrice() return price;public void setPrice(double price) this.price = pr
36、ice;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 = sta
37、tus;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;/* * 实体类-职员信息 * */publ
38、ic 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) this.name = name;public String getPosition() return position;public void setPosition(String position) this.position = position;p