今天为大家分享一个java语言编写的图书管理程序-400,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步
开发环境
开发语言为Java,开发环境Eclipse或者IDEA都可以,数据为MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。
系统框架
利用JDK自带的SWING框架开发。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档。
主要功能
开发背景
随着社会的进步,信息技术的广泛应用,数字管理的优势日趋显著。针对中小型图书馆或图书室管理落后的情况,设计实现一个图书信息管理系统,通过与计算机的结合使用对中小型图书馆或图书室的各种图书信息进行管理可以给管理员和用户带来以下不同的方便:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作效率,也是图书馆等部门管理科学化、正规化的重要标志之一。而且计算机管理的成本不断降低。因此,开发一这样的中小型图书管理软件已经很有必要,并且实现研究服务于实践的原则。随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。我国的学校的图书管理也正在逐步与国际接轨。图书管理环节、图书管理方式以及管理的理念都在发生深刻的变化,图书管理工作当然也在变化,因此就要求图书管理工作者学会和掌握计算机应用技术,实现图书管理工作信息化管理,因此很有必须开发一个基于窗体的的图书管理系统。
主要功能模块
本次开发的图书管理系统系统有两类主要的人员,包括学生和系统管理员。他们在系统中的功能如下:
学生
主要是查看库存图书和借阅情况
借阅图书
归还图书
修改密码和个人信息
查询历史借阅订单信息
系统管理员
可以对所有图书进行管理以及对图书进行包括添加、删除、修改的管理
对用户进行增删改查
对图书分类进行增删改查
对读者类型的日常管理。不同读者可以借阅不同数量的书本和借阅天数
查询历史借阅订单信息
修改密码和个人信息
数据库设计
![](https://i-blog.csdnimg.cn/blog_migrate/a1138d166f6aae101494cb38175dcd3c.png)
实现效果
1 用户登陆
![](https://i-blog.csdnimg.cn/blog_migrate/6c2708c27281d6c2954e18b000a24a84.png)
2 用户注册
![](https://i-blog.csdnimg.cn/blog_migrate/1c65fb52e66a46c7052029687628e191.png)
3 图书信息管理
![](https://i-blog.csdnimg.cn/blog_migrate/24df06df4801f6536409ec361249670e.png)
4 新增图书
![](https://i-blog.csdnimg.cn/blog_migrate/f2d82f04f1a9cc771b8413b9c52cd1e9.png)
5 修改图书
![](https://i-blog.csdnimg.cn/blog_migrate/89f5de32334f165af1ad15f6e0757afd.png)
6 图书类型管理
![](https://i-blog.csdnimg.cn/blog_migrate/67f8ebf77630c186144477a001ff7259.png)
7 读者管理
![](https://i-blog.csdnimg.cn/blog_migrate/30327bcac5fbf5364400349d8afd9dd6.png)
8 读者类型管理
![](https://i-blog.csdnimg.cn/blog_migrate/b212d6602ac919fbcab7ea8c5d01d3f0.png)
9 图书借阅管理
![](https://i-blog.csdnimg.cn/blog_migrate/8634458838f4bff94b2270ad1cf408e5.png)
10 个人信息维护
![](https://i-blog.csdnimg.cn/blog_migrate/b8c8a0a015bf0ed98b4c59aadfa6de04.png)
11 读者借阅图书
![](https://i-blog.csdnimg.cn/blog_migrate/5bd96644d1cb099fa98e6b7f55341bb3.png)
12 归还图书
![](https://i-blog.csdnimg.cn/blog_migrate/69b0b80f148b66b328edd15099945387.png)
13 读者修改个人信息
![](https://i-blog.csdnimg.cn/blog_migrate/e93cbfd9c758a458a7851846afbdc3c6.png)
关键代码
package Tool;
import java.util.regex.Pattern;
/**
* 正则表达式验证
* @author rsw
*
*/
public class RegexTool {
private static final String NAME="^([\u4e00-\u9fa5]{2,5})$";
private static final String CHINESE="^[\\u4e00-\\u9fa5]$";
private static final String TELE="^((17[0-9])|(14[0-9])|(13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$";
private static final String EMAIL="^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
private static final String INT="^[0-9]*$";
private static final String DECIMAL="^[0-9]+(.[0-9]{1,2})?$";
private static final String IDCARD="(^[1-8][0-7]{2}\\d{3}([12]\\d{3})(0[1-9]|1[012])(0[1-9]|[12]\\d|3[01])\\d{3}([0-9Xx])$)";
private static final String PASSWORD="^[a-zA-Z0-9]{6,16}$";
private static final String CHINESEENGLISH="^[a-zA-Z\\u4e00-\\u9fa5 ]{2,20}$";
private static final String CHINESEMATH="^[a-zA-Z0-9\\u4e00-\\u9fa5 ]{2,20}$";
/**
* 验证姓名
*/
public static boolean proveName(String name) {
return Pattern.matches(NAME, name);
}
/**
* 验证中文
*/
public static boolean proveChinese(String chinese) {
return Pattern.matches(CHINESE, chinese);
}
/**
* 验证手机号
*/
public static boolean proveTele(String tele) {
return Pattern.matches(TELE, tele);
}
/**
* 验证邮箱
*/
public static boolean proveEmail(String email) {
return Pattern.matches(EMAIL, email);
}
/**
* 验证整数
*/
public static boolean proveINT(String figure) {
return Pattern.matches(INT, figure);
}
/**
* 验证小数
*/
public static boolean proveDECIMAL(String decimal) {
return Pattern.matches(DECIMAL, decimal);
}
/**
* 验证身份证号
*/
public static boolean proveIDCard(String idCard) {
return Pattern.matches(IDCARD, idCard);
}
/**
* 验证密码
*/
public static boolean provePassword(String password) {
return Pattern.matches(PASSWORD, password);
}
/**
* 验证中文和数字
*/
public static boolean proveChineseInt(String chineseInt) {
return Pattern.matches(CHINESEMATH, chineseInt);
}
/**
* 验证中文和英文
*/
public static boolean proveChineseEnglish(String chineseEnglish) {
return Pattern.matches(CHINESEENGLISH, chineseEnglish);
}
}