数据库应用开发课程设计-POWERBUILDER图书管理系统

上传人:飞*** 文档编号:43712039 上传时间:2018-06-07 格式:DOC 页数:24 大小:1.63MB
返回 下载 相关 举报
数据库应用开发课程设计-POWERBUILDER图书管理系统_第1页
第1页 / 共24页
数据库应用开发课程设计-POWERBUILDER图书管理系统_第2页
第2页 / 共24页
数据库应用开发课程设计-POWERBUILDER图书管理系统_第3页
第3页 / 共24页
数据库应用开发课程设计-POWERBUILDER图书管理系统_第4页
第4页 / 共24页
数据库应用开发课程设计-POWERBUILDER图书管理系统_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《数据库应用开发课程设计-POWERBUILDER图书管理系统》由会员分享,可在线阅读,更多相关《数据库应用开发课程设计-POWERBUILDER图书管理系统(24页珍藏版)》请在金锄头文库上搜索。

1、重庆邮电大学重庆邮电大学 2010/2011 学年第学年第 一一 学期学期“ 数据库应用开发”课程 大型作业学号 2009214406 姓名 Uranus 成绩 说明:本程序为独立完成。说明:本程序为独立完成。2一、一、概述(共10分)图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。使用该系统之后,图书馆管理人员可以管理读者的登记、图书的购入、借出、归还以及注销等;还可以查询某位读者、图书的借阅情况,对当前借阅情况给出一些统计,给出统计图,以全面掌握图书的流通情况。功能结构图:功能结构图:二、二、需求分析(共20分) 项目需求:项目

2、需求:根据图书馆工作的需要,图书管理系统应具备读者的登记、图书的购入、借出、归还以及注销;查询某位读者、图书的借阅情况;对当前借阅情况给出统计图;出版社信息的管理;系统权限的设置;得 分评阅人得 分评阅人3证件挂失、注销;系统帮助等功能,以方便图书馆的日常管理。根据上述分析,设计程序功能如下。 系统功能:系统功能:(1)图书信息的录入和删除;(2)出版社信息管理;(3)图书的检索(包括按作者姓名、出版时间、出版社名称、图书类别、书名、关键字等) ;(4)图书的租借(包括借书登记、限借数量控制、还书登记、过期罚款计算等) ;(5)借书证件的管理(包括办新证件,挂失、注销等)(6)系统设置(主要是

3、不同类型证件的可借书的总量和借书时间等)(7)权限设置(包括登录权限,账号密码管理等)(8)统计资料(包括惜出数量与库存数量的比例,各类图书数量与总数量的比例,热门图书统计数据等各种信息资料的统计) ;(9)图书测览(包括对图书摘要的测览和新书测览) ;(10)帮助信息。三、三、建模(共20分)用例图:用例图:得 分评阅人4借/还书:书籍的借阅管理查询图书信息:根据作者、出版信息等方式查找图书新书入库:录入新书信息旧书销毁:从数据库删除图书信息证件管理:管理借书证的相关信息信息汇总:将借阅信息等内容生成图表,方便了解流通情况出版社信息管理:录入、删除出版社相关信息权限管理:设置登录权限,修改账

4、号密码;设置不同证件的借书量、借书期限等。四、四、数据库分析(共10分)(一)(一)E-R 图:图:得 分评阅人5(二)表的定义(二)表的定义7数据库中,部分表的结构见表 1表 5。存放图书信息的表 BookInfo 的结构见表 1。其中图书编号具有惟一性,8 位编码中最高 2 位为图书类型代码,例如电子类、 计算机类等,通过表 4“BookClass”表进行图书类型的管理,其余 6 位为图书顺序 号。 表 1 BookInfo 表字段名意义数据类型宽度NullPrimaryKeyBookID图书编号Numberic8NoISBNISBN 书号Char30YseTitle书名Char40Yse

5、Publish出版日期CharYseAuthor作者Char30YseWords字数(千字)IntegerYsePublisherID出版社 IDNum eric4YseNumber印刷册数IntegerYsePrice定价MoneyYseKeyword关键字Char30YseAbstract摘要Varchar400Yse表 2 Publisherlnfo 表字段名意义数据类型宽度NullPrimaryKeyPublisherId出版社 IDNumberic4NoPublisher出版社名称Char30YesAddress出版社地址Char 0YesTel电话Char16YesFax传真Cha

6、r16YesPostcode邮政编码Numberic6Yeshttp网址Char16Yes出版社 ID 是代表出版社的代码,它与图书信息表(表 1 BookInfo 表)相关联。 图书租借表(表 3 Loan 表)记录了图书租借情况,借书证书 ID 与借书证表(表 5 CertificateInfo 表)相关联。 表 3 Loan 表字段名意义数据类型宽度NullPrimaryKeyBookID图书编号Numric2NoCert_id借书证书 IDNumric5NoLoandates借书日期DateYesReturndates还书日期DateYesflag标记TinyintYes8表 4 Bo

7、okClass字段名意义数据类型宽度NullPrimaryKeyClassID图书分类代号Numric2NoClassname图书分类名称Char30Yes表 5 CertificateInfo字段名意义数据类型宽度NullPrimaryKeyCert_id借书证书 IDNumric5NoCert_name证件名称Char10YesCert_value证件号码Numric18YesName姓名Char8YesDepart所在部门Char20Yesflag标记TinyintYes五、五、界面设计和代码实现(共30分)(1)(1)程序主界面程序主界面运行程序后,见到如下界面:得 分评阅人9各模块功

8、能已在图中标注出。(2)(2)系统登录系统登录 在主界面上点击“系统登录”图标,打开如下登陆界面:本系统将用户权限分为三种:普通用户、系统终端和系统管理员。普通用户只具备最基本的查询权限;系统终端可进行新书入库,旧书注销,图书租借,证件管理,出版社信息管理等操作;系统管10理员拥有最高权限,可进行包括上述功能在内的所有操作。当用户做出超出当前权限的操作时,系统会给出越权提示。下面以系统管理员的身份进行程序功能的说明。(3)(3)新书入库新书入库点击主界面上的新书入库图标或从图书管理菜单中选取,打开新书入库界面如下:将新书信息录入后点击保存即可将信息保存至数据库。点击新建将在打开新的录入界面的同

9、时保存当前信息。上方的控制按钮可用于一次性录入多本书籍信息时的查看及修改。以下为保存按钮的关键代码:Insert into bookinfo (bookid,title,author,isbn,publish,words,publisher,number,price, keyword,abstract,class)/向 bookinfo 表中插入新信息 values(:book_amount+1,:sle_title.text,:sle_author.text,:sle_isbn.text,: sle_publish.text,:sle_words.text,:sle_publisher.te

10、xt:sle_number.t11ext,:sle_price.text,:sle_keyword.text,:mle_abstract.text:ddlb_1.t ext); if SQLCA.SQLCode 0 then title_temp=dw_1.getitemstring(row,“title“)/得到点击行对应书名 open(w_detail) end if 其中 title_temp 为该行对应书名。(7)(7)图书租借图书租借图书租借作为图书管理系统最重要的一个部分,应当具有以下功能:1. 图书租借信息的记录2. 证件有效性的验证3. 超期罚款的缴纳本程序的图书租借界面如下:

11、借书与还书操作共用一个界面。输入借书证号后,系统会判断该证件是否存在,是否挂失或有超期书目未归还,若有超期书目未归还则无法进行租借操作。若证15件有效则证件信息会显示在右边方框中,借书记录中则会显示出该证件上还未归还的书籍信息,同时会检验是否达到管理员规定的数量上限。输入图书编号及借书/还书日期后(日期由系统自动获取)点击确认即可实现借/还书操作。若有超期未还的书籍需先在还书界面中缴纳罚款方可继续借书。相关关键代码: if mark=1 then/判断证件是否有效 messagebox(“提示“,“该证件已挂失“) elseif mark=2 and gb_title.text=“借书信息“

12、then messagebox(“提示“,“该证件有超期书籍未归还“) else select name,depart/查询证件信息 into :sle_name.text,:sle_depart.text from certificateinfo where cert_id=:sle_cert_id.text; if sle_name.text= and sle_cert_id.text then/判断证件状态 sle_flag.text=正常 elseif mark=1 then sle_flag.text=挂失 elseif mark=2 then sle_flag.text=超期未还1

13、6forfeit=day_forfeit*daysafter(loandates,today) messagebox(“图书超期未还“,“须缴纳“+string(forfeit)+“元罚款 “) end if if sle_cert_id.text0 and gb_title.text=“借书信息“ then/计算数据窗口中行数 messagebox(“提示“,“该借阅证最多只可借阅 “+string(dw_1.rowcount()+“本书“) end if end if end if (8)(8)阅读导航阅读导航阅读导航包括阅读摘要和新书预览两项功能,分别实现书籍摘要阅览及查看近半年出版的新

14、书信息的功能。效果如下:新书预览实际上使用了查询界面的时间段查询功能。打开查询17窗口的同时自动设置查询时间段为最近半年,其余部分与前面相同。下面主要给出摘要界面的代码:if row 0 then title_temp=dw_1.getitemstring(row,“title“)/获得点击行对应标题 select abstract/查询摘要信息 into :mle_abstract.text from bookinfo where title=:title_temp; end if (9)(9)统计资料统计资料该菜单主要实现的功能为数据的统计汇总,包括各类图书比例,借出与库存比例,热门书统计

15、功能。通过使用游标等方式获取相关数据并将之显示为饼状图或柱状图,相当直观。具体实现效果如下:18实现上述功能的关键代码为: gr_graphic.graphtype=Pie3D!/设置图表样式 int class,num,temp,ord=1 select count(distinct class)/查询不同书的总数 into :class from bookinfo;declare book_cur cursor for/将每种书的数量存入数组 select count(class) from bookinfo19group by bookinfo.class; open book_cur;

16、 fetch book_cur into :temp; do while sqlca.sqlcode=0 numord=temp ord=ord+1 fetch book_cur into :temp; loop close book_cur;string temp2,name ord=1 declare book_cur2 cursor for/将每种书的借出数量存入数组 select distinct class from bookinfo; open book_cur2; fetch book_cur2 into :temp2; do while sqlca.sqlcode=0 nameord=temp2 ord=ord+1 fetch book_cur2 into :temp2; loop close book_cur2;gr_graphic.addseries(“)for ord=1 to class/将数据传递给图表控件 gr

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号