论坛首页 Java企业应用论坛

课程设计之图书管理系统

浏览 19628 次
精华帖 (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.       最终运行结果

用户登陆入口:角色可选管理员和读者,用户名及密码通过即可进入

 

  读者主界面

 

 

 

 管理员主界面



这个系统由于最近比较忙,花的时间也就那么几天,所以也只是实现了一些比较基本的功能

源码在附件中可下载

 

  • 大小: 16 KB
  • 大小: 117.1 KB
  • 大小: 134.9 KB
  • 大小: 28 KB
  • 大小: 174.2 KB
  • 大小: 186.6 KB
   发表时间:2010-09-16  
貌似不错啊,尤其使用了substance.jar
0 请登录后投票
   发表时间:2010-09-16  
挺好看的 !
0 请登录后投票
   发表时间:2010-09-16  
楼主能不能贴张类图?
0 请登录后投票
   发表时间:2010-09-16  
现在一般都用web来实现前台界面呢!而且web也方便。
0 请登录后投票
   发表时间:2010-09-16  
大致看了下,逻辑不清阿。1。FileI/O 应有独立的函数。2。I/O close() should be within finally{} block.
0 请登录后投票
   发表时间:2010-09-16  
真是崇拜 所以基础一定要打好啊。哪天我也能这样 我相信
0 请登录后投票
   发表时间:2010-09-17  
用了文件做数据库?
可以考虑用hsqldb这个轻量级数据库,不用安装,就一个jar包,直接使用。
0 请登录后投票
   发表时间:2010-09-17  
KimHo 写道
用了文件做数据库?
可以考虑用hsqldb这个轻量级数据库,不用安装,就一个jar包,直接使用。

没办法;是课程设计,老师不允许用数据库
0 请登录后投票
   发表时间: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.

说的在理,谢谢赐教^_^
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics