《delphi图书管理信息系统课程设计报告.pdf》由会员分享,可在线阅读,更多相关《delphi图书管理信息系统课程设计报告.pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、信息科学与工程学院信息科学与工程学院课程设计任务书课程设计任务书题目:图书管理系统学号:姓名:专业:计算机科学与技术课程:delphi7 应用程序设计指导教师:职称:教授完成时间:2011 年 12 月-2011 年 12 月枣庄学院信息科学与工程学院制2011 年 12 月 18 日课程设计任务书及成绩评定课程设计任务书及成绩评定课程设计的任务和具体要求课程设计的任务和具体要求完成一个图书管理系统的设计,运用 delphi7 软件和所学知识实现图书管理系统。该系统拥有图书查询,图书借阅,读者查询,读者管理,图书管理,新书入库等功能。指导教师签字:、日期:指导教师评语指导教师评语成绩:指导教师
2、签字:日期:1课程设计所需软件、硬件等课程设计所需软件、硬件等硬件需求:计算机一台,windowsXP/win7 操作系统软件需求:delphi7 软件,SQL Server2005课程设计进度计划课程设计进度计划起至日期起至日期2011-12-01052011-12-06102011-12-1118工作内容工作内容搜集资料,借阅相关书籍需求分析,编写程序修改完善程序,完成课程设计任务书备注备注参考文献、资料索引参考文献、资料索引序号文献、资料名称编著者出版单位1 Delphi7 应用程序设计李目海枣庄学院出版社2 Delphi7 数据库系统设计与开发 张春林清华大学出版社3数据库系统概论萨师
3、煊高等教育出版社2目录1.摘要 2.系统需求分析 2.1 需求分析 2.2 系统流程图 2.3 数据字典 2.4 系统数据库设计 3.图书管理系统的设计与实现 3.1 工程窗体结构设计 3.2 主窗体的设计 3.3 数据模块的设计 3.4 图书管理窗体设计 3.5 读者管理窗体设计 3.6 借阅管理窗体设计 3.7 信息查询窗体设计 4.课程设计心得体会 11.1.摘要本课程设计是一个图书信息管理系统的后台数据库的设计。由于时间和精力的限制本设计仅实现了图书管理系统基本功能的设计与实现。通过本次课程设计,达到了了解数据库应用系统的开发过程,熟悉了系统分析和设计的过程和方法的目的。在实践中掌握了
4、知识,达到了学以致用的目标。本次设计首先通过查阅资料对图书领域的基本知识有一定的认识,了解用户各个方面的需求,包括现有的以及将来的可能增加的需求。然后按照数据库设计的六个阶段进行了设计与实现:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库的运行和维护。数据库在各种信息的提供、保存、更新和查询方面都要求满足各种信息的输出和输入,符合用户的基本需求。应用 sql 建立数据库,选用 Delphi 作为开发工具,完成了对图书管理系统的实现。22.系统需求分析2.1 需求分析、查询模块:实现图书信息检索:范围可按书名,作者,出版社,类别等检索款目进行任意条件组合精确或模糊检索,最
5、快时间查找目标书籍;实现读者信息检索:可查询读者借书证号,性别,姓名,获取当前读者的个人信息。并根据学号查询当前读者当前的借书情况,历史借书情况等。2、管理模块:实现图书信息管理:可以实现新书入库,图书信息修改,删除,添加等更新操作。实现读者信息管理:可以实现读者信息的录入,修改,删除,添加等更新操作。2.2 系统流程图图书管理系统图书管理系统图书管理借阅管理读者管理退出图书查询借阅查询读者查询退出32.3 数据字典Book 表:reader 表:lend 表:2.4 系统数据库设计图书管理信息系统的数据库包含三个关系表:图书数据表、读者数据表和借阅数据表。它们包含的字段分别为:图书数据表:书
6、号、书名、作者、出版社、出版日期、价格、说明读者数据表:读者号、读者姓名、性别、身份证号借阅数据表:书号、读者号、借出日期43.图书管理系统的设计与实现3.1 工程窗体结构设计delphi7 中创建一个新工程,即图书管理信息系统工程,命名保存为BookManage.dpr.在该工程中包含5 个窗体,分别为:MainForm、BookForm、ReaderForm、LendForm 和 QueryForm。它们对应的文件名分别为 Main、Book、Reader、Lend 和 InfoQuery。3.2 主窗体的设计主窗体界面:在主窗体中通过单击按钮来选择所需的窗体,每个按钮的功能就是显示相应的
7、窗体。这几个按钮单击事件的程序代码如下:procedure TMainForm.BitBtn1Click(Sender:TObject);beginBookForm.Show;end;procedure TMainForm.BitBtn2Click(Sender:TObject);beginReaderForm.Show;end;procedure TMainForm.BitBtn3Click(Sender:TObject);beginLendForm.Show;end;procedure TMainForm.BitBtn4Click(Sender:TObject);5beginclose;e
8、nd;procedure TMainForm.BitBtn5Click(Sender:TObject);beginQueryForm.Show;end;procedure TMainForm.BitBtn6Click(Sender:TObject);beginQueryForm.Show;end;procedure TMainForm.BitBtn7Click(Sender:TObject);beginQueryForm.Show;end;procedure TMainForm.FormCreate(Sender:TObject);varmypath:string;beginmypath:=e
9、xtractfilepath(paramstr(0);shortdateformat:=yyyy/mm/dd;end;procedure TMainForm.BitBtn8Click(Sender:TObject);beginclose;end;end.63.3 数据模块的设计建立数据模块来存放 ADO 组件对象,这样既便于窗体统一使用 ADO 组件对象访问数据库,也使维护修改更加简单。3.4 图书管理窗体设计图书管理窗体包括新书入库和图书管理两个功能。3.4.1 新书入库实现代码:procedure TBookForm.TabSheet1Show(Sender:TObject);begin
10、codeedit.SetFocus;codeedit.SelectAll;nameedit.Text:=;authoredit.Text:=;outtimeedit.Text:=;7 costedit.Text:=;pressedit.Text:=;memo1.Lines.Clear;end;procedure TBookForm.BitBtn1Click(Sender:TObject);begin if length(codeedit.Text)10 then /书号必须是十位的 begin messagedlg(书号不正确!,mterror,mbok,0);codeedit.SetFocu
11、s;exit;end;with DataModuleADO.ADOQuery1 do begin sql.Clear;sql.Add(select code from book where code=:code);parameters.ParamByName(code).Value:=CodeEdit.Text;open;if RecordCount0 then begin messagedlg(书号已经存在!,mterror,mbok,0);codeedit.SetFocus;exit;end;close;end;if CodeEdit.Text=then showmessage(请输入书号
12、)else if NameEdit.Text=then showmessage(请输入书名)else if AuthorEdit.Text=then showmessage(请输入作者)else if PressEdit.Text=then showmessage(请输入出版社)else if OutTimeEdit.Text=then showmessage(请输入出版时间)else if CostEdit.Text=then showmessage(请输入价格)else begin if messagedlg(确定要增加这条记录,mtInformation,mbOK,mbCancel,0)
13、=mrokthen begin ADOTable1.Active:=true;ADOTable1.Edit;ADOTable1.Append;ADOTable1.FieldByName(code).AsString:=CodeEdit.Text;ADOTable1.FieldByName(name).AsString:=NameEdit.Text;ADOTable1.FieldByName(author).AsString:=AuthorEdit.Text;8 ADOTable1.FieldByName(press).AsString:=PressEdit.Text;ADOTable1.Fie
14、ldByName(outdate).AsString:=OutTimeEdit.Text;ADOTable1.FieldByName(cost).AsString:=CostEdit.Text;ADOTable1.post;showmessage(入库成功!);ADOTable1.Append;end else begin showmessage(入库失败!);ADOTable1.Append;end;end;end;3.4.2 图书管理图书管理页完成对数据库中图书数据的修改,实现代码如下:procedure TBookForm.TabSheet2Show(Sender:TObject);va
15、r i:integer;begin combobox1.Items.Clear;with DataModuleADO.ADOQuery1 do begin sql.Clear;sql.Add(select code from book);open;first;9 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 l
16、ength(combobox1.Text)=10 then begin try with DataModuleADO.AdoTable1 do begin Tablename:=book;DBName.DataField:=name;DBAuthor.DataField:=author;DBPress.DataField:=press;DBOuttime.DataField:=outtime;DBCost.DataField:=cost;DBMemo.DataField:=memo;active:=true;locate(code,combobox1.Text,);edit;end;excep
17、t 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.BitBtn2Click(Sender:TObject);begin close;end;end.103.5 读者管理窗体设计读者管理窗体可以完成新读者数据的录入和老读者数据的修改。3.5.1 刷
18、新读者列表单击“刷新”按钮将在读者列表 listview 中显示所有读者的信息。实现代码如下:procedure TReaderForm.BitBtn2Click(Sender:TObject);begin try with DataModuleADO.ADOQuery1 do begin sql.Clear;sql.Add(select*from reader order by readerid);open;ListView1.Items.Clear;while not eof do begin with ListView1.Items.Add do begin caption:=field
19、byname(ReaderID).AsString;subitems.Add(fieldbyname(name).AsString);if fieldbyname(sex).AsString=1 then subitems.Add(女)else subitems.Add(男);subitems.Add(fieldbyname(idcardno).AsString);end;next;end;close;11 end;except ListView1.Items.Clear;messagedlg(刷新出错!,mterror,mbok,0);end;end;3.5.2 删除读者信息单击“删除”按钮
20、将读者列表中当前选中的读者的信息从数据库中删除。实现代码如下:procedure TReaderForm.BitBtn1Click(Sender:TObject);var i:integer;checked:integer;begin for i:=ListView1.Items.Count-1 downto 0 do if ListView1.Itemsi.Selected then try try with DataModuleADO.ADOQuery1 do begin sql.Clear;sql.Add(select code from lend where readerid=:rea
21、derid);parameters.ParamByName(readerid).Value:=ListView1.Itemsi.Caption;open;if recordcount=0 then checked:=idyes else begin ifmessagedlg(此 读 者 还 有 图 书 未 归 还,是 否 删 除?,mtconfirmation,mbyes,mbno,0)=mryes then begin sql.Clear;sql.Add(delete from lend where readerid=:readerid);parameters.ParamByName(rea
22、derid).Value:=ListView1.Itemsi.Caption;execsql;checked:=idyes;end else checked:=idno;end;close;end;12 except checked:=idno;end;if checked=idyes then begin with DataModuleADO.ADOQuery1 do begin sql.Clear;sql.Add(delete from reader where readerid=:readerid);parameters.ParamByName(readerid).Value:=List
23、View1.Itemsi.Caption;execsql;end;ListView1.Items.Delete(i);end else if checked=idno then exit;except messagedlg(删除出错!,mterror,mbok,0);end;end;procedure TReaderForm.RadioButton1Click(Sender:TObject);begin Edit1.Text:=;Edit2.Text:=;Edit3.Text:=;edit4.Text:=;end;3.5.3 添加新读者添加新读者时需要往数据库中插入该读者的信息。首先选中选项中
24、的添加按钮,然后在几个编辑框中填入该读者的信息,最后单击确定按钮。实现代码如下:procedure TReaderForm.BitBtn3Click(Sender:TObject);begin if RadioButton1.Checked then begin with DataModuleADO.ADOQuery1 do begin13 sql.Clear;sql.Add(select readerid from reader where readerid=:readerid);parameters.ParamByName(readerid).Value:=edit1.Text;open;
25、if recordcount0 then begin messagedlg(借书证号已经存在!,mterror,mbok,0);exit;end;close;end;try with DataModuleADO.ADOQuery1 do begin sql.Clear;sql.Add(insertintoreader(readerid,name,sex,idcardno)+values(:readerid,:name,:sex,:idcardno);parameters.ParamByName(readerid).Value:=edit1.Text;parameters.ParamByName
26、(name).Value:=edit2.Text;parameters.ParamByName(sex).Value:=edit4.Text;parameters.ParamByName(idcardno).Value:=edit3.Text;execsql;messagedlg(添加成功!,mterror,mbok,0);end;except messagedlg(添加失败!,mterror,mbok,0);exit;end;end;Edit1.Text:=;Edit2.Text:=;Edit3.Text:=;edit4.Text:=;if RadioButton2.Checked then
27、 begin with DataModuleADO.ADOQuery1 do begin Close;14 sql.Clear;sql.Add(updatereadername=:+edit2.Text+,sex=:+edit4.Text+,idcardno=:+edit3.Text+readerid=:+edit1.Text+);Prepared;execsql;showmessage(修改成功!);end;end;Edit1.Text:=;Edit2.Text:=;Edit3.Text:=;edit4.Text:=;end;setwhere3.6 借阅管理窗体设计借阅管理窗体可以实现图书的
28、借出和归还操作。3.6.1 初始化3.6.2 现则需要借出、归还的图书3.6.3 借出图书3.6.4 归还图书153.7 信息查询窗体设计信息查询窗体包括图书信息查询、读者信息查询和借阅信息查询 3 个功能。3.7.1 查询图书基本信息3.7.2 查询读者基本信息3.7.3 查询借阅基本信息164.课程设计心得体会本图书管理信息系统使用 ADO 组件实现了图书管理中的主干部分:关于图书、读者和图书借阅的管理。该系统还需要进一步完善,例如用户密码的管理(可在数据库中增加一个数据表存放密码数据)、系统参数动态管理等。通过使用可视化开发工具 Delphi 开发图书管理系统,我的实际动手能力以及自学其它系统开发工具的能力有所提高,同时发现平时学习中的许多不足之处。例如,我发现,在开发系统过程中,对数据库重要组件包括 ADO 控件、数据集组件和数据显示组件等的相关属性及方法不够熟悉,还不能在需要时纯熟、灵活地运用,在技术上无法实现梦寐以求的效果,留下许多缺憾。本次课程设计的顺利完成,尤为感谢李目海老师的辛勤教导和悉心讲解。本学期的课程中,您带领我们进入华丽的Delphi 世界,使我们领略到Delphi7 组件化的编程方式,面向对象的程序设计,使我们离计算机梦越来越近。17