sql delphi 图书管理系统实验报告_第1页
sql delphi 图书管理系统实验报告_第2页
sql delphi 图书管理系统实验报告_第3页
sql delphi 图书管理系统实验报告_第4页
sql delphi 图书管理系统实验报告_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、sql serve数据库 课 程 设 计设计选题:图书管理系统班 级:电气工程及其自动化1004设 计 人:刘硕果学 号:0909102825 辅导教师:董密目录一、摘要二、需求分析2.1 功能划分与描述2.2 安全性需求三、系统数据结构3.1系统实体er图四、各子系统功能分析与程序代码设计4.1 登陆界面4.2 主界面4.3 新书入库4.4 借书还书4.5 查询4,6 办理会员4.7 解除会员五、实验体会六、参考文献一、摘要随着人类社会的发展,书籍渐渐地成为人们获取并增长知识的主要途径,而图书馆就理所当然的在人们的生活中占据了一定的位置,如何科学合理的管理图书馆不但关系到读者求知的方便程度,

2、也关系到图书管的发展,因此,开发一套完善的图书管理系统,是必不可少的了。本系统是由delphi 7前台和sql serve 2005相结合而完成的。本文主要是介绍图书管理系统的环境、功能作用、所用到的语言、设计的方案等各方面的内容。主要是让使用者了解此系统,使他们能更好的运用本系统,使此系统发挥出应有的作用。关键字 图书管理系统 delphi 7.0 sql server 2005数据库二、需求分析 随着学校规模的不断扩大,图书数量的急剧增加,有关图书的信息量也在不断成倍增长。面对庞大的信息量,就需要有图书管理系统来提高图书管理工作的效率。通过这样的系统,我们可以做到信息的规范管理和快速查询,

3、从而减少了管理方面的工作量。 传统手工的图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错。通过这样的系统,我们可以做到信息的规范管理和快速查询,实现了图书管理的系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本。2.1功能划分与描述图书管理系统主要实现以下功能:a.图书入库 主要整理图书的数量、类别和各种相关的信息等。b.查询 主要查询图书的数量、类别、借出情况和各种相关的信息等。c.修改、删除信息 修改、删除图书相关信息等。d.图书借还 对读者借阅 归还信息进行办理和查询。e.系统管理 为系统的使用者进行帐户和密码管理以及基础数据维护。f.办理、解除会员

4、 对读者信息进行管理和维护。2.4 安全性需求管理员有权力行使所有的管理功能,。三、系统数据结构3.1系统实体e-r图管理员登陆退出关于系统解除会员办理会员新书入库借书还书查询3.2数据库设计3.2.1关系图 3.2.2基本表的建立由数据模型利用sqlsever2005进行数据库的详细设计,本系统设计的数据库名为图书管理系统,其基本表的设计如下:管理员表:图书信息表:借书情况表:图书类别表:会员表:四、 各子系统功能分析与程序代码设计4.1登录界面:unit unit8;interfaceuses windows, messages, sysutils, variants, classes,

5、graphics, controls, forms, dialogs, stdctrls, db, adodb, jpeg, extctrls;type tform8 = class(tform) adoconnection1: tadoconnection; adoquery1: tadoquery; datasource1: tdatasource; label1: tlabel; label2: tlabel; label3: tlabel; edit1: tedit; edit2: tedit; button1: tbutton; button2: tbutton; image1: t

6、image; image2: timage; procedure button2click(sender: tobject); procedure button1click(sender: tobject); procedure edit1keydown(sender: tobject; var key: word; shift: tshiftstate); procedure edit2keydown(sender: tobject; var key: word; shift: tshiftstate); private private declarations public public

7、declarations end;var form8: tform8; a:integer=0;implementationuses unit1;$r *.dfmprocedure tform8.button2click(sender: tobject);begin if (edit1.text=)or (edit2.text=) then begin application.messagebox(用户名称或密码不能为空!,提示,0+64); end else begin adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(selec

8、t * from manager where 登录账号=:rno and 密码=:rpassword); adoquery1.parameters.parambyname(rno).value := trim(edit1.text); adoquery1.parameters.parambyname(rpassword).value := trim(edit2.text); adoquery1.open; if adoquery1.recordcount0 then begin form8.hide; main.show; end else begin application.messageb

9、ox(用户名或密码不正确,请重新输入!,提示,0+64); edit2.clear; a:=a+1; end; if a=3 then begin application.messagebox(对不起,您输入错误次数已经达到三次,请联系管理员!,提示,0+64); application.terminate ; end; end;end;procedure tform8.button1click(sender: tobject);beginif application.messagebox(确定退出登录吗?,确认,mb_iconinformation+mb_okcancel+mb_defbut

10、ton1)=idokthenform8.close;end; procedure tform8.edit1keydown(sender: tobject; var key: word; shift: tshiftstate);begin if key=13 then button2click(sender);end;procedure tform8.edit2keydown(sender: tobject; var key: word; shift: tshiftstate);begin if key=13 then button2click(sender);end;end.4.2主界面:4.

11、3新书入库:procedure tin_book.button1click(sender: tobject);beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(select * from book where 图书编号= +edit1.text+);adoquery1.open;if adoquery1.recordcount0then showmessage(已有此号,图书编号可能出错,请重新输入) else begin adoquery1.close; adoquery1.sql.clear; adoquery1.sql.

12、add(exec insert2 +edit1.text+,+edit2.text+,+edit3.text+,+combobox1.text+,+edit5.text+,+edit7.text+,+edit6.text+,+edit8.text+); adoquery1.execsql; close; showmessage(入库成功);end;end;procedure tin_book.edit6keypress(sender: tobject; var key: char);beginif not (key in 0.9,.,#8) thenbeginkey:=#0;showmessa

13、ge(该项只能写入数字);end;end;procedure tin_book.edit8keypress(sender: tobject; var key: char);beginif not (key in 0.9,#8) thenbeginkey:=#0;showmessage(该项只能写入数字);end;end;procedure tin_book.edit7keypress(sender: tobject; var key: char);beginif not (key in 0.9,-,#8) thenbeginkey:=#0;showmessage(输入违反规则);end;end

14、;cedure tmain.toolbutton4click(sender: tobject);beginsearch.showmodal;end;procedure tmain.toolbutton5click(sender: tobject);beginin_people.showmodal;end;4.4借书还书:procedure tinout_book.button2click(sender: tobject);var sh :string;begin with adostoredproc1 do begin close; parameters.parambyname(

15、pno).value := edit2.text ; parameters.parambyname(bno).value := edit1.text ; parameters.parambyname(num).value := edit3.text ; parameters.parambyname(sh).value := ; execproc; sh := parameters.parambyname(sh).value; showmessage(sh); end;end;procedure tinout_book.button3click(sender: tobject);beginado

16、query2.close;adoquery2.sql.clear;adoquery2.sql.add(exec huanshu1 +edit4.text+);adoquery2.open;if adoquery2.recordcount=0 thenshowmessage(无此人 或是此人没有要还的书)end;procedure tinout_book.button4click(sender: tobject);var sh :string;beginwith adostoredproc2 do begin close; parameters.parambyname(pno).value :=

17、 edit4.text ; parameters.parambyname(bno).value := dbedit8.text ; parameters.parambyname(num).value := edit6.text ; parameters.parambyname(sh).value := ; execproc; sh := parameters.parambyname(sh).value; showmessage(sh); end;adoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(exec huanshu1 +edit4.

18、text+);adoquery2.open;end;procedure tinout_book.button6click(sender: tobject);beginclose;end;procedure tinout_book.edit3keypress(sender: tobject; var key: char);beginif not (key in 0.9,#8) thenbeginkey:=#0;showmessage(该项只能写入数字);end;end;procedure tinout_book.edit6keypress(sender: tobject; var key: ch

19、ar);beginif not (key in 0.9,#8) thenbeginkey:=#0;showmessage(该项只能写入数字);end;end;end.4.5查询:procedure tsearch.button1click(sender: tobject);beginif radiobutton1.checkedthenbeginadoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(select * from book where 图书编号 like %+edit1.text+%);adoquery2.open; if ad

20、oquery2.recordcount=0 then showmessage(没有此编号图书); end; if radiobutton2.checkedthenbeginadoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(select * from book where 书名 like %+edit1.text+%);adoquery2.open; if adoquery2.recordcount=0 then showmessage(没有此书名图书); end; if radiobutton3.checkedthenbeginadoq

21、uery2.close;adoquery2.sql.clear;adoquery2.sql.add(select * from book where 作者 like %+edit1.text+%);adoquery2.open; if adoquery2.recordcount=0 then showmessage(没有该作者的图书); end; if radiobutton4.checkedthenbeginadoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(select *from book where 类别 like %+edit1

22、.text+%);adoquery2.open; if adoquery2.recordcount=0 then showmessage(没有此没有此类别图书); end; if radiobutton5.checkedthenbeginadoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(select * from book where 出版社 like %+edit1.text+%);adoquery2.open; if adoquery2.recordcount=0 then showmessage(没有此出版社图书); end;en

23、d;procedure tsearch.button2click(sender: tobject);beginif radiobutton8.checkedthenbeginadoquery3.close;adoquery3.sql.clear;adoquery3.sql.add(exec search1 +edit2.text+,0);adoquery3.open;if adoquery3.recordcount=0 then showmessage(没借书记录,或是证件号错);end;if radiobutton9.checkedthenbeginadoquery3.close;adoqu

24、ery3.sql.clear;adoquery3.sql.add(exec search1 +edit2.text+,1);adoquery3.open;if adoquery3.recordcount=0 then showmessage(此人没借书,或是证件号错);end;end;end.4.6办理会员:procedure tin_people.button1click(sender: tobject);beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(select * from people where 借书证号= +e

25、dit1.text+);adoquery1.open;if adoquery1.recordcount0then showmessage(已号已有人使用) else beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(exec insert1 +edit1.text+,+edit2.text+,+combobox1.text+,+edit3.text+,+edit4.text+,+edit5.text+,+edit6.text+);adoquery1.execsql;showmessage(办理成功);end;end;proce

26、dure tin_people.edit6keypress(sender: tobject; var key: char);beginif not (key in 0.9,-,#8) thenbeginkey:=#0;showmessage(该项只能写入数字);end;end;procedure tin_people.edit4keypress(sender: tobject; var key: char);begin if not (key in 0.9,x,#8) thenbeginkey:=#0;showmessage(该项只能写入数字);end;end;end.4.7解除会员:proc

27、edure tdele_people.button1click(sender: tobject);beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(select * from people where 借书证号= +edit1.text+);adoquery1.open;if adoquery1.recordcount=0 thenshowmessage(此人不存在);end;procedure tdele_people.button2click(sender: tobject);beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(delete from people where 借书证号= +edit1.text+);adoquery1.execsql;showmessage(撤离成功);end;end.五、实验体会通过系统的在校学习和对外界的认识,我对delphi7 和sql serve2005大致过程有了一些基本的了解,有了一些体会:程序没有最好,只有更好,程序没有十全十美,只有更完美;在编程的过程中,会遇到各种各样的问题,也花了不少时间去解决。深入的体会:编

温馨提示

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

评论

0/150

提交评论