学年实习报告.docx
- 文档编号:9645324
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:17
- 大小:494.38KB
学年实习报告.docx
《学年实习报告.docx》由会员分享,可在线阅读,更多相关《学年实习报告.docx(17页珍藏版)》请在冰豆网上搜索。
学年实习报告
新疆财经大学本科毕业论文
题目:
图书管理系统开发与分析
学生姓名:
阿里木江·乌斯曼
学号:
2005101538
院部:
统计与信息学院
专业:
信息管理与信息系统
年级:
2005级
指导教师
姓名及职称:
张雄(讲师)
完成日期:
2010年3月13日
图书管理系统
一、系统概述
随着人类社会的发展,人类对知识的需求也不断地增长。
在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就成不可少了。
管理信息系统(简称MIS)是介于信息论,经济管理理论,统计学与运筹学及计算机科学之间的一门边缘性,综合性,系统性的交叉科学,它是随着管理科学,信息技术,计算机技术等的发展而产生和发展起来的。
本文介绍了在PowerBuider环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。
通过分析传统的人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。
图书馆管理系统是典型的信息管理系统(MIS),系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强.数据安全性好的库。
本系统界面友好,操作简单,应用程序功能完备,易使用等特点
(一)系统简介
图书馆管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端的应用程序的开发两个方面。
对于前者要求建立数据的一致性和完整性,对于后者则要求应用程序功能的完备,易用等的特点。
基于上述考虑本系统主要利用PowerBuilder9.0作前端的应用开发工具,利用AdaptiveServerAnywhere8.0作为后台的数据库,利用WINDOWS作为系统平台开发的图书管理系统。
另外本图书馆管理系统利用软件工程化思想和方法,总体上是采用结构化生命法进行系统分析和设计的,而系统实现等步骤则采用了原型法和面对对象的方法。
本文介绍了在PowerBuilder环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。
通过分析传统的人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。
文章详细介绍了图书管理信息系统的系统分析部分,包括可行性分析、组织机构分析、管理职能分析、业务流程分析、数据流程分析、数据字典、处理描述等等;系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。
图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。
因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。
(二)开发工具简介
(一)PowerBuilder开发工具简介
PowerBuilder是目前开发Client/Server结构的应用系统的主要工具之一。
PowerBuilder9.0在继承与发展以前版本优秀功能的基础上,为适应网络应用程序的开发要求集成了EnterpriseApplicationStudio中PowerBuilder以及PowerSite的功能,在传统数据库开发的基础上,将Web应用更好地集成到PowerBuilder中。
PowerBuilder全面支持面向对象编程。
是功能强大并易于使用的第4代编程语言(4GL),它内置了包括数据窗口在内的多种对象类,可以方便地访问数据库。
因为PowerBuikder9.0具有强大的数据库管理功能,我们选定PowerBuilder实现图书馆管理信息系统中的各项功能。
相对于其他应用工具,PowerBuilder具有工作效率高、成本低、质量高、功能强的特点。
(二)PowerBuilder9.0应用程序开发的基本步骤我们要开发应用程序时,首先要对它进行分析。
无论哪种、哪方面的应用程序,都要先建立一个应用对象。
下面我们介绍以下PowerBuilder9.0应用程序开发的基本步骤:
(1)首先要建立应用对象。
(2)创建窗口。
在窗口里放置各种控件和编写事件响应的脚本。
(3)创建菜单。
窗口里的菜单可包括菜单条,下拉式菜单,级联菜单和弹出式菜单为菜单编写事件响应的脚本。
(4)创建用户对象。
如果想要重复使用某个控件的功能,可以把窗口上经常放置的控件定义为用户对象。
(5)创建数据窗口。
数据窗口可以检索数据库中的数据,可以建立各种报或统计表,可以修改数据库。
(6)创建函数、结构、事件。
为了能够更好地支持脚本,编写自定义的函数,定义结构类型变量,也可以为对象和控件定义自己的事件。
(7)运行与调试。
可以在开发环境中随时运行应用程序,发现错误后,可以用调试工具进行调试。
(8)当应用程序开发完毕后,可以把它编译成可执行的文件,让用户比较容易地建立应用系统的运行环境。
(三)编码规范
为了减少在软件开发过程中的错误,在软件开发过程中应该遵守一定的标准。
给对象命名要有一定的规范,部件名称可以达到40个字符,窗口的命名:
W_功能代码_功能描述。
数据窗口的命名:
DW_功能代码_功能描述。
菜单命名:
M_功能代码_功能描述。
标识符命名时,应该使标识符有一定的字面含义,有助于程序的调试和脚本的可读性的提高。
本系统中使用的命名规范为:
变量作用域+变量类型+”_”+具有一定字面含义的名称。
例如:
li_selectrow反映出的含义:
”l”代表是本地变量,是local的缩写,”i”代表是integer类型的变量,selectrow表示该变量是用来记录一个行号的计数器。
(四)创建祖先窗口和全局函数为充分利用PowerBuilder的面向对象的特性。
程序开发时一般创建几个模板窗口。
将功能窗口上的某些常用功能封装在模板窗口中。
然后将这些模板窗口作为祖先窗口。
所有的子孙窗口都可以通过继承的方法来生成。
这样就减少了代码的书写量。
使得整个程序界面保持整齐。
当修改祖先窗口时,所有的子孙窗口都会自动修改。
所以,祖先窗口的确定要十分谨慎。
全局函数与局部函数的作用类似。
唯一不同的是全局函数的作用域是整个程序周期。
不论你在任何一个模块的代码中都可以调用它。
所以我们可以把某些常用功能写成全局函数。
在程序的其他地方反复调用。
二、系统分析
(一)功能需求分析
图书馆的信息化已从最初的对图书馆业务管理实行信息化发展到对图书馆各个业务流程进行系统和网络化管理,并建立大规模以个体文献目录联机查询为主的资源共享系统。
进入21世纪,由于传统的手工操作以不能满足社会的需求,必须充分利用计算机系统和信息技术,逐步实现了不同载体的实体文献的信息化管理和多方位的联机查询。
图书馆的信息化管理,就是将传统的图书官业务的手工操作转变成由计算机管理,即将图书馆的图书资料等各种载体文献的采编、借阅、归还、查询以及常规业务管理等工作,利用计算机技术,进行高效、准确的信息化管理。
其根本目的是实现资源共享。
要达到资源共享的目的,必须制定一定的标准,只有各个系统都遵循这些标准,不同的系统之间才有可能实现联机查询、资源共享的效果。
为了有效的避免图书管理的混乱,造成图书资源的浪费。
必须进行图书的有效管理!
用户的需求具体体现在各种信息的录入、保存、修改和查询,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
由于该系统是由教务处的人员主持开发,图书馆管理人员参与数据录入和界面要求,因此,该系统的后期维护工作是由系统内部人员承担,再加上此系统严格按照结构化程序进行设计,界面友好,操作人员只要稍加培训即可胜任工作,因而系统的维护和运行不会有任何问题
(二)业务流程分析
图3.1系统业务流程图
(三)数据流程分析
图3.2系统数据流程图
三、系统设计
(一)总体设计
系统功能分析:
系统功能分析根据以上功能,将图书管理系统的数据分为:
数据输入部分:
主要包括图书基本信息的录入、借阅人基本信息的录入、用户基本信息的录入。
数据输出部分:
主要是各种统计查询,包括:
根据图书信息(如书名、作者、出版社等)查阅图书及其借阅信息、统计输出图书类型比例等。
数据处理部分:
主要涉及借阅和归还的处理,如一本书借出后,必须在数据库中将该书标记为已借出,以防出现数据库中有书但图书馆无书的情况;一本书归还后,同样必须在数据库中将其标记为已经归还,以便再次借出。
系统各功能模块设计
在系统功能分析的基础上,考虑PowerBuilder程序编制的特点,得到如图所示的系统功能模块图:
图3.3系统的功能结构图
(二)数据库设计
1.数据库的设计
数据库的设计是MIS系统的核心部分,设计数据库,首先要进行需求分析,然后进行数据库的概念结构设计、逻辑结构设计、数据库结构实现等步骤。
数据库需求分析根据以上的需求分析和数据组织,开始设计数据结构,即根据需求勾画出实体/关系图(E/R)。
在概念上,E/R图代表的是系统需要的数据及其这些数据之间的关系
2.概念结构设计
得到数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础.
在需求分析和逻辑设计之间增加概念设计阶段,使设计人员仅从用户角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。
这样做有三个好处:
(1)数据库设计各阶段的任务相对单一化,设计复杂程度得到降低,便于组织管理。
(2)概念模式不受特定DBMS限制,也独立于存储安排,因而比逻辑设计得到的模式更为稳定。
(3)概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而能准确反映用户的信息需求。
本实例根据上面的设计规划出的实体有:
用户信息实体,图书信息实体等等,基本在下面图所示:
员工基本信息实体图
图书基本信息实体图
3.逻辑结构设计
数据库设计有几个范式,一般我们要做到的是第三范式,即数据表中没有冗余字段以及同一个表中的字段没有函数依赖关系,冗余字段即在一个表中已经保存过的信息,在另一个表中就不应该存在,如果需要的话,可以通过表间的关联来得到,函数依赖性就是一个表中的字段间不应该有计算关系,如一个表中有单价字段、数量字段,就不应该有一个总金额字段。
如果程序运行过程中需要总金额,可以实时计算。
不过在一些较常用的表中,我们可以适当地保留冗余字段,这样,在程序运行过程中可以减少由于表间互相关联而使用速度降低等问题。
这就是所谓的第四范式。
数据表设计时,最好不要使用用户输入的信息作为主键,每一个数据表自己定义一个主键,添加信息是由程序自动添加,这样就可以减少数据更新时产生的错误。
表与表相关联的外键最好是由程序自动生成的主键,这样数据库就比较规范了。
另外,数据表设计时一般都应该有一些标志字段,标志字段可以定义成CHAR
(1)或BIT
型。
建议实际应用中定义成CHAR
(1)字段可以存储多种可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后来的开发中,可以通过设计标志字段为不同的值来解决,这样就避免了修改数据库结构。
本系统数据库中包括的主要表如下:
图书表
用户表
四、系统实现
(一)用户登陆实现
1.用户登陆界面
图4.1登陆窗口图
功能介绍:
本窗口主要是检查操作员输入的用户名及密码是否正确,如果正确,允许登录。
如果错误,显示出错误提示。
操作方法:
填写“用户名”与“密码”后,点击“登录”按钮进行验证,点击“取消”退出。
2.主要代码如下
在窗口对象w_login中以下实例变量:
Integers
登录窗口w_login的timer事件程序代码如下
s=s+1
hpb_1.position=s
st_4.text=string(s)+"%"
ifs=100then
timer(0)
open(w_main)
sle_1.text=""
sle_2.text=""
hpb_1.position=0
st_4.text="%"
endif
登录窗口w_lpgin的登录按钮cb_1的clicked事件下程序代码如下:
stringst_id
selectst_id
into:
st_id
fromstudent
wherest_name=:
sle_1.text;
ifsqlca.sqlcode=-1then
messagebox("提示!
",sqlca.sqlerrtext)
elseifsqlca.sqlcode=100then
messagebox("提示!
","无此用户!
")
elseiftrim(sle_2.text)=st_idthen
timer(0.01)
else
messagebox("提示!
","密码不正确!
")
endif
登录窗口w_lpgin的取消按钮cb_2的clicked事件下程序代码如下:
Close(w_parent)
(二)图书主窗口实现
1.主窗口界面
图4.2主窗口界面
功能介绍:
本窗口作为菜单及其他子窗口的容器。
窗口设置;本窗口为容器窗口,故它的WindowType为mdihelp!
表示本窗口为多文档界面,可以有菜单、工具栏与状态栏。
WindowState为normal!
,表示窗口在运行时是最大化的风格。
Menuname属性设为m_main,即是与本窗口连接的菜单名称。
2.主要代码如下:
主窗口w_main的录入按钮的cilicked事件下的程序代码为如下:
open(w_zhuce)
主窗口w_main的查询按钮的cilicked事件下的程序代码为如下:
Open(w_chaxun)
主窗口w_main的修改按钮的cilicked事件下的程序代码为如下:
Open(w_xiugai)
主窗口w_main的退出按钮的cilicked事件下的程序代码为如下:
Close(w_main)
(三)图书信息录入模块实现
1.图书信息录入界面
图4.3图书信息录入界面
2.主要代码如下
窗口w_zhuce的open事件下程序代码如下:
dw_1.settransobject(sqlca)
dw_1.retrieve()
dw_1.insertrow(0)
窗口w_zhuce的保存按钮的clicked事件下程序代码如下:
dw_1.update()
dw_1.retrieve()
窗口w_zhuce的退出按钮的clicked事件下程序代码如下:
Close(w_zhuce)
(四)图书信息编辑模块实现
1.图书信息编辑界面
图4.4图书信息编辑界面
2.主要代码如下
窗口w_xiugai的open事件下程序代码如下:
dw_1.settransobject(sqlca)
dw_1.retrieve()
窗口w_xiugai的修改按钮的clicked事件下程序代码如下:
dw_1.enabled=true
窗口w_xiugai的删除按钮的clicked事件下程序代码如下:
dw_1.delete()
窗口w_xiugai的保存按钮的clicked事件下程序代码如下:
dw_1.updete()
dw_1.retrieve()
窗口w_xiugai的退出按钮的clicked事件下程序代码如下:
dw_1.close(w_xiugai)
(五)图书查询模块实现
1.图书查询界面
图4.5图书查询界面
2.主要代码如下
窗口w_xiugai的open事件下程序代码如下:
tab_1.tabpage_1.dw_2.settransobject(sqlca)
tab_1.tabpage_2.dw_1.settransobject(sqlca)
窗口w_chaxun的学生查询选项卡的查询按钮的cilicked事件下程序代码如下:
tab_1.tabpage_1.dw_2.retrieve(tab_1.tabpage_1.sle_1.text)
窗口w_chaxun的学生查询选项卡的查询按钮的cilicked事件下程序代码如下:
tab_1.tabpage_2.dw_1.retrieve(tab_1.tabpage_2.sle_2.text)
(六)用户管理模块实现
1.用户管理窗口
图4.6用户管理窗口图
用户管理窗口w_yonghu的open事件下程序代码如下:
dw_1.settransobject(sqlca)
dw_1.retrieve()
窗口w_yonghu的修添加钮的clicked事件下程序代码如下:
dw_1.insertrow(0)
窗口w_yonghu的删除按钮的clicked事件下程序代码如下:
dw_1.delete()
窗口w_yonghu的保存按钮的clicked事件下程序代码如下:
dw_1.updete()
dw_1.retrieve()
窗口w_yonghu的退出按钮的clicked事件下程序代码如下:
dw_1.close(w_yonghu)
(六)用户查询模块实现
1.用户管理查询
图4.7用户管理查询图
用户查询窗口w_yonghuchaxun的open事件下程序代码如下:
dw_1.settransobject(sqlca)
dw_1.retrieve()
窗口w_yonghuchaxun的命令按钮<第一个>的cilicked事件下程序代码如下:
dw_1.scrolltorow
(1)
窗口w_yonghuchaxun的命令按钮<下一个>的cilicked事件下程序代码如下:
dw_1.scrollnextrow()
窗口w_yonghuchaxun的命令按钮<上一个>的cilicked事件下程序代码如下:
dw_1.scrollpriorrow()
窗口w_yonghuchaxun的命令按钮<最后一个>的cilicked事件下程序代码如下:
dw_1.scrolltorow(dw_1.rowcount())
窗口w_yonghuchaxun的退出按钮的clicked事件下程序代码如下:
close(w_yonghuchaxun)
总结
本文主要完成了如下工作:
(一)在开始写论文之前分析了在线图书馆管理系统的发展趋势,对在线图书管理系统这个概念进行了比较深入和全面的了解。
(二)从最基本的问题入手。
通过了解利用什么样的工具能够简单高效的开发完成一个功能齐全的在线图书管理信息系统平台为着手点。
努力学习开发工具的操作技术,现在我对于SQL语言与Sybase数据库的掌握更加深入。
(三)在解决了开发工具上的问题以后,对于网站的总体规划与设计方面尽量使界面变得简洁,通过访问Internet,努力模仿成熟的企业人事管理系统界面模式。
本设计虽然取得了一定的收获,但在很多方面还有待于进一步的改进和提高。
希望在以后通过学习更加深入了解一些网页制作知识,加入一些好的处理特效效果,如:
Photoshop、Fireworks、Flash等。
这样才能使系统更加人性化、规范化,增加管理的趣味性,通过企业人事管理系统的平台提高企业人事管理的效率。
由于本人学习ASP时间不长,程序的设计方面存在很多缺点,有些简单的想法却用了很长的代码来实现造成了代码冗余,还有部分设想没有实现。
我将在今后的学习中不断完善自己。
对这两周的学年实习进行总结
参考文献
1.管理信息系统(第三版)…(黄梯云主编)………………………………………………高等教育出版社
2.PowerBuilder数据库开发教程…(沈良忠主编)………………………………..……电子工业出版社
3.PowerBuilder项目开发时间…(周钢赵永军方小伟编著)……………………….中国铁道出版社
4.PowerBuilder9.0信息管理系统开发…(何旭洪傅立宏编著)…………………..…….人民邮电出版社
5.PowerBuilder数据库开发经典案例解析…(王晟编著)………………………………..清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学年 实习 报告