当前位置:首页 > 软件工程课程设计报告范例
管理图书挂失图书查看历史借阅记录查看全部图书信息续借信息查询图书按书号查询按分类信息查询按书名关键字查询按出版社查询系统管理修改个人密码系统退出
图6-3 读者主界面设计模型
6.3 一点说明
由于本系统模块过多,如果把所有模块的详细设计过程全部写出,实验报告的篇幅将会很长,所以我只写出“添加书的信息”模块详细设计过程,其余模块类似。
6.4 “添加书的信息”模块界面设计
从需求规格说明书和数据库设计中,我们可以看出,书表的属性有:编号、书名、类别、当前在馆册数、价格和出版社;而为了节省字段,我把书名定义为书名和作者;当前在馆册数初始状态下就是藏书量,一般的图书馆一种书籍的藏书量不会超过5本,所以该项可设计为可选项;由于管理员的工作是很忙的,不可能不出现错误,尤其长时间做同一工作,所以出版社那一栏中我建议初始化为“出版社”,按钮设置方面,“提交”和“取消”是不可缺少的,但考虑到管理员的工作需要,我又设置了一个“重置”的按钮,单击这个按钮后,所有输入栏都将会回到刚打开窗口时的状态;因此,其界面设计参考模型如图6-4所示。
图6-4 “添加书的信息”模块界面设计参考模型
6.5 “添加书的信息”模块参考方法设计
表6-1和表6-2是“添加图书信息”模块参考方法设计
方法名称 checkID 方法返回类型 boolean 方法形参名称 String id 前置条件 SQL语句 处理结果 方法名称 单击“提交” select * from book where b_no=id 如果没有这个号码,返回false,反之返回true 表6-1 “添加图书信息”模块参考方法1
insertBook 方法返回类型 boolean 方法形参名称 Book b 前置条件 SQL语句 处理结果 所有验证都已完毕,且没有异常 insert into values(id ,name,puname,leibie,price,lsnum ) 如果插入成功,返回true,失败,返回false 表6-2 “添加图书信息”模块参考方法2
book
13
7.系统实现
7.1 开发环境
中央处理器:Core(TM)2 CPU T5600;
内存:512MB; 主频:1.83GHz;
开发平台:JBuider2006; 数据库:Oracle 9i; 运行平台:Windows XP
7.2 关键技术
本图书管理系统所使用的关键技术有:JDBC-ODBC桥,JavaGUI程序设计基本技术,数据库增删改查技术,面向对象程序设计技术(类的继承和派生技术)。
7.3 运行结果
7.3.1访问数据库模块
该系统访问数据库使用的是JDBC-ODBC桥的方式,为了节省工作量,需要编写一个类专门用户访问Oracle数据库,这个类的代码如下:
package librarysystem.tools; import java.sql.ResultSet; import java.sql.*;
public class DBClass implements DBinterface { public DBClass() { }
Connection conn=null; Statement stmt=null; ResultSet rs=null;
protected static final String DRIVER=\ protected static final String URL=\ public boolean createConnect(){ try{
Class.forName(DRIVER);
conn=DriverManager.getConnection(URL,\ return true; }catch(Exception e){ e.printStackTrace(); return false; } }
public int getExecuteUpdate(String sql){ try{
stmt=conn.createStatement(); int n=stmt.executeUpdate(sql); return n;
}catch(Exception e){ e.printStackTrace(); return -1; } }
public ResultSet getExecuteQuery(String sql){ try{
stmt = conn.createStatement(); rs = stmt.executeQuery(sql);
14
return rs;
}catch(Exception e){ e.printStackTrace(); return null; } }
public void closeConnect1(){ try{
if(rs!=null) rs.close(); }catch(Exception e) {
e.printStackTrace(); } }
public void closeConnect2() { try{
if(stmt!=null){ stmt.close(); }
}catch(Exception e){ e.printStackTrace(); } }
public void closeConnect3(){ try{
if(conn!=null){ conn.close(); }
}catch(Exception e){ e.printStackTrace(); } } }
有了这个类,再访问数据库时,只需创建该类的对象,调用方法就可以了,不必在每次访问数据时都要设置很多参数变量。 7.3.2 登陆模块
由于这个系统是用JBuider2006开发的,界面设计代码不用自己写,只需要将所需的控件拖到合适的位置就大功告成了,所以我省去那些系统生成的代码,如果代码是自己写的,就把代码写在实验报告中吧!图7-1是登陆模块的界面。
在这个系统实现中,主要代码是消息响应方法,对于每个模块我都把它消息响应代码写在实验报告中,重复的就不再写了。
public void actionPerformed(ActionEvent e) {
//读取界面输入数据….
if (e.getActionCommand().equals(\登陆\ //验证信息,详见源代码
15
//…
//验证成功
if (flag) {//判断用户类型 if (jibie.equals(\管理员\
//控制信息详见源代码 //….
lc = new LoginControl();//验证用户名和密码与数据库中是否一致 if (lc.checkManager(manager)) {
//控制信息...详见源代码
//显示超级管理员登陆成功
if (grade == 1) {
this.showInformation(\超级管理员登陆成功\ //操作记录表中添加记录
record = \超级管理员\登陆成功!\
//控制信息… //详见源代码 //进入超级管理员界面
this.setVisible(false); new SuperManagerWindow(); } else { //…
this.showInformation(\管理员登陆成功\
record = \一般管理员\登陆成功!\
//提示改密码
if (manager.getId().equals(manager.getPwd())) {
this.showInformation(\为了您信息安全,请尽快修改密码!\ }//进入管理员界面 new ManagerWindow(); }
} else {//显示登陆失败信息
this.showError(\用户名或密码错误,请查验!\ record = \某管理员登陆失败!\ } else {//读者登陆验证代码省略 }
//向操作记录表中添加信息
rc = new RecordControl(); rc.InsertRecord(record); }
} else {//响应退出按钮 this.setVisible(false);} } }
7.3.3 添加管理员、读者、书籍信息模块
这三个模块在设计思路上大同小异,故放在一起分析,以添加书籍模块为例,设计界面如图7-2所示,其余两个详见系统测试部分,下面是消息响应方法的思路及关键代码;
16
共分享92篇相关文档