论文格式.docx
- 文档编号:26129846
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:15
- 大小:27.47KB
论文格式.docx
《论文格式.docx》由会员分享,可在线阅读,更多相关《论文格式.docx(15页珍藏版)》请在冰豆网上搜索。
论文格式
华文行楷,小初
单倍行距,段前0磅,段后12磅
论文格式
毕业论文(设计)
楷体,小一
单倍行距,段前22磅,段后6磅
题目:
××××××××××
楷体,二号
单倍行距
字体:
楷体,小二号
行距:
单倍行距
字体:
楷体,小二号
行距:
固定值45磅
姓名:
系别:
专业:
学号:
指导教师:
2012年4月10日
目录
引言1
1研究现状和设计目标1
1.1课题现状1
1.2需求分析1
1.3数据流图1
1.3.1逻辑模型和业务流程1
1.3.2系统模型和数据流图1
1.3.3功能要求2
2应用系统开发工具2
2.1PB特点2
2.2PB与数据库的连接2
2.3PB开发过程及步骤2
3数据库结构的设计2
3.1数据字典2
3.2数据结构设计2
3.2.1逻辑结构2
3.2.2物理结构3
3.3功能结构设计3
参考文献5
罗马数字
基于PB的图书馆管理系统设计与分析
黑体,二号
单倍行距
摘要
本文主要介绍了系统的开发背景,以及功能实现的主要技术,系统设计的设计思想,开发过程和解决方案。
此系统是采用PowerBuilder9.0技术中本地数据库来设计的数据库管理系统,并利用ODBC接口来实现软件和本地数据库的连接。
根据图书馆管理人员和读者的需要设计了登录界面,查询窗口,图书借还界面,图书出入库管理窗口。
宋体,三号,加粗
单倍行距
宋体,三号,加粗
单倍行距
关键词
Powerbuider9.0;数据库管理系统;ODBC
罗马数字
与一级标题相同
引言
随着计算机科学与技术的发展,人们通过计算机认识与获取信息也更加快捷方便了。
尤其是在图书管理领域中计算机的应用更为突出,计算机逐渐成为大众化的工具,传统的图书管理方式已经不能满足读者的需要,图书种类及数量日益增多也要求计算机对图书进行管理,可以更方便简单地管理图书,从而可以大大提高管理人员的工作效率,并能让读者省去排队等待的时间。
正文宋体小四号
行距:
固定值20磅
图书管理系统是典型的信息管理系统,主要包括建立维护后台数据库和开发前端应用两大块。
通过建立数据一致结构完整数据安全的后台数据库和前端应用程序。
针对图书管理系统普遍性和特殊性提出了一整套科学全面的管理方法,使用户从繁杂的手工记录工作程序解脱出来。
通过自学PB设计了这个图书馆信息管理系统,PB是一种数据库应用程序开发软件,因此利用数据库管理系统创建数据库后台是一切程序设计工作的基础。
此系统是针对计算机管理图书的需求而设计的,可以完成图书借还,图书查询,图书管理,会员管理,系统修改与维护等功能。
1研究现状和设计目标
一级标题宋体三号,加粗
单倍行距
二级标题宋体四号,加粗
单倍行距
1.1课题现状
图书馆
标题号和内容之间加一空格以下要求相同,二级标题首行不缩进
1.2需求分析
在现实生活中
1.3数据流图
1.3.1逻辑模型和业务流程
三级标题和正文相同,首行不缩进
1.3.2系统模型和数据流图
由基本系统模型进行逐步细化,得到描绘图书管理信息系统主要功能的数据流图。
阿拉伯数字
2应用系统开发工具
2.1PB特点
PB具有独立性,事件驱动的工作方式,面向对象,跨平台性,编程语言PowerScript,数据窗口对象等特点。
2.2PB与数据库的连接
PB提供了两种数据连接方式,一种是通过ODBC标准接口的方式,一种是通过专用的接口和后台的数据库连接。
2.3PB开发过程及步骤
(1)创建数据库
(2)创建工作空间(3)创建窗口(4)创建数据窗口
(5)设计菜单(6)编写脚本代码(7)调试应用程序(8)发布应用程序
3数据库结构的设计
3.1数据字典
3.2数据结构设计
3.2.1逻辑结构
根据需求分析,本系统可以设计成5个表:
3.2.2物理结构
根据逻辑结构,PB本地数据库来创建数据表
3.3功能结构设计
经过长期观察各类图书馆的现状,再反复研究,得到图书馆管理系统功能如下:
(1)操作员登录系统,对系统进行初始化设置。
(2)根据每日对读者的借还情况,图书的出入库情况录入到图书馆管理系统中。
(3)有条件、多条件查询各种信息。
(4)读者信息的制定、输入、修改、查询。
(5)图书信息的制定、输入、修改、查询。
与一级标题相同,宋体三号,加粗单倍行距
(6)图书制作成报表后可以进行打印。
结束语
通过自学PB进行图书馆信息管理系统的设计和分析,其功能基本符合用户需求,能够完成对每一位会员和每一本图书信息的查询,并提供部分系统维护功能,使用户方便地进行数据录入、数据查询和数据删除,对于数据的一致性的问题也通过程序进行了有效的解决。
数据库系统设计,是一个复杂系统的过程,需要花费大量的时间和精力来调查图书馆信息管理系统的现状。
并且即便是在数据库已经设计完毕的情况下,由于用户的需求发生变化,提出新的要求,也需要对数据库进行重新设计,但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如未做联机帮助文档,用户界面不够美观,出错处理不够完善等多方面问题,这些都有待进一步改善,在未来也将做出品种更多质量更好的数据库软件。
答谢辞
与一级标题相同
……
参考文献
宋体三号
[1]李国喜,龚京忠,吴宝中.PB8.0应用开发技术[M].北京:
人民邮电出版社,2002.
[2]张遂芹.PB9.0系统工程开发实例[M].北京:
中国水利水电出版社,2005.
[3]陈华明,郑华.PowerBuilder应用技巧与常见问题[M].北京:
中国水利水电出版社,2003.
[4]萨师宣,王珊.数据库系统概论[M].北京:
高等教育出版社,2002.
[5]田 捷.数字图书馆技术与应用[讲稿].北京:
科学出版社,2002.
[6]ObjectManagementGroupCORBA:
CommonObjectRequestBrokerArchitectureandSpecificationRevision2[M].2002.
[7]梁震戈,王文君,杨国福.基于Internet的高校图书馆集成化信息检索系统[J].现代情报,2005.
[8]王善平.万维网资源整合工具——OpenURL[J].上海交通大学学报,2003(增刊).
[9]中国IT认证实验室学习下载频道.http:
//PP[DB/OL].
[10]王文君,杨国福.基于网络技术的高校图书馆信息管理系统的研究[J].现代情报,2006.
[11]ArchitecturalOverview[EB].http:
//diligentproject.org/content/view/71/99/
宋体五号
附 录
4.1借书还书界面代码如下
(1)借书代码如下:
intm,n,i,jls
stringhybh,jb,tsbh
//显示特定会员和图书的借阅记录
dw_1.settransobject(sqlca)
dw_1.setfilter("会员编号='"+trim(sle_1.text)+"'")
dw_1.retrieve()
dw_2.settransobject(sqlca)
dw_2.setfilter("会员编号='"+trim(sle_1.text)+"'and图书编号='"+trim(sle_2.text)+"'")
dw_2.retrieve()
dw_3.settransobject(sqlca)
dw_3.setfilter("图书编号='"+trim(sle_2.text)+"'")
dw_3.retrieve()
dw_1.insertrow(i+1)
dw_1.scrolltorow(i+1)
//根据输入会员号判断会员级别
hybh=trim(sle_1.text)
delete图书借还表where会员编号=:
hybhand还书日期isnotnull;//删除还书记录
select级别into:
jbfrom级别表where会员编号=:
hybh;
selectcount(*)into:
jlsfrom图书借还表where会员编号=:
hybhand还书日期isnull;
ifjb="普通会员"then
rb_1.checked=true
dw_1.object.级别[i+1]="普通会员"
ifjls>=3then
messagebox("警告!
","该读者已借满图书!
")
return//结束循环
endif
else
rb_2.checked=true
dw_1.object.级别[i+1]="高级会员"
ifjls>=5then
messagebox("警告!
","该读者已借满图书!
")
return//结束循环
endif
endif
//得到记录的总行书
//得到借书记录总行数和图书当前行号
ifdw_1.retrieve()=1anddw_3.retrieve()=1then
i=dw_1.getrow()
m=dw_2.rowcount()
n=dw_3.getrow()
ifdw_3.object.库存[n]>0anddw_1.object.锁定[i]="否"then
//插入借书记录
dw_2.insertrow(m+1)
dw_2.scrolltorow(m+1)
dw_2.object.会员编号[m+1]=sle_1.text
dw_2.object.图书编号[m+1]=sle_2.text
dw_2.object.借书日期[m+1]=date(string(today()))
dw_2.object.备注[m+1]="未归还"
//库存减1
dw_3.object.库存[n]=dw_3.object.库存[n]-1
//更新数据库
ifdw_2.update()=1anddw_3.update()=1then
commit;
messagebox("成功!
","更新数据库成功!
")
else
rollback;
messagebox("失败!
","更新数据库失败!
")
endif
else
//提示用户不能借书的原因
messagebox("错误!
","库存不足或您的卡号被锁定,会员或图书不存在,无法借阅!
",exclamation!
ok!
2)
endif
endif
(2)还书代码如下:
//显示特定会员和图书的借阅记录
dw_1.settransobject(sqlca)
dw_1.setfilter("会员编号='"+trim(sle_1.text)+"'")
dw_1.retrieve()
dw_2.settransobject(sqlca)
dw_2.setfilter("会员编号='"+trim(sle_1.text)+"'and
图书编号='"+trim(sle_2.text)+"'and备注='未归还'")
dw_2.retrieve()
dw_3.settransobject(sqlca)
dw_3.setfilter("图书编号='"+trim(sle_2.text)+"'")
dw_3.retrieve()
//判断哪一行为还书记录
intn
n=dw_2.rowcount()
ifdw_2.retrieve()=1orn>1then
//找到还书记录后修改记录
dw_2.object.还书日期[n]=date(string(today()))
dw_2.object.备注[n]="已归还"
//将会员还的书库存加1
intm
m=dw_3.getrow()
dw_3.object.库存[m]=dw_3.object.库存[m]+1
//判断会员是所借图书是否超期超期
stringhybh,jb
sle_3.text=string(daysafter(date(dw_2.object.借书日期[n]),date(dw_2.object.还书日期[n])))
hybh=trim(sle_1.text)
select级别into:
jbfrom级别表where会员编号=:
hybh;
ifjb="普通会员"then
rb_1.checked=true
ifint(daysafter(date(dw_2.object.借书日期[n]),date(dw_2.object.还书日期[n])))>30then
sle_4.text=string(((daysafter(date(dw_2.object.借书日期[n]),date(dw_2.object.还书日期[n])))-30)*0.1)
intq
q=dw_1.getrow()
dw_1.object.锁定[q]="是"
messagebox("超期!
","卡号被锁定!
")
dw_2.object.备注[n]="已归还,超期"
endif
else
rb_2.checked=true
ifint(daysafter(date(dw_2.object.借书日期[n]),date(dw_2.object.还书日期[n])))>60then
sle_4.text=string(((daysafter(date(dw_2.object.借书日期[n]),date(dw_2.object.还书日期[n])))-60)*0.05)
intw
w=dw_1.getrow()
dw_1.object.锁定[q]="是"
messagebox("超期!
","卡号被锁定!
")
dw_2.object.备注[n]="已归还,超期"
endif
endif
//更新数据库
ifdw_1.update()=1anddw_2.update()=1anddw_3.update()=1then
commit;
messagebox("成功!
","更新数据库成功!
")
else
rollback;
messagebox("失败!
","更新数据库失败!
")
endif
else
messagebox("错误!
","没有借书记录!
")
endif
4.2查询窗口主要代码如下:
//精确查询模式程序
choosecaseddlb_1.text
case"会员编号"
dw_1.setfilter("会员编号='"+sle_1.text+"'")
case"姓名"
dw_1.setfilter("姓名='"+sle_1.text+"'")
case"家庭住址"
dw_1.setfilter("家庭住址='"+sle_1.text+"'")
//模糊查询模式程序
choosecaseddlb_1.text
case"会员编号"
dw_1.setfilter("会员编号like"+"'%"+sle_1.text+"%'")
case"姓名"
dw_1.setfilter("姓名like"+"'%"+sle_1.text+"%'")
case"家庭住址"
dw_1.setfilter("家庭住址like"+"'%"+sle_1.text+"%'")
endchoose
endchoose
4.3组合查询界面代码如下:
stringzh
zh=""
iftrim(sle_1.text)<>""then
zh=zh+"and"+"图书编号="+"'"+trim(sle_1.text)+"'"
endif
iftrim(sle_2.text)<>""then
zh=zh+"and"+"书名="+"'"+trim(sle_2.text)+"'"
endif
iftrim(sle_3.text)<>""then
zh=zh+"and"+"作者="+"'"+trim(sle_3.text)+"'"
endif
iftrim(sle_4.text)<>""then
zh=zh+"and"+"出版社="+"'"+trim(sle_4.text)+"'"
endif
ifleft(zh,4)="and"then
zh=mid(zh,6)
endif
dw_1.setfilter(zh)
dw_1.filter()
4.4登录界面代码如下:
stringusename,pass_word
SELECT操作员表.用户名,
操作员表.密码
INTO:
usename,
:
pass_word
FROM操作员表
WHERE操作员表.用户名=:
sle_1.text;
ifsle_1.text=""orsle_2.text=""then
messagebox("错误!
","用户名或密码不能为空!
")
else
ifusename=sle_1.textandpass_word=sle_2.textthen
open(index)
close(parent)
else
messagebox("错误!
","用户名或密码错误,请重新输入!
")
endif
endif
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 论文格式