求一个java图书管理系统代码,不需要图形化,命令行就可以,只要求实现导入图书,查询,删除

Python018

求一个java图书管理系统代码,不需要图形化,命令行就可以,只要求实现导入图书,查询,删除,第1张

import java.io.BufferedReader

import java.io.File

import java.io.FileReader

import java.util.ArrayList

import java.util.List

import java.util.Scanner

public class BookWork {

    static List<Book> data

    private static Scanner input

    public static void main(String[] args) {

        if (!initBook("d:/book.txt")) {

            System.out.println("初始图书列表失败 ..")

            return

        }

        input = new Scanner(System.in)

        while (true) {

            try {

                System.out.println("请输入操作:")

                System.out.println("1.找书  2.删除图书 3.退出")

                int number = Integer.parseInt(input.next())

                if (number == 1) {

                    findBook()

                } else if (number == 2) {

                    delBook()

                } else if (number == 3) {

                    System.out.println("退出")

                    break

                } else {

                    System.out.println("这个不是我要的...重来...")

                    System.out.println()

                }

            } catch (Exception e) {

                e.printStackTrace()

                System.out.println("这个不是我要的...重来...")

                System.out.println()

            }

        }

    }

    private static void delBook() {

        System.out.println("请输入要删除的书名或编号:")

        String key = input.next()

        if (key != null && !key.equals("")) {

            for (Book book : data) {

                if (book.number.equals(key) || book.name.contains(key)) {

                    data.remove(book)

                    System.out.println(" 图书 " + book.toString() + " 已删除")

                    return

                }

            }

        }

        System.out.println("没有您要删除的")

    }

    private static void findBook() {

        System.out.println("请输入要查找的书名或编号:")

        String key = input.next()

        if (key != null && !key.equals("")) {

            for (Book book : data) {

                if (book.number.equals(key) || book.name.contains(key)) {

                    System.out.println("找到了 图书 " + book.toString())

                    return

                }

            }

        }

        System.out.println("没有您要找的")

    }

    private static boolean initBook(String string) {

        try {

            System.out.println("图书导入中...")

            System.out.println("列表文件 -- " + string)

            File file = new File(string)

            if (!file.exists()) {

                return false

            }

            data = new ArrayList<Book>()

            BufferedReader bufferedReader = new BufferedReader(new FileReader(file))

            String line = ""

            while ((line = bufferedReader.readLine()) != null) {

                String[] strings = line.split(",")

                Book b = new Book(strings[0], strings[1])

                data.add(b)

                System.out.println("导入" + b.toString())

            }

        } catch (Exception e) {

            e.printStackTrace()

            return false

        }

        return true

    }

    public static class Book {

        String number

        String name

        public Book(String number, String name) {

            super()

            this.number = number

            this.name = name

        }

        @Override

        public String toString() {

            return "Book [编码:" + number + ", 名称:" + name + "]"

        }

    }

}

001,金瓶梅

002,杂事秘辛

003,飞燕外传

004,控鹤监秘记

005,汉宫春色

java swing 登陆界面code

/*

* Login.java

*

* Created on __DATE__, __TIME__

*/

package com.agen.library.window

import java.awt.Image

import java.awt.Toolkit

import javax.swing.JOptionPane

import javax.swing.UIManager

import javax.swing.UnsupportedLookAndFeelException

import com.agen.library.factory.DAOFactory

import com.agen.library.util.GlobalUser

import com.agen.library.vo.User

/**

*

* @author __USER__

*/

public class Login extends javax.swing.JFrame {

/**

*

*/

private static final long serialVersionUID = -2176093732040600809L

/** Creates new form Login */

public Login() {

super("易云图书管理软件V1.0")

Image ime = Toolkit.getDefaultToolkit().getImage(

getClass().getResource("/images/ico.png"))

try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (UnsupportedLookAndFeelException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

setIconImage(ime)

initComponents()

setLocationRelativeTo(null)

this.setResizable(false)

}

/**

* This method is called from within the constructor to initialize the form.

* WARNING: Do NOT modify this code. The content of this method is always

* regenerated by the Form Editor.

*/

// GEN-BEGIN:initComponents

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jLabel2 = new javax.swing.JLabel()

jLabel3 = new javax.swing.JLabel()

jTextField1 = new javax.swing.JTextField()

jPasswordField1 = new javax.swing.JPasswordField()

jButton1 = new javax.swing.JButton()

jButton2 = new javax.swing.JButton()

jLabel1 = new javax.swing.JLabel()

jMenuBar1 = new javax.swing.JMenuBar()

jMenu1 = new javax.swing.JMenu()

jMenuItem1 = new javax.swing.JMenuItem()

jMenu2 = new javax.swing.JMenu()

jMenuItem2 = new javax.swing.JMenuItem()

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE)

addKeyListener(new java.awt.event.KeyAdapter() {

public void keyPressed(java.awt.event.KeyEvent evt) {

formKeyPressed(evt)

}

public void keyTyped(java.awt.event.KeyEvent evt) {

formKeyTyped(evt)

}

})

jLabel2.setFont(new java.awt.Font("微软雅黑", 0, 14))

jLabel2.setText("\u7528\u6237\u540d\uff1a")

jLabel3.setFont(new java.awt.Font("微软雅黑", 0, 14))

jLabel3.setText("\u5bc6 \u7801\uff1a")

jTextField1.setFont(new java.awt.Font("微软雅黑", 0, 14))

jTextField1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jTextField1ActionPerformed(evt)

}

})

jPasswordField1.setFont(new java.awt.Font("微软雅黑", 0, 12))

jPasswordField1.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyTyped(java.awt.event.KeyEvent evt) {

jPasswordField1KeyTyped(evt)

}

})

jButton1.setBackground(new java.awt.Color(223, 216, 216))

jButton1.setFont(new java.awt.Font("微软雅黑", 0, 14))

jButton1.setText("\u767b\u9646")

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton1ActionPerformed(evt)

}

})

jButton2.setBackground(new java.awt.Color(223, 216, 216))

jButton2.setFont(new java.awt.Font("微软雅黑", 0, 14))

jButton2.setText("\u53d6\u6d88")

jButton2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jButton2ActionPerformed(evt)

}

})

jLabel1.setIcon(new javax.swing.ImageIcon(

getClass().getResource("/images/login_main.jpg")))// NOI18N

jMenu1.setText("File")

jMenu1.setFont(new java.awt.Font("微软雅黑", 0, 14))

jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(

java.awt.event.KeyEvent.VK_Q,

java.awt.event.InputEvent.CTRL_MASK))

jMenuItem1.setText("Exit")

jMenuItem1.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent evt) {

jMenuItem1MouseClicked(evt)

}

})

jMenuItem1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jMenuItem1ActionPerformed(evt)

}

})

jMenu1.add(jMenuItem1)

jMenuBar1.add(jMenu1)

jMenu2.setText("Help")

jMenu2.setFont(new java.awt.Font("微软雅黑", 0, 14))

jMenuItem2.setText("About")

jMenuItem2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent evt) {

jMenuItem2ActionPerformed(evt)

}

})

jMenu2.add(jMenuItem2)

jMenuBar1.add(jMenu2)

setJMenuBar(jMenuBar1)

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(

getContentPane())

getContentPane().setLayout(layout)

layout.setHorizontalGroup(layout

.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jLabel1)

.addGroup(

layout.createSequentialGroup()

.addContainerGap()

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.TRAILING,

false)

.addComponent(

jLabel2,

javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

javax.swing.GroupLayout.Alignment.LEADING,

layout.createSequentialGroup()

.addComponent(

jLabel3)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

layout.createSequentialGroup()

.addGap(10,

10,

10)

.addComponent(

jButton1)

.addGap(47,

47,

47)

.addComponent(

jButton2))

.addComponent(

jPasswordField1)

.addComponent(

jTextField1,

javax.swing.GroupLayout.DEFAULT_SIZE,

197,

Short.MAX_VALUE))

.addContainerGap()))))

layout.setVerticalGroup(layout

.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(

layout.createSequentialGroup()

.addComponent(jLabel1)

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel2)

.addComponent(

jTextField1,

javax.swing.GroupLayout.PREFERRED_SIZE,

24,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jLabel3)

.addComponent(

jPasswordField1,

javax.swing.GroupLayout.PREFERRED_SIZE,

23,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(

javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(

layout.createParallelGroup(

javax.swing.GroupLayout.Alignment.BASELINE)

.addComponent(jButton1)

.addComponent(jButton2))

.addContainerGap(

javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE)))

pack()

}// </editor-fold>

// GEN-END:initComponents

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

About.start()

}

private void jPasswordField1KeyTyped(java.awt.event.KeyEvent evt) {

if (evt.getKeyChar() == '\n') {

String name = jTextField1.getText()// 获取用户名

String pass = String.valueOf(jPasswordField1.getPassword())// 获取密码

User user = null

// 未输入用户名

if (name.equals("") || name == null) {

JOptionPane.showMessageDialog(this, "用户名不允许为空!", "cuowu", 0)

return

}

try {

user = DAOFactory.getIUserDAOInstance().findById(name)

if (user != null) {

if (user.getPass() != null &&user.getPass().equals(pass)) {

GlobalUser.LOGIN_USER = user// 记录当前用户

// 进入主界面

Main.start()

this.dispose()

} else {

JOptionPane.showMessageDialog(this, "用户名或密码错误!")

return

}

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

if (user == null) {

JOptionPane.showMessageDialog(this, "用户名或密码错误!", "消息", 0)

return

}

}

}

private void formKeyTyped(java.awt.event.KeyEvent evt) {

}

private void formKeyPressed(java.awt.event.KeyEvent evt) {

}

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

// TODO add your handling code here:

jTextField1.setText("")

jPasswordField1.setText("")

jTextField1.requestFocus()

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

String name = jTextField1.getText()// 获取用户名

String pass = String.valueOf(jPasswordField1.getPassword())// 获取密码

User user = null

// 未输入用户名

if (name.equals("")) {

JOptionPane.showMessageDialog(this, "用户名不允许为空!")

return

}

try {

user = DAOFactory.getIUserDAOInstance().findById(name)

if (user != null) {

if (user.getPass() != null &&user.getPass().equals(pass)) {

GlobalUser.LOGIN_USER = user// 记录当前用户

// 进入主界面

Main.start()

this.dispose()

} else {

JOptionPane.showMessageDialog(this, "用户名或密码错误!", "消息", 0)

return

}

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

if (user == null) {

JOptionPane.showMessageDialog(this, "用户名或密码错误!", "消息", 0)

return

}

}

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {

if (JOptionPane.showConfirmDialog(this, "你确定要退出吗?", "提示",

JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {

System.exit(0)

}

}

private void jMenuItem1MouseClicked(java.awt.event.MouseEvent evt) {

System.exit(1)

}

/**

* @param args

*the command line arguments

*/

public static void main(String args[]) {

// System.out.println(Login.class.getResource("src/images/images/login_main.jpg"))

// new javax.swing.ImageIcon(

// Login.class.getResource("../../../../images/login_main.jpg"))

// new Login().setVisible(true)

java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {

new Login().setVisible(true)

}

})

}

// GEN-BEGIN:variables

// Variables declaration - do not modify

private javax.swing.JButton jButton1

private javax.swing.JButton jButton2

private javax.swing.JLabel jLabel1

private javax.swing.JLabel jLabel2

private javax.swing.JLabel jLabel3

private javax.swing.JMenu jMenu1

private javax.swing.JMenu jMenu2

private javax.swing.JMenuBar jMenuBar1

private javax.swing.JMenuItem jMenuItem1

private javax.swing.JMenuItem jMenuItem2

private javax.swing.JPasswordField jPasswordField1

private javax.swing.JTextField jTextField1

// End of variables declaration//GEN-END:variables

}

import java.io.File

import java.io.FileOutputStream

import java.util.ArrayList

import java.util.List

import java.util.Scanner

import org.dom4j.Document

import org.dom4j.DocumentHelper

import org.dom4j.Element

import org.dom4j.io.OutputFormat

import org.dom4j.io.SAXReader

import org.dom4j.io.XMLWriter

public class Book {

    private int no

    private String name

    private double value

    public Book() {

    }

    public Book(int no, String name, double value) {

        this.no = no

        this.name = name

        this.value = value

    }

    public double getValue() {

        return value

    }

    public void setValue(double value) {

        this.value = value

    }

    public String getName() {

        return name

    }

    public void setName(String name) {

        this.name = name

    }

    public int getNo() {

        return no

    }

    public void setNo(int no) {

        this.no = no

    }

}

class BookList {

    private List<Book> bookList

    public BookList() {

        bookList = readXML()

    }

    public long getCount() {

        return bookList.size()

    }

    public List<Book> getBookList() {

        return bookList

    }

    public void setBookList(List<Book> bookList) {

        this.bookList = bookList

    }

    public void add(Book book) {

        bookList.add(book)

    }

    public boolean delete(String name) {

        Book book = query(name)

        return bookList.remove(book)

    }

    public void update(Book bookBefore, Book bookAfter) {

        bookList.remove(bookBefore)

        add(bookAfter)

    }

    public Book query(String name) {

        Book temp = null

        for (Book book : bookList) {

            if (book.getName().equals(name)) {

                temp = book

            }

        }

        return temp

    }

    public synchronized void writeXmlDocument(Book book) {

        try {

            File file = new File("D:\\book.xml")

            Document document = null

            Element root = null

            if (!file.exists()) {

                // 新建student.xml文件并新增内容

                document = DocumentHelper.createDocument()

                root = document.addElement("Books")//添加根节点   

            } else {

                SAXReader saxReader = new SAXReader()

                document = saxReader.read(file)

                root = document.getRootElement()//获得根节点

            }

            Element secondRoot = root.addElement("Book")//二级节点   

            //为二级节点添加属性,属性值为对应属性的值   

            secondRoot.addElement("no").setText(book.getNo() + "")

            secondRoot.addElement("name").setText(book.getName() + "")

            secondRoot.addElement("value").setText(book.getValue() + "")

            OutputFormat format = OutputFormat.createPrettyPrint()

            format.setEncoding("GBK")

            XMLWriter writer = new XMLWriter(new FileOutputStream("D:\\book.xml"), format)

            writer.write(document)

            writer.close()

            document.clearContent()

        } catch (Exception e) {

            e.printStackTrace()

        }

    }

    public synchronized List<Book> readXML() {

        List<Book> list = new ArrayList<Book>()//创建list集合   

        File file = null

        try {

            file = new File("D:\\book.xml")//读取文件   

            if (file.exists()) {

                SAXReader saxReader = new SAXReader()

                Document document = saxReader.read(file)

                List nodeList = document.selectNodes("Books/Book")

                for (int i = 0 i < nodeList.size() i++) {

                    Element el = (Element) nodeList.get(i)

                    Book book = new Book()

                    book.setNo(Integer.parseInt(el.elementText("no")))

                    book.setName(el.elementText("name"))

                    book.setValue(Double.parseDouble(el.elementText("value")))

                    list.add(book)

                }

            }

        } catch (Exception e) {

            e.printStackTrace()

        }

        return list

    }

}

class Test {

    public static void main(String args[]) {

        BookList bl = new BookList()

        boolean bBreak = true

        while (bBreak) {

            System.out.println("请输入操作代码:")

            System.out.println("1:添加 2:删除 3:修改 4:查询 5:书籍统计 6:退出")

            Scanner sc = new Scanner(System.in)

            int code = sc.nextInt()

            if (code == 1) {

                System.out.println("请输入编号")

                int no = sc.nextInt()

                System.out.println("请输入书名")

                String name = sc.next()

                System.out.println("请输入售价")

                double value = sc.nextDouble()

                Book book = new Book(no, name, value)

                bl.add(book)

                bl.writeXmlDocument(book)

            } else if (code == 2) {

                System.out.println("请输入要删除的书籍名")

                String name = sc.next()

                if (bl.delete(name)) {

                    System.out.println("删除成功")

                } else {

                    System.out.println("书籍不存在")

                }

            } else if (code == 3) {

                System.out.println("请输入要修改的书籍名")

                String name = sc.next()

                Book bookBefore = bl.query(name)

                System.out.println("请输入新的编号")

                int newNo = sc.nextInt()

                System.out.println("请输入新的书名")

                String newName = sc.next()

                System.out.println("请输入新的售价")

                double value = sc.nextDouble()

                Book bookAfter = new Book(newNo, newName, value)

                bl.update(bookBefore, bookAfter)

            } else if (code == 4) {

                System.out.println("请输入要查询的书籍名")

                String name = sc.next()

                Book book = bl.query(name)

                System.out.println("编号:" + book.getNo() + " 书名:" + book.getName() + " 售价:" + book.getValue())

            } else if (code == 5) {

                List<Book> list = bl.getBookList()

                System.out.println("总书籍数:" + bl.getCount())

                for (Book book : list) {

                    System.out.println("编号:" + book.getNo() + " 书名:" + book.getName() + " 售价:" + book.getValue())

                }

            } else if (code == 6) {

                bBreak = false

            }

        }

    }

}

jar 包  dom4j.jar  jaxen-1.1.4.jar