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需要我们解决。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器