数据库图书管理信息系统课程设计_第1页
数据库图书管理信息系统课程设计_第2页
数据库图书管理信息系统课程设计_第3页
数据库图书管理信息系统课程设计_第4页
数据库图书管理信息系统课程设计_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计 报 告课程名称 数据库原理课程设计 课题名称 图书管理信息系统 专 业 信息管理与信息系统 班 级 1302 学 号 27 姓 名 陈静 指导教师 曾赛峰、张益星、李峰 2015年 12 月28日湖南工程学院课 程 设 计 任 务 书课程名称 数据库原理课程设计 课 题 信息管理与信息系统 专业班级 信管1302 学生姓名 陈静 学 号 27 指导老师 曾赛峰、张益星、李峰 审 批 任务书下达日期 2015年 12月 28 日任务完成日期 2015年 1 月 8 日目 录1、设计内容与设计要求.12、系统需求分析.43、概念模型设计.5 3.1读者E-R图5 3.2图书E-R图

2、5 3.3借书E-R图6 3.4系统E-R图64、 详细设计 6 4.1逻辑设计.6 4.2物理设计.9 4.2.1具体功能描述.9 5、数据实施与维护.96、总结307、参考文献308、附录311、设计内容与设计要求1设计内容:数据库系统原理的课程设计要求学生综合利用本课程的有关知识,在教师的指导下,利用特定的数据库设计环境,针对具体的问题,完成从系统的需求分析、数据库的概念设计、数据库的逻辑设计,到数据库实现等设计过程,最终实现一个较为完整的反映应用需求的数据库系统。因此,在设计中,要求学生应该全面考虑各个设计环节以及它们之间的相互联系。下面是各个设计阶段的具体内容。 系统需求分析需求分析

3、是数据库系统设计的一个重要的环节。本阶段应该对整个应用情况作全面的、详细的调查,确定特定数据库应用环境下的设计目标,收集该应用环境下针对系统设计所需要的基础数据以及对这些数据的具体存储要求,从而确定用户的需求。用户对数据库的需求包括: 处理需求。即用户要完成什么处理功能等。学生在设计中应根据具体的课题要求确定系统应该实现的功能,一些基本的功能通常是必须具备的,如用户的管理与维护,基本数据的维护,灵活的信息查询等。 信息需求。即在数据库中需要存储哪些数据。学生应该根据具体的课题,认真分析有关的要求,确定本设计的信息需求。 安全性和完整性功能。实践中这是一个需要与用户不断交流才能逐步确定的需求。本

4、课程设计要求学生在自己的设计中能反映出基本的安全性和完整性功能。 本阶段的设计结果(即系统需求分析)应该在课程设计报告中进行详细描述,画出系统的数据流图,写出较为详细的数据字典,作为本课程设计的验收依据之一。 数据库的概念设计数据库的概念设计是在需求分析的基础上,利用与用户双方都能理解的形式,设计出数据库的概念模型。本课程设计要求学生采用E-R方法进行数据库的概念设计。本设计阶段可分为: 数据抽象。即根据需求分析的结果,抽取出与本课程设计相关的特性。设计局部概念模式。运用E-R方法,设计出系统的各个局部ER模型。 设计全局概念模式。通过对局部E-R模型的操作,解决各个E-R模型关于对象定义不一

5、致问题,以及对各个E-R模型进行合并优化等,最终形成数据库的全局概念模式。本阶段的设计结果(局部和全局E-R图、具体数据库设计工具中概念结构设计图)应该在课程设计报告中进行详细描述,应该能够反映该设计的正确性,作为本课程设计的验收依据之一。 数据库的逻辑设计数据库逻辑设计的目的是将概念设计阶段设计好的E-R图转换成与具体机器上的DBMS(如Oracle)所支持的数据模型(如关系模型)相符合的逻辑结构。鉴于本课程设计的具体环境要求,学生在进行数据库的逻辑结构设计时应该充分考虑特定的数据库环境。要求学生在本阶段的设计中分两步进行: 形成初始的关系模式。将概念设计阶段产生的全局概念模式(E-R图)转

6、换成初始的关系模式。 关系模式的规范化处理。为了减少或消除关系模式中存在的数据冗余和操作异常,根据设计所要求的规范级别,按照本课程所学知识,逐一分析各个关系模式是否满足规定的范式。在课程设计报告中应该提供本设计阶段的相关内容,作为本课程设计的验收依据之一。 创建数据库在某一数据库管理系统环境中创建数据库,根据需要也可建立相关数据视图和存储过程。在课程设计报告中应该提供相关的内容,包括数据库及各个数据库对象的定义的SQL语句,作为本课程设计的验收依据之一。2设计要求:鉴于数据库选题原理课程设计的具体内容,对课程设计提出如下要求: 选题原则课程设计题目以选用学生相对比较熟悉的业务模型为宜,要求通过

7、本实践性教学环节,能较好地巩固数据库的基本概念、基本原理、关系数据库的设计理论、设计方法等主要相关知识点,针对实际问题设计概念模型,并应用现有的工具完成小型数据库的设计与实现。 选题要求在后面的课题表中列出了几个设计课题,每个课题都有相应的要求或说明。各课题的难易度有一定的差异,因此,参加课程设计的学生首先要了解设计的任务,仔细阅读各个课题的设计要求,然后根据自己的基础和能力情况选择其中一题,或者由指导教师指定。一般来说,选择课题应以在规定的时间内能完成,并能得到应有的锻炼为原则。若学生对课题表以外的相关课题较感兴趣,希望选作课程设计的课题时,应征得指导教师的认可,并写出明确的设计要求和说明。

8、设计时要严格按照题意要求进行设计,不能随意更改。若确因条件所限,必须要改变课题要求时,应在征得指导教师同意的前提下进行。3参考选题 工资管理系统 人事管理系统 仓库管理系统学生管理系统 图书馆管理信息系统 宾馆客房管理信息系统 学籍管理系统机票预定系统学生成绩管理系统课程管理子系统通讯录子系统教室管理子系统宿舍管理子系统个人事务管理子系统库房管理系统小商店销售管理系统其它管理子系统数据库设计(自己选题需经指导教师认可).4.课程设计报告要求课程设计的设计报告是学生对本次课程设计的全面总结,应该反映每个设计阶段的设计思路和设计内容。该设计报告,应作为整个课程设计评分的书面依据和存档材料。设计报告

9、一般要以固定规格的纸张(如A4)书写或打印并装订,字迹及图形要清楚,工整,规范。内容及要求如下: 设计任务、要求及所用软件环境或工具介绍。 课程设计内容中要求的设计结果。 总结 验收情况2、系统需求分析 随着学校规模的不断扩大,图书数量的急剧增加,有关图书的信息量也在不断成倍增长。面对庞大的信息量,就需要有图书管理系统来提高图书管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,从而减少了管理方面的工作量。 传统手工的图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了图书管理的系统化、规范化和自动化,这样不仅减

10、少了管理工作量,还提高了管理效率,降低了管理成本。2.1功能划分图书管理系统主要实现以下5方面的功能:a.图书入库 b.查询 c.修改信息 d.图书借还e.系统管理2.2功能描述 1书籍管理功能:包括书籍类别管理和书籍信息管理两部分。2读者管理部分:这一部分包括对读者信息进行管理的功能。3借阅管理部分:这一部分包括借书信息管理和还书信息管理两部分。4系统管理:包括修改系统用户密码、增加新用户以及退出系统等。2.3 安全性需求 每位用户根据自己的身份不同,进入不同的用户界面。管理员有权力行使所有的管理功能,普通用户只能进行一般的查询。3、 概念模型设计3.1 读者实体读者实体学号姓名系别借书证号

11、证号性别联系电话图3-1读者实体3.2 图书实体图书实体图书编号出版日期数据库配置文件已经安装到 D:oracleproduct10.2.0,同时其他选定的安装组件也已经安装到 D:oracleproduct10.2.0db_1。iSQL*Plus URL 为:47:5560/isqlplusiSQL*Plus DBA URL 为:47:5560/isqlplus/dba证号作者图书名称类别编号图3-2 图书实体、3.3 借书实体E-R图借书信息实体图书编号借书证号借出日期还书日期借出状态图3-3借书实体3.4 系统实体E-R

12、图读者图书借阅图3-4实体E-R图4、详细设计4.1 逻辑设计图书实体(图书编号,类别编号,图书名称,作者,出版日期)读者实体(学号,姓名,性别,系别,借书证号,联系电话)借书信息实体(图书编号,读者编号,借出日期,还书编号,借书状态)4.2 物理设计由数据模型利用SQLsever2000进行数据库的详细设计,本系统设计的数据库名为shop,其基本表的设计如下:(1) 学生信息表字段名称数据类型大小学号varchar50姓名varchar20性别varchar4系别varchar5联系电话varchar50借书证号varchar50密码varchar15 (2)图书明细表字段名称数据类型大小图

13、书编号int50图书名称varchar20作者varchar4出版社varchar5出版日期varchar50定价varchar50类别编号varchar15状态char6(3)图书类别字段名称数据类型大小类别编号smallint2图书类别nvarchar20(4)用户字段名称数据类型大小姓名varchar20性别varchar4类型varchar50联系电话varchar15密码varchar50(5)借出信息字段名称数据类型大小借出编号int4图书编号int 4借书证号varchar50借出日期smalldatetime4借出状态bit4本系统包括的模块主要有如下几个部分:图书管理模块、借

14、阅管理模块、读者管理模块、系统管理模块、信息查询模块、用户管理模块 4.2.1具体的功能描述 图书管理:其功能是管理书库中图书的记录信息,对入库图书信息进行管理,并进行查询。借阅管理:其功能是对读者借阅信息进行查询。读者管理:其功能是对读者一般信息进行查询以及维护。系统管理:其功能是为系统的使用者进行帐户和密码管理以及基础数据维护。其子系统描述:1.图书管理包括图书入库功能,主要整理图书的数量、类别和各种相关的信息等。2.图书借阅,进行借书操作(此操作由管理员完成);当用户要查询自己的借阅情况时,可进行借阅查询。3.读者管理包括读者登记,读者信息管理,添加读者借书和还书信息。可以记录新加入的读

15、者的信息,并且可以对已经存在于数据库中的读者的信息进行修改,同时可以进行读者借、还书的管理。4.用户管理包括修改密码、新增用户、删除用户可执行的系统操作等。5.信息查询包括图书查询、读者查询和用户查询等功能。通过这些功能,可以通过不同的关键字来对书库中的图书进行查询,同时也可以查询读者的借阅信息。6.系统管理是用来完成本系统的基本操作,如修改密码、登录系统、退出登录,还有系统简介等功能。 其功能模块图如下所示图书管理系统读者管理功能系统管理功能图书管理功能借阅管理功能新书入库功能图书类别功能读者信息功能读者查询功能增加用户密码修改借书管理功能还书管理功能5、数据实施和维护程序实现相关代码:pr

16、ocedure TfrmMain.SpeedButton1Click(Sender: TObject);begin frmAdm.Show;end;procedure TfrmMain.SpeedButton2Click(Sender: TObject);begin frmReaderSer.Show;end;procedure TfrmMain.SpeedButton3Click(Sender: TObject);begin frmLookBook.Show;end;procedure TfrmMain.SpeedButton4Click(Sender: TObject);var Str:

17、string;begin Str := 图书管理系统 + #13; Str := Str + 大家好 + #13; Str := Str + 请自便!; ShowMessage(Str);end;procedure TfrmMain.SpeedButton5Click(Sender: TObject);begin if messagedlg(确定要退出本系统吗?, mtinformation, mbyes, mbno, 0) = mryes then begin ShowMessage(谢谢你的使用); / form1.DestroyWnd; frmMain.Close; end;end;pr

18、ocedure TfrmMain.Timer1Timer(Sender: TObject);begin StatusBar1.Panels2.Text := 日期: + DateToStr(Date); StatusBar1.Panels3.Text := 时间: + TimeToStr(Time);end;procedure TfrmMain.SkinData1FormSkin(Sender: TObject; aName: String; var DoSkin: Boolean);beginskindata1.Active:=true;end;end;登录按钮代码:procedure Tf

19、rmAdm.Button1Click(Sender: TObject);begin with DM.ADOQuery1 do begin Close; SQL.Clear; SQL.Add(select * from 用户 where 姓名=:username and 密码=:pass and 类型=:GLY); Parameters.ParamByName(username).Value := Edit1.Text; Parameters.ParamByName(pass).Value := Edit2.Text; Parameters.ParamByName(GLY).Value := 管

20、理员; Open; if RecordCount 0 then ShowMessage(该书注销成功!) else ShowMessage(该书注销失败!); end;end;procedure TfrmAdmin.Button11Click(Sender: TObject);begin frmBookType.Show;end;end;确定按钮代码:procedure TfrmBookType.btnSureClick(Sender: TObject);begin if edtTypeID.Text = then begin ShowMessage(类别编号不能为空!); edtTypeID

21、.SetFocus; Exit; end; if edtBookType.Text = then begin ShowMessage(类别名称不能为空!); edtBookType.SetFocus; Exit; end; DM.QueryBookType.Close; DM.QueryBookType.SQL.Clear; DM.QueryBookType.SQL.Text := insert into 图书类别(类别编号,图书类别) + values(:id,:name); DM.QueryBookType.Parameters.ParamByName(id).Value:=Trim(ed

22、tTypeID.Text); DM.QueryBookType.Parameters.ParamByName(name).Value:=Trim(edtBookType.Text);dm.QueryBookType.SQL.Text:=update 图书类别 set (类别编号,图书类别)+values(:id,:name);dm.QueryBookType.Parameters.ParamByName(id).Value:=trim(edtTypeID.Text);dm.QueryBookType.Parameters.ParamByName(name).Value:=trim(edtBoo

23、kType.Text); DM.QueryBookType.ExecSQL; DM.QueryBookType.Close; DM.QueryBookType.SQL.Clear; DM.QueryBookType.SQL.Text :=select * from 图书类别; DM.QueryBookType.ExecSQL; DM.QueryBookType.Open;end;删除按钮代码:procedure TfrmBookType.btnDeleteClick(Sender: TObject);begin if Application.MessageBox(是否删除记录?, 确定, MB

24、_OKCANCEL) = IDOK then DM.DataSourceBookType.DataSet.Delete;end;借阅按钮代码:procedure TfrmLendBook.Button1Click(Sender: TObject);var strBookID: string;begin if editreaderID.Text = then begin ShowMessage(借书证号不能为空!); editreaderID.SetFocus; Exit; end; if editBookID.Text = then begin ShowMessage(图书编号不能为空!);

25、editBookID.SetFocus; Exit; end; if getBookCount(editBookID.Text) 0 then begin ShowMessage(此书已经被借出!); Exit; end else begin strBookID := Trim(editBookID.Text); DM.QueryBorrow.Close; DM.QueryBorrow.SQL.Clear; DM.QueryBorrow.SQL.Text := update 借出信息 set 借出状态=1 where 图书编号= + strBookID; DM.QueryBorrow.Clos

26、e; DM.QueryBorrow.SQL.Clear; DM.QueryBorrow.SQL.Text := insert into 借出信息(图书编号,借书证号,借出日期,借出状态)values(:BookID, + :readerID,:time,1);DM.QueryBorrow.Parameters.ParamByName(Bookid).Value:=trim(editBookID.Text); DM.QueryBorrow.Parameters.ParamByName(readerid).Value:=trim(editreaderID.Text); DM.QueryBorrow

27、.Parameters.ParamByName(time).Value:=DateTimePicker1.Time; DM.QueryBorrow.ExecSQL; DM.QueryBorrow.Close; /更新图书信息表在库标志 DM.QueryReader.Close; DM.QueryReader.SQL.Clear; strSql := update 图书明细表 set 状态=借出 where 图书编号= + strBookID; DM.QueryReader.SQL.Text := strSql; DM.QueryReader.ExecSQL; DM.QueryReader.Cl

28、ose; end; if messagedlg(借阅成功,还有要借的书籍吗?, mtconfirmation, mbyes, mbno, 0) = mryes then begin editBookID.Text := ; editreaderID.Text := ; editmax.Text := ; DBEdit3.Text := ; DBEdit4.Text := ; DBEdit5.Text := ; DBEdit6.Text := ; DBEdit7.Text := ; editBookID.SetFocus; end;end;其他相关实现代码:procedure TfrmLendB

29、ook.editBookIDKeyPress(Sender: TObject; var Key: Char);begin if Key = #13 then begin if ViewBook(editBookID.Text) = false then begin ShowMessage(没有此书, 请重新选择!); Exit; end; DM.QueryBook.Filtered := false; DM.QueryBook.Filter := 图书编号= + editBookID.Text + ; DM.QueryBook.Filtered := true; end;end;functio

30、n TfrmLendBook.ViewBook(BookID: string): boolean;var Query: TADOQuery;begin Query := TADOQuery.Create(self); Query.Connection := DM.ADOConnection1; Query.SQL.Add(select * from 图书明细表 where 图书编号=:id); Query.Parameters.ParamByName(ID).Value := BookID; Query.Open; if Query.RecordCount = 0 then begin Res

31、ult := false; ; Exit; end else Result := true;end;function TfrmLendBook.viewUser(user: string): boolean;var Query1: TADOQuery;begin Query1 := TADOQuery.Create(self); Query1.Connection := DM.ADOConnection1; Query1.SQL.Add(select * from 学生信息表 where 借书证号=:id); Query1.Parameters.ParamByName(ID).Value :=

32、 user; Query1.Open; if Query1.RecordCount = 0 then begin Result := false; Exit; end else Result := true;end;procedure TfrmLendBook.editreaderIDKeyPress(Sender: TObject; var Key: Char);begin if Key = #13 then begin editmax.Text := IntToStr(getOwnCount(editreaderID.Text); if viewUser(editreaderID.Text

33、) = false then begin ShowMessage(没有此用户, 请重新选择!); Exit; end; end;end;function TfrmLendBook.getOwnCount(userID: string): integer;var Query2: TADOQuery;begin try Query2 := TADOQuery.Create(self); Query2.Connection := DM.ADOConnection1; Query2.SQL.Add(select count(借书证号) from 借出信息 where 借书证号=:id ); Query

34、2.Parameters.ParamByName(ID).Value := userID; Query2.Open; Result := Query2.Fields0.Value; Query2.Close; Query2.Free; except Result := 0; end;end;function TfrmLendBook.getBookCount(BookID: string): integer;var Query2: TADOQuery;begin try Query2 := TADOQuery.Create(self); Query2.Connection := DM.ADOC

35、onnection1; Query2.SQL.Add(select count(图书编号) from 借出信息 where 图书编号=:id and 借出状态=1); Query2.Parameters.ParamByName(ID).Value := BookID; Query2.Open; Result := Query2.Fields0.Value; Query2.Close; Query2.Free; except Result := 0; end;end;归还按钮代码 :procedure TfrmReturnBook.Button2Click(Sender: TObject);va

36、r BorrowBookID: string; BookID: string; strSql: string; strBookID: string; strDate:string;begin strDate:=trim(edtToday.Text); if editreaderID.Text = then begin ShowMessage(借书证号不能为空!); editreaderID.SetFocus; Exit; end; if editBookID.Text = then begin ShowMessage(图书编号不能为空!); editBookID.SetFocus; Exit;

37、 end; BorrowBookID := Trim(editreaderID.Text); BookID := Trim(editBookID.Text); if (BorrowBookID ) and (BookID ) then begin QueryDelete.Close; QueryDelete.SQL.Clear; strSql := update 借出信息 set 借出状态=0 ,还书日期= + strdate + where 图书编号 = + BookID + and 借书证号= + BorrowBookID + and 借出状态=1 ; QueryDelete.SQL.Ad

38、d(strSql); QueryDelete.ExecSQL; if QueryDelete.RowsAffected 0 then begin ShowMessage(还书成功!); /更新图书信息表在库标志 strBookID := Trim(editBookID.Text); DM.QueryReader.Close; DM.QueryReader.SQL.Clear; strSql := update 图书明细表 set 状态=在库 where 图书编号= + strBookID; DM.QueryReader.SQL.Text := strSql; DM.QueryReader.Ex

39、ecSQL; DM.QueryReader.Close; end else ShowMessage(此书已还过!); end;end;其它相关实现代码:procedure TfrmReturnBook.editBookIDKeyPress(Sender: TObject; var Key: Char);begin if Key = #13 then begin if ViewBook(editBookID.Text) = false then begin ShowMessage(没有此书, 请重新选择!); Exit; end; DM.QueryBook.Filtered := false;

40、DM.QueryBook.Filter := 图书编号= + editBookID.Text + ; DM.QueryBook.Filtered := true; edtToday.Text:=datetostr(date); end;end;procedure TfrmReturnBook.editreaderIDKeyPress(Sender: TObject; var Key: Char);begin if Key = #13 then begin ADOQueryReturn.Close; ADOQueryReturn.SQL.Clear; ADOQueryReturn.SQL.Add

41、( select 借出日期 from 借出信息 where 借书证号= + editreaderID.Text + ); ADOQueryReturn.ExecSQL; ADOQueryReturn.Active := true; if ADOQueryReturn.RecordCount 0 then DBEdit1.Text := ADOQueryReturn.fieldbyname(借出日期).AsString; edtOwnDays.Text:= inttostr(Daysbetween(date,strtoDate(dbedit1.Text);if daysbetween(date,

42、strtoDate(dbedit1.Text) 30 then edtOwnDays.Font.Color :=clRed; label12.Caption:=您超期了,请下次及时归还!; end;end;function TfrmReturnBook.ViewBook(BookID: string): boolean;var Query: TADOQuery;begin Query := TADOQuery.Create(self); Query.Connection := DM.ADOConnection1; Query.SQL.Add(select * from 图书明细表 where 图书编号=:id); Query.Parameters.ParamByName(ID).Value := BookID; Query.Open; if Query.RecordCount = 0 then begin Result := false; ; Exit; end else Result := true;end;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论