已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5a2c2d19cccdf74676ac755bdb033638.pdf 第页 共 39页目 录第一章 编程环境的简介1.1面向对象的编程1.2实现菜单选项1.3实现工具栏1.4关于系统第二章 图书馆图书信息管理系统的简介2.1图书馆图书信息管理系统的主要功能2.2系统结构第三章 编程思路3.1主要用到的控件3.2整体思路第四章 系统设计4.1系统功能分析4.1.1图书管理和维护子系统的功能包括:4.1.2图书信息服务子系统的功能包括:4.2系统功能模块设计4.3数据流程图第五章 数据库设计5.1数据库需求分析5.2数据库概念结构设计5.3数据库逻辑结构设计第六章 数据库结构的创建6.1数据库桌面(DBD)简介6.2创建图书/学生基本信息表6.3创建登录用户表及图书信息表第七章 系统的窗体和模块的创建具体实现7.1全局变量单元的建立7.2登录窗口的创建7.2.1用户登录设计窗体7.2.2登录界面属性:7.3主窗体的创建7.3.1设计主窗体7.3.2主窗体属性7.4图书管理子系统相关窗口的创建7.4.1新书入库窗口的创建7.4.3修改图书信息窗口的创建7.4.4查询窗口的创建7.4.5规则管理窗口的创建7.4.6用户信息维护窗口的创建7.4.7数据路径维护窗口的创建第八章 结束语致 谢参考文献摘 要图书馆图书信息管理系统典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强,数据安全性好的数据库。面对于后者则要求应用程序功能完备,易使用等特点。经过以上分析,我们决定使用由Borland公司推出的Delphi开发工具。Delphi是一种优秀的基于Windows的开发工具。它继承了Pascal语言的严谨结构和优雅风格,以开发式的环境,完全地支持面向对象程序设计。它有可视化的开发环境、简洁明快的编程语言、功能强大的组件、优化的源代码编译器、可扩展的数据库访问引擎、稳定性和高效性等特点。关键字:信息管理系统(MIS)、后台数据库、面向对象、数据库访问引擎。 第一章 编程环境的简介1.1面向对象的编程Delphi是完全的面向对象的环境。用户能用已经存在的组件创建新的对象,这些对象是可视的或不可视的,甚至可以是设计的窗体。以可视化方式编写应用程序时,Delphi为大部分操作自动产生相关代码,如建立窗体,添加组件,事件处理等,这些代码包括类与对象的定义、属性设置、添加方法等等。但当实际应用的需求超过Delphi所提供的功能时,我们也会根据需要编写创建自己的类与对象代码。1.2实现菜单选项菜单是程序最重要的特性之一,大多数程序都依赖一个定义良好的菜单使程序易于使用和维护,Delphi也提供了强大的创建菜单功能使程序更加标准。菜单编辑器中,加亮显示的是当前正在编辑的菜单。此时Object Inspector属性对应当前菜单项,Caption属性是菜单项的显示文本,Name属性是菜单项的对象名称。每次编辑完一个菜单项后,系统会自动在水平或垂直方向添加一个虚框,表示新添的菜单项。还可以对菜单项进行移动、插入、删除、创建子菜单等操作。1.3实现工具栏Delphi 6.0中使用工具栏的方法很多,包括CoorBar、ToolBr等组件构建工具栏。CoorBa控件是一个可以在窗体上浮动的工具,同时也是其他Axtivex的容器。通过在CoorBa中迁入其他空间,你可以向用户提供更好的灵活性和义用性。ToolBr是工具条控件,是实现工具条的主体,是一个功能完善的工具栏组件,它带有自己的按钮(ToolButtn),并可将按钮设计成多种风格。ToolBr组件在Win32选项卡上。其属性及对象如下:1、Align属性定义工具条在窗体中的位置。2、ToolTipText属性是字符串类型,定义控件的提示字符。3、Style属性定义按钮外观。4、Imagelist属性定义与数据条对应的Imagelist控件名,该控件定义工具条按钮显示的图象。1.4关于系统本系统的要求如下:l 中央处理器:Intel Pentium 166Mhz或更性能的CPU。l 操作系统:Microsoft Windows 98/2000/Me,或Windows NT 4.0。l 物理内存:64Ml 硬盘空间:Delphi 6.0至少需要115MB。l 光驱l VGA监视器l 鼠标或其他定位装置l 网络支持:任何与Microsoft Windows 98/2000/Me兼容的网络。第二章 图书馆图书信息管理系统的简介2.1图书馆图书信息管理系统的主要功能每个学校都有图书馆,图书馆的系统主要可以分为两大块:图书信息的服务系统和图书的综合管理系统。图书的使用对象是借阅者,例如学生、教师;管理者是图书馆的管理员。因此根据这些信息,本系统的主要功能就是:实现图书馆图书信息的管理和维护,如用户信息管理、图书馆规则维护、新书入库、整理图书、修改图书、修改图书信息和进行查询等;以及服务系统的图书信息查询、图书的借出和归还等功能。系统结构图2.2系统结构本系统是一个模拟系统,和实际的应用相比相对比较简单。根据系统的功能要求,构造出的系统结构如上图所示。2.3使用BDE连接桌面型数据库本系统属于非服务器型数据库,也称为桌面数据库或非SQL数据库。桌面型数据库属于本地型数据库,一般使用BDE方式连接,下图展示了它的连接方法:用BDE连接桌面型数据库的一般方法从图上可以看出,连接分三级:数据集部分、数据源部分和数据控制部分。第三章 编程思路3.1主要用到的控件本系统主要利用Tquery控件来实现数据库查询功能,下面列出主要用到的控件。1) 主要的数据集控件是Tquery,同时还有Ttable。2) 数据访问控件:TdataSource。3) 数据控制控件:TDBGrid、TDBEdit、TDBMemo显示数据和提供交互修改界面。4) TlistView控件用来显示查询结果。5) 其他控件有:TmainMenu、Tpanel、TbitBtn、TstatusBar、Tmeno、Tedit、Tcombobox等。3.2整体思路在构造系统时,我们的思路是:先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。这里把系统的层次划分成了三个部分:一个是自由态:即面向任何用户的界面,提供登录功能,以便不现身份的用户登录子系统;一个是一般用户态:即图书服务子系统;还有一个是管理界面:提供图书的管理和维护功能。对于不同子系统之间的切换,我们采用了登录功能和用户注销功能。系统划分了子系统后,下一步的工作是继续划分子系统的小模块。先考虑在进入子系统时应该做什么,进子系统之后又应该做什么,提供那些服务等。例如,对于图书信息服务子系统,在用户进入时首先得调用相关数据库表,找出用户的图书借阅情况;进入系统后,子系统得提供图书查询、图书借阅和还书的功能。另外,针对本系统的特殊情况,同时也考虑系统的可移植性,在系统中增加了数据库路径的维护部分。最后,考虑到系统安全性,还在系统中特别增加了“加密界面”的功能。然后,就进入系统设计阶段。对于系统的设计,要求严格按照上面的思路进行;首先,根据数据库和功能模块定制全局变量,并把其保存到一个单元文件中,然后顺序进行子系统的功能模块设计,直到最后完成。在进行功能模块设计时,采用反复调试和修改的方法保证程序的正确性和可靠性。第四章 系统设计4.1系统功能分析本系统由两大子系统组成:图书管理和维护子系统以及图书信息服务子系统。4.1.1图书管理和维护子系统的功能包括:1) 新图书信息入库(建立信息库,以便查询和借阅)。2) 整理图书库(包括删除图书信息和统计图书信息)。3) 修改图书信息。4) 查询图书的借阅情况(包括借出情况查询、未借出情况查询和超时情况查询,同时还要知道:如果某本图书被借出,那么可直接查询到借阅者的信息,以便催还等)。5) 图书馆的规则管理和维护(包括每人可借阅图书数目、第人每本书可持有天数以及每超时一天的罚金数目等)。6) 用户信息的管理和维护(例如删除已毕业学生信息、增加新生信息等)。7) 数据库路径的管理和维护,主要是为了提高系统的通用性而设置的。4.1.2图书信息服务子系统的功能包括:1) 图书信息的查询(例如在借书前可先查询某图书是否被借出)。2) 图书的借阅(按图书馆的规则进行借阅,例如不超过5本,如果已有超过时借阅的图书,则在归还前不允许再借阅等等)。3) 图书的归还。在本系统中,主要采用了“用户登录”和“注销”机制来进行子系统之间的切换,使用不同权限的用户能在对应的子系统下正常操作。4.2系统功能模块设计系统功能模块设计如图所示系统功能模块4.3数据流程图使用数据流程图(DFD)可以反映出系统的主要功能、系统中数据的输入/输出情况、系统的处理流程以及系统与外部环境的关系等情况。数据流程图是系统的总体设计图,它的绘制依据是现行系统的流程图。如图所示是本系统主要的数据流程图。系统数据流程图第五章 数据库设计5.1数据库需求分析数据库的需求分析是进行系统功能划分和系统设计最重要的一个环节,根据系统数据流程图,可以得到四个数据库表:图书信息表(Book_info.db)、用户信息表(User_info.db)、学生信息表(Stud_info.db)和借出信息表(Borrow_into.db),以下为系统所需的数据项和数据结构的使用情况:1) 图书信息查询:调用图书信息表、借出信息表、查询图书编号、书名、作者、出版社、类别、是否借出等基本信息表。2) 图书的借阅:调用图书信息表和用户信息表,生成包括图书编号、学生证号和借出时间三项的借出等基本信息。3) 图书归还:调用用户信息表和借出信息表,删除借出表中的相应信息等。4) 管理和维护图书信息:包括图书编号、书名、作者、出版社、出版时间、类别等数据项目的管理和维护。5) 用户信息维护:调用用户信息表,设置用户名、学生证号、等级数据项。6) 学生信息维护:调用学生信息表,设置学生证号、姓名、性别、系别和专业数据项。5.2数据库概念结构设计数据库概念结构的设计是数据库应用程序开发一个非常关键的环节,它具有一定的独立性,通常采用E-R图的方法进行设计。下面根据本系统的所使用的数据库以及系统的功能结构画出主要的E-R图,如图所示。系统E-R图5.3数据库逻辑结构设计根据系统的E-R图,只设计了四个数据库表,分别记录图书基本信息、学生基本信息、登录用户信息和图书借出信息。四个表的结构如下:登录用户基本信息表字段名类型是否必填字段说明姓名Aplha(8)是主关键字学生证号Aplha(8)否等级Aplha(1)是Max:1,Min:0,Default:1图书基本信息表字段名类型(及长度)是否必填字段说明图书编号Aplha(8)是主关键字书名Aplha(40)是作者Aplha(40)否出版社Aplha(30)否出版时间Date否书价Money否Min:0.00类别Aplha(10)是备注Memo(200)否入库时间Date否借阅次数Long integer否Default:0图书借出信息表字段名类型是否必填字段说明图书编号Aplha(8)是主关键字学生证号Aplha(8)否借出时间Date是学生基本信息表字段名类型是否必填字段说明学生证号Aplha(8)是主关键字姓名Aplha(8)是性别Aplha(2)否系别Aplha(20)否专业Aplha(20)否第六章 数据库结构的创建数据库的结构我们采用DBD进行创建。6.1数据库桌面(DBD)简介Delphi提供了几个数据库工具以辅助数据库应用程序的开发,从而为创建功能强大的应用程序带来极大方便。数据库工作平台(Database Desktop,简称DBD)是Delphi提供的一个非常方便的数据库管理工具。使用DBD可以实现创建、编辑、修改数据表、重建数据表的结构,完成数据输入及查询数据等操作。6.2创建图书/学生基本信息表图书基本信息表结构学生基本信息表结构6.3创建登录用户表及图书信息表登陆用户信息表结构图书借出信息表结构第七章 系统的窗体和模块的创建具体实现7.1全局变量单元的建立为了提高程序设计的灵活性,定义了本系统的一些全局变量和函数,并把它们保存在一个单独的文件中,下面是单元文件的代码:unit global;interfaceuses dbtables;var username,userpwd:string; dbname:string; exbook_num:integer; p_books,p_days:integer; p_momey:real; p_betdays:integer; plvisible:boolean; function isborrowed(b_no:string):boolean;implementationfunction isborrowed(b_no:string):boolean;var t:ttable;begin t:=ttable.create(nil); t.databasename:=dbname; t.tablename:=borrow_info.db; t.open; t.setkey; t.fieldbyname(图书编号).asstring:=b_no; if t.gotokey then result:=true else result:=false; t.close; t.free;end;end.7.2登录窗口的创建7.2.1用户登录设计窗体为了区分不同的身份的用户(本系统简化了复杂性,用户只有学生和管理员),本系统采用了用户登录功能。用户登录是从自由态主窗体进入的,它是实现两个功能:用户身份的确认和进入不同子系统前要做的准备工作。登录窗体如图所示用户登录设计窗体其代码如下:unit login;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls,db,dbtables;type Tloginfrm = class(TForm) 7.2.2登录界面属性:7.3主窗体的创建7.3.1设计主窗体主窗体是应用程序的核心部分,它和其他窗体有着紧密的关系,一般是由主窗体调用其他窗体,由其他窗体返回主窗体。本系统根据不同的环境设置了三个主窗体界面,分别是:自由态窗体界面、管理员窗体界面和用户态主窗体界面,但这三个界面是共一个窗体的,而不是三个窗体。设计主窗体其代码如下:unit main;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, Menus, TFlatSpeedButtonUnit, StdCtrls, Grids, DBGrids, DB, DBTables,DateUtils, ImgList, ToolWin; 7.3.2主窗体属性7.4图书管理子系统相关窗口的创建7.4.1新书入库窗口的创建1、新图书入库设计窗口新图书入库设计窗口从上图可以看出该窗体的设计比较简单。除了“图书类别”右边的是Tcombobox,“出版时间”右边的是TdateTimePicker和“备注”右下边是Tmemo外,其他的都是文本输入框。2功能的实现当显示窗体时,系统首先根据当前书库自动按类别编好号,然后再做些清理工作。在实现过程中用到了一个过程(autono)和一个函数nextbookno,其代码如下: private function nextbookno(const str:string):string; procedure autono(const stype:string); procedure insbook;/新书入库 Private declarations public Public declarations end;var newfrm: Tnewfrm;implementation uses global;$R *.dfmfunction Tnewfrm.nextbookno(const str:string):string;var s,s1:string; i,j,k:integer;begins:=str;s1:=copy(s,1,1);delete(s,1,1);i:=length(s);j:=length(inttostr(strtoint(s);for k:=1 to i-j do s1:=s1+0;result:=s1+inttostr(strtoint(s)+1);end; 3.新书入库窗口的属性7.4.2整理图书信息窗口的创建1.图书整理窗体-图书删除图书整理窗体-图书删除从图中可以看到该窗体有两个选项卡,该选项卡为:图书删除和图书借阅情况统计。2功能的实现图书删除提供两个删除方式:定位删除和选择删除。在删除过程中用到了一个判断能力函数checkbookno和两个过程:delbook和listallbooks。统计功能很简单,在实现时采用一个过程(booksumup)来实现。其代码如下: private Private declarations function checkbookno(b_no:string):boolean;/检查图书是否存在 procedure listallbooks;/显示所有图书 procedure delbook(b_no:string);/删除图书 procedure booksumup; public Public declarations end;var delfrm: Tdelfrm; 3.整理图书信息窗口的属性7.4.3修改图书信息窗口的创建1.修改图书信息设计窗口修改图书信息设计窗口在该设计窗体中,使用了Ttable、TdataSource控件,用来连接数据库。2.功能的实现本窗体中使用了Tcombobox,它要实现的功能是:当用户从列表框中选择时,用程序实现定位,以便用户修改相位的图书信息。其代码如下: private Private declarations procedure cancelmodified(var e:TDBEdit); public Public declarations end;var modifyfrm: Tmodifyfrm;implementation uses global;$R *.dfmprocedure tmodifyfrm.cancelmodified(var e:TDBEdit);beginif e.Modified then e.Undo ;end; 3.图书信息编辑属性7.4.4查询窗口的创建1.管理员查询窗体管理员查询窗体2.功能实现本窗体要实现查询功能,包括:借出情况查询、未借出情况查询和超时图书信息查询,如果是借出或超时的图书,还应知道是谁借走了,以便催还。其代码如下: private Private declarations function isextime(b_no:string):boolean;/判断图书是否超时未还 procedure querybookinfo(flg:integer);/根据不同的flg查询 public Public declarations end;var mgrqfrm: Tmgrqfrm;implementation uses global,owner;$R *.dfmfunction tmgrqfrm.isextime(b_no:string):boolean;var t:ttable;begin t:=ttable.Create(nil); t.DatabaseName :=dbname ; t.TableName :=borrow_info.db; t.Open; t.SetKey ; t.FieldByName(图书编号).AsString :=b_no; t.GotoKey; if t.FieldByName(借出时间).AsDateTime+p_daysdate then result:=true else result:=false; t.Close; t.Free ;end; 7.4.5规则管理窗口的创建1. 规则管理设计窗口规则管理设计窗口2. 功能实现 private Private declarations procedure setvalues; public Public declarations end;var regfrm: Tregfrm;implementation uses global;$R *.dfmprocedure Tregfrm.setvalues ;beginp_books:=strtoint(edit1.Text);p_days:=strtoint(edit2.Text);p_momey:=strtofloat(edit3.Text);p_betdays:=strtoint(edit4.Text);end;procedure Tregfrm.BitBtn2Click(Sender: TObject);beginclose;end;procedure Tregfrm.BitBtn1Click(Sender: TObject);beginsetvalues;close;end;procedure Tregfrm.FormCreate(Sender: TObject);beginsetvalues;end;end.3. 规则管理窗口的属性7.4.6用户信息维护窗口的创建1. 用户信息维护设计窗体用户信息管理-基本信息维护设计窗体用户信息管理-登录权限维护设计窗体2. 功能的实现 private Private declarations procedure listuserinfo;/列举用户 function userisexist(uname:string):boolean;/判断用户是否存在 function userisborrowed(u_name:string):boolean; /学生u_name是否借书 /判断登录信息是否被修改过 function userinfomodified(s_name,s_no:string;s_class:integer):boolean; procedure whichcheck;/设置用户操作功能(修改,添加) public Public declarations end;var userinfofrm: Tuserinfofrm; t:ttable;implementation uses global;$R *.dfm 3. 用户信息维护窗口的属性7.4.7数据路径维护窗口的创建1. 数据路径维护设计窗体数据路径维护设计窗体2. 功能实现 private Private declarations public
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美甲服务话术指南
- 酒店预订员面试实战技巧
- 快速消费品市场竞争现状研究
- 译林版英语五年级上册第4单元期末复习课件
- 老龄化背景下老年患者护理管理策略
- 过期妊娠高危因素识别与针对性护理
- 苏教版数学一年级上册活动课:数学游戏分享(二)(教学课件)
- 家庭护理用品有效期管理小习惯大安全
- 德化陶瓷创新创业
- 护士人力供给与需求的平衡机制探索
- 2025华电集团直属抽蓄工程管理公司招聘20人考试笔试备考题库及答案解析
- 注册测绘师资格考试历年真题详解及模拟试卷
- 疾控中心检验科新上岗人员上岗考试试题
- 2025年基桩静荷载试验题库及答案
- 外科肺癌手术后肺功能锻炼指南
- 2025年农村商业银行竞聘上岗面试题及答案
- 病理标本采集规范指南
- MOOC 航天、人文与艺术-南京航空航天大学 中国大学慕课答案
- 《国际贸易实务》全套课件【教学】
- 《未成年人保护法》专题测试题附答案
- 书法的章法布局(完整版)
评论
0/150
提交评论