项目开发设计报告R4.docx
- 文档编号:9019320
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:46
- 大小:1MB
项目开发设计报告R4.docx
《项目开发设计报告R4.docx》由会员分享,可在线阅读,更多相关《项目开发设计报告R4.docx(46页珍藏版)》请在冰点文库上搜索。
项目开发设计报告R4
项目开发设计报告
文档编号:
R-4
版本号:
换图
项目名称:
图书馆管理系统
项目负责人:
王娟
项目团队成员:
亚敏蓝月王增波
靖飒常利娜丛光亮
填写时间:
2013.5.20
1系统分析1
1.1系统开发背景、开发围、建设目标与必要性1
1.2业务流程分析1
1.3数据流程图2
顶层数据流程图2
第一层数据流程图2
2系统设计3
2.1功能模块设计3
2.2系统运行环境3
2.3数据库设计4
2.3.1数据库逻辑设计4
2.3.2数据库逻辑设计5
2.4输入/输出设计6
2.4.1公告模块设计6
2.4.2系统界面模块设计7
3系统实施9
4参考文献11
附录(程序关键代码)11
小组成员分工说明25
项目开发设计总结25
1系统分析
1.1系统开发背景、开发围、建设目标与必要性
随着互联网的普及,以及电子书的出现,传统的以纸质文献进行阅读的方式它自有的弊端更加明显地暴露出来:
信息检索速度落后,质量较差,不符合当今快节奏的生活方式。
图书馆信息管理系统是运行在WINDOWS系统平台上的多任务系统,对书籍及读者进行统一管理的系统,具体包括读者的借书、还书处理;包括增加图书信息、删除和更新图书信息,添加、更新、删除、查询借阅信息、增加读者信息、删除或更新读者信息以及查询读者信息。
因此,我们设计的系统需要能够提供友好的用户界面,使用户信息安全。
使操作人员的工作量最大限度的减少;系统具有良好的运行效率,能够达到提高工作效率的目的;平台的设计具有一定的灵活性;使用户在进行图书信息的查询能够更快、质量更高,因此建立图书管理信息系统是非常重要的。
1.2业务流程分析
图4—1业务流程图
通过图4-1业务流程图读者可以通过借阅请求,还书请求进行信息查询。
办理借阅进行借阅登记,办理还书进行借阅记录。
管理员通过办理借阅,办理还书帮助读者信息查询,图书信息要通过办理借阅办理还书进行更新修改。
读者信息也通过办理借阅办理还书进行更新修改。
1.3数据流程图
顶层数据流程图
图4-2数据流程图1
第一层数据流程图
图4-3数据流程图2
2系统设计
2.1功能模块设计
图4-4功能图
系统开发的主要目的是实现图书馆信息管理的系统化、规化和自动化。
图书馆信息管理系统主要提供对图书信息的管理及读者信息的管理。
需要完成的主要功能有:
有关读者信息的输入、更新和查询;图书信息的输入、更新和查询。
系统管理主要负责密码管理和用户管理,用户的登陆管理员对用户信息的管理。
读者信息系统主要负责管理读者信息的功能。
书籍信息管理主要负责书籍种类的分类,书籍信息等的管理功能。
借阅信息管理主要负责借书、还书信息的管理等功能进而对书籍信息及时更新。
2.2系统运行环境
我们采用的设备为Intel奔腾四以上系列等PC台式机和便携式电脑;采用WINDOWS操作系统,运用,硬件接口采用标准的键盘、鼠标控制接口;运用eclipse开发软件基于Java的可扩展开发平台的运行环境。
2.3数据库设计
2.3.1数据库逻辑设计
图4-5E-R图
图中各实体属性如下:
读者信息:
学号,,性别,借阅证号,专业,班级
借阅证:
借阅证号,,性别,办证日期
管理员:
管理员编号,管理员,登陆密码
库存表:
书号,书名
借出书库:
书号,借阅证号,借书日期,归还日期
图书档案:
书号,书名,作者,,类别,总数,在册数
2.3.2数据库逻辑设计
表1读书者信息表格
表中列名
数据类型
可否为空
说明
readerno
numeric
Notnull
读者编号
readername
varchar(10)
Notnull
读者
readersex
varchar(5)
Notnull
读者性别
readerindate
datetime
Notnull
借阅日期
表2图书信息表格
表中列名
数据类型
可否为空
说明
Bookid
numeric
Notnull(主键)
图书书号
Bookname
varchar(10)
null
图书名
Booktype
varchar(10)
Notnull
图书类别
Bookauthor
varchar(10)
Notnull
作者
booktpub
varchar(20)
notnull
图书
bookpubdate
datetime
Notnull
图书出版日期
Bookkeyword
bookindate
varchar(10)
datetime
Notnull
Notnull
关键字
入库时间
bookputup
varchar(5)
Notnull
是否借出
booktypeno
numeric
null
图书种类编号
表3图书类别信息表
表中列名
数据类型
可否为空
说明
booktypeno
numeric
notnull
图书类别编号
booktypename
varchar(10)
notnull
图书类别名
booktypekeyword
varchar(10)
notnull
图书关键词
表4用户信息表
表中列名
数据类型
可否为空
说明
username
varchar(10)
notnull
用户
password
numeric
notnull
用户密码
表5图书借阅表
表中列名
数据类型
可否为空
说明
borrowno
numeric
Notnul
借阅编号
bookid
numeric
null
图书书号
readerno
numeric
Notnull
读者编号
booktypeno
numeric
null
图书类别编号
readername
varchar(10)
Notnull
读者
bookno
numeric
Notnull
图书编号
bookname
varchar(10)
Notnull
书籍名称
borrowdate
datetime
Notnull
借出日期
returndate
datetime
Notnull
还书日期
booktypename
varchar(10)
Notnull
图书类别名
2.4输入/输出设计
2.4.1公告模块设计
①确定数据依赖
关系名
主要函数依赖
管理员
管理员编号—→(管理员,登陆密码)
库存信息
书号—→书名等
借出信息
(书号)—→(借书日期,借阅证号,归还日期)
借阅证
借阅证号—→(借阅证号,读者,性别,专业,已借书册书,是否允许借书)
图书信息
书号—→(书号,书名,作者,,单价,图书类别,入库日期)
还书信息
借阅证号—→(,书号,书名,借出日期,还书日期)
②关系模式的优化
(1)借阅证信息:
借阅证(借阅证号,,性别,单位,发证日期,已借书册书,是否允许借阅)
(2)管理员信息:
管理员信息(管理员编号,管理员,登陆密码)
(3)库存信息:
库存信息(书号,书名)
(4)借书信息:
借书信息(书号,借阅证号,,书名,借书日期)
(5)还书信息:
还书信息(,书号,书名,借出日期,还书日期)
(6)图书信息:
图书档案(书号,书名,作者,图书类别,,进册书,总数)
③关系模式的调整
虽然在关系模式的优化中将各种关系满足了BCNF式的要求,但是对某些数据库的操作却并没有简化,相反导致了查询等操作的效率低下。
于是对‘借阅证信息’,和‘图书信息’作出了以下调整。
(1)借阅证信息:
借阅证(借阅证号,,性别,单位,已借书册数,借书许可)
(2)图书信息:
图书档案(书号,书名,作者,,类别,在册数,总数)
2.4.2系统界面模块设计
1)登陆界面:
为用户提供登录功能,登陆时将检查用户名以及用户密码。
2)管理员界面:
管理员所拥有的功能。
3)
添加读者信息:
下面的添加图书信息、添加借阅信息给添加读者信息一样的步骤。
,需要注意的是添加图书信息和添加借阅信息时有外键,要根据具体的信息进行添加。
4)读者信息更新:
更新所需要变动的读者信息。
图书信息更新、借阅信息更新给更新读者信息一样的步骤。
5)
读者信息查询:
查询所需要的读者信息。
图书信息查询、借阅信息查询给读者信息查询一样的步骤。
6)
进行删除读者信息:
删除所不需要的读者信息。
删除图书信息、删除借阅信息给删除读者信息一样的步骤。
3系统实施
如实现添加读者信息界面:
packageframe;..省略
JTextFieldt=newJTextField();
JTextFieldt1=newJTextField();
JTextFieldt2=newJTextField();
JTextFieldt3=newJTextField();
JLabell=newJLabel("请输入你要添加的读者信息");
JLabell1=newJLabel("读者编号:
");
JLabell2=newJLabel("读者:
");
JLabell3=newJLabel("读者性别:
");
JLabell4=newJLabel("读者借书日期:
");
JButtonj=newJButton("添加");
GridBagLayoutgrid;
GridBagConstraintscts;
publicInsertr(JFrames,Stringtitle){..省略实现如下界面:
如实现读者信息删除界面:
packageframe;...省略
publicclassDeleterextendsJDialog{
JTextFieldt=newJTextField();
JLabell=newJLabel("请输入你要删除的读者编号");
JButtonj=newJButton("删除");
Stringreaderno;
GridBagLayoutgrid;
GridBagConstraintscts;
publicDeleter(JFrames,Stringtitle){.....
}catch(Exceptionex){JOptionPane.showMessageDialog(null,"请输入你要删除的读者编号\n");return;}
readersDao.delete(readerno);
}});
setResizable(false);
setVisible(true);
}实现如下界面:
}
4参考文献
《Java+SQLServer项目开发实践》,中国铁道,年乐主编
《软件工程导论(第四版)》,清华大学,海藩主编
《JAVA语言程序设计(第三版)》,清华大学,邵丽萍主编
《数据库设计与开发》,熊壮老师课件
《数据库原理与应用》,高等教育,红主编
附录(程序关键代码)
前台界面实现代码
packageframe;
importjavax.swing.*;
importbean.readers;
importdao.DAO;
importdao.readersDao;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.Reader;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
publicclassLogicFrame{
Containerc;
GridBagLayoutgrid;
GridBagConstraintscts;
JRadioButtonr,m;
ButtonGroupbtg;
JTextFieldtext1,text2;
staticStringzhanghao;
staticStringmima="";
JFramef;
intitemjishu=0;
publicLogicFrame(){
grid=newGridBagLayout();
cts=newGridBagConstraints();
r=newJRadioButton("读者");
m=newJRadioButton("管理员",true);
btg=newButtonGroup();
btg.add(r);
btg.add(m);
cts.gridx=4;
cts.gridy=6;
cts.gridwidth=1;
cts.gridheight=1;
grid.setConstraints(r,cts);
cts.gridx=5;
cts.gridy=6;
cts.gridwidth=1;
cts.gridheight=1;
grid.setConstraints(m,cts);
f=newJFrame("中原工学院信息商务学院");
c=f.getContentPane();
c.setLayout(grid);
c.setBackground(Color.green);
Jradioj=newJradio();
m.addItemListener(j);
r.addItemListener(j);
c.add(m);
c.add(r);
addLabel();
cts.gridx=4;
cts.gridy=7;
cts.gridwidth=1;
cts.gridheight=1;
JButtonbutton1=newJButton("登陆");
grid.setConstraints(button1,cts);
cts.gridx=5;
cts.gridy=7;
cts.gridwidth=1;
cts.gridheight=1;
JButtonbutton2=newJButton("退出");
grid.setConstraints(button2,cts);
c.add(button1);
button1.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringzhanghao1;
try{
zhanghao1=text1.getText();
}catch(Exceptionex){
JOptionPane.showMessageDialog(null,"请输入有效的账户名!
\n");return;
}
Stringmima1=text2.getText();
try{
Connectionconn=newDAO().getConn();//获得连接
Stringsql="selectusername,passwordfromuserinformationwhereusername=?
";
PreparedStatementps=conn.prepareStatement(sql);
ps.setString(1,zhanghao1);//通过实体类的实例为第1个参数赋值
ResultSetrs=ps.executeQuery();//执行查询
while(rs.next()){
zhanghao=rs.getString("username");
mima=rs.getString("password");
}
rs.close();
ps.close();
conn.close();
if((zhanghao.equals(zhanghao1))&&(mima.equals(mima1))){
Usera=newUser();
f.setVisible(false);
}
elseJOptionPane.showMessageDialog(null,"请核对您的个人信息!
\n");
}
catch(Exceptionex){
JOptionPane.showMessageDialog(null,"数据库失败!
\n"+ex.getMessage());
}
}
});
c.add(button2);
button2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
System.exit(0);
}
});
cts.gridx=3;
cts.gridy=4;
cts.gridwidth=4;
cts.gridheight=1;
cts.fill=1;
text1=newJTextField();
text1.setBackground(Color.orange);
text1.setEditable(true);
grid.setConstraints(text1,cts);
cts.gridx=3;
cts.gridy=5;
cts.gridwidth=4;
cts.gridheight=1;
cts.fill=1;
text2=newJTextField();
text2.setBackground(Color.orange);
text2.setEditable(true);
grid.setConstraints(text2,cts);
c.add(text1);
c.add(text2);
f.setBounds(500,300,350,300);
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exceptione){
e.printStackTrace();
}
f.setResizable(false);
f.setVisible(true);
}
publicJLabelsetLabel(intx,inty,intkuan,intchang,Stringtitle){
cts.gridx=x;
cts.gridy=y;
cts.gridwidth=kuan;
cts.gridheight=chang;
JLabellabel=newJLabel(title);
grid.setConstraints(label,cts);
returnlabel;
}
voidaddLabel(){
c.add(setLabel(3,2,4,1,"图书管理系统"));
c.add(setLabel(2,4,1,1,"账户:
"));
c.add(setLabel(2,5,1,1,"密码:
"));
}
publicstaticvoidmain(String[]args){
newLogicFrame();
}
privateclassJradioimplementsItemListener{
publicvoiditemStateChanged(ItemEvente){
itemjishu++;
}
}
}
用户界面代码
packageframe;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importframe.Deleter;
//管理员界面
classUserextendsJFrame{
JFramefm;
publicUser(){
fm=newJFrame("管理员界面");
fm.setBounds(500,300,400,400);
Containercm=fm.getContentPane();
cm.setLayout(newFlowLayout());
cm.setBackground(Color.magenta);
JButtonb31=newJButton("添加读者信息");
b31.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Insertri=newInsertr(fm,"添加读者信息");
}
});
JButtonb32=newJButton("更新读者信息");
b32.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Updaterd=newUpdater(fm,"更新读者信息");
}
});
JButtonb33=newJButton("删除读者信息");
b33.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Deleterd=newDeleter(fm,"删除读者信息");
}
});
JButtonb34=newJButton("查询读者信息");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 项目 开发 设计 报告 R4
![提示](https://static.bingdoc.com/images/bang_tan.gif)