用delphi7设计的图书管理系统课程设计知识交流.doc
《用delphi7设计的图书管理系统课程设计知识交流.doc》由会员分享,可在线阅读,更多相关《用delphi7设计的图书管理系统课程设计知识交流.doc(28页珍藏版)》请在咨信网上搜索。
《数据库技术与应用》 题目:数据库应用系统的设计和实现 适用专业: 指导老师: 班级: 姓名: 学号: 2010年2月 图书是人类文明的见证,随着高科技的发展各式各样图书越来越多,图书馆和书店的管理也越来越复杂。如今图书管理系统是一个书店或一个图书馆的必备系统。一个安全可靠并且对于用户比较实用的图书管理系统来说变得尤其重要。 本次设计设计了一个在DELPHI平台基于SQL Server 2000开发出的图书管理系统。在系统的设计上面实现了该系统的交互式界面。从系统的需求分析、系统设计、系统实现入手,详细阐述了一个C/S结构的图书管理信息系统主要功能的实现过程。每一阶段均给出了相应的理论依据和实现内容,并介绍了系统实现部分的主要算法。整个系统的设计与开发严格按照软件工程思想进行,从需求分析到系统设计和实现、从原型系统设计到迭代完善,本图书管理系统涵盖了六个主要的子系统:图书资料管理、读者资料管理、借书操作、还书操作、删除、修改和查询处理,提高了工作的准确率和效率。 本图书管理信息系统是利用计算机管理信息处理的迅速、准确、可靠且具有强大存储能力的突出特点,全面提高图书馆的管理水平和工作效率,并以及时、完整的业务经营资料,为图书馆的及时转换提供一定的支持。 关键词:数据库,SQL server 2000,Delphi 7,图书管理系统 1.1 课题研究现状分析 在现金信息化发达的社会,图书的发行量与日俱增。因此需要对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利用管理效率的提高。传统的图书馆需要制作有署名与对应编号的书卡,由读者按分类查找再交由图书管理员来处理借书工作,还书也要人工翻阅大量的记录,这样使得工作量大并及其繁琐,效率变得低下。建立网上电子图书管理系统的目的是实现无纸化图书管理,减轻管理员的工作量,方便读者查阅所需的图书,还可以利用网络实现提醒读者还书的功能。管理员还可以对各种图书进行分析统计,对过时、损坏的图书进行删除。达到降低成本提高工作效率的目标。 1.1.1 本领域内已开展的研究工作 1. 理论研究基础 (1)数据库设计方法的完整化、多样化,又有多学科的综合性。 (2)数据库设计步骤的规范化和细致化。 (3)数据库技术不断的更新,并不断增加新的技术,兼容性范围也逐渐扩大。 2. 技术层面的支持 SQL Server的普遍应用,并得到的用户的支持,与Windows操作系统的完全兼容性也决定了它在今天仍然有着庞大的使用群体。SQL Server2000作为后台数据库与前台开发软件Visual Basic、C#、Visual C++、Delphi等都能够无缝连接。 1.1.2 已经取得的研究成果 (1)开发出了一套系统的数据库理论,安全性、完整性、并发性、恢复性都有完整的概述。 (2)随着Internet的迅猛发展,数据库在各个领域作为后台存储得到了广泛的支持。 (3)完善的数据库管理并与前台开发软件的结合使用开发了一系列优秀的图书管理系统,在商业、经济等方面得到了广泛的应用。 1.2 选题的目的及意义 目的:图书管理系统主要目的是对图书馆种类繁多的书籍进行管理,并且合理管理好用户的借还信息。提高图书馆的工作效率,降低管理成本。 意义:通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步了解和掌握本书中所讲解的内容。 2.1 用户调查 1.管理员对功能的需求 管理员对功能的需求细分如下: 读者基本信息的输入,查询,修改,删除; 书籍信息的输入,查询,修改,删除; 借书信息的输入。 还书信息的输入。 2.读者对功能的需求 图书信息检索,范围可按图书编号检索,最快时间查找目标书籍; 读者人个信息检索,获取当前读者的个人信息,修改个人信息;并根据学号查询当前读者当前的借书情况等。 2.2操作流程图 管理员登录 1.管理员操作流程图 删除功能 修改功能 查询功能 录入功能 2.普通用户操作流程图 普通用户 查询 借书信息 图书信息 学生信息 2.3对于这个图书管理系统管理系统,其主要通过四个表中的学号进行连接的,可以通过学号查出学生的基本信息,借阅情况及还书情况等 数据库需要表述的信息有以下几种: (1)图书信息, (2)学生信息, (3)用户信息 (4)还书信息 学号 可以用E/R模型表述该模型的设计,图如图3-1所示 图书号 学号 班级 图书 借书 学生 管理 姓名 学号 图书 名称 还书日 图书号 还书情况 管理 管理 图书名 还书 用户 密码 用户名 2.4数据库逻辑结构设计 通过E/R模型到关系模型的转化,可以得到如下关系模式: 学生(学号,姓名,班级) 图书(图书号,图书名称,学号) 还书(图书号,学号,还书日期) 用户(用户名,密码) 每个关系模式的主码都用下划线标出。 (1)学号是学生的主键,每个学生有唯一的学号。一个学生可以借阅不同的图书。 (2)每一个图书对应唯一的图书编号,可以被不同的学生借阅。 2.5数据库物理结构设计 (1)数据类型 (2)表的设计 2.6视图的实现 3 数据库行为功能设计 3.1 安全控制 任何数据库应用系统都需要安全控制功能,教学管理系统用户分为如下几类: (1)系统管理员:有系统的全部权限; (2)普通用户:具有对数据的查询权。 若为系统管理员 则直接进入欢迎界面 若为普通用户,则直接进入查询系统 执行操作的主界面 3.2数据操作 数据操作功能包括对这些数据进行录入、删除、修改功能。 (1)数据录入 只有管理员才能录入相应表中的数据。 (2)数据删除 只有管理员才能删除相应表中的数据。删除数据时要注意表之间的关联关系, 在删除以前须提醒用户确认是否真的要删除此数据。 (3)数据修改 只有管理员才能修改相应表中的数据。 查询要修改的内容 修改具体的内容 (4)数据查询 学生信息查询 还书项目查询: 图书信息查询: 实验心得 本设计使用Microsoft SQL Server 2000创建后台数据库,并且运用Delphi7制作操作界面,实现对学生成绩管理系统的功能操作。通过对信息多种操作(录入、删除、查询、修改)等功能完成对学生成绩管理系统的操作管理。 (1) 通过本次的课程设计,感觉到了知识的重要性和强大的应用能力,对数据库的强大的数据处理能力有了基本的了解; (2) 对Delphi技术有了深刻的认识,包括各种组件(Button,edit,label,Dbgit,Groupbox等)的作用,以及为了实现查询、修改、删除、录入等时源代码的语法语义有了最基本的了解 ; (3) 掌握了用Delphi连接数据库的Ado连接方法,让数据库的作用更加具体形象,可以在Delphi窗体上显示数据库中具体内容; (4) 培养了自己自学一门新技术的能力,通过在图书馆查阅资料、在网上搜素等方法,同时认识到合作的重要性,通过与同学的交流让自己少走了很多的弯路; (5) 由于代码容易出现错误,需要有耐心,培养了科学严谨,精益求精的学习态度; (6) 通过这次课程设计,自己的独立分析问题和解决问题都有很大的提高; 最后,感谢老师一个学期的教学授课,感谢对课题选择,制作方法等的耐心指导! 附录(源代码) unit Unit7; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB; type TForm7 = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; ADOConnection1: TADOConnection; ADOTable1: TADOTable; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form7: TForm7; implementation {$R *.dfm} uses unit2, Unit1,unit4; procedure TForm7.Button1Click(Sender: TObject); var results:variant; begin ADOTable1.Close; ADOTable1.Open; ADOTable1.Active; results:=ADOTable1.Lookup('用户名',edit1.text,'密码');{检索数据库中对应用户名的密码项} if edit1.Text='' then application.MessageBox('用户名不能为空!','提示',mb_ok) else if edit2.Text='' then application.messagebox('密码不能为空!','警告',mb_ok) else if (results)=edit2.Text then begin if edit1.Text = '管理员' then begin form1.Show; end else begin form4.show; end end else showmessage('密码错误或用户不存在!'); edit1.Visible:=true; edit2.Visible:=true; edit1.Text:=''; edit2.Text:=''; end; procedure TForm7.Button2Click(Sender: TObject); begin form7.Close; end; end. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Image1: TImage; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin form2.show; end; procedure TForm1.Button2Click(Sender: TObject); begin form1.Close; end; end. unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) GroupBox1: TGroupBox; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation uses Unit3, Unit4, Unit5, Unit6; {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin form3.show; end; procedure TForm2.Button2Click(Sender: TObject); begin form4.show; end; procedure TForm2.Button3Click(Sender: TObject); begin form5.show; end; procedure TForm2.Button4Click(Sender: TObject); begin form6.show; end; end. unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls; type TForm3 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; ADOConnection1: TADOConnection; ADOTable1: TADOTable; DataSource1: TDataSource; DBGrid1: TDBGrid; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation {$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); begin adotable1.Close; adotable1.Open; if (edit1.Text='')or(edit1.Text='')or(edit3.Text='') then begin application.MessageBox('信息不完整!','错误操作',mb_ok); exit; end ; with adotable1 do begin open; adotable1.insertrecord([edit1.text,edit2.text,edit3.text]) ; edit; post; edit1.text:=''; edit2.text:=''; edit3.text:=''; application.MessageBox('信息已录入!','确认',mb_ok); adotable1.Close; ADOTABLE1.Open; end; end; procedure TForm3.Button2Click(Sender: TObject); begin form3.Close; end; end. unit Unit4; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, Grids, DBGrids, ADODB; type TForm4 = class(TForm) GroupBox1: TGroupBox; Label1: TLabel; Button1: TButton; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DBGrid1: TDBGrid; DataSource1: TDataSource; Edit1: TEdit; ComboBox1: TComboBox; Label2: TLabel; Label3: TLabel; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form4: TForm4; implementation {$R *.dfm} procedure TForm4.Button1Click(Sender: TObject); var sql:string; begin DBgrid1.Visible:=true; DBgrid1.Font.Color:=clteal; if (combobox1.text='图书信息') then begin if (edit1.text='') then begin MessageBox(handle,'请输入,不能为空!','提示',MB_OK or MB_ICONINFORMATION); exit; end else begin sql:='where ( 图书号='''+edit1.Text+''') '; adoquery1.SQL.Clear; adoquery1.Close; ADOQuery1.SQL.Add('select * from 图书表'); ADOQuery1.SQL.Add(sql); MessageBox(handle,'查询完毕!','提示',MB_OK or MB_ICONINFORMATION); adoquery1.Open; edit1.Text:=''; end ; end else if (combobox1.text='还书项目') then begin if (edit1.text='') then begin MessageBox(handle,'请输入,不能为空!','提示',MB_OK or MB_ICONINFORMATION); exit; end else begin sql:='where ( 学号='''+edit1.Text+''') '; adoquery1.SQL.Clear; adoquery1.Close; ADOQuery1.SQL.Add('select * from 还书表'); ADOQuery1.SQL.Add(sql); MessageBox(handle,'查询完毕!','提示',MB_OK or MB_ICONINFORMATION); adoquery1.Open; edit1.Text:=''; end ; end else if (combobox1.text='学生信息') then begin if (edit1.text='') then begin MessageBox(handle,'请输入,不能为空!','提示',MB_OK or MB_ICONINFORMATION); exit; end else begin sql:='where ( 学号='''+edit1.Text+''') '; adoquery1.SQL.Clear; adoquery1.Close; ADOQuery1.SQL.Add('select * from 学生信息表'); ADOQuery1.SQL.Add(sql); MessageBox(handle,'查询完毕!','提示',MB_OK or MB_ICONINFORMATION); adoquery1.Open; edit1.Text:=''; end ; end; end; procedure TForm4.Button2Click(Sender: TObject); begin form4.Close; end; end. unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls; type TForm5 = class(TForm) GroupBox1: TGroupBox; Button1: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Button2: TButton; Label4: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; Button3: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form5: TForm5; implementation {$R *.dfm} procedure TForm5.Button1Click(Sender: TObject); var sql:string; begin DBgrid1.Visible:=true; DBgrid1.Font.Color:=clteal; if (edit1.text='') then begin MessageBox(handle,'请输入,不能为空!','提示',MB_OK or MB_ICONINFORMATION); exit; end else begin sql:='where ( 学号='''+edit1.Text+''') '; adoquery1.SQL.Clear; adoquery1.Close; ADOQuery1.SQL.Add('select * from 还书表'); ADOQuery1.SQL.Add(sql); MessageBox(handle,'查询完毕!','提示',MB_OK or MB_ICONINFORMATION); adoquery1.Open; end; end; procedure TForm5.Button2Click(Sender: TObject); begin DBgrid1.Visible:=true; DBgrid1.Font.Color:=clteal; if (edit2.Text='')or(edit3.Text='')or(edit4.Text='') then begin application.MessageBox('信息不完整!','错误操作',mb_ok); exit; end ; with adoquery1 do begin Close; sql.Clear; SQL.Add('Update 还书表 SET 学号= :A,图书号= :B,还书日= :C where 学号='+Edit1.Text); Parameters.ParamByName('A').Value:=Edit2.Text; Parameters.ParamByName('B').Value:=Edit3.Text; Parameters.ParamByName('C').value:=Edit4.Text; execsql; close; sql.Clear; edit1.text:=''; edit3.text:=''; edit4.text:=''; edit2.text:=''; application.MessageBox('信息已修改!','确认',mb_ok); end; end; procedure TForm5.Button3Click(Sender: TObject); begin form5.Close; end; end. unit Unit6; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, Grids, DBGrids, ADODB, StdCtrls; type TForm6 = class(TForm) GroupBox1: TGroupBox; Button1: TButton; Label1: TLabel; Edit1: TEdit; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; ADOTable1: TADOTable; DBGrid1: TDBGrid; DataSource1: TDataSource; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form6: TForm6; implementation {$R *.dfm} procedure TForm6.Button1Click(Sender: TObject); begin adotable1.Close; adotable1.Open; if application.MessageBox('确认要删除吗?','提示',mb_yesno)=ID_yes then begin DBgrid1.Visible:=true; DBgrid1.Font.Color:=clteal; with adoquery1 do begin Close; sql.Clear; SQL.Add('delete from 还书表 where 学号='+Edit1.Text); execsql; edit1.text:=''; application.MessageBox('信息已删除!','确认',mb_ok); adotable1.Close; ADOTABLE1.Open; end; end; end; procedure TForm6.Button2Click(Sender: TObject); begin form6.Close; end; end.- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- delphi7 设计 图书 管理 系统 课程设计 知识 交流
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文