今天为大家分享一个java语言编写的图书管理程序-105,目前系统功能已经很全面,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步
开发环境
开发语言为Java,开发环境Eclipse或者IDEA都可以,数据为MySQL。运行主程序,或者执行打开JAR文件即可以运行本程序。
系统框架
利用JDK自带的SWING框架开发。纯窗体模式,直接运行Main文件即可以。同时带有详细得设计文档。
主要功能
项目背景
随着社会的进步,信息技术的广泛应用,数字管理的优势日趋显著。针对中小型图书馆或图书室管理落后的情况,设计实现一个图书信息管理系统,通过与计算机的结合使用对中小型图书馆或图书室的各种图书信息进行管理可以给管理员和用户带来以下不同的方便:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高工作效率,也是图书馆等部门管理科学化、正规化的重要标志之一。而且计算机管理的成本不断降低。因此,开发一这样的中小型图书管理软件已经很有必要,并且实现研究服务于实践的原则。随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。我国的学校的图书管理也正在逐步与国际接轨。图书管理环节、图书管理方式以及管理的理念都在发生深刻的变化,图书管理工作当然也在变化,因此就要求图书管理工作者学会和掌握计算机应用技术,实现图书管理工作信息化管理,因此很有必须开发一个基于窗体的的图书管理系统。
主要功能
java语言编写的图书管理程序-104,系统分为普通用户和系统管理员。他们的功能分别如下:
普通用户主要功能
注册新用户和登陆
主要是查看库存图书和借阅情况
修改密码
查看关于我们
系统管理员主要功能
可以对所有图书进行管理以及对图书进行包括添加、删除、修改的管理
对用户进行增删改查
3 对图书分类进行增删改查
4 修改管理员密码
5 图书的借阅和图书的归还功能
系统运行效果
关键代码
package libraryManage;
//Login.java
//import PublicModule.DbOp;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
public class Login extends Frame{
Toolkit tool= getToolkit();
String url="src/img/login.png";
Image img=tool.getImage(url);
private JProgressBar progressBar;
private TextField text_user;
private TextField text_pass;
private JLabel title;
private JLabel userlb;
private JLabel passlb;
private JLabel register;
public void paint(Graphics g){
g.drawImage(img,0,0,this);
super.paint(g);
}
public Login(){
this.setTitle("Login");
this.setLayout(null);
this.setSize(1129,542);
setResizable(false);
//标签设置
userlb=new JLabel("UserName:");
passlb=new JLabel("PassWord:");
title=new JLabel("武汉理工大学图书管理系统");
JButton sure=new JButton("Login");
sure.setFocusPainted(false);
JButton cancel=new JButton("Cancel");
cancel.setFocusPainted(false);
//设置透明度
sure.setContentAreaFilled(false);
cancel.setContentAreaFilled(false);
//设置边框
sure.setBorder(BorderFactory.createLineBorder(Color.black));
cancel.setBorder(BorderFactory.createLineBorder(Color.black));
register=new JLabel("还没有账号?点击注册新用户");
text_user=new TextField();
text_pass=new TextField();
title.setFont(new Font("楷体",Font.BOLD,30));
userlb.setFont(new Font("微软雅黑",Font.PLAIN,20));
passlb.setFont(new Font("微软雅黑",Font.PLAIN,20));
title.setBounds(700,140,400,50);
userlb.setBounds(650,200,110,35);
passlb.setBounds(650,250,100,35);
text_user.setBounds(770,200,200,35);
text_pass.setBounds(770,250,200,35);
sure.setBounds(770,300,100,35);
cancel.setBounds(890,300,100,35);
register.setBounds(770,370,200,20);
text_user.setFont(new Font("楷体",Font.BOLD,20));
text_pass.setFont(new Font("楷体",Font.BOLD,20));
text_pass.setEchoChar('*');
sure.setFont(new Font("楷体",Font.PLAIN,20));
cancel.setFont(new Font("楷体",Font.PLAIN,20));
register.setFont(new Font("楷体",Font.PLAIN,15));
//进度条设置
progressBar=new JProgressBar(0,100);
progressBar.setStringPainted(true);
progressBar.setMaximum(100);
progressBar.setMinimum(0);
progressBar.setBounds(680,400,400,30);
progressBar.setForeground(Color.gray);
progressBar.setVisible(false);
this.add(title);
this.add(register);
this.add(text_user);
this.add(text_pass);
this.add(userlb);
this.add(passlb);
this.add(sure);
this.add(cancel);
this.add(progressBar);
register.addMouseListener(new MouseListener() {
@Override
public void mouseEntered(MouseEvent e) {
// TODO 自动生成的方法存根
register.setText("<html><u>还没有账号?点击注册新用户</u><html>");
register.setForeground(Color.blue);
}
@Override
public void mouseClicked(MouseEvent e) {
dispose();
new register();
}
@Override
public void mouseExited(MouseEvent e) {
// TODO 自动生成的方法存根
register.setText("还没有账号?点击注册新用户");
register.setForeground(Color.black);
}
@Override
public void mousePressed(MouseEvent e) {
// TODO 自动生成的方法存根
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO 自动生成的方法存根
}
});
sure.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
sureActionListener(e);
}
});
cancel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
DbOp.close();
dispose();
}
});
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
DbOp.close();
dispose();
}
});
this.setLocationRelativeTo(null);
this.setVisible(true);
}
//确定事件
public void sureActionListener(ActionEvent le){
String user=text_user.getText();
String pass=text_pass.getText();
String is_admin="";
if(user.equals("")||pass.equals("")){
JOptionPane.showMessageDialog(null,"密码不能为空,请输入密码");
return;
}
try{
String sql="select * from user where username="+"'"+user+"'"+"and password="+"'"+pass+"'";
ResultSet rs=DbOp.executeQuery(sql);
if(rs.next())
{
progressBar.setVisible(true);
register.setVisible(false);
is_admin=rs.getString("is_admin");
//设置全局变量
GlobalVar.login_user=user;
GlobalVar.manage=is_admin;
new Thread()
{
public void run()
{
int i=0;
for(i=0;i<101;i++)
{
try {
sleep(20);
} catch (InterruptedException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
if(i<=20)progressBar.setForeground(Color.green);
else if(i>20&&i<=40)progressBar.setForeground(Color.orange);
else if(i>40&&i<60)progressBar.setForeground(Color.pink);
else if(i>60&&i<80)progressBar.setForeground(new Color(154,223,237));
else if(i>=80)progressBar.setForeground(new Color(237,33,111));
progressBar.setString("数据库加载中 "+i+"%");
progressBar.setValue(i);
}
if(i==101)
{
progressBar.setForeground(Color.red);
progressBar.setString("数据库加载完成");
try {
sleep(1000);
} catch (InterruptedException e) {
JOptionPane.showMessageDialog(null,e.getMessage());
}
dispose();
ShowMain show=new ShowMain();
show.setRights(GlobalVar.manage);
}
}
}.start();
System.out.println("Successed");
}
else{
JOptionPane.showMessageDialog(null,"Wrong that is UserNmae or Password ");
return;
}
}catch(SQLException e){
JOptionPane.showMessageDialog(null,"the wrong from information");
}
}
//进度条函数
public static void main(String[] args){
//设置适应window10风格
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch (ClassNotFoundException | InstantiationException | IllegalAccessException
|UnsupportedLookAndFeelException e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
try {
new Login();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}
}
}
项目总结
经过半个月的熬夜编码,我终于完成图书管理系统的设计与开发,达到了预期的目标。在开发的过程中过程中遇到不少困难,通过查阅相关资料,反复琢磨,请教同学,问题最终都得以解决。虽然系统的基本功能都已实现,但还是存在系统不稳定,操作提示操作不够友好等多个问题尚待解决。这个系统主要是我自己开发的,但也得到了老师和同学的很大帮助,在此对他们表示感谢。