一、系统说明
本系统主要是用于对图书馆的读者以及馆内的图书的管理
二、模块说明
读者所有模块
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
分享到:
相关推荐
适用于RFID课程设计,完整版可运行的、利用RFID技术实现的图书管理系统完整工程项目
c语言课程设计之图书管理系统.doc
java课程设计之图书管理系统,可以查找书名,添加,删除,连接SQL数据库的。
基于控制台的C++图书管理系统(附带效果展示视频) 详情请查看:https://www.nonoas.top/archives/cpp-library
c++ 面向对象 图书管理系统 课程设计
数据库课程设计之图书管理系统,使用C++语言前台操作
c++课程设计之图书管理系统源码
C++课程设计之图书管理系统源码.
数据库课程设计之图书管理系统.doc
数据结构课程设计之图书管理系统
课程设计 数据库课程设计 图书管理系统数据库课程设计 图书管理系统数据库课程设计 图书管理系统数据库课程设计 图书管理系统数据库课程设计 图书管理系统数据库课程设计 图书管理系统
数据库课程设计之图书管理系统开发完整版.pdf
C语言课程设计之图书管理系统(源码+说明) 功能描述: (1)新进图书基本信息的输入。 (2)图书基本信息的查询。 (3)对撤消图书信息的删除。 (4)为借书人办理注册。 (5)办理借书手续。 (6)办理还书手续
c++毕业课程设计-图书管理系统源码分享~亲测可用,有需要的朋友拿去 c++毕业课程设计-图书管理系统源码分享~亲测可用,有需要的朋友拿去 c++毕业课程设计-图书管理系统源码分享~亲测可用,有需要的朋友拿去 c++毕业...
Android课程设计-图书管理系统.zipAndroid课程设计-图书管理系统.zipAndroid课程设计-图书管理系统.zipAndroid课程设计-图书管理系统.zipAndroid课程设计-图书管理系统.zipAndroid课程设计-图书管理系统.zipAndroid...
再上传一个课程设计,图书管理系统,c++做的。如果需要其他课程设计。可以另外加QQ。
图书管理系统 web 课程设计报告