课程设计说明书参考图书管理系统.docx

上传人:b****3 文档编号:5435193 上传时间:2022-12-16 格式:DOCX 页数:22 大小:311.95KB
下载 相关 举报
课程设计说明书参考图书管理系统.docx_第1页
第1页 / 共22页
课程设计说明书参考图书管理系统.docx_第2页
第2页 / 共22页
课程设计说明书参考图书管理系统.docx_第3页
第3页 / 共22页
课程设计说明书参考图书管理系统.docx_第4页
第4页 / 共22页
课程设计说明书参考图书管理系统.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

课程设计说明书参考图书管理系统.docx

《课程设计说明书参考图书管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计说明书参考图书管理系统.docx(22页珍藏版)》请在冰豆网上搜索。

课程设计说明书参考图书管理系统.docx

课程设计说明书参考图书管理系统

 

********

课程设计说明书

课程名称程序设计方法课程设计

题目图书管理系统

 

院系**************

班级***********

学生姓名XXX

指导教师********

日期******************

课程设计任务书

(指导教师填写)

课程设计名称程序设计方法课程设计学生姓名XXX专业班级********

设计题目图书管理系统

一、课程设计目的

该课程设计是信息管理本科集中实践性环节之一,是学习完《数据库基础与应用》和《程序设计方法》课程后进行的一次全面的综合练习。

其目的是通过本课程设计使学生对具体问题应用《程序设计方法》课程中所学的方法与技术,进行需求分析及软件设计的过程,不仅对程序设计方法课程中的所有知识点进行一个全面的复习巩固,更重要的是增强学生解决实际问题的能力。

二、设计内容、技术条件和要求

(1)本环节要求学生根据程序设计方法整个课程的所学内容,自己独立设计完成一个比较复杂的小型管理系统。

(2)所设计的小型管理系统要求功能比较完善,应包含输入输出、查询、插入、删除、打印等基本功能

(2)程序内容自己灵活设计,包括规划自己的数据库和设计程序功能和界面设计。

(3)数据库中不能少于两个表。

(5)程序应功能完善,界面友好,容错性好,操作方便。

三、时间进度安排

系统分析与规划半周

系统设计与调试一周

撰写课程设计说明书半周

四、主要参考文献

郑阿奇,PowerBuilder实用教程(第二版),电子工业出版社

董军,王玉,康祥顺,PowerBuilder案例开发集锦,电子工业出版社

张长富,PowerBuilder9.0实例教程,电子科技大学出版社

指导教师签字:

2009年12月23日

图书管理系统

一、系统设计:

1、系统功能分析:

本系统的功能分析是基于系统开发的总体任务基础上完成的,完成的主要功能有:

基本信息查询、图书入库、图书出库、图书外借、图书归还等功能

2、系统功能模块设计:

对上述各项功能进行集中、分块,按照结构化程序设计的要求,得到如下的功能模块图(用绘图工具MicrosoftVisio绘制所得):

二、数据库设计:

1、数据库概念结构设计

设计规划出的实体有:

书籍信息实体、读者信息实体

书籍信息实体的E-R图如图示:

读者信息实体的E-R图如图示:

2、创建数据库:

(1)、单击工具栏上的Database图标按钮;

(2)、在弹出的Database画板中,打开Object子窗口,展开“ODBODBC”项下的Utilities目录。

(3)、双击Utilities目录下的“CreateASADataBase”对话框,如图示,弹出“CreateServerAnyWhereDatabase”对话框。

(4)、单击“Broswe...”按钮,弹出“CreateDtabase”对话框,选择合适的路径,返回对话框。

(5)、使用默认的用户UserID项“dba”和默认的口令Password项“sql”,单击ok按钮,就可以创建一个ASA数据库books,同时,系统自动的为数据库配置了ODBC和DBProfile,并且已经到新建的数据库。

(可以看到数据库名books的图标上有一个绿色的小勾)。

3、在数据库中创建表:

(1)、展开数据库目录,选中“Tables”,单击鼠标右键,在弹出的选单中单击“NewTables...”,就会出现表的设计子窗口。

(2)、在表的设计子窗口中,分别输入每个字段的名称,选择合适的数据类型,数据宽度,是否允许为空等。

最后单击保存按钮,键入表的名字。

以此步骤建立了三个表,分别是books、loan、reader

它们之间关系如下图所示:

Books结构如下图所示:

Loan表结构如下:

Reader表结构如下:

4、往表里添加数据:

Book

三、应用程序的创建:

单击菜单File/New项,在弹出式对话框中选取Workspace标签下的Workspace,填入路径保存;然后单击菜单File/New项,选择Target标签下的Application,建立books的应用。

在该应用的open事件中添加如下脚本,用于链接数据库,打开运行主窗口。

//Profilebooks

SQLCA.DBMS="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="ConnectString='DSN=books;UID=;PWD='"

 

//SQLCA.DBMS=profilestring("hh.ini","Database","DBMS","")

//SQLCA.DataBase=profilestring("hh.ini","Database","DataBase","")

//SQLCA.LogID=profilestring("hh.ini","Database","LogID","")

//SQLCA.LogPass=profilestring("hh.ini","Database","LogPassword","")

//SQLCA.ServerName=profilestring("hh.ini","Database","ServerName","")

//SQLCA.UserID=profilestring("hh.ini","Database","UserID","")

//SQLCA.DBPass=profilestring("hh.ini","Database","DatabasePassword","")

//SQLCA.Lock=profilestring("hh.ini","Database","Lock","")

//SQLCA.DbParm=profilestring("hh.ini","Database","DbParm","")

//

 

connect;

ifsqlca.sqlcode=0then

messagebox("温馨提示","借书系统连接成功!

")

open(w_main)

else

messagebox("温馨提示","借书系统连接失败!

")

return

endif

open(w_main)

四、应用程序主窗口的创建:

1、菜单的设计

在菜单画面中设计的应用程序主窗口中创建菜单m_book。

该菜单的具体结构如下图所示:

“图书查询”脚本语言:

messagebox("温馨提示","欢迎进入图书查询系统")

open(w_chaxun)

“图书借阅”脚本语言:

messagebox("温馨提示","欢迎进入图书借阅系统")

open(w_jieyue)

“还书处理”脚本语言:

messagebox("温馨提示","欢迎进入图书归还系统")

open(w_huanshu)

“新书入库”脚本语言:

messagebox("温馨提示","欢迎进入新书入库系统")

open(w_ruku)

“旧书销毁”脚本语言:

messagebox("温馨提示","欢迎进入旧书注销系统")

open(w_zhuxiao)

“退出”脚本语言:

close(parentwindow)

2、登录窗口的创建:

在该窗口的open事件中添加脚本:

//ProfileBooks01

SQLCA.DBMS="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="Connectstring='DSN=books_01'"

connect;

dw_1.settransobject(sqlca)

dw_1.retrieve()

“确定”按钮的脚本语言:

stringitemp

stringstemp1,stemp2

itemp=trim(sle_1.text)

stemp1=trim(sle_2.text)

//DECLAREstemp2CURSORFOR

SELECTbno

into:

stemp2

FROMbooks

wheretrim(auther)=:

itempandtrim(bno)=:

stemp1;

//SELECT"books"."bno"

ifsqlca.sqlcode=100then

messagebox("系统提示","输入错误请重新输入",exclamation!

return

endif

ifsqlca.sqlcode=-1then

messagebox("系统提示","系统打开数据库时出现错误",exclamation!

endif

open(w_main)

close(w_login)

“取消”按钮的脚本语言:

close(parent)

 

3、应用程序主窗口的建立:

系统应用程序的功能都是在主窗口w_main及其下众多的窗口中完成的。

本系统的界面如下图所示。

主窗口的菜单是m_book。

在该窗口中添加了两个静态文本框,分别键入“欢迎进入图书馆系统”、“当前系统时间”,并调整大小及字体。

添加一个单行编辑框

 

在该窗口的open事件中添加脚本:

st_3.text=string(year(today()))+'年'+string(month(today()))+'月'+string(day(today()))+'日'+string(hour(now()))+'点'+string(minute(now()))+'分'+string(second(now()))+'秒'

timer

(1)

4、数据窗口的创建:

本系统建有2个数据窗口,分别是dw_auther,dw_books1.

dw_auther的创建:

选择Freedom风格,QuickSelect数据源,表books的auther列,并改名为作者。

如图示:

dw_books1的创建:

选择Freedom风格,QuickSelect数据源,表books的所有列,并分别改名为“书号”、“书名”、“作者”、“价格”、“借书帐号”,如图示:

dw_duzhe的创建:

选择Grid风格,QuickSelect数据源,表reader的所有列,并改名为读者编号、读者名称。

dw_jieyue的创建:

选择Grid风格,QuickSelect数据源,表loan的所有列,并改名为书号、读者号。

5、各个子窗口的创建及调试:

1)、w_chaxun窗口的创建:

如图示:

在该窗口中添加两个命令按钮,分别是“查询”、“退出”,一个静态文本编辑框,键入“温馨提示当前系统时间”,并以dw_books1为数据窗口建立数据窗口控件等。

在该窗口的open事件中添加脚本语言:

//ProfileBooks01

SQLCA.DBMS="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="Connectstring='DSN=books_01'"

connect;

dw_1.settransobject(sqlca)

dw_1.retrieve()

 

st_4.text=string(hour(now()))+':

'+string(minute(now()))+':

'+string(second(now()))+''+string(year(today()))+'/'+string(month(today()))+'/'+string(day(today()))

timer

(1)

“查询”按钮的脚本语言:

stringls_str,ls_con

ls_str=trim(sle_1.text)

inti

//按书号查询

ifddlb_1.text="按书号查询"then

iflen(ls_str)=0orisnull(ls_str)then

messagebox("","没有输入书号")

return

else

ls_con="bnolike'%"+ls_str+"%'"

endif

dw_1.setfilter("")

dw_1.filter()

dw_1.setfilter(ls_con)

dw_1.filter()

i=dw_1.retrieve()

ifi<1then

messagebox("","sorry,没有找到您所需的书")

endif

endif

//按书名查询

ifddlb_1.text="按书名查询"then

iflen(ls_str)=0orisnull(ls_str)then

messagebox("","没有输入书名")

return

else

ls_con="bnamelike'%"+ls_str+"%'"

endif

dw_1.setfilter("")

dw_1.filter()

dw_1.setfilter(ls_con)

dw_1.filter()

i=dw_1.retrieve()

ifi<1then

messagebox("","sorry,没有找到您所需的书")

endif

endif

 

//按作者查询

ifddlb_1.text="按作者查询"then

iflen(ls_str)=0orisnull(ls_str)then

messagebox("","没有输入作者")

return

else

ls_con="autherlike'%"+ls_str+"%'"

endif

dw_1.setfilter("")

dw_1.filter()

dw_1.setfilter(ls_con)

dw_1.filter()

i=dw_1.retrieve()

ifi<1then

messagebox("","sorry,没有找到您所需的书")

endif

endif

“退出”按钮的脚本语言:

close(parent)

2)、w_huanshu窗口的创建:

如图示:

在该窗口中添加两个命令按钮,分别是“点击还书”、“退出”,一个静态文本编辑框,键入“温馨提示当前系统时间”,并以dw_books1为数据窗口建立数据窗口控件等。

在该窗口的open事件中添加脚本语言:

//ProfileBooks01

SQLCA.DBMS="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="Connectstring='DSN=books_01'"

connect;

dw_1.settransobject(sqlca)

dw_1.retrieve()

st_3.text=string(hour(now()))+':

'+string(minute(now()))+':

'+string(second(now()))+''+string(year(today()))+'/'+string(month(today()))+'/'+string(day(today()))

timer

(1)

 

“点击还书”的按钮的脚本语言:

stringl_bno,l_debit

longrow

intnet

net=messagebox("温馨提示","您确定要还吗?

",question!

yesno!

2)

ifnet=1then

l_bno=sle_1.text

dw_1.setfilter("bno='"+l_bno+"'")

dw_1.filter()

row=dw_1.getrow()

//判断书是否借出、是否有该书

ifrow>=1androw<=dw_1.rowcount()then

l_debit=dw_1.getitemstring(row,"debit")

ifisnull(l_debit)then

messagebox("错误","此书没有借出")

endif

ifnotisnull(l_debit)then

//messagebox("错误","此书已经借出")

dw_1.object.debit[row]=""

dw_1.update()

messagebox("温馨提示","还书成功")

setnull(l_debit)

endif

else

messagebox("错误","查无此书")

endif

endif

 

“退出”按钮的脚本语言:

Close(parent)

3)、w_jieyue窗口的创建:

如图示:

“借书”的脚本语言是:

stringbno,rno

bno=sle_1.text

rno=sle_2.text

insertintoloan

values(:

bno,:

rno);

ifsqlca.sqlcode=0then

messagebox("提示","借书成功")

endif

“退出”的脚本语言是:

Close(parent)

4、w_duzhe窗口的创建:

如图示:

Open事件的脚本;

dw_1.settransobject(sqlca)

dw_1.retrieve()

“添加”按钮的脚本:

dw_1.insertrow(0)

dw_1.update()

 

“删除”按钮的脚本:

dw_1.deleterow(dw_1.getrow())

dw_1.update()

 

“打印”按钮的脚本:

dw_1.print()

“退出”按钮的脚本:

close(parent)

5)、登录窗口w_login的创建:

如图示;

Open事件的脚本:

//ProfileBooks01

SQLCA.DBMS="ODBC"

SQLCA.AutoCommit=False

SQLCA.DBParm="Connectstring='DSN=books_01'"

connect;

dw_1.settransobject(sqlca)

dw_1.retrieve()

“确定”按钮的脚本:

stringitemp

stringstemp1,stemp2

itemp=trim(sle_1.text)

stemp1=trim(sle_2.text)

//DECLAREstemp2CURSORFOR

SELECTbno

into:

stemp2

FROMbooks

wheretrim(auther)=:

itempandtrim(bno)=:

stemp1;

//SELECT"books"."bno"

ifsqlca.sqlcode=100then

messagebox("系统提示","输入错误请重新输入",exclamation!

return

endif

ifsqlca.sqlcode=-1then

messagebox("系统提示","系统打开数据库时出现错误",exclamation!

endif

open(w_main)

close(w_login)

“取消”按钮的脚本:

Close(parent)

6、编辑运行:

进入系统主窗口:

选择要进行的操作,如过你要选择日常业务,点击进入图书查询,如图示:

如要图书借阅,就点击图书借阅的图标,进入借阅界面如图示:

如果要还书,就点击还书的图标按钮,进入还书界面,如图示:

如果要进行读者管理,点击进入界面:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1