• 小棒组合团队项目第十五周总结


    小棒组合第十四周项目总结

    项目名称

    • 图书管理系统

    本周项目内容

    • 图书借阅部分设计
    • 图书归还部分设计
    • 图书查询部分设计

    项目进展

    • 本周是实现项目的最后一部分,图书借阅和归还的相关部分
    • 图书归还部分
      • 在类构造函数中创建窗体布局及相关属性
      • 为读者条形码文本框添加键盘监听事件,在keyTyped方法中,调用dao类中查询读者相关信息方法
    class ISBNListenerlostFocus extends KeyAdapter {
    		public void keyTyped(KeyEvent e) {
    			if (e.getKeyChar() == '
    ') { // 判断在文本框是否输入回车。
    				String ISBNs = readerISBN.getText().trim();
    
    				List list = Dao.selectReader(ISBNs);
    				if (list.isEmpty() && !ISBNs.isEmpty()) {
    					JOptionPane.showMessageDialog(null,
    							"此读者编号没有注册,查询输入读者编号是否有误!");
    				}
    				for (int i = 0; i < list.size(); i++) {
    					Reader reader = (Reader) list.get(i);
    					readerName.setText(reader.getName());
    					number.setText(reader.getMaxNum());
    					keepMoney.setText(reader.getKeepMoney() + "");
    					System.out.println("读者可借书量" + number.getText().trim());
    				}
    			}
    		}
    	}
    
    • 在图书条形码文本框键盘监听事件中获取图书条形码文本框内容,调用Dao类中查询图书相关信息的方法
    class bookISBNListenerlostFocus extends KeyAdapter {
    		public void keyTyped(KeyEvent e) {
    			if (e.getKeyChar() == '
    ') { // 判断在文本框是否输入回车。
    				if (readerISBN.getText().trim().length()!=0
    						&& bookISBN.getText().trim().length()!=0) {
    					String ISBNs = bookISBN.getText().trim();
    					List list = Dao.selectBookInfo(ISBNs);
    					for (int i = 0; i < list.size(); i++) {
    						BookInfo book = (BookInfo) list.get(i);
    						bookName.setText(book.getBookname());
    						bookType.setText(String.valueOf(map.get(book
    								.getTypeid())));
    						price.setText(String.valueOf(book.getPrice()));
    					}
    					String days = "0";
    					List list2 = Dao.selectBookCategory(bookType.getText()
    							.trim());
    					for (int j = 0; j < list2.size(); j++) {
    						BookType type = (BookType) list2.get(j);
    						days = type.getDays();
    					}
    					String readerISBNs = readerISBN.getText().trim();
    					List list5 = Dao.selectReader(readerISBNs);// 此读者是否在tb_reader表中
    					List list4 = Dao.selectBookInfo(ISBNs);// 此书是否在tb_bookInfo表中
    					if (!readerISBNs.isEmpty() && list5.isEmpty()) {
    						JOptionPane.showMessageDialog(null,
    								"此读者编号没有注册,查询输入读者编号是否有误!");
    						return;
    					}
    					if (list4.isEmpty() && !ISBNs.isEmpty()) {
    						JOptionPane.showMessageDialog(null,
    								"本图书馆没有此书,查询输入图书编号是否有误!");
    						return;
    					}
    					if (Integer.parseInt(number.getText().trim()) <= 0) {
    						JOptionPane.showMessageDialog(null, "借书量已经超过最大借书量!");
    						return;
    					}
    
    					add();
    					number.setText(String.valueOf(Integer.parseInt(number
    							.getText().trim()) - 1));
    				}
    
    				else
    					JOptionPane.showMessageDialog(null, "请输入读者条形码!");
    			}
    
    		}
    	}
    
    
    • 在BookBorrowIFrame中创建表格行添加方法add(),在图书条形码文本框键盘监听事件中调用
    • 创建取得应归还时间方法
    • 图书归还部分
      • 实现管理员输入读者条形码后,在窗体表格中显示相关内容的方法,在Dao类中进行,用到tb_borrowtb_readertb_bookInfo三个表格
      • 设计窗体时,需要实现用户单击表格中的某一行,在相应文本框中显示此书借阅的罚款信息,可以设置表格的鼠标监听事件,在mouseClicked()方法中实现上述操作
      • 最后为“图书规还”按钮添加监听事件
    • 图书查询部分设计
      • 在Dao类中定义两个查询方法,分别为条件查询和全部查询,查询完毕结果放入JavaBean中,将Javabean对象添加到list
    public static List selectbookserch() {
    		List list=new ArrayList();
    		String sql = "select *  from tb_bookInfo";
    		ResultSet s = Dao.executeQuery(sql);
    		try {
    			while (s.next()) {
    				BookInfo bookinfo=new BookInfo();
    				bookinfo.setISBN(s.getString(1));
    				bookinfo.setTypeid(s.getString(2));
    				bookinfo.setBookname(s.getString(3));
    				bookinfo.setWriter(s.getString(4));
    				bookinfo.setTranslator(s.getString(5));
    				bookinfo.setPublisher(s.getString(6));
    				bookinfo.setDate(s.getDate(7));
    				bookinfo.setPrice(s.getDouble(8));
    				list.add(bookinfo);
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		Dao.close();
    		return list;
    	}
    
    • BookSearchIFrame类中创建表格
    • 最后在“查询”按钮中添加监听事件,重写actionPerFormed()方法,在此方法中调用Dao类中的查询方法

    成员贡献

    • 20145337马 月 学习相关资料
    • 20145329吉东云 学习相关资料
    • 20145308刘昊阳 图书借阅、归还、查询部分代码 撰写博客
    • 20145316许心远 学习相关资料
  • 相关阅读:
    洛谷P4172 [WC2006]水管局长(lct求动态最小生成树)
    洛谷P1501 [国家集训队]Tree II(打标记lct)
    洛谷P2173 [ZJOI2012]网络(10棵lct与瞎jb暴力)
    [Asp.net 5] Localization-resx资源文件的管理
    [Asp.net 5] Localization-简单易用的本地化-全球化信息
    [Asp.net 5] Configuration-新一代的配置文件
    [Asp.net 5] Configuration-新一代的配置文件(ConfigurationSource的多种实现)
    [Asp.net 5] Configuration-新一代的配置文件(神奇的Binder)
    [Asp.net 5] Configuration-新一代的配置文件(接口定义与基础实现)
    [Asp.net 5] DependencyInjection项目代码分析-目录
  • 原文地址:https://www.cnblogs.com/SmallBang/p/5574099.html
Copyright © 2020-2023  润新知