图书借阅管理用java实现_用java实现图书管理系统。 - 惊觉...

在学完java基础篇的时候,安排做了一个综合版的java基础项目,可以把之前学到的知识综合运用。

一.项目设计到的知识

1.MVC设计模式思想(分包)

>项目分包

d8092933abe4168c831f82cadfcc4159.png

运用这种设计模式的优点:

MVC 是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。

>MVC简单介绍

M model业务模型(pojo/domain/bean)与现实中实体类联系

V views视图层(views)

图形化界面(gui)

C controller

用户与软件交互,处理信息

dao层(数据持久化)

提供数据

service层(处理逻辑)

处理数据

controller(javaweb里边的内容,servlet)

较详细的图示:

5d6ddc07dd623d8a8860b50fdd92ec20.png

2.GUI(图形化界面)

其中的GUI代码案例:

package org.vector.view;

import java.awt.Cursor;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.ArrayList;

import java.util.List;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

import org.vector.bean.Book;

import org.vector.bean.Booktype;

import org.vector.bean.Borrowbook;

import org.vector.bean.Reader;

import org.vector.bean.Readertype;

import org.vector.bean.Users;

import org.vector.serviceImpl.UsersServiceImpl;

public class BookLogin extends JFrame{

public BookLogin() {

buliding();

addListeners();

}

public static String name1;

public static List list = new ArrayList();

public static List list1 = new ArrayList();

public static List list2 = new ArrayList();

public static List list3 = new ArrayList();

public static List list4 = new ArrayList();

public static List list5 = new ArrayList();

private JButton login,reset,register;

private JLabel name,password,label;

private JTextField name_Text;

private JPasswordField password_Text;

private void buliding() {

// TODO Auto-generated method stub

setLayout(null);

background();

setTitle("图书借阅系统登录界面");

Font font = new Font("圆体", Font.BOLD, 50);

label = new JLabel("图书借阅系统");

label.setFont(font);

label.setBounds(40, 20, 400, 50);

add(label);

name = new JLabel("用户名:");

name.setBounds(45, 100, 120, 30);

add(name);

name_Text = new JTextField(20);

name_Text.setBounds(100, 100, 200, 30);

add(name_Text);

password = new JLabel("密 码:");

password.setBounds(45, 150, 120, 30);

add(password);

password_Text = new JPasswordField(20);

password_Text.setBounds(100, 150, 200, 30);

add(password_Text);

login = new JButton("登录");

login.setBounds(50, 200, 100, 35);

add(login);

reset = new JButton("重置");

reset.setBounds(150, 200, 100, 35);

add(reset);

//register = new JButton("注册");

//register.setBounds(250, 200, 100, 35);

//add(register);

setBounds(400,300,400,300);

setLocation((2000-getWidth())/2,(1000-getHeight())/2);

setResizable(false);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

setVisible(true);

}

public void background() {

setSize(600, 500);

setLocation(100, 100);

String path = "Login.jpg";

ImageIcon background = new ImageIcon(path);

JLabel label = new JLabel(background);

label.setBounds(0, 0, this.getWidth(), this.getHeight());

JPanel imagePanel = (JPanel) this.getContentPane();

imagePanel.setOpaque(false);

this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

private void addListeners() {

login.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

login.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

int flag = 0;

String name = name_Text.getText();

String password = password_Text.getText();

name1 = name;

UsersServiceImpl user = new UsersServiceImpl();

BookLogin.list.clear();

BookLogin.list.addAll(user.findUsers());

for (int i = 0; i < BookLogin.list.size(); i++) {

if(name.equals(BookLogin.list.get(i).getName())&&password.equals(BookLogin.list.get(i).getPassword())){

JOptionPane.showMessageDialog(null, "登录成功", "标题", JOptionPane.WARNING_MESSAGE);

BookLogin.this.dispose();

new BorrowbookView().setVisible(true);

flag = 1;

BookLogin.this.dispose();

new BorrowbookView().setVisible(true);

break;

}

}

if(flag == 0) {

JOptionPane.showMessageDialog(null, "登录失败,该用户不存在", "标题", JOptionPane.WARNING_MESSAGE);

}

}

});

reset.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

BookLogin.this.dispose();

new BookLogin().setVisible(true);

}

});

//register.addActionListener(new ActionListener() {

//

//@Override

//public void actionPerformed(ActionEvent e) {

TODO Auto-generated method stub

//BookLogin.this.dispose();

//new UserAdd().setVisible(true);

//}

//});

}

}

3.JDBC连接MySql数据库

用了c3p0对原生JDBC的封装思想,大大提高了开发者的效率。

c3p0xml配置文件

jdbc:mysql://localhost:3306/mybook?characterEncoding=UTF8

com.mysql.jdbc.Driver

root

password

6

10

10000

fd2fd9e74d85242520d23d79246d3193.png

大多数情况下只用改,数据库名,账号,密码,别的默认值就行。

4.I/O流

I/O流是开发过程中,最耗费,最占用资源的一门技术,在开发中尽量减少对I/O的使用。

5.面向对象思想

面向对象的思想是在整个学java期间,都不断去学习,这种思想是潜移默化的,短时间内,往往难以清楚地理解。

项目运行效果

登录界面

e6416d29892bd3228e9dafa7f53e788f.png

284b0ec57316fe8f09d5b5e29e64f77e.png

主界面

f4a603e1f23c5c79a2611fb279574d57.png

…绅士们,请收回你们的目光。

读者信息管理

c91b707180a15a076f3eb8b1a1eee259.png

读者信息添加

746d112c02363c914fb16fcfe69e267c.png

2bb8482c4591651df2380b3b2d41f3ee.png

读者信息查询和修改

f3a13b9586179a3092715ab6f9943eb1.png

读者信息查询

2e66f83df97a358bcadbc3471a5e9dc1.png

查询成功!

799ab8dbf958684f8d61543e6663bd0d.png

读者信息修改

a26b0e51bf888cb3ff1c370f3927ca17.png

修改成功!

e048fb2b0d3947c9a107de4e8a9e8967.png

图书信息管理

d15750f81a37b54568b72609007d455e.png

图书信息添加

36999f2c271b236fdcf2a1292c4404e6.png

1a089efe89e2a7da45f407c17f32c89e.png

由于东西较多,后面的我就不一一演示了,大家有兴趣的可以自己做一个更好的。

图书信息查询

977ebedaca77a30fe8f6e5127f114c8a.png

图书信息修改

f411fe36575432deac44546724e7a930.png

图书借阅管理

8aece2f62e786da2b4e6329867fa15a2.png

图书借阅

3e1fe406889ca05634bf2df97b6452fa.png

图书归还

b85d22a4bf7f017fa2456d46e3f0dfdd.png

基础信息维护

4673652865979bf2b45b6f3abf3b0481.png

图书类别设置

f48dc18b144a6bdd819a05154429f809.png

读者类别设置

1b38a1ee1bd54148524782c4f499732e.png

罚金设置

ff7e4c567b48b5b4fc2ebe77164a2e42.png

用户管理

a3c1f45da2223fa48d2239870de03653.png

修改密码

b7df79e578d126a78a14c4a861dbd8b6.png

用户添加

785e065b94e1301cedc8be24c766bdd9.png

用户删除

d5a042069d627f4b3051581a187b919f.png

详细的可以了解,资源里边的项目。

联系方式qq:1287440358 微信:Burial_DH。

转载自CSDN-专业IT技术社区

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图书资料管理信息系统,带源代码、数据库sql文件、课设报告,具备如下基本功能: 1、 系统管理功能有:角色管理、用户管理、修改密码。主要实现系统的安全管理,不同的操作者有不同的权限,可以执行不同的操作。普通读者的权限只能是查询图书及自己的借阅情况;而图书管理员可以对图书信息进行管理,如对新书入库,也可以管理用户,如添加新用户和删除不用的账号等。 2、 进书管理功能有:登记基本的图书信息。这部分的功能用于登记新书的书名、作者、出版社、价格、进书的册数、进书日期、ISBN等。 3、 图书入库管理功能有:对新书分类编目,及时更新图书库中的图书信息。这部分的功能用于对所购进的新书,按其种类学科进行编目,给与唯一的书号;及时更新书库中的图书信息,包括书名、书号、作者、出版社、价格、库存位置和库存册数这些信息,方便读者查询借阅。 4、 查询功能功能有:查询图书的信息,查询读者的借阅情况。这部分的功能主要提供多种方式的查询服务。读者可以根据书名、作者或关键字模糊查询图书信息;读者也可以根据自己的借书证号查询自己的借阅情况,如已借了几本书,借书日期,还书日期,有没有续借等。 5、 借书/还书管理功能有:借书管理、还书管理。这部分的功能是当读者借书时,系统根据借书证号识别读者身份,核对读者的借书信息,做出判断如可不可以借、还可借几本,成功借阅后记录在借书信息并修改书库图书信息。当读者还书时,系统根据借书证号识别读者身份,核对读者的借书信息,做出判断如有没有超期,要不要罚款,需要罚多少等,最后还书成功,修改书库图书信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值