Java課程設計——圖書管理系統
1.成員及其任務分配
1.1成員
組長:翁凌濤
組員:白海檳,郭坤
1.2任務分配
翁凌濤:借書功能,查書功能,用戶數據庫及注冊
白海檳:圖書管理系統Book類,BookDao類,博客,查書功能的前期編寫
郭坤: GUI設計,制作背景圖及按鍵圖,ppt
2.前期調查
前期是一份由文本儲存的圖書管理系統,並且功能實現很少,后期我們使用數據庫來進行對數據的存儲。
使用數據庫會使得數據的讀取存儲加快,並且加強對數據庫的使用
3.項目功能架構圖,功能流程圖
數據流圖:
圖書和用戶:
圖書管理層次圖:
圖書管理系統程序流程圖:
4.面向對象包圖,類圖及其結果圖:
5.項目關鍵代碼
/**
* 圖書信息行為控制類,包含增加圖書、刪除圖書
* 、 修改圖書、和初始化個人書庫管理窗體表格
*
*
*/
public class BookController {
/**
* 初始化窗體表格
* @return
* results
*/
@SuppressWarnings("rawtypes")
public Object[][] initializTable(String[] columnNames) throws Exception{
BookDao bookDao = new BookDao();
List list = bookDao.query();
Object[][] results = new Object[list.size()][columnNames.length];
for(int i = 0; i < list.size(); i++) {
Book book = (Book)list.get(i);
results[i][0] = book.getID();
results[i][1] = book.getBookName();
results[i][2] = book.getAuthor();
results[i][3] = book.getPrice();
results[i][4] = book.getISBN();
results[i][5] = book.getPublishHouse();
results[i][6] = book.getBookCategory();
results[i][7] = book.getCount();
}
return results;
}
public Object[][] initializTable(String[] columnNames,String seekData) throws Exception{
BookDao bookDao = new BookDao();
List list = bookDao.query();
int j=0;
for(int i =0 ;i<list.size();i++) {
Book book = (Book)list.get(i);
if(book.getBookName().indexOf(seekData)!=-1) {
j++;
}
}
Object[][] results = new Object[j][columnNames.length];
j=0;
for(int i = 0; i < list.size(); i++) {
Book book = (Book)list.get(i);
if(book.getBookName().indexOf(seekData)!=-1) {
results[j][0] = book.getID();
results[j][1] = book.getBookName();
results[j][2] = book.getAuthor();
results[j][3] = book.getPrice();
results[j][4] = book.getISBN();
results[j][5] = book.getPublishHouse();
results[j][6] = book.getBookCategory();
results[j][7] = book.getCount();
j++;
}
}
return results;
}
/**
* 添加圖書信息
*/
public void addBookInformation (JTextField textFieldISBN, JTextField textFieldName
,JTextField textFieldPrice, JTextField textFieldAuthor, JTextField textFieldPublishedHouse
, JTextField textFieldBookCategory,JTextField textFieldCount
) throws Exception {
BookDao bookDao=new BookDao();
Book book=new Book();
book.setISBN(textFieldISBN.getText());
book.setBookName(textFieldName.getText());
float price = Float.parseFloat(textFieldPrice.getText());
book.setPrice(price);
book.setAuthor(textFieldAuthor.getText());
book.setPublishHouse(textFieldPublishedHouse.getText());
book.setBookCategory(textFieldBookCategory.getText());
book.setCount(Integer.parseInt(textFieldCount.getText()));
//添加圖書
bookDao.addBook(book);
}
/**
* 刪除圖書信息
*/
public void delBookInformation (JTable table) throws Exception {
int selRow = table.getSelectedRow();
int ID = Integer.parseInt(table.getValueAt(selRow, 0).toString());
BookDao bookDao=new BookDao();
Book book=new Book();
book.setID(ID);
// 刪除圖書信息
bookDao.delBook(ID);
}
/**
* 修改圖書信息
*/
public void changeBookInformation (JTextField textFieldISBN, JTextField textFieldName
,JTextField textFieldPrice, JTextField textFieldAuthor, JTextField textFieldPublishedHouse
, JTextField textFieldBookCategory, JTextField textFieldCount,
JTable table) throws Exception{
BookDao bookDao=new BookDao();
Book book=new Book();
int selRow = table.getSelectedRow();
int ID = Integer.parseInt(table.getValueAt(selRow, 0).toString());
book.setID(ID);
book.setISBN(textFieldISBN.getText());
book.setBookName(textFieldName.getText());
book.setAuthor(textFieldAuthor.getText());
float price = Float.parseFloat(textFieldPrice.getText());
book.setPrice(price);
book.setPublishHouse(textFieldPublishedHouse.getText());
book.setBookCategory(textFieldBookCategory.getText());
book.setCount(Integer.parseInt(textFieldCount.getText()));
//修改圖書
bookDao.changeBook(book);
}
}
6.項目總結
1.本次數據庫設計團隊合作,成員之間的配合很關鍵。代碼要寫規范才能便於成員之間的理解。
2. java課設相對於平時的學習有很大提升,涉及到數據庫的知識,需要組員相互學習相互幫助。
3. 在設計代碼的途中遇到了許多困難,有時候會出現很多bug需要我們解決。