资源描述:
《课程设计:小型图书管理系统开发设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Powerbuilder课程设计报告学院:计算机技术与软件工程学院学号:09033699姓名:冯树新班级:计算机信息管理09302指导教师:曹薇一:实训项目名称:小型图书管理系统开发设计二实训地点:凌峰楼B512机房及寝室三:实训目的及要求:掌握利用PowerBuilder开发数据库应用系统的方法、步骤和技能。主要包括窗口及控件的使用、数据窗口对象的创建、数据窗口控件的使用、应用程序与DBMS的连接、应用程序的发布等技能。四:实训需求分析:根据所给的基于sqlanywhere图书信息数据库设计开发出一个小型
2、简单的图书管理系统。该图书管理系统主要具有如下五个功能:图书类型信息的查询和编辑,图书信息的查询和编辑,用户信息的查询和编辑,借还书记录的生成和查询,指定用户借还书记录的查询。此外,可根据思考题(见群共享中压缩文件PB0520)中的要求优化图书管理系统的功能,为程序添加登陆窗口,将程序生成应用程序发布台,实现自动编号等功能。也可自行对系统进行功能的优化。五:设计阶段:1,设计环境:在一台安装了PB软件的电脑上创建一个基于sqlanywhere的图书信息数据库。新建一个文件夹PB实训内容,在创建三个子文件夹分
3、别存放图片,程序,数据库。2,设计任务及步骤:A:在sqlanywhere中将数据库book0429连接,连接成功后。打开PB11.5,新建workplace命名为book.在建立一个应用程序book。B:在pb中在工具栏中点击database图标,连接数据库并添加数据源,新建newprofile设置好参数后,将连接数据源代码粘贴到应用程序的open事件中。C:创建一个登陆窗口,w_password。在该窗口中的登录按钮中的click事件中编写代码,是程序完成一个使用密码登录到主窗口的功能。即加强系统的安全
4、性。代码如下:ifsle_1.text="zrr"thenifsle_2.text="123456"thenopen(w_main)close(w_passward)elseintflagstringmsg,masmsg="输入密码有误,请重新输入!"mas="输入超过三次,系统将自动关闭!"flag=integer(sle_2.tag)ifflag<=1thenmessagebox("提示",msg)sle_2.text=""setfocus(sle_2)elsemessagebox("提示",mas)h
5、altendifflag++sle_2.tag=string(flag)endifelsemessagebox("提示","用户名不正确!")sle_1.text=""endif并且在应用程序的open事件中打开此窗口。D:创建图书管理系统主窗口。新建一个窗口,分别添加五个功能按钮,及一个关闭按钮,按钮名称分别为:cb_book,cb_user,cb_type,cb_log,cb_close.再为每个按钮创建相应的数据窗口。分别为:dw_book,dw_user,dw_type,dw_log分别用来显示:图
6、书信息,用户信息,图书类型信息,借书记录;再来为记录查询窗口创建用户及图书信息记录等的联合查询数据窗口,dw_query_log,dw_query_user等。再为每个按钮创建窗口,设计合理界面,将不同的数据窗口添加到相应的窗口中。将数据窗口与窗口事件相关联。现在分别介绍如何设计窗口,并为窗口事件编写代码:因为图书信息,用户信息,图书类型信息,借书记录这四个窗口的功能和界面类似,为了避免重复编程和设计,采用先建立祖先窗口,再利用继承方式创建。现在来设计祖先窗口dw_base,设计后的界面如下图:首先为dw_
7、base祖先窗口创建函数:自定义函数1):f_checkemptystringmsgdw_1.setcolumn(col_name)ifdw_1.gettext()=""thenmsg="["+col_title+"]值不能为空!请修改..."messagebox("提示",msg,exclamation!)return-1elsereturn1endif自定义函数2):f_resetitem//该函数将当前行中数据恢复到编辑之前的值,对应“取消”按钮stringorg_valueintegeri,cols
8、//i为计数变量,col存放列总数longcurrow//记录当前行currow=dw_1.getrow()//获得当前行的行号//分析当前行的编辑状态choosecasedw_1.getitemstatus(currow,0,primary!)//返回指定//缓冲区中指定行列的数据项的编辑状态casenew!,newmodified!//new表示新插入行,还没设任何值//newmodified表示新插入的行某