锁定老帖子 主题:课程设计之图书管理系统
精华帖 (0) :: 良好帖 (3) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-09-15
最后修改:2010-09-15
一、系统说明 本系统主要是用于对图书馆的读者以及馆内的图书的管理 二、模块说明 读者所有模块 1. 个人信息管理: 查看个人信息:查看读者自己的个人信息 修改个人信息:修改读者的个人信息,在修改之前必须输入旧密码,防止别人 篡改 2. 个人借阅管理: 查找图书:读者可以根据书的ID、书名以及作者对图书进行查询 借阅图书;读者可以借阅图书馆的书目,不在馆的图书不能借况,每本书的借阅期限为30天 归还图书:读者可以归还自己所借的图书 借阅统计:统计读者个人所借的书目 管理员所有模块 1. 个人信息管理: 查看个人信息:查看管理员自己的个人信息 修改个人信息:修改管理员的个人信息,在修改之前必须输入旧密码,防止别人篡改 2. 图书信息管理: 已有书目:显示当前图书馆的所有书目 增加图书:增加书目到馆内 修改图书:修改在馆的图书信息 删除图书:删除在馆的图书 3.读者信息管理: 查看已有读者:查看当前已在图书馆内注册的所有读者 增加读者信息:增加一个新读者到馆内 修改读者信息:修改馆内的某一个读者的信息 删除读者信息:删除一个馆内的读者 4.管理员信息管理: 已有管理员:查看当前馆内的已有管理员 添加管理员:添加一个新管理员到馆内(非超级管理员无法操作) 修改管理员:修改某一个管理员的信息(非超级管理员无法操作) 删除管理员:删除一个管理员(非超级管理员无法操作) 三、结果显示 1. 部分核心代码
package cn.zld.dao; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; import cn.zld.pojo.Constants; import cn.zld.pojo.ManagerInfo; /** * 管理员数据处理 * * @author 张立冬 * @project:图书管理系统 2010-8-30 * */ public class ManagerDao { public static List<ManagerInfo> managers; /** * 增加一个新管理员 * * @param manager */ public static boolean registerNewManager(ManagerInfo manager) { try { if (managers == null) { managers = getAllManager(); } for(int i=0;i<managers.size();i++){ if(managers.get(i).getManagerName().equals(manager.getManagerName())){ javax.swing.JOptionPane.showMessageDialog(null, "管理员的名字已存在,无法添加!"); return false; } } managers.add(manager); File file = new File(Constants.MANAGERFILEPATH); FileOutputStream fout = new FileOutputStream(file); // 将文件流转成对象流 ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout); objectOutputStream.writeObject(managers); fout.close(); return true; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return false; } /** * 获取所有的管理员 * * @param managers */ @SuppressWarnings("unchecked") public static List<ManagerInfo> getAllManager() { managers = new ArrayList<ManagerInfo>(); ManagerInfo manager=new ManagerInfo();//初始化一个管理员,并使得该管理员为超级管理员 manager.setManagerName("admin"); manager.setPwd("admin"); manager.setId(Constants.ID); manager.setAge(20); manager.setLevel("超级管理员"); manager.setSex("男"); managers.add(manager); try { File file = new File(Constants.MANAGERFILEPATH); if (!file.exists()) {// 初始化文件不存在的话则创建该文件 System.out.println("文件不存在,创建新初始化文件!"); file.getParentFile().mkdirs(); file.createNewFile(); FileOutputStream fout = new FileOutputStream(file); // 将文件流转成对象流,并写入初始化对象 ObjectOutputStream objectOutputStream = new ObjectOutputStream( fout); objectOutputStream.writeObject(managers); } FileInputStream fin = new FileInputStream(file); // 将文件流转成对象流 ObjectInputStream objectOutputStream = new ObjectInputStream( fin); managers = (List) objectOutputStream.readObject(); fin.close(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } return managers; } /** * 更新管理员的信息 * * @param reader:要更新的管理员对象 * @return:操作成功返回true,操作失败返回false */ public static boolean updateManager(ManagerInfo manager) { // 对其进行异常处理 try { if (managers == null) { managers = getAllManager(); } for (int i=0;i<managers.size();i++) { ManagerInfo managerinfo=managers.get(i); if (managerinfo.getId() == manager.getId()) { managers.remove(managerinfo);// 将旧对象删除 managers.add(manager);// 将新对象加入 File file = new File(Constants.MANAGERFILEPATH); FileOutputStream fout = new FileOutputStream(file); // 将文件流转成对象流 ObjectOutputStream objectOutputStream = new ObjectOutputStream( fout); objectOutputStream.writeObject(managers); fout.close(); managers=getAllManager(); } } return true; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return false; } } /** * 删除一个管理员 * * @param manager:要删除的管理员对象 * @return:操作成功返回true,操作失败返回false */ public static boolean deleteManager(ManagerInfo manager) { // 对其进行异常处理 try { if (managers == null) { managers = getAllManager(); } for (int i=0;i<managers.size();i++) { ManagerInfo managerinfo=managers.get(i); if (managerinfo.getId() == manager.getId()) { managers.remove(managerinfo);// 将旧对象删除 File file = new File(Constants.MANAGERFILEPATH); FileOutputStream fout = new FileOutputStream(file); // 将文件流转成对象流 ObjectOutputStream objectOutputStream = new ObjectOutputStream( fout); objectOutputStream.writeObject(managers); fout.close(); } } return true; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return false; } } }
2. 最终运行结果 用户登陆入口:角色可选管理员和读者,用户名及密码通过即可进入
读者主界面
管理员主界面
源码在附件中可下载
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-09-16
貌似不错啊,尤其使用了substance.jar
|
|
返回顶楼 | |
发表时间:2010-09-16
挺好看的 !
|
|
返回顶楼 | |
发表时间:2010-09-16
楼主能不能贴张类图?
|
|
返回顶楼 | |
发表时间:2010-09-16
现在一般都用web来实现前台界面呢!而且web也方便。
|
|
返回顶楼 | |
发表时间:2010-09-16
大致看了下,逻辑不清阿。1。FileI/O 应有独立的函数。2。I/O close() should be within finally{} block.
|
|
返回顶楼 | |
发表时间:2010-09-16
真是崇拜 所以基础一定要打好啊。哪天我也能这样 我相信
|
|
返回顶楼 | |
发表时间:2010-09-17
用了文件做数据库?
可以考虑用hsqldb这个轻量级数据库,不用安装,就一个jar包,直接使用。 |
|
返回顶楼 | |
发表时间:2010-09-17
KimHo 写道 用了文件做数据库?
可以考虑用hsqldb这个轻量级数据库,不用安装,就一个jar包,直接使用。 没办法;是课程设计,老师不允许用数据库 |
|
返回顶楼 | |
发表时间:2010-09-17
1。FileI/O 应有独立的函数。2。I/O close() should be within finally{} block
LazyJack 写道 大致看了下,逻辑不清阿。1。FileI/O 应有独立的函数。2。I/O close() should be within finally{} block.
说的在理,谢谢赐教^_^ |
|
返回顶楼 | |