要求:
图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:
1、系统以菜单方式工作
2、图书信息录入功能--输入
3、图书信息浏览功能--输出
4、图书信息查询功能--算法
查询方式
按书名查询
按作者名查询
5、图书信息的删除与修改(可选项)
源代码:
Library.java:
class Library {
String Login_number;
String Book_name;
String Author_name;
String Classification_name;
String Publish_unit;
String Publish_time;
double Price;
Library(String login_number,String book_name,String author_name,String classification_name,String publish_unit,String publish_time,double price)
{
Login_number = login_number;
Book_name = book_name;
Author_name = author_name;
Classification_name = classification_name;
Publish_unit = publish_unit;
Publish_time = publish_time;
Price = price;
}
public String getlogin_number()
{
return Login_number;
}
public String getBook_name()
{
return Book_name;
}
public String getAuthor_name()
{
return Author_name;
}
public String getClassification_name()
{
return Classification_name;
}
public String getPublish_unit()
{
return Publish_unit;
}
public String getPublish_time()
{
return Publish_time;
}
public double getPrice()
{
return Price;
}
}
LibraryMenu.java:
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class LibraryMenu extends JFrame{
//private Frame f = new Frame("图书信息管理系统");
private MenuBar mb = new MenuBar();
Menu submit = new Menu("录入");
Menu scan = new Menu("浏览");
Menu search = new Menu("查询");
Menu file = new Menu("文件操作");
MenuItem BookNameSearch = new MenuItem("书名",new MenuShortcut(KeyEvent.VK_3));
MenuItem AuthorSearch = new MenuItem("作者名",new MenuShortcut(KeyEvent.VK_4));
MenuItem input = new MenuItem("录入",new MenuShortcut(KeyEvent.VK_1));
MenuItem Scan = new MenuItem("浏览",new MenuShortcut(KeyEvent.VK_2));
MenuItem delete = new MenuItem("删除");
MenuItem modify = new MenuItem("修改");
JTable table;
//主菜单
LibraryMenu() throws FileNotFoundException
{
String []columntitle = new String[]{"登入号","书名","作者名","分类号","出版单位","出版时间","价钱"};
int row = Read.read().length;
String [][]S = new String[row][7];
S = Read.read();
Object [][]Date = new String[row][7];
for(int i=0;i<row;i++)
for(int k=0;k<7;k++){
Date[i][k] = S[i][k];
}
table = new JTable(Date,columntitle);
submit.addActionListener(new Clicksumbit());//注册,添加监听器
submit.add(input);
Scan.addActionListener(new ClickScan());
scan.add(Scan);
search.addSeparator();
BookNameSearch.addActionListener(new ClicksearchBookName());
AuthorSearch.addActionListener(new ClicksearchAuthorName());
search.add(BookNameSearch);
search.add(AuthorSearch);
delete.addActionListener(new Clickdelete());
modify.addActionListener(new Clickmodify());
file.add(delete);
file.add(modify);
mb.add(submit);
mb.add(scan);
mb.add(search);
mb.add(file);
this.add(new JScrollPane (table));
//panel.add(texts);
//this.add(panel);
this.setMenuBar(mb);
}
//定义事件监听器,当点击submit时触发
class Clicksumbit implements ActionListener
{
//事件处理器,实现点击submit(录入)时,弹出录入窗口
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("录入"))//Button 用e.getSorce()==submit
{
ClickSumbit clicksumbit = new ClickSumbit();
}
}
}
class ClicksearchBookName implements ActionListener
{
JFrame f = new JFrame("按书名查询");
JButton b1 = new JButton("确认");
JButton b2 = new JButton("重置");
JTextField text1 = new JTextField(20);
JPanel panel1 = new JPanel();
//JTextArea text = new JTextArea(3,100);
//JTable table1;
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("书名"))
{
panel1.add(text1);
b1.addActionListener(new Clickb1());
b2.addActionListener(new Clickb2());
panel1.add(b1);
panel1.add(b2);
//panel1.add(text);
//f.add(new JScrollPane (table1));
f.add(panel1);
f.setBounds(250,200,800, 300);
f.setVisible(true);
}
}
class Clickb1 implements ActionListener
{
public void actionPerformed(ActionEvent e) {
if(e.