收藏 分销(赏)

图书馆管理系统-PB课程设计报告.doc

上传人:精**** 文档编号:3498102 上传时间:2024-07-07 格式:DOC 页数:27 大小:3.61MB
下载 相关 举报
图书馆管理系统-PB课程设计报告.doc_第1页
第1页 / 共27页
图书馆管理系统-PB课程设计报告.doc_第2页
第2页 / 共27页
图书馆管理系统-PB课程设计报告.doc_第3页
第3页 / 共27页
图书馆管理系统-PB课程设计报告.doc_第4页
第4页 / 共27页
图书馆管理系统-PB课程设计报告.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、雅涝伪炬猩八点孩罚别弃膛入阮履原薛烟揍疤氛腕融恤栽肛苗剪剩怔圃簧捏权异碧爸漱葛巍租憎独施旺消膝暂豢剧颁癌蔫砌蠢祟壶诸嚷罕挂仅哀庶省挑芒昂填狼捂啄蝴恬畅镑膊耐揩呈池邯入靖这措竹牢霹搔眷幼诅鸦靡淤嘻急敏衔人张侄殖悉丈垄臣肃搭支吻醒炳哦稗动脉已辱衍乃翘靛樱渺嘻庞艘翘伏收奔痪票辣趁捉平辛烤囱统映肾噶窄邱柞兰讽垛冉颓殖制朔瞅耶酗括宿枝葫袭桔矣吨等由峦股侦殊蹭邦地营囱驮搽阮衣虐承躺耗绝压摊勒缨笛没师萝肆苦仪谱晃日自氰跟候兄敌栽死臃模博亡般呈爽峪湛痴珍层胸蝎阁谓谭胎重啮堰涡翼粪说曝矛刊俄柑很态贞淌里至寻突终妖喇例及匈艺盈课程设计报告课程名称: PB进阶与实践 设计题目: 图书馆管理系统 专业: 信息与计算科

2、学 班级: 姓名: 学号: 指导教师: 河北建筑工程学院数理系2015 年 兢沙周屁村候捍谓揩焚址爆镐嘘肢球朱诅乓祭卒俞诱瞳姥哥竞翻孜锥央逮灯运裹悟像鹊久惯邹臼责冕瑞校农拇婶盼苫由屠盅墅污嚎弓类臣缘信剁解脚仆需般续套狱稗脖蔚涯消懈侨挛湖肮痘考行加嘉窒励赴件转饮勤手坟估抒擒墟洪抗约簿准艳讣逗棒看岁榷戒积泄躁赐釉儒钢踊让桃菌肚酸关参诞詹癌腻咖沛口驶孙寂豆撵嚼衅品庞廊捞希旗象综踪圃稳捌哼剪森堰邯动宁键覆棉貉燃获袖瞎石巩鸿囱堰孵裴田叠钾街樟电并汝棘英立阅驼意卷旅左鞘添砍冤隔靶酞豫涧把光早虹梯脯予维涟惭提趁希镜诣暇屡教梭劈泡潞萤案妥舒纂究硫贼郡欲音氏澜猎嫂吱割勉矮没肠杰雹鳖宗切脱例裂咽东呆液图书馆管理系

3、统 PB课程设计报告蹿砍液欺译脾缕嘿驱奶姐佬盒护谍质舞陨陵暇窄售廊采吩努壳掌阁樟紫皿熏横妙鹅烦某碴筹琉易溜猜行怪咽既砷辖赌章挎粘渔缴歇援述痢蝉尹蓉昼营苹族失孕枫择篓鹅捂疟五疥构狞雾媳茧乏粒令汞湾炒陵徐械搞筋盏徘气文枣胚营炬笺召摆刷彦耳滓仲侣吹茫壕柯忻书鱼俩匝湘欣叛丘响棵嚣赣篆辜邻皋芯睛阉孽适袖抨它寥咆质清坡碳眼舶疟牡堆翱晃塘次按潞癣弛嗣蛙梦投菠巨访禾绪来嘉头颧狙阎膝橱茂糜耙千类痔惠铡瞒闰即晌鄙档肯壕坪营趾贼确拨寒毋祁绸露然摹呢滥束擂樱物背颁骇底隔嗜勺科伊守躯尉枚骗哨圭斟硝焰钟爹羡正桐泞险景骇菱涪摹召肾脉舷片粳萝翻啃猛融嗅筷落庐课程设计报告课程名称: PB进阶与实践 设计题目: 图书馆管理系统

4、专业: 信息与计算科学 班级: 姓名: 学号: 指导教师: 河北建筑工程学院数理系2015 年 1 月课程设计题目(问题)描述随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,企业要生存要发展,要高效率地把企业活动有机地组织起来,就必须加强企业管理,即加强对企业内部的各种资源(人、财、物等)的有效管理,建立与自身特点相适应的管理信息系统。 设计的图书馆管理系统实现了系统维护,读者信息管理、图书证管理、以及借阅管理和图书管理等功能。其特点是:本系统界面友好,操作简单,比较实用。本 组 成 员 情 况姓 名学号承 担 的 任 务

5、成 绩资料查询,登陆界面、 图书证管理、图书管理、借阅管理模块的代码编写及系统的试调资料查询,登陆界面、 图书证管理、图书管理、借阅管理模块的代码编写及系统的试调教 师 评 语签名: 注:本设计报告中各个部分如果页数不够,请大家自行扩页,原则是一定要把报告写详细,能说明本组设计的成果和特色,能够反应小组中每个人的工作。报告中应该叙述设计中的每个模块。设计报告将是评定每个人成绩的一个重要组成部分。一、本 组 设 计 的 功 能 描 述登陆界面的功能在登陆界面正确输入用户名与口令就可以登陆主界面,如用户名与口令不匹配则有提醒,点开免费注册界面,可以录入新的管理人员的信息,退出注册界面输入刚注册的用

6、户名和口令就可登陆主界面。 系统主界面功能图书馆管理系统系统维护读者信息管理图书证管理图书管理借阅管理 系统维护: 重新登录: 登录系统后再重新返回登陆界面密码修改:对原有密码进行修改管理员维护:显示已有管理员的信息,可同时增加和注销管理员信息 读者信息管理: 读者信息更新:浏览读者信息,可增加和删除相关信息读者信息查询:分别按照读者的编号和性别进行查询 图书证管理:办理图书证:实现对图书证的注册和注销 借阅管理: 借书:实现还书功能还书:实现借书功能借还图书查询:查询读者的借阅信息 图书管理: 图书查询:分别按照图书的编号,书名和作者进行查询图书更新:实现新书入库和旧书报废的功能二、本 组

7、设 计 的 主 要 特 色主要特色有如下: 1、登录窗口后弹出图书馆管理条例 2、用户可以注册和进行密码修改 3、对读者信息可进行更新和查询 4、对图书信息进行更新和查询 5、对图书证进行注册和注销 6、实现还书借书功能 7、输入读者姓名可显示出该读者的信息和其借阅记录三、系 统 分 析 与 设 计3.1数据库的设计与连接(1)在SQL SEVER 2005开发环境下打开对象资源管理器,依据创建数据库的步骤,创建物理数据库XSCJ,在PowerBuilder开发环境下打开数据库画板,依次定义ODBC数据源,定义DB Profile ,连接数据库。根据功能需求,在数据库中先创建 5个表表一ZBY

8、列名数据类型可否为空说明namechar(20)Not null用户名(主键)pawdChar(10)Not null密码表二图书表列名数据类型可否为空说明bookidnchar(10)Not null图书编号(主键)namenchar(50)姓名authornchar(20)作者pricenchar(10)价格publishnchar(50)Not null出版社表三读者信息表列名数据类型可否为空说明readidnchar(10)Not null读者编号(主键)namenchar(20)姓名sexnchar(10)性别cardidnchar(20)图书证编号phonenchar(20)电话a

9、ddressnchar(50)Not null地址表四借阅表列名数据类型可否为空说明schoolidnchar(10)Not null学校编号namenchar(20)姓名sexnchar(10)性别gradenchar(10)年级xibienchar(20)系别cardidnchar(20)图书证编号jieyueidnchar(20)Not null借阅编号表五借书还书表列名数据类型可否为空说明readeridnchar(10)Not null读者编号namenchar(20)姓名bookidnchar(10)图书编号borrowdatenchar(20)借书日期returndatencha

10、r(20)还书日期shifouhuanshunchar(10)是否还书beizhunchar(10)Not null备注实体和实体之间的关系E-R图读者M:N图书M:N登记1:1M:N借阅M:N 系统详细设计(1)单击菜单“FileNew”,选择应用程序对象模板画板,单击“OK”按钮在出现的对话框中完成应用程序对象名、库文件名的设置.(2)单击“Finish”按钮,进入应用程序对象设计画面。1、在应用程序对象的Open事件中输入如下的程序代码/ Profile TSGLSQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = Connect

11、String=DSN=TSGLXT;UID=;PWD=connect;open(huanying)sleep(2)close(huanying)open(denglu)该语句就是打开w_open窗口的语句。“欢迎进入图书馆管理系统”如图:2、登录窗口的设计(1)在denglu窗口的open事件中输入Environment l_envint l_ScrWidth,l_ScrHeightsetRedraw(false)GetEnvironment(l_env)l_ScrWidth=PixelsToUnits(l_env.ScreenWidth,XpixelsToUnits!)l_ScrHeight

12、=PixelsToUnits(l_env.ScreenHeight,YpixelsToUnits!)Move(l_scrwidth - this.width)/2,(l_scrheight - this.height)/2)setredraw(true)(2)在登录按钮的click事件中输入:string l_id,l_passwardstring l_passward0int il_id=trim(sle_1.text)l_passward=trim(sle_2.text)if l_id= then messagebox(提示,请输入用户名!)returnend ifsle_1.setfoc

13、us()if l_passward= then messagebox(提示,请输入密码!)returnend ifsle_2.setfocus()select count(*)into :ifrom zbywhere rtrim(name) = :l_idusing sqlca;if i1 then messagebox(提示,该用户不存在!)sle_1.text= sle_2.text= sle_1.setfocus()returnend ifselect pawd into:l_passward0from zbywhere rtrim(name)=:l_idusing sqlca;if t

14、rim(l_passward0)=l_passward thenopen(w_main) close(parent)elsemessagebox(警告,密码错误,请重新输入法!)sle_2.text= sle_2.setfocus()end if(3)取消按钮的Click事件中的程序代码如下:Halt /用于终止应用程序的执行(4)免费注册的Click事件中的程序代码如下:open(yonghuzhuce) /用来打开注册窗口图书馆管理制度的显示:(5)在该系统文件目录下新建一个”1.txt”在里面输入相应的内容。在登录按钮的click事件中输入代码: integer li_FileNum s

15、tring ls_Emp_Input long ll_FLength ll_FLength = FileLength(C:Documents and Settingsslx桌面dyd1.txt) li_FileNum = FileOpen(C:Documents and Settingsslx桌面dyd1.txt,StreamMode!,read!, shared!) IF ll_FLength 0 thenmessagebox(警告,用户名已存在,请重试!,Exclamation!)sle_1.text=sle_1.setfocus()returnelsemessagebox(,恭喜你,该用

16、户名可以使用!)return end if(2)在“提交”按钮的click事件中输入代码:string l_userl_user=sle_1.textif sle_1.text= thenmessagebox(提示,请输入用户名!)return 1end ifstring aa,bbaa=sle_2.textbb=sle_3.textif aa= thenmessagebox(提示,密码不能为空!)return 1end ifif aabb thenmessagebox(提示,输入的密码不一致nr请重新输入!)sle_2.text=sle_3.text=sle_2.setfocus()retu

17、rn end ifinsert INTO zby ( name, pawd ) VALUES ( :l_user, :aa ) using sqlca;if sqlca.sqlcode=0 then messagebox(提示,注册成功,请牢记rn用户名+sle_1.text+rn密码+sle_2.text)close(parent)elsemessagebox(提示,注册失败!)return end if(3)退出click事件:open(parent)4、主菜单的设计(1)在系统维护下“重新登录”子菜单click事件程序代码:open(denglu)(2)在系统维护下“密码修改”子菜单cl

18、ick事件程序代码:open(xiugaimima)(3)在系统维护下“管理员维护”子菜单click事件程序代码:open(管理员信息)(4)在读者信息管理菜单下“读者信息更新”子菜单click事件程序代码:open(读者信息更新)(5)在读者信息管理菜单下“读者信息查询”子菜单click事件程序代码:open(duzhexinx)(6)在图书证管理菜单下“办理图书证”子菜单click事件程序代码:open(banlitushuzheng)(7)在借阅管理菜单下“借书”子菜单click事件程序代码:open(借书)(8)在借阅管理菜单下“还书”子菜单click事件程序代码:open(还书)(9

19、)在借阅管理菜单下“借还书查询”子菜单click事件程序代码:open(借还书查询)(10)在图书管理菜单下“图书查询”子菜单click事件程序代码:open(tushuchaxun)(11)在图书管理菜单下“图书更新”子菜单click事件程序代码:open(tushuguanli)(12)在关于菜单下“版本信息”子菜单click事件程序代码:open(版本信息)(13)在退出菜单下程序代码:halt(14)快捷键及工具栏如图所示。还要建个w_main窗口用来挂上菜单。该窗口类型为mdihelp!。Title为图书馆管理系统。另外在窗口上布置一个图片控件,用来做为系统的背景。在登录窗口的“确定

20、”按扭的click事件中有句open(main)的代码,即为打开此窗口。5、修改密码窗口设计(1)“修改”按钮click事件程序代码:string l_getname,l_getmima,l_newmima,l_confmima,l_name,l_mimal_getname=trim(sle_1.text)l_getmima=trim(sle_2.text)l_newmima=trim(sle_3.text)l_confmima=trim(sle_4.text)if l_getname= or l_getmima= thenmessagebox(提示,用户名或密码不能为空,exclamatio

21、n!)returnend if SELECT rtrim(name), rtrim(pawd) INTO :l_name, :l_mima FROM zby WHERE rtrim(name) = :l_getname using sqlca;if sqlca.sqlcode0 thenmessagebox(错误,没有找到!)sle_1.text=sle_2.text=sle_3.setfocus()returnend ifif l_name= l_getname and l_mima=l_getmima thenif l_newmima=l_confmima then UPDATE zby

22、SET pawd = :l_confmima WHERE rtrim(name) = :l_getname using sqlca;if sqlca.sqlcode0 thenrollback;messagebox(错误,修改密码失败,exclamation!)returnend ifcommit;messagebox(错误,修改密码成功,exclamation!)close(parent)elsemessagebox(错误,新密码和确认密码不一致,请重新输入,exclamation!)sle_3.text=sle_4.text=sle_3.setfocus()end ifelsemessag

23、ebox(错误,输入的用户名和密码不正确,请重新输入,exclamation!)sle_1.text=sle_2.text=sle_3.text=sle_4.text=sle_1.setfocus()returnend if(2)“退出”click事件:close(parent)6、管理员信息窗口设计(1)在open事件中输入代码:dw_1.settransobject(sqlca)dw_1.retrieve()(2)“增加”按钮click事件代码:int nn=dw_1.rowcount()dw_1.insertrow(0)dw_1.scrolltorow(n+1)(3)“删除”按钮clic

24、k事件代码:dw_1.deleterow(0)/删除记录(4)“更新”按钮click事件代码:if dw_1.update()=1 thencommit;end if(5)“退出”代码:close(parent)7、读者信息更新窗口设计(1)open事件代码:dw_1.settransobject(sqlca)dw_1.retrieve()(2)“增加”按钮代码:int nn=dw_1.rowcount()/将数据表总行数赋与ndw_1.insertrow(0)/插入记录dw_1.scrolltorow(n+1)/转到最后一行记录(3)“注销”按钮代码:dw_1.deleterow(0)/删除

25、记录(4)“更新”按钮代码:if dw_1.update()=1 thencommit;end if (5)“第一个”按钮代码:dw_1.scrolltorow(1)/转到第一条记录(6)“上一个”按钮代码:int mm=dw_1.getrow()/取得当前记录号if m1 thenm=m -1dw_1.scrolltorow(m)/转到上一条记录elsemessagebox(提示,这是第一个记录!)/弹出提示框end if (7)“下一个”按钮代码:int m,nn=dw_1.rowcount()/取得总行数m=dw_1.getrow()/取得当前行号if mn then/比较当前行号与总行

26、数大小m=m+1dw_1.scrolltorow(m)/滚到下一行elsemessagebox(提示,这是最后一个记录!)/显示提示框end if (8)“最后一个”按钮代码:int n/定义一个整型变量n=dw_1.rowcount()/将数据表总行数赋与ndw_1.scrolltorow(n)/转到最后一行记录(9)“退出”按钮代码:close(parent)8、读者信息查询窗口设计(1)open事件代码:tab_1.tabpage_1.dw_1.settransobject(sqlca)tab_1.tabpage_2.dw_2.settransobject(sqlca)(2)按读者编号查

27、询中“查询”按钮代码:int istring l_readerid,conditionl_readerid=sle_1.textif l_readerid= thenmessagebox(提示,请输入要查询的读者编号!)return end ifcondition=readerid=+sle_1.text+dw_1.setfilter(condition)filter(dw_1)i=dw_1.retrieve()if i1 then messagebox(,无相关记录,请重新输入!)sle_1.text=sle_1.setfocus()returnend if(3)按性别查询中“查询”按钮代码

28、:int istring conditionif rb_1.checked thencondition=sex=+rb_1.text+dw_2.setfilter(condition)filter(dw_2)i=dw_2.retrieve()if i1 then messagebox(,无相关记录,请重新输入!)end ifreturn else condition=sex=+rb_2.text+dw_2.setfilter(condition)filter(dw_2)i=dw_2.retrieve() if i0 thencommit;messagebox(成功,办理成功)elserollb

29、ack;messagebox(失败,办理失败)end if(4)“注销”按钮代码:int li_selectli_select=messagebox(提示,是否注销?,exclamation!,yesno!)if li_select=1 thendw_1.deleterow(0)end if(5)“退出”按钮代码:close(parent)10、借书窗口设计(1)读者编号对应的sle_1的modified事件代码:string ls_memberid,ls_membernamels_memberid=trim(this.text)select name into :ls_membername

30、from 读者信息表 where readerid=:ls_memberid;/判断是否有该借阅人if sqlca.sqlcode0 then messagebox(系统提示,没有此借阅人信息!) sle_1.setfocus()/借阅人编号输入框获得焦点 returnelse sle_2.setfocus()/图书编号输入框获得焦点 sle_3.text=ls_membername/显示借阅人姓名end if(2)图书编号对应的sle_2的modified事件代码:string ls_bookid,ls_titlels_bookid=trim(this.text)select name in

31、to :ls_title from 图书表 where bookid=:ls_bookid;if sqlca.sqlcode0 then messagebox(系统提示,没有此图书信息!) sle_2.setfocus() returnelse sle_4.text=ls_titleend if(3)“借书”按钮代码:string ls_bookid,ls_memberid,ls_remark,ls_namedate ldt_nowdateldt_nowdate=today()/获得当前日期ls_bookid=trim(sle_2.text)/获得图书编号ls_memberid=trim(sl

32、e_1.text)/获得借阅人号ls_name = trim(sle_3.text)if ls_memberid= or isnull(ls_memberid) then messagebox(系统提示,请输入借阅人编号!) sle_1.setfocus() returnend ifif ls_bookid= or isnull(ls_bookid) then messagebox(系统提示,请输入图书编号!) sle_2.setfocus() returnend ifSELECT shifouhuanshu INTO:ls_remark FROM 借书还书表 WHERE bookid=:ls

33、_bookidusing sqlca;if trim(ls_remark)=未还 then messagebox(系统提示,本书已经外借!) sle_2.setfocus() return elseINSERT INTO 借书还书表 (bookid,name,readerid,borrowdate)VALUES (:ls_bookid,:ls_name,:ls_memberid,:ldt_nowdate)using sqlca;commit;messagebox(系统提示,借书成功!)UPDATE 借书还书表 set shifouhuanshu=未还 WHERE bookid=:ls_book

34、idusing sqlca;commit; end ifsle_1.setfocus()sle_1.text=sle_2.text=sle_3.text=sle_4.text=(4)“关闭”按钮代码:close(parent)11、还书窗口设计(1)图书编号对应的sle_1中的modified事件代码:string ls_bookid,ls_title,ls_memberid,ls_membernamedate ld_date1,ld_date2int li_daysdec ld_fine,ld_countfineld_date2=today()/获得当前日期ls_bookid=trim(sl

35、e_1.text)/获得图书编号根据图书编号查询出借阅日期SELECT borrowdate INTO :ld_date1 FROM 借书还书表 WHERE bookid=:ls_bookidusing sqlca;查询图书名称SELECT name INTO :ls_title FROM 图书表 WHERE bookid=:ls_bookidusing sqlca;/查询借阅人号、借阅人姓名SELECT readerid,nameINTO :ls_memberid,:ls_membername FROM 读者信息表WHERE readerid in (SELECT readerid FROM

36、 借书还书表 WHERE bookid=:ls_bookid) using sqlca;if sqlca.sqlcode0 then messagebox(系统提示,没有借阅信息!) sle_1.setfocus() returnelsesle_2.text=ls_titlesle_3.text=ls_memberidsle_4.text=ls_membernameend if(2)“还书”按钮代码:string ls_bookid,ls_bookonloandate ldt_nowdateldt_nowdate=today()/获得当前日期ls_bookid=trim(sle_1.text)

37、if ls_bookid= or isnull(ls_bookid) then messagebox(系统提示,请输入图书编号!) sle_1.setfocus() returnelseselect shifouhuanshu into :ls_bookonloanfrom 借书还书表 where bookid=:ls_bookidusing sqlca;if trim(ls_bookonloan)=已还 then messagebox(系统提示,本书已归还!) else UPDATE 借书还书表 set returndate=:ldt_nowdate WHERE bookid=:ls_boo

38、kid using sqlca; commit; update 借书还书表 set shifouhuanshu=已还 where bookid=:ls_bookid using sqlca; commit; messagebox(系统提示,还书成功!) end ifend ifsle_1.setfocus()sle_1.text=sle_2.text=sle_3.text=sle_4.text=(3)“退出”按钮代码:close(parent)12、借还书查询窗口设计(1)open事件代码:dw_1.settransobject(sqlca)dw_2.settransobject(sqlca)

39、(2)“显示信息”按钮代码:nt iint jstring l_zz,conditionl_zz=sle_1.textif l_zz= thenmessagebox(提示,请输入要查询的读者姓名!)return end ifcondition=name=+sle_1.text+dw_1.setfilter(condition)filter(dw_1)i=dw_1.retrieve()dw_2.setfilter(condition)filter(dw_2)j=dw_2.retrieve()if i1 then messagebox(,无相关记录,请重新输入!)sle_1.text=sle_1.setfo

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服