1、课 程 设 计 报 告学生姓名:王雷学 号:6学 院:经济管理学院班 级:管理112题 目:图书管理系统杨胜春指导老师: 职称: 教授 12月 31日目录第一章 绪论3 1.1绪论3 1.2软件设计开发和开发平台3第二章 系统需求分析5 2.1可行性分析5 2.2需求分析5 2.3功效分析5 2.4 安全性需求6 2.5 系统数据步骤分析6 2.6功效模块图7第三章 概念结构设计9第四章 逻辑结构设计11第五章 物理结构设计12 5.1 数据类型12 5.2 表设计13第六章 数据实施和维护14 6.1信息管理14 6.2信息查询16 6.3数据代码18第七章 设计小结27第八章 参考文件27
2、第一章 绪论1.1绪论 伴随学校规模不停扩大,图书数量急剧增加,相关图书信息量也在不停成倍增加。面对庞大信息量,就需要有图书管理系统来提升图书管理工作效率。经过这么系统,我们能够做到信息规范管理和快速查询,从而降低了管理方面工作量。传统手工图书管理,管理过程繁琐而复杂,实施效率低,而且易于犯错。经过这么系统,我们能够做到信息规范管理和快速查询,实现了图书管理系统化、规范化和自动化,这么不仅降低了管理工作量,还提升了管理效率,降低了管理成本。伴随科技飞跃进步,对信息管理也是越来越规范,越来越正确。不仅让信息合理规范管理,同时也方便管理者方便快速查询,提升了管理效率。对图书信息进行图书入库、借阅登
3、记、借阅查询、过期提醒等这些日常业务需要。高效性经过系统实用,能够改变旧图书管理模式,使对图书管理、借阅、查询愈加方便有效。1.2 软件设计开发和开发平台1.2.1 数据库应用系统开发数据库应用系统是针对某个特定目标,建立再数据库管理系统之上计算机应用系统. 组成数据库应用系统要素:数据库,数据库管理系统(DBMS),应用程序和用户. 数据库:强调数据;数据库管理系统:强调系统软件;数据库应用系统:强调数据库整个运行系统,是以,某个特定数据库为基础计算机应用系统,其作用就是使用户不能直接干预数据库而又方便访问数据库中资料. 数据库应用系统是系统开发员经过调用DBMS提供编程接口开发出来.应用程
4、序要使用数据库也必需经过此接口 。 在数据库应用系统开发之前,对开发数据库基础概念应该先做下了解,对数据库结构、开发数据库应用程序步骤、开发体系及方法全部应该有相当清楚了解和认识。这么,有利于开发出一个长久适应于用户软件产品。数据库应用系统开发通常过程:需求分析;系统设计;系统实现;系统测试和维护。总来说就是了解用户需求,然后,把它们转变为有效数据库设计。把设计转变为实际数据库,而且这些数据库带有功效完备、高效能应用。1.2.2 数据库 数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户经过应用程序直接或间接地使用。它关键包含四个要素:用户数据、元数据、索引和应用元数据。本系统
5、采取数据库是SQL Server .下面即是SQL Server介绍:SQL Server是Microsoft企业最新开发大型关系数据库管理系统,含有强大关系数据库创建、开发、设计及管理功效。1.2.3 数据库管理系统 数据库管理系统(DBMS):强调系统软件,指数据库系统中管理数据软件系统。DBMS是数据库系统关键组成部分。对数据库一切操作,包含定义、更新及多种控制,全部是经过DBMS进行。DBMS总是基于某种数据模型,能够把DBMS看成是某种数据模型在计算机系统上具体实现。依据数据模型不一样,DBMS能够分成层次型、网状型、关系型、面向对象型等。其中SQL Server就是一个关系型数据库
6、管理系统。 数据库管理系统(Database Management System)是一个操纵和管理数据库大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一管理和控制,以确保数据库安全性和完整性。用户经过DBMS访问数据库中数据,数据库管理员也经过DBMS进行数据库维护工作。它提供多个功效,可使多个应用程序和用户用不一样方法在同时或不一样时刻去建立,修改和问询数据库。DBMS从其它两个组件接收请求,并把它们翻译成对操作系统命令,方便读写物理介质上数据。DBMS还包含事务管理、锁、备份和恢复。 第二章 系统需求分析2.1 可行性分析 伴随学校和广大企机关内部网络广泛建立,在通
7、用信息平台上构筑高效实用协同工作和自动化办公应用系统,有效实现内部知识管理,已成为众多用户共同需求。 图书管理系统,为学校和广大企机关自动化办公提供了一个很好处理方案。在开发过程中,采取了SQL SERVER 网络数据库,使得本系统能够方便和其它子系统进行数据交换。同时,注意从软件图形应用界面上优化软件质量,使得本系统含有较强可操作性。2.2 需求分析 伴随学校规模不停扩大,图书数量急剧增加,相关图书信息量也在不停成倍增加。面对庞大信息量,就需要有图书管理系统来提升图书管理工作效率。经过这么系统,我们能够做到信息规范管理和快速查询,从而降低了管理方面工作量。传统手工图书管理,管理过程繁琐而复杂
8、,实施效率低,而且易于犯错。经过这么系统,我们能够做到信息规范管理和快速查询,实现了图书管理系统化、规范化和自动化,这么不仅降低了管理工作量,还提升了管理效率,降低了管理成本。2.3 功效需求2.3.1功效划分图书管理系统关键实现以下5方面功效:a.图书入库 b.查询 c.修改信息 d.图书借还e.系统管理2.3.2功效描述1书籍管理功效:包含书籍类别管理和书籍信息管理两部分。2读者管理部分:这一部分包含对读者信息进行管理功效。3借阅管理部分:这一部分包含借书信息管理和还书信息管理两部分。4系统管理:包含修改系统用户密码、增加新用户和退出系统等。2.4 安全性需求 每位用户依据自己身份不一样,
9、进入不一样用户界面。管理员有权力行使全部管理功效,一般用户只能进行通常查询。2.5 系统数据步骤分析图书管理系统数据步骤图图2-1所表示。读者基础信息录入录入图书基础信息录入录入读者信息管理图书信息管理借阅信息录入图书借阅管理读者信息库图书信息库图2-1 系统数据步骤图2.6 功效模块图本系统包含模块关键有以下多个部分:图书管理模块、借阅管理模块、读者管理模块、系统管理模块、信息查询模块、用户管理模块 具体功效描述以下: 图书管理:其功效是管理书库中图书统计信息,对入库图书信息进行管理,并进行查询。借阅管理:其功效是对读者借阅信息进行查询。读者管理:其功效是对读者通常信息进行查询和维护。系统管
10、理:其功效是为系统使用者进行帐户和密码管理和基础数据维护。其子系统描述:1.图书管理包含图书入库功效,关键整理图书数量、类别和多种相关信息等。2.图书借阅,进行借书操作(此操作由管理员完成);当用户要查询自己借阅情况时,可进行借阅查询。3.读者管理包含读者登记,读者信息管理,添加读者借书和还书信息。能够统计新加入读者信息,而且能够对已经存在于数据库中读者信息进行修改,同时能够进行读者借、还书管理。4.用户管理包含修改密码、新增用户、删除用户可实施系统操作等。5.信息查询包含图书查询、读者查询和用户查询等功效。经过这些功效,能够经过不一样关键字来对书库中图书进行查询,同时也能够查询读者借阅信息。
11、6.系统管理是用来完成本系统基础操作,如修改密码、登录系统、退出登录,还有系统介绍等功效。 其功效模块图以下所表示:图书管理系统读者管理功效系统管理功效图书管理功效借阅管理功效新书入库功效图书类别功效读者信息功效读者查询功效增加用户密码修改借书管理功效还书管理功效图2-2 功效模块图第三章 概念结构设计1. 图书管理E-R图:图书管理图书管理读者管理借阅管理图3-1 图书管理E-R图2. 信息查询E-R图:信息查询图书查询读者查询借阅查询图3-2 信息查询E-R图3. 借书实体E-R图:图3-3 借书实体E-R图4.图书实体E-R图:图3-4 图书实体E-R图5.读者实体E-R图:图3-5 读
12、者实体E-R图第四章 逻辑结构设计由数据模型利用SQLsever进行数据库具体设计,本系统设计数据库名为shop,其基础表设计以下:(1) 学生信息表字段名称数据类型大小学号varchar50姓名varchar20性别varchar4系别varchar5联络电话varchar50借书证号varchar50密码varchar15(2)图书明细表字段名称数据类型大小图书编号int50图书名称varchar20作者varchar4出版社varchar5出版日期varchar50定价varchar50类别编号varchar15状态char6(3)图书类别字段名称数据类型大小类别编号smallint2图
13、书类别nvarchar20(4)用户字段名称数据类型大小姓名varchar20性别varchar4类型varchar50联络电话varchar15密码varchar50(5)借出信息字段名称数据类型大小借出编号int4图书编号int 4借书证号varchar50借出日期smalldatetime4借出状态bit4第五章 物理结构设计5.1数据类型 图5-1 图5-2图5-35.2表设计 图5-4 图5-5 图5-6图5-7第六章 数据实施和维护6.1信息管理:图6-1 信息管理 6.1.1图书管理图6-2 图书管理6.1.2读者管理图6-3 读者管理6.1.3借阅管理图6-4 借阅管理6.2信
14、息查询:图6-5 信息查询6.2.1图书查询图6-6 图书查询6.2.2读者查询图6-7 读者查询6.2.3借阅查询图6-8 借阅查询6.3数据代码6.3.1新书入库procedure TBookForm.Button1Click(Sender: TObject);begin if Length(CodeEdit.Text) 10 then begin MessageDlg(书号不正确,mtError,mbok,0); CodeEdit.SetFocus; Exit; end; with DataModuleADO.ADOQuery1 do begin SQL.Clear; SQL.Add(s
15、elect Code from Book where Code =:Code); Parameters.ParamByName(Code).Value :=CodeEdit.Text; Open; if RecordCount 0 then begin MessageDlg(书号已经存在,mtError,mbok,0); CodeEdit.SetFocus; Exit; end; Close; end; try with DataModuleADO.ADOQuery1 do begin SQL.Clear; SQL.Add(insert into book(Code,Name,Author,P
16、ress,OutDate,Cost)+ values (:Code,:Name,:Author,:Press,:OutDate,:Cost); Parameters.ParamByName(Code).value := CodeEdit.Text; Parameters.ParamByName(Name).value := NameEdit.Text; Parameters.ParamByName(Author).value := AuthorEdit.Text; Parameters.ParamByName(Press).value := PressEdit.Text; try Parame
17、ters.ParamByName(OutDate).value := StrToDate(OutTimeEdit.Text); except MessageDlg(参数设置错误,mtError,mbok,0); Exit; end; try Parameters.ParamByName(Cost).value := StrToFloat(CostEdit.Text); except MessageDlg(参数设置错误,mtError,mbok,0); Exit; end; ExecSQL; end; TabSheet1Show(Sender); except MessageDlg(入库犯错,m
18、tError,mbok,0); end;end;procedure TBookForm.Button2Click(Sender: TObject);begin Close;end;procedure TBookForm.TabSheet1Show(Sender: TObject);begin CodeEdit.SetFocus; CodeEdit.SelectAll; NameEdit.Text := ; AuthorEdit.Text := ; OutTimeEdit.Text := ; CostEdit.Text := ; PressEdit.Text := ; Memo1.Lines.C
19、lear;end;procedure TBookForm.Button4Click(Sender: TObject);begin Close;end;procedure TBookForm.Button3Click(Sender: TObject);begin try DataModuleADO.ADOTable1.Post; DataModuleADO.ADOTable1.Active:=False; except MessageDlg(保留犯错,mtError,mbok,0); end; ComboBox1.SetFocus;end;procedure TBookForm.TabSheet
20、2Show(Sender: TObject);var i : integer;begin ComboBox1.Items.Clear; with DataModuleADO.ADOQuery1 do begin SQL.Clear; SQL.Add(select Code from book ); Open; First; for i:=0 to RecordCount-1 do begin ComboBox1.Items.Add(FieldbyName(Code).AsString); Next; end; Close; end;end;procedure TBookForm.ComboBo
21、x1Change(Sender: TObject);begin if Length(ComboBox1.Text) = 10 then begin try with DataModuleADO.ADOTable1 do begin TableName:=book; DBOutDate.DataField:= OutDate; DBName.DataField:= Name; DBAuthor.DataField:= Author; DBPress.DataField:= Press; DBCost.DataField:= Cost; DBMemo.DataField:= Memo; Activ
22、e:=True; Locate(code,ComboBox1.Text,); Edit; end; except MessageDlg(数据操作犯错,mtError,mbok,0); end; end;end;procedure TBookForm.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if Key = 13 then ComboBox1Change(Sender);end;procedure TBookForm.PageControl1Change(Sender: TObject)
23、;beginend;end.(2) 图书管理procedure TBookForm.Button1Click(Sender: TObject);begin if Length(CodeEdit.Text) 10 then begin MessageDlg(书号不正确,mtError,mbok,0); CodeEdit.SetFocus; Exit; end; with DataModuleADO.ADOQuery1 do begin SQL.Clear; SQL.Add(select Code from Book where Code =:Code); Parameters.ParamByNa
24、me(Code).Value :=CodeEdit.Text; Open; if RecordCount 0 then begin MessageDlg(书号已经存在,mtError,mbok,0); CodeEdit.SetFocus; Exit; end; Close; end; try with DataModuleADO.ADOQuery1 do begin SQL.Clear; SQL.Add(insert into book(Code,Name,Author,Press,OutDate,Cost)+ values (:Code,:Name,:Author,:Press,:OutDa
25、te,:Cost); Parameters.ParamByName(Code).value := CodeEdit.Text; Parameters.ParamByName(Name).value := NameEdit.Text;Parameters.ParamByName(Author).value := AuthorEdit.Text; Parameters.ParamByName(Press).value := PressEdit.Text; try Parameters.ParamByName(OutDate).value := StrToDate(OutTimeEdit.Text)
26、; except MessageDlg(参数设置错误,mtError,mbok,0); Exit; end; try Parameters.ParamByName(Cost).value := StrToFloat(CostEdit.Text); except MessageDlg(参数设置错误,mtError,mbok,0); Exit; end; ExecSQL; end; TabSheet1Show(Sender); except MessageDlg(入库犯错,mtError,mbok,0); end;end;procedure TBookForm.Button2Click(Sende
27、r: TObject);begin Close;end;procedure TBookForm.TabSheet1Show(Sender: TObject);begin CodeEdit.SetFocus; CodeEdit.SelectAll; NameEdit.Text := ; AuthorEdit.Text := ; OutTimeEdit.Text := ;CostEdit.Text := ; PressEdit.Text := ; Memo1.Lines.Clear;end;procedure TBookForm.Button4Click(Sender: TObject);begi
28、n Close;end;procedure TBookForm.Button3Click(Sender: TObject);begin try DataModuleADO.ADOTable1.Post; DataModuleADO.ADOTable1.Active:=False; except MessageDlg(保留犯错,mtError,mbok,0); end; ComboBox1.SetFocus;end;procedure TBookForm.TabSheet2Show(Sender: TObject);var i : integer;begin ComboBox1.Items.Cl
29、ear; with DataModuleADO.ADOQuery1 do begin SQL.Clear; SQL.Add(select Code from book ); Open; First; for i:=0 to RecordCount-1 do begin ComboBox1.Items.Add(FieldbyName(Code).AsString); Next; end; Close; end;end;procedure TBookForm.ComboBox1Change(Sender: TObject);begin if Length(ComboBox1.Text) = 10
30、then begin try with DataModuleADO.ADOTable1 do begin TableName:=book; DBOutDate.DataField:= OutDate; DBName.DataField:= Name; DBAuthor.DataField:= Author; DBPress.DataField:= Press; DBCost.DataField:= Cost; DBMemo.DataField:= Memo; Active:=True; Locate(code,ComboBox1.Text,); Edit; end; except Messag
31、eDlg(数据操作犯错,mtError,mbok,0); end; end;end;procedure TBookForm.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if Key = 13 then ComboBox1Change(Sender);end;procedure TBookForm.PageControl1Change(Sender: TObject);beginend;end.第七章 设计小结一学期Delphi专业选修结束了,用了整整一周时间完成了课程设计,经过使用可视化开
32、发工具Delphi开发图书管理系统,学生实际动手能力和自学其它系统开发工具能力有所提升,同时发觉平时学习中很多不足之处。比如,学生发觉,在开发系统过程中,对数据库关键组件包含ADO控件、数据集组件和数据显示组件等相关属性及方法不够熟悉,还不能在需要时熟练、灵活地利用,在技术上无法实现梦寐以求效果,留下很多缺憾。此次课程设计顺利完成,尤为感谢燕孝飞老师辛勤教导。本学期课程中,她率领学生进入华丽Delphi世界,使学生领会到Delphi7组件化编程方法,面向对象程序设计,使我深入为自己计算机梦登上了更上一层。 第八章 参考文件1 E Winemiller, J.Roff, 着. Visual Basic6.0数据库开发.清华大学出版 社,1999.2 郭盈发, 张红娟. 数据库原理. 西安电子科技大学出版社,. 3 赵松涛. 汉字版SQL SERVER 应用及实例集锦. 人民邮电出社,. 4 丁宝康, 李大学编著数据库原理.经济科学出版社,.5 杨永,国刚编著毕业设计指南和项目实践.北京科海电子出版社,. 6杨长春主编delphi程序设计教程.清华大学出版社,.