图书馆管理系统设计报告Word格式文档下载.docx
- 文档编号:16264022
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:28
- 大小:1.22MB
图书馆管理系统设计报告Word格式文档下载.docx
《图书馆管理系统设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统设计报告Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;
由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;
一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
二《图书馆管理系统》设计
2.1目标与定位
系统设计
1.系统目标设计。
本图书馆管理系统可以用于支持图书馆管理员完成一般的工作。
有下面3个功能。
⏹借书还书系统。
⏹会员和图书录入系统。
⏹管理员账号管理系统。
2.开发设计思想
本系统开发设计有以下几点。
⏹尽量用现有的软硬件环境,及先进的管理开发方案,从而达到充分利用现有资源。
遗稿系统的开发水平和应用效果的目的。
⏹系统应符合管理的规定,满足日常人事管理的工作需要,并达到操作过程直观、方便、实用等要求。
⏹系统具备及时根据人员的需求进行数据的添加、删除、修改等操作。
3.开发和运行环境选择
用PowerBuilder9.0作为应用开发工具。
Sqlanywhere作为数据库系统。
4.系统功能分析
在系统开发总体任务的基础上完成系统功能分析。
本系统需要完成以下功能。
⏹登陆权限设置
⏹读者注册
⏹管理员各种信息的输入,图书和读者资料。
⏹图书的借出归还。
⏹管理员的账号增加和密码修改。
⏹图书和会员的基本资料查询。
系统功能图
权限
认证
x
2.2数据库设计
2.2.1E-R图设计
号
实体之间的E-R图为
2.2.2面向对象结构图
系统功能
查查
看看
借图
书书
信信
息息
信息查询
2.2.3数据库表结构及数据字典设计
2.3代码于程序的实现
登陆认证代码
//将全局变量-输入用户名和口令的次数赋初值0
G_INPUT_TIME=0
//定义变量
Environmentl_env
intl_ScrWidth,l_ScrHeight
//关闭窗口刷新
setRedraw(false)
//取得屏幕的高度和宽度
GetEnvironment(l_env)
l_ScrWidth=PixelsToUnits(l_env.ScreenWidth,XpixelsToUnits!
)
l_ScrHeight=PixelsToUnits(l_env.ScreenHeight,YpixelsToUnits!
//移动窗口到屏幕中间
Move((l_scrwidth-this.width)/2,(l_scrheight-this.height)/2)
//打开窗口刷新
setredraw(true)
管理员注册
ifsle_1.text="
"
then
messageBox("
警告:
"
请输入资料!
return
endif
stringid,number
id=sle_4.text
inti,j
//检查有无重号
selectuser_id
into:
i
fromuser_information
whereuser_id=:
id;
ifi<
>
0then
messageBox("
账号重复,请重新输入!
return
number=sle_3.text
selectadministrator_number
j
fromadministrator
whereadministrator_number=:
number;
ifj<
职工号重复,请重新输入!
INSERTINTO"
administrator"
("
administrator_sex"
"
administrator_name"
user_password"
user_id"
administrator_number"
)
VALUES(:
sle_2.text,
:
sle_1.text,
sle_5.text,
sle_4.text,
sle_3.text);
if(sqlca.sqlcode<
0)then
messagebox("
保存失败,错误:
+sqlca.sqlerrtext)
rollback;
else
commitusingsqlca;
保存成功"
)
close(administrator_enroll)
添加图书
intn
n=dw_1.rowcount()
dw_1.insertrow(0)
dw_1.scrolltorow(n+1)
integerli_rc
//Acceptthelastdataenteredintothedatawindow
dw_1.AcceptText()
//Checktoseeifanydatahaschanged
IFdw_1.ModifiedCount()>
0THEN
li_rc=MessageBox("
提示"
&
"
是否保存所做的修改?
Question!
YesNoCancel!
3)
//Userchosetoupdataandclosewindow
IFli_rc=1THEN
cb_4.triggerevent(Clicked!
RETURN0
//Userchosetoclosewindowwithoutupdating
ELSEIFli_rc=2THEN
//Usercanceled
ELSE
RETURN1
ENDIF
ELSE
//Nochangestothedata,windowwilljustclose
RETURN0
ENDIF
图书查询
stringcondition
condition='
book_number'
+'
='
+"
'
+sle_1.text+"
dw_1.setfilter(condition)
filter(dw_1)
sle_1.text="
sle_1.setfocus()
ifdw_1.retrieve()=0thenmessagebox('
提示'
'
图书馆没有此书!
借书处理代码
stringIs_bookid,Is_cert_id,Il_m,Il_n,Il_f,Il_l,Il_p,check
dateIs_returndates
datetimeIs_loandates,Il_j,Il_k
integerIl_a,Is_flag,Il_v,Il_d,Il_b
check="
是"
then
messagebox("
缺少数据"
请输入借书证书ID"
sle_1.setfocus()
elseifsle_2.text="
请输入图书编号"
sle_2.setfocus()
Is_cert_id=sle_1.text
Is_bookid=sle_2.text
Is_loandates=datetime(today())
Is_returndates=relativedate(today(),30)
selectreturn_date
into:
Il_j
fromborrower_information
wherebook_number=:
Is_cert_idandborrowe_date<
:
Is_loandates;
selectbook_number
Il_m
frombook
Is_bookid;
ifIl_m<
Is_bookidthen
信息错误"
数据库内没有此图书信息!
selectborrower_card_number
Il_n
fromreader
whereborrower_card_number=:
Is_cert_id;
ifIl_n<
Is_cert_idthen
数据库内不存在此证!
selectborrow_or_not
Il_p
ifIl_p=checkthen
图书已借出!
selectbook_name
Il_l
insertintoborrower_information(return_date,borrowe_date,borrower_card_number,book_number,book_name)
values(:
lib_date,
Is_loandates,
Il_n,
:
Il_m,
);
UPDATEbookSETborrow_or_not='
是'
WHEREbook_number=:
dw_1.retrieve(Is_cert_id)
提示信息"
图书编号为"
+Is_bookid+"
的图书已借成功"
//dw_1.update()
sle_2.text="
em_1.text="
还书代码
stringIs_cert_id,Is_bookid,Il_a
datetimeIl_k,Is_sjtime,l_returntime,l_loandate
stringIl_e,Il_h,Il_l,l_cid,l_bid,c_cid
doublem_money,emoney,sum,Is_price
integerl_flag
Is_bookid=sle_4.text
Is_sjtime=datetime(today())
Is_cert_id=sle_3.text
ifsle_3.text="
请输入借书证书号"
sle_3.setfocus()
elseifsle_4.text="
sle_4.setfocus()
//判断证件是否借过书或借书证不存在
c_cid
ifc_cid<
sle_3.textthen
您的借书证号不存在,请询问管理员!
endif
l_bid
ifl_bid<
sle_4.textthen
该书未借出!
UPDATEbook
SETborrow_or_not='
否'
WHEREbook_number=:
的图书已还书成功"
delete
sle_3.text="
sle_4.text="
sle_3.setfocus()
修改密码
stringpw
pw=SLE_2.TEXT
//输入次数加1
G_INPUT_TIME=G_INPUT_TIME+1
//判断两次输入的新口令是否一致
IFSLE_2.TEXT<
SLE_3.TEXTTHEN
IFG_INPUT_TIME>
3THEN
MESSAGEBOX("
警告"
输入的次数太多!
CLOSE(CHANGE_PASSWORD)
两次输入的口令不一致,请重新输入"
//判断输入的原口令是否正确
IFSLE_1.TEXT<
G_PWDTHEN
IFG_INPUT_TIME>
MESSAGEBOX("
CLOSE(CHANGE_PASSWORD)
ELSE
输入的原口令不正确,请重新输入"
ENDIF
//修改数据库中的该用户的口令
UPDATEuser_informationSETuser_password=:
pw
WHEREuser_id=:
G_USER;
注意"
你的口令已经修改,请牢记"
//提交修改,关闭口令修改窗口
commitusingsqlca;
读者用户注册
id=sle_2.text
number=sle_5.text
借书证号重复,请重新输入!
reader"
reader_sex"
reader_name"
borrower_card_number"
"
reder_mobile_phone_number"
sle_3.text,
sle_5.text,
:
sle_6.text);
close(reder_enroll)
三系统功能
上图为登录界面,点击进入
可用借书卡号注册普通为普通用户
这是普通用户注册界面
填写上述信息可添加到数据库中
登陆
普通读者号登陆
进入主程序读者可根据菜单选择相应的处理
如图书查询
图书管理图书查询
读者可根据图书编号、书名、作者、种类查询
在查询窗口中还可查到图书是否已被借出
可在用户信息项查看自己的信息以及本人已借书籍的信息
管理员账号登陆
可以进行图书入库,删除,进行借还书处理,添加管理员,读者信息查询操作
插入操作:
点击窗口的添加按钮,在数据窗口中输入图书相应信息,让后点保存即可完成图书入库。
删除:
在数据窗口中选择要删除的行,点击删除即可。
图书借还处理
选择相应选项卡,如借书:
输入借书证号,图书编号后点击确定完成借书处理
管理员可查询更新读者基本信息
选择查询种类,点击查询,在数据窗口中更改需要更改的信息,点击更新完成读者信息更新
添加管理员
输入相应信息后,点击添加,完成添加
四心得体会
在这次设计中,涉及到了之前关于PB学习的很多知识点,让我对一个软件的设计开发过程有了更深的了解,重新复习了之前学习到的东西。
查询曾经借过的书的记录和未还书的记录时不能全部显示,要出来对应证件号码的信息。
在设计软件过程中遇到了很多困难,需要反复的改写,思考,有时候因为书看的不仔细或者上课的时候不认真,自己盲目的做而耽误了不少时间。
不过多天来一直研究PB也使自己的PB编程和设计思想和水平有了稍许的提高。
一开始,我觉得老师让做系统不如让我们笔试,但是经过编程、设计,使自己掌握了不少知识与技巧,这样实践性强的期末考试形式很好,可以真正的提高就业能力和动手能力。
对于软件工程的学习,只有真正参与到设计和编程才能够积累经验,提高自己的软件编程能力。
动手能力对于一个程序员来说至关重要。
由于设计系统开发经验不足,时间有限,而我的设计只能提供其基本的功能。
还有许多的设想由于时间和自身和因素无法得以实现。
虽然我们小组完成了系统的调研、分析、设计和调试的工作,但是仍然有许多不足之处。
不过,至少它已经启发了自己的思维,提高了我的动手能力,这是我在课本中学不到的。
它为我们在以后的工作岗位上发挥自己的才能奠定了坚实的基础。
心得体会
这次选用的编程工具是PowerBuilder9.0,对于一个数据库软件的开发,PB对数据库的操作很方便,特别是提供的数据窗口控件
这次程序设计复习巩固了以前学习的数据库知识,进一步掌握了PB的一些基本操作,了解到一些程序设计的基本过程,学习到一些追踪程序错误及解决问题的方法。
通过这次程序实践让增强了自己的动手能力也我了解到自己的许多不足,一些设想的功能也未能实现,希望随着以后知识和经验的累计能够设计出更加完善的程序。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)