图书管理系统软件工程报告.docx

上传人:b****6 文档编号:7739092 上传时间:2023-01-26 格式:DOCX 页数:19 大小:367.81KB
下载 相关 举报
图书管理系统软件工程报告.docx_第1页
第1页 / 共19页
图书管理系统软件工程报告.docx_第2页
第2页 / 共19页
图书管理系统软件工程报告.docx_第3页
第3页 / 共19页
图书管理系统软件工程报告.docx_第4页
第4页 / 共19页
图书管理系统软件工程报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

图书管理系统软件工程报告.docx

《图书管理系统软件工程报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统软件工程报告.docx(19页珍藏版)》请在冰豆网上搜索。

图书管理系统软件工程报告.docx

图书管理系统软件工程报告

 

软件工程综合设计报告

 

(图书管理系统)

 

班级:

计算机11班

学号:

10741125

姓名:

丁荣霞

成绩:

年月日

 

摘要:

在大学生活中,图书馆是生活中必不可少的一部分,在学习的过程中,查找学习资料、课下研究学习是必要的,所以我们每个人都要借书,然而大量图书的管理已经是非常复杂的过程,更何况图书馆还要处理大量的借书与还书事件,通过数据库和PC技术协助工作人员进行图书管理势在必行,考虑到这种请求,遂研究制作了该图书管理系统。

关键词:

图书管理系统、数据库、PC技术

Abstract:

In college,thelibrary is anessentialpart oflife in theprocessoffindinglearningmaterials, courses underthe researchstudy , sothe library isessentialtoeachoneofus,however, managingalargenumberof books isaverycomplexprocess,letalone handlealargenumber of lendingandreturning events,Technicalassistance throughthe databaseandthe PC librarymanagement staff isimperative,takingintoaccount sucharequest,then studyandmakethelibrarymanagementsystem.

Keywords:

Librarymanagement system,database,PC technology

 

目录

软件工程综合设计报告1

一、系统开发平台4

二、数据库规划4

2.1项目任务陈述4

2.2项目任务目标5

三、系统定义5

3.1用户视图5

四、需求分析6

4.1用户需求说明6

4.1.1数据需求6

4.1.2事务需求7

4.2系统需求说明7

五、数据库逻辑设计8

5.1ER图8

5.2数据字典8

5.3关系表9

六、数据库物理设计9

6.1索引9

6.2视图10

6.3完整性约束(老师您可以在查询分析器中查看)11

6.4存储过程(可以在企业管理器中查看)12

6.5触发器(可以在查询分析器中查看)13

6.6用户(可以在企业管理器中查看)13

6.7角色(可以在企业管理器中查看)14

七、安全机制14

八、应用程序设计14

8.1功能模块14

8.2界面设计15

九、详细设计17

1.主界面对应的部分java代码如下:

17

2.借书界面对应的部分java代码如下:

24

十、测试和运行28

十一、学习软件工程的心得体会29

参考文献29

 

一、系统开发平台

题目:

图书馆管理信息系统

开发工具:

VB6.0,SQLServer2000

操作系统:

Windows7

SQLsever2000服务管理器服务器名称:

LIONHEART-PC\GOODRIFLE

二、数据库规划

2.1项目任务陈述

图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。

现有的人工记录方法既效率低又错误过多,大大影响了图书馆的正常管理工作。

因此需要对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于管理效率的提高

2.2项目任务目标

1.操作员信息的制定、输入、修改、查询

2.读者信息的制定、输入、修改、查询

3.书籍基本信息制定、输入、修改、查询,包括书籍编号、类别、介绍、备注。

4.借书信息制定、输入、修改、查询,包括书籍编号、读者编号、借书日期、借书期限、备注。

5.还书信息制定、输入、修改、查询,包括书籍编号、读者编号、备注。

6.有条件、多条件查询各种信息.

7.用户权限(普通读者、一般图书馆工作人员、图书管理员)

三、系统定义

3.1用户视图

图书信息管理:

图书的插入,图书的删除,图书信息的查询

借书信息管理:

借书信息的输入、修改、查询

还书信息管理:

还书信息的输入、修改、查询

读者信息管理:

读者信息的输入、修改、查询

管理员登陆,登陆后其权限有借书信息管理、还书信息管理、读者信息管理及图书管理。

普通学生登陆后,其权限有图书信息的查看,而不能删除与修改。

四、需求分析

4.1用户需求说明

4.1.1数据需求

读者的数据信息,包括姓名、性别、学号、联系电话、所在系、生效时间、失效时间、违章状况等。

书籍基本数据信息,包括书籍的ISBN编号、类别、作者名、出版社、介绍、备注等。

借书信息数据,包括操作员编号、ISBN、读者编号、借书日期、借书期限、是否续借、备注等。

还书信息数据,包括操作员编号、ISBN、读者编号、还书确认、备注等。

图书添加到馆信息确认,包括操作员编号、ISBN、添加时间、数量。

4.1.2事务需求

对读者信息的制定、输入、修改、查询;

对书籍基本信息制定、输入、修改、查询;

对借书信息制定、输入、修改、查询;

对还书信息制定、输入、修改、查询;

4.2系统需求说明

需要建立多个类来实现管理员的各种操作及功能,以及操作员对读者借书还书的管理,还有读者对图书信息的查询等。

五、数据库逻辑设计

5.1ER图

5.2数据字典

管理员:

工作号、姓名、性别、电话、住址、密码

读者:

姓名、性别、学号、联系电话、所在系、生效时间、失效时间、违章状况、密码

书的信息:

ISBN编号、类别、作者名、出版社、介绍、备注、数量

借书:

工作号、ISBN、读者编号、是否归还、结书日期、还书日期

还书:

工作号、ISBN、读者编号、借还确认、备注

图书管理:

工作号、ISBN、添加时间、是否在馆、数量

5.3关系表

六、数据库物理设计

6.1索引

读者信息表索引-----建立于读者学号之上

管理员_书籍索引-----建立于ISBN号之上

管理员_学生索引-----建立于读者学号之上

管理员信息表索引-----建立于工作号之上

借阅表索引-----建立于ISBN号之上

图书信息表索引-----建立于ISBN号之上

6.2视图

6.3完整性约束(老师您可以在查询分析器中查看)

6.4存储过程(可以在企业管理器中查看)

6.5触发器(可以在查询分析器中查看)

6.6用户(可以在企业管理器中查看)

6.7角色(可以在企业管理器中查看)

七、安全机制

在数据库中建立了管理员帐号和学生登陆帐号,登陆时若选择管理员登陆,则输入管理员账号和密码则可进入管理员管理界面,登陆后其权限有借书信息管理、还书信息管理、读者信息管理及图书管理。

选择学生登陆,则输入学号密码可进入学生查询界面,其权限有图书信息的查看,而不能删除与修改。

八、应用程序设计

8.1功能模块

对书籍基本信息查询、输入、修改;

对借书信息查询、输入、修改;

对还书信息查询、输入、修改;

对书籍添加到图书馆的书库中。

8.2界面设计

界面一:

主界面

界面二:

点击主界面上的“系统管理”,进入登录界面

界面三:

添加书籍

界面四:

书籍出借界面

界面五:

书籍还入界面

界面六:

书籍借阅一览及查询

九、详细设计

1.主界面对应的部分java代码如下:

//--设置每个菜单点击后出现的窗口和窗口显示的位置--

publicvoidactionPerformed(ActionEvente)

{

if(e.getActionCommand()=="用户登录")

{

UserLoginUserLoginFrame=newUserLogin(this);

DimensionFrameSize=UserLoginFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

UserLoginFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

UserLoginFrame.pack();

UserLoginFrame.show();

}

elseif(e.getActionCommand()=="添加用户")

{

UserAddUserAddFrame=newUserAdd();

DimensionFrameSize=UserAddFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

UserAddFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

UserAddFrame.pack();

UserAddFrame.show();

}

elseif(e.getActionCommand()=="修改用户")

{

UserModifyUserModifyFrame=newUserModify();

DimensionFrameSize=UserModifyFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

UserModifyFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

UserModifyFrame.pack();

UserModifyFrame.show();

}

elseif(e.getActionCommand()=="删除用户")

{

UserDeleteUserDeleteFrame=newUserDelete();

DimensionFrameSize=UserDeleteFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

UserDeleteFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

UserDeleteFrame.pack();

UserDeleteFrame.show();

}

elseif(e.getActionCommand()=="添加书籍")

{

BookAddBookAddFrame=newBookAdd();

DimensionFrameSize=BookAddFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

BookAddFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

BookAddFrame.pack();

BookAddFrame.show();

}

elseif(e.getActionCommand()=="修改书籍")

{

BookModifyBookModifyFrame=newBookModify();

DimensionFrameSize=BookModifyFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

BookModifyFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

BookModifyFrame.pack();

BookModifyFrame.show();

}

elseif(e.getActionCommand()=="删除书籍")

{

BookDeleteBookDeleteFrame=newBookDelete();

DimensionFrameSize=BookDeleteFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

BookDeleteFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

BookDeleteFrame.pack();

BookDeleteFrame.show();

}

elseif(e.getActionCommand()=="书籍出借")

{

BorrowBookBorrowBookFrame=newBorrowBook();

DimensionFrameSize=BorrowBookFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

BorrowBookFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

BorrowBookFrame.pack();

BorrowBookFrame.show();

}

elseif(e.getActionCommand()=="出借信息修改")

{

BorrowInfoBorrowInfoFrame=newBorrowInfo();

DimensionFrameSize=BorrowInfoFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

BorrowInfoFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

BorrowInfoFrame.pack();

BorrowInfoFrame.show();

}

elseif(e.getActionCommand()=="书籍还入")

{

ReturnBookReturnBookFrame=newReturnBook();

DimensionFrameSize=ReturnBookFrame.getPreferredSize();

DimensionMainFrameSize=getSize();

Pointloc=getLocation();

ReturnBookFrame.setLocation((MainFrameSize.width-FrameSize.width)/2+loc.x,

(MainFrameSize.height-FrameSize.height)/2+loc.y);

ReturnBookFrame.pack();

ReturnBookFrame.show();

}

2.借书界面对应的部分java代码如下:

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==CancelBtn)

{

this.dispose();

}

elseif(e.getSource()==ClearBtn)

{

BorrowedBookStudentTextField.setText("");

BorrowedDateTextField.setText("");

BorrowedCommentTextField.setText("");

}

elseif(e.getSource()==YesBtn)

{

if(BorrowedBookStudentTextField.getText().trim().equals(""))

{

JOptionPane.showMessageDialog(null,"请输入借阅者的姓名。

");

}

elseif(BookNameComboBox.getSelectedItem().equals(""))

{

JOptionPane.showMessageDialog(null,"对不起,现在书库里没有书,\n你现在不能借书!

");

}

else

{

try

{

StringstrSQL="insertintobookBrowse(studentname,bookname,borrowdate,returndate,com)values('"+

BorrowedBookStudentTextField.getText().trim()+"','"+BookNameComboBox.getSelectedItem()+"','"+

BorrowedDateTextField.getText().trim()+"','"+

ReturnDateTextField.getText().trim()+"','"+

BorrowedCommentTextField.getText().trim()+"')";

if(db.updateSql(strSQL))

{

JOptionPane.showMessageDialog(null,"借阅完成!

");

strSQL="updatebookssetborrowed_count=borrowed_count+1wherebookname='"+

BookNameComboBox.getSelectedItem()+"'";

db.updateSql(strSQL);

db.closeConnection();

this.dispose();

}

else

{

JOptionPane.showMessageDialog(null,"借阅失败!

");

db.closeConnection();

this.dispose();

}

}

catch(Exceptionex)

{

System.out.println(ex.toString());

}

}

}

}

十、测试和运行

调试成功,所涉及的功能均能实现。

如:

(1)执行借书工作

借书操作之前,借阅表为

借书操作之后,借阅表为

(2)执行添加书籍操作

添加操作之前,图书信息表为

执行添加操作之后,图书信息表为

十一、学习软件工程的心得体会

学习了这门课程,还有老师们的多元化教课,不但使我们从理论上掌握软件工程,还有从不同的实例,让理论和实践得到了很好的结合,老师主要是从六个方面来描述软件工程,分别是信息和多媒体,JAVA编程技术,数据库系统,管理信息系统,有很多都是老师们多年的工作经验的总结,这是我听课后自己的一点心得和自己对软件开发一点感想,我知道还有好多的不懂,只有通过不断的学习才能一一解开.

参考文献

《数据库原理及应用》----何玉洁、麦中凡编著,人民邮电出版社

《java程序设计》----朱福熹编著,清华大学出版社

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1