PB课程设计计划书PowerBuilder.docx
- 文档编号:9357153
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:29
- 大小:847.21KB
PB课程设计计划书PowerBuilder.docx
《PB课程设计计划书PowerBuilder.docx》由会员分享,可在线阅读,更多相关《PB课程设计计划书PowerBuilder.docx(29页珍藏版)》请在冰点文库上搜索。
PB课程设计计划书PowerBuilder
设计题目PowerBuilder课程设计
专业班级计算机11-01
学生姓名张方学号49
指导教师吴华芹
起止日期2012.5.27-5.31
目录
一、概述2
二、内容及要求3
第一章需求分析:
4
2.概要设计:
4
3.详细设计:
4
4.程序编码:
5
4.1测试:
5
第二章系统需求分析5
第三章系统总体结构设计6
1系统目标设计6
2.统功能分析6
3.系统各功能模块设计6
3.1阅人基本信息登记/修改7
第四章数据库设计7
4.数据库需求分析7
4.1数据库逻辑结构设计8
4.3图书管理14
4.4图书流通管理14
4.5读者管理15
4.6统计查询15
4.7系统管理16
数据代码编辑22
登录窗口22
五章设计周收获25
1.实验心得25
2.致谢26
六、参考文献26
一、概述
PowerBuilder美国Sybase公司研制的一种新型、快速开发工具,是客户机/服务器结构下,基于Windows3.x、Windows95和WindowsNT的一个集成化开发工具。
它包含一个直观的图形界面和可扩展性的面向对象的编程语言PowerScript,提供与当前流行的大型数据库的接口,并通过ODBC与单机数据库相连PowerBuilder是美国著名的数据库应用开发工具生产厂商PowerSoft(后被Sybase公司收购)推出的成功产品,其第一版于1991年6月正式投入市场。
它是完全按照客户/服务器体系结构研制设计的,采用面向对象技术,图形化的应用开发环境,是数据库的前端开发工具。
二十一世纪是信息的社会,图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来。
传统的图书管理模式,已经不适应信息时代的要求,迫使人们起用新的管理方法来管理图书。
科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。
信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。
因此,图书管理系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。
从而使人们有更多时间来获取信息、了解信息、掌握信息。
设计目的
PowerBuilder课程设计是在学完该课程之后的实践教学环节。
该实践教学是对数据库应用程序设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。
要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。
学生通过PowerBuilder课程设计在下述各方面得到锻炼:
1.能根据实际问题的具体情况,结合PowerBuilder课程中的基本理论,正确分析出应用程序的结构,合理地选择相应的数据库以及建立数据表。
2.提高程序设计和调试能力。
学生通过上机实习,验证使用PowerScript语言设计的程序的正确性。
学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。
3.通过给出的设计题目,运用PowerBuilder的窗口对象,设计出友好的用户界面。
4.菜单是应用程序与用户交互的重要手段,运用PowerBuilder课程的创建菜单系统,掌握能够设计出一个菜单对象将应用程序各个部分联系起来。
5.掌握利用数据窗口技术提供的数据访问控制机制,以完全个性化的方式灵活运用数据窗口。
进一步掌握数据窗口控件的使用,使其与数据窗口对象有机结合,连接和操纵数据源
二、内容及要求
1.设计题目:
校园图书管理系统
支持校图书馆的各项日常业务活动。
根据图书馆的业务,系统将由图书管理、读者管理、图书流通管理、查询和统计这四个业务模块组成,除此之外还有一项系统管理功能。
2.系统功能说明:
◆图书管理:
★包括新书管理,即新书的添加、修改、删除和新书上架。
★修改图书信息:
只有一定权限才能使用和设置密码等。
★借阅期限:
根据条件列出图书清单、只能修改外借天数。
◆读者管理:
★读者信息管理:
增加、删除和修改操作。
★修改密码:
修改读者的登录密码。
◆图书流通管理:
★借书管理:
判断是否可以借书。
★还书管理:
判断是否超期,计算罚金。
★续借管理:
判断是否可以续借,并登记图书信息。
◆查询与统计:
★读者查询:
查询读者信息。
★图书查询:
查询图书信息。
★流通查询:
查询图书的借阅记录。
◆系统功能:
★数据库连接功能:
配置数据库的连接参数
★用户登录:
检查用户的身份,只有合法的用户才能使用该系统。
3要求:
1.对题目进行全面的功能分析与设计
2.自行查阅一定的书籍和资料
3.系统设计要实用,功能全面
4.编程简练,可用,可扩充
第一章需求分析:
需求分析主要是了解用户的需求。
需求了解得越详细,程序的后期开发与维护费用就会越少。
一般的开发团队中,需求分析都是由资历较深的系统分析员或项目经理担当,可见它的重要性。
需求分析制订好后,需要反复修改。
将最后的结果交给用户审定,确认无误后,由系统分析员完成需求分析文档,再开始下一步工作。
2.概要设计:
概要设计紧跟在需求分析之后。
用户需求明确后,将得到的数据分析后,开始构建数据库的逻辑结构。
此时,数据库中的表格还未成形,通过各种分析工具(如PowerDesigner等)画出数据流图,最后就可抽象出数据库的具体表结构。
这时由系统分析人员反复审核。
确认所有的需求都考虑在内,没有遗漏后,就可以开始制订概要设计文档。
概要设计文档形成后,整个程序的逻辑框架也就形成了。
3.详细设计:
概要设计完成后,根据设计中制订的业务模块。
就可以进行详细分析设计了。
详细设计就是将各个业务模块的窗口全部建好,各个窗口控件的处理代码全部用语言表达出。
所以详细设计是整个系统中最繁琐的环节。
详细设计完成后,整个程序就确定了,再由编程人员根据详细设计文档将代码完成。
整个开发工作就宣告结束。
4.程序编码:
程序编码相对于其他环节来说比较简单,程序员只需要根据详细分析文档写程序编码,保证代码没有错误即可。
程序编码需要注意的是整个程序书写中命名的规范化与编程风格的规范化,这需要较长时间的培养来形成。
需要在不断的实践中形成自己独特的风格。
总的来说,不要过分地追求复杂的算法,因为那可能会导致后期维护人员无法读懂你的代码而造成维护的困难。
4.1测试:
程序编码完成后,就需要测试。
测试有几种类型,主要是测试代码有无逻辑错误以及在加载数据环境下程序的稳定性问题。
测试完成,确认无误后。
第二章系统需求分析
件生命周期中,开发所占的费用和时间都很小。
后期维护工作一般要占整个软件生命周期的80%以上。
所以系统分析很重要,一个好的系统分析可以减少很多后期维护工作。
下面以一所学校的图书馆为例子进行分析,画出图书馆的组织结构图如下:
该图书馆各个部门负责的主要业务如下:
编组主要负责图书采编工作,包括购置新书、打印编目、增加数量。
2.目录厅主要负责读者查询工作,包括可借图书(按图书类别、图书名称或图书作者查询);新书目录(按图书类别、日期查询)。
3.借阅组主要负责图书流通、查询统计、借阅查询等工作。
下面绘制出图书馆流通业务中借书的流程图:
1.读者在目录厅查阅索引卡;
2.读者写出所借图书的分类号、次号、交给图书管理员,并出示本人的借书证;
3.图书管理员根据图书的分类号、次号到书库找书;
4.将图书交给读者,并由读者填写所借图书的借书卡。
5.图书管理员把借书卡保存到写有该读者借书证号的口袋里。
第三章系统总体结构设计
如果要完成一个完整的图书管理系统,需要的相关信息很多。
由于种种条件的限制,同时考虑到开发成本,所以本系统仅实现基本的管理功能。
并不能完全满足上面例子所描述图书馆,使用前应进行二次开发。
1系统目标设计
系统开发的总目标是实现内部图书借阅管理的系统化、规范化和自动化。
能够对图书进行注册登记,也就是将图书的基本信息(如:
书名、作者、价格等)预先存入数据库中,供以后检索。
能够对借阅人进行注册登记,包括记录借阅人的姓名、地址、电话等信息。
提供方便的查询方法。
如:
以书名、作者、出版社、出版时间(确切的时间、时间段、某一时间之前、某一时间之后)等信息进行图书检索,并能反映出图书的借阅情况;以借阅人编号对借阅人信息进行检索;以出版社名称查询出版社联系方式信息。
提供统计分析功能。
可以展现出图书类型比例、库存与借出比例。
提供旧书销毁功能,对于淘汰、损坏、丢失的书目可及时对数据库进行修改。
能够对使用该管理系统的用户进行管理,按照不同的工作职能提供不同的功能授权。
提供较为完善的差错控制与友好的用户界面,尽量避免误操作。
2.统功能分析
数据输入部分:
主要包括图书基本信息的录入、借阅人基本信息的录入、用户基本信息的录入。
数据输出部分:
主要是各种统计查询,包括:
根据图书信息(如书名、作者、出版社等)查阅图书及其借阅信息、统计输出图书类型比例等。
数据处理部分:
主要涉及借阅和归还的处理,如一本书借出后,必须在数据库中将该书标记为已借出,以防出现数据库中有书但图书馆无书的情况;一本书归还后,同样必须在数据库中将其标记为已经归还,以便再次借出。
3.系统各功能模块设计
图书基本信息登记/修改
说明:
出版社信息人工录入后,存放在出版社信息库中,便于今后书籍信息的录入以及出版社信息的查询。
分类信息由图书馆进行分类定制,存放在图书分类信息库中,
用于图书的分类管理。
登记新书时,当涉及到出版社和分类的填写时,只需做相应的选择即可,并存放在图书信息库中。
3.1阅人基本信息登记/修改
说明:
录入借阅人基本信息后存放在借阅人信息库中。
1.图书查询
说明:
输入查询条件后,检索图书信息库,并出反应查询结果。
2.图书统计
说明:
根据选择的统计条件,检索图书分类信息库或图书信息库,并做统计结果
3.图书借阅
说明:
输入借阅人编号,通过检索借阅人信息库,核实借阅人身份。
输入图书编号,通过检索图书信息库,核实图书信息。
进行图书借出处理后,在图书借阅库中进行登记,并将借出图书的在借书志设为“是”。
4.图书归还说明:
输入图书编号,检索在借信息库,反应出图输借阅情况。
进行归还操作后,修改在借信息库中相关条目,同时在图书信息库中修改相关图书在借书标志为“否
第四章数据库设计
库的概念结构设计、逻辑结构设计、数据库结构实现等步骤。
4.数据库需求分析
根据以上的需求分析和数据组织,开始设计数据结构,即根据需求勾画出实体/关系图(E/R)。
在概念上,E/R图代表的是系统需要的数据及其这些数据之间的关系。
如图所示的实体/关系图:
从图中可以看出,在这个系统中实际存在的实体:
图书和借阅人,其中借阅人和图书是多对多关系,针对本系统,通过对图书借阅管理的内容和数据流程分析,设计数据项和数据结构如下:
1.图书基本信息,其数据项有图书编号、图书名称、作者、出版社等。
2.借阅人基本信息,其数据项有借阅人编号、借阅人姓名、电话等。
3.图书借阅登记,其数据项有借阅序号、借阅图书编号、借阅人编号等。
为了实现图书信息录入的方便性与规范性以及相关的统计功能,还应增加出版社信息
与图书分类信息:
4.出版社信息,其数据项有出版社编号、出版社名称、地址、电话、传真等。
同时针对于本系统的多用户使用特点,增加用户信息表:
5.用户信息表,其数据项有用户名、密码、用户权限。
为了实现图书借阅超期罚款制度,还应增设罚金规则表:
6.罚金规则表,其数据项包括免费使用天数、罚金费率、规则启用开关。
4.1数据库逻辑结构设计
数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字段。
如果程序运行过程中需要总金额,可以实时计算。
不过在一些较常用的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减少由于表间互相关联而使用速度降低等问题。
这就是所谓的第四范式。
数据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时产生的错误。
表与表相关联的外键最好是由程序自动生成的主键,这样数据库就比较规范了。
另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义成CHAR
(1)或BIT型。
建议实际应用中定义成CHAR
(1)字段可以存储多种可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后来的开发中,可以通过设计标志字段为不同的值来解决,这样就避免了修改数据库结构。
数据库初期设计时一定要谨慎,把所有可能的情况都考虑进去,即使当时没有用到,也要将它留在数据库中作为备用字段以便将来扩充。
程序一旦开始编码,就应该尽量避免再修改数据库。
因为如果数据库结构一旦改变,所有与修改的数据表相关的业务都有可能受到影响,而某些影响还很难看到,这样就容易形成一个恶性循环。
错误越改越多,越改越乱,最终导致程序的失败。
PB的数据窗口与其他语言的数据控件不一样,它的很多东西是预编译的。
即使你一个模块已经调试无误,但只要数据库结构改动。
相应的模块就一定要重新修改,否则一定会出问题。
图书借阅管理系统数据库中各个表的设计结果如下面几个表格所示。
每个表格表示为数据库中的一个表。
借阅人基本信息表memberinfo
说明:
记录借阅人的基本情况,memberid设为主键、索引。
列名数据类型长度可否为空注释
MemberidChar10NotNull借阅人编号
MembernameChar10Null借阅人姓名
AddChar50Null联系地址
PhoneChar20Null联系电话
用户基本信息表people
说明:
记录系统用户的用户名、密码与权限,name设为主键。
列名数据类型长度可否为空注释
nameChar10NotNull用户名
passwordChar10NotNull
密码图书基本信息表bookinfo
说明:
记录图书基本信息,bookid设为主键、索引。
列名数据类型长度可否为空注释
BookidChar10Notnull图书编号
IsbnChar30Null图书ISBN
ClassnameChar20Null图书类型
TitleChar40Null图书名称
authorChar20Null作者
pubChar30Null出版社
pricenumeric19.4Null价格
keywordChar30Null关键词
出版社基本信息表publishinfo
说明:
记录出版社信息,pubid设为主键。
列名数据类型长度可否为空注释
Pubchar30Null出版社名称
Addchar50Null联系地址
Telchar16Null联系电话
分类信息表bookclass
说明:
记录定制的分类情况,classid设为主键。
列名数据类型长度可否为空注释
ClassidChar2NotNull分类编号
ClassnameChar20Null分类名称
Numberint-Null数目
借阅情况信息表loan
说明:
进行借阅的登记,loanid设为主键、自动增长。
列名数据类型长度可否为空注释
LoanidInt-NotNull借阅序号
BookidChar10NotNull图书编号
memberidChar10NotNull借阅人编号
Loandatedate-Null借阅日期
规则信息表regular
说明:
记录设置的借阅规则,days设为主键。
列名数据类型长度可否为空注释
DaysInt4NotNull
4.2数据流图:
4.3图书管理
1.新书入库
图书采购人员按照每年的采购计进行购书,(不在本系统考虑范围)图购入后由图书管理人员将图书按类别分类后录入数据库。
2.图书出库
某一部分图书会随着时间的增长及知识的更新而变得不再有收藏的价值,或者图书被损坏,这些图书就要在图书库的除去。
即从图书库中删除此图书记录。
3.新书编码
图书入库后,需要贴上条形码,以便以后提供借阅,本系统不涉及到条形码阅器,只是假定此过程已经生成条形码。
编码只是将条形码帖于书上以唯一标识图书。
4.图书信息修改
图书信息由于工作人员的疏忽,而出现错误,提供其图书ID就可以修改其信息。
4.4图书流通管理
1.图书借阅
主要功能是记录借阅证编号和图书编号,进行借书过程。
在数据库中插入一条借书记录,该记录包括读者ID、图书ID、借出日期、借阅编号、操作员。
2.图书归还
主要功能是输入借阅编号、借阅证编号、图书ID、还书日期,在借阅登记表中找到相应的记录,将借书记录删除,将该记录的相应数据更新到历史记录中。
3.图书预约
主要功能是输入借阅证号和所要预约的图书,使借出图书不可再被其他人借。
输出到预约表中,时间限制是10天。
4.图书转移
主要功能是将图书所在的类别换成其它的类别。
6.图书暂停
主要功能是将图书的状态改为暂时停止外借状态。
更新图书表。
7.图书催还
主要功能是把超期图书以列表的形式显示出来,以供查看。
4.5读者管理
1.挂失借阅证
主要功能是将借阅证的状态改为挂失。
更新读者表状态字段。
由图书管理员操作。
2.暂停借阅证
主要功能是将借阅证状态标识改为暂停。
可以由图书管理员来实现也可以系统自动处理,如所借图书超期时。
3.交纳罚款
输入读者ID,显示该读者的姓名、图书编号、罚款金额和罚款原因,如果读者交纳了罚金,则将借阅登记表的允许借阅标志置为“Y”。
删除罚款记录表中该读者对应的记录,将这一条记录同时插入到罚款历史记录表中。
4.注销借阅证
4.6统计查询
1.读者查询
主要功能是录入读者的姓名或读者ID来精确查询或模糊查询读者的相关信息。
2.借阅查询
主要功能是录入读者ID或图书编号对当前已经借阅的图书及读者的信息查询。
3.借阅历史查询
主要功能是录入读者ID或图书编号对借阅历史记录进行精确可模糊查询。
4.罚款历史查询
主要功能是图书编号或读者ID对罚款历史进行精确或模糊查询。
5.借阅证查询
主要功能是按学号或姓名对读者的相关信息进行精确或模糊查询。
6.用户密码查询
主要功能是录入用户名得到其密码,需要有权限的限制。
4.7系统管理
1.添加用户
主要功能是向用户表中添加用户,只有超管才有此权限。
2.修改密码
主要功能用于用户密码的更改。
系统数据分析
通过对图书管理系统的分析,可以得出该系统涉及三个实体:
读者、图书、工作人员。
读者:
借阅证编号、姓名、身份证号、最大借书数、止借标志。
图书:
图书编号、图书名称、作者、出版社、价格、库存量。
工作人员:
员工编号、员工姓名、员工性别、身份证号、登陆密码。
实体之间的联系涉及的数据项有:
借阅信息表:
借阅证编号,图书编号,借书日期,操作员姓名。
操作员姓名。
数据库表结构
第窗体界面设计以及控件的添加
窗口设计和控件的添加是数据库开发必不可少的步骤之一,在图书馆管理系统数据库中也是如此,图书馆管理系统的窗口设计采用的是普通方式和继承方式并存的方法。
如下图所示:
图1登录窗口
图2d_1数据表格
图3d_2数据窗口
图4D_3数据窗口
图5_4书籍窗口
图6管理员菜单窗口
图7学生管理窗口
图8添加图书
图9修改图书
图10删除图书
图11查询图书
图12删除读者
图13借书还书
图14学生查询
图15学生窗口
图16管理员页面
数据代码编辑
应用对象代码:
//Profile图书信息
SQLCA.DBMS="ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="ConnectString='DSN=图书信息;UID=dba;PWD=sql'"
connect;
open(w_0)
登录窗口
登录按钮:
inti
ifsle_1.text=""then
messagebox("提示","用户名不能为空!
")
return
endif
ifsle_2.text=""then
messagebox("提示","密码不能为空!
")
return
endif
ifrb_1.checked=truethen
stringspwd_lr
stringsid_db,spwd_db
//spwd_lr=sle_2.text
ifsle_1.text<>"1"then
messagebox("对不起","该用户不存在!
")
sle_2.text=""
sle_1.setfocus()
return
endif
ifsle_2.text<>"2"then
messagebox("对不起","密码错误!
")
sle_2.text=""
sle_2.setfocus()
return
endif
open(w_zhu)
endif
ifrb_2.checked=truethen
stringapwd_lr
stringaid_db,apwd_db
ints
ifsle_1.text<>"11"then
messagebox("对不起","该用户不存在!
")
sle_2.text=""
sle_1.setfocus()
return
endif
ifsle_2.text<>"22"then
messagebox("对不起","密码错误!
")
sle_2.text=""
sle_2.setfocus()
return
endif
open(w_stu)
endif
close(parent)
sleep(4)
添加图书窗口代码:
ifdw_1.update()=1then
commit;
messagebox("成功","更新成功")
else
rollback;
messagebox("失败","更新失败,请重试")
endif
添加:
longadd
add=dw_1.insertrow(0)
dw_1.scrolltorow(add)
dw_1.setrow(add)
更新数据:
ifdw_1.update()=1then
commit;
messagebox("成功","更新成功")
else
rollback;
messageb
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PB 课程设计 计划书 PowerBuilder