图书管理系统论文开题报告(delphi+sql server 2000)_第1页
图书管理系统论文开题报告(delphi+sql server 2000)_第2页
图书管理系统论文开题报告(delphi+sql server 2000)_第3页
图书管理系统论文开题报告(delphi+sql server 2000)_第4页
图书管理系统论文开题报告(delphi+sql server 2000)_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

一、选题的背景及意义本项目的名称:图书信息管理系统.本项目的提出者和开发者是图书信息店与管理系统的开发者,用户是各种图书信息,图书市.本系统实现了图书信息,管理的信息化,并能向顾客提供各种图图书信息,对经理人提供各种有关图书信息,管理的信息,以及动态的销售行情.本系统能够与互联网相连来实现图图书的网上销售.3、定义图书信息与管理系统:系统指对顾客提供的各种服务,包括查询服务,留言服务,会员管理系统.管理系统指向图书信息经理人提供信息,向销售人员以及管理员提供所求信息.信息在社会和经济的发展中所起的作用越来越为人们所重视。信息资源的开发利用水平成为衡量一个国家综合国力的重要标志之一。计算机作为信息处理的工具,为适应数据处理需求的迅速提高,满足各类信息系统对数据管理的要求,在文件系统的基础上发展基础数据库系统,数据库方法针对事物处理中大量数据管理需求。我国自从80年代上半期,国家计委统计局计算中心在第一次全国人口普查、工业普查中使用了数据库管理技术以来,随着微机管理系统的推广,数据库应用逐渐普及。因此大力开发管理系统:计算机代替人工进行,许多繁杂劳动。计算机可节省许多资源。计算机大大提高人们的工作效率计算机加密使文档更安全。数据库管理系统是数据处理的核心机构,管理信息系统、办公自动化系统、政策支持等都是使用了数据库管理系统或数据库技术的计算机应用系统。在信息时代纸介质的传统管理方法必然被计算机为基础的信息管理所取代。二、可行性分析报告与项目开发计划随着社会发展的多元化,信息化,图书信息的管理已经成为一个令人头痛的事情。由于现有的图书种类繁多,顾客需求量大,以及帐目数大,交易速度快,如何在最短的时间内,对各种图书进行有效的管理,以及如何让管理人对现有的销售情况有一个明确的了解,已成为十分迫切的问题.本系统是基于数据库对图书信息的销售,管理进行统一管理的软件.通过对几个图书信息的调查,可以得知现有的图书信息有如下的不足与缺陷。第一,顾客在购图书前对本图书信息的查询,在原有的条件下,顾客买图书需要耗费大量的时间去图书架去查图书,并且往往不满意,那么就需要一个系统能够方便顾客的查询,如果可能的话,还应能方便互联网上的网民上网查询。第二,顾客在购买图书后,图书信息能方便的做出相应的记录,并且打印出相应的记录。系统可以模仿现有的超市系统。第三,由于现有的图书信息方式仍然有效,那么我们应方便图书架的管理,让管理图书架的管理员对图书架有一个清晰的了解,知道有什么,缺什么图书,做到适时的对图书架增加图书,并让管理员做出相应记录。第四,经理人需要对本图书信息图书的销售有一个清楚的了解,如一个月一次的销售报表等,还有经理人还能通过本系统实现对管理员的管理,对购图书做出决定,对本图书信息的帐目进行管理等等。第五,负责供图书的管理员对经理人决定的进图书定货单进行管理与保存,对实际到货进行查验,记录,生成到货单等等。第六,对加入本图书信息的会员进行统一管理,实现优惠购图书,与图书信息经理人进行交流等等。三、系统流程分析从系统业务流程图中可以看出,系统以销售员为中心,各种从客户那里得到的数据经过处理后送销售员进行处理,销售员再把整理后的数据表分别送给会计和管理员,管理员再根据这些信息向供应商定货。数据流程分析1.数据流图描述:审核相对于供应商的入库单和相对于客户的出库单。所以分为入库处理和出库处理,处理完的数据存入数据库中。对处理完的数据进行浏览,打印。四、课题实施的具体方案本设计的系统是图书信息管理系统,需要建立模块配合功能来实现它,因此,下面简单介绍一下本系统的几个主要模块。首先需要建立一个系统数据库,再设计主模块的系统信息窗口,也就是主界面。接着,进行权限验证模块设计,设计系统的保密工作,允许合乎条件的人员进入本系统管理。对本系统的管理进行登记,修改及维护。使该系统不受到破坏。再者,设计系统的模块调用窗口,在该窗口里分有“文件”、“图书信息处理”、“业务查询”、“业务分析”、“窗口”、“系统设置”、“帮助”等功能菜单。为了方便操作,也把一些本系统常用的功能通过快捷工具按钮的形式表达出来,如“图书出售”、“图书进货”、“进货退货”、“销售退货”、“销售查询”、“库存查询”、“用户权限”、“注销”、“关于”等。在本系统开发中,我们要用到表单向导生成器,完成系统的登记管理。最后,我们需要添加代码,将有关联的表单链接起来,实现运行。这样,商品销售管理系统的大致框架就完成了。摘要随着人类社会的发展,人类对知识的需求也不断增长。虽然人们可以从网上获得知识,但书本阅读起来却更加方便,所以,在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就理所当然的在人们的生活中占据了一定的位置,如何科学合理的管理图书馆不但关系到读者求知的方便程度,也关系到图书管的发展,因此,开发一套完善的图书管理系统,是必不可少的了。本文主要是介绍图书管理系统的环境、功能作用、所用到的语言、设计的方案等各方面的内容。主要是让使用者了解此系统,使他们能更好的运用本系统,使此系统发挥出应有的作用。关键字图书管理系统Delphi7.0SQLServer2000数据库

目录TOC\o"1-3"\h\z第一章绪论

图书管理系统图书管理系统读者管理功能系统管理功能图书管理功能借阅管理功能新书入库功能图书类别功能读者信息功能读者查询功能增加用户密码修改借书管理功能还书管理功能图2-2功能模块图

第三章系统数据库设计E-R模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。根据上面的设计可以规划出的实体有:读者实体、图书实体和借书信息实体。3.1读者实体读者实体读者实体学号姓名系别借书证号

证号性别联系联系图3-1读者实体3.2图书实体图书实体图书实体出版日期数据库配置文件已经安装到D:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:\oracle\product\10.2.0\db_1。

出版日期数据库配置文件已经安装到D:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:\oracle\product\10.2.0\db_1。

iSQL*PlusURL为:

://47:5560/isqlplus

iSQL*PlusDBAURL为:

://47:5560/isqlplus/dba

证号出版日期数据库配置文件已经安装到D:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:\oracle\product\10.2.0\db_1。

iSQL*PlusURL为:

://47:5560/isqlplus

iSQL*PlusDBAURL为:

://47:5560/isqlplus/dba

证号图书编号出版日期图书编号出版日期数据库配置文件已经安装到D:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:\oracle\product\10.2.0\db_1。

iSQL*PlusURL为:

://47:5560/isqlplus

iSQL*PlusDBAURL为:

://47:5560/isqlplus/dba

证号出版日期数据库配置文件已经安装到D:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:\oracle\product\10.2.0\db_1。

iSQL*PlusURL为:

://47:5560/isqlplus

出版日期数据库配置文件已经安装到D:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到D:\oracle\product\10.2.0\db_1。

iSQL*PlusURL为:

://47:5560/isqlplus

iSQL*PlusDBAURL为:

://47:5560/isqlplus/dba

证号作者图书名称类别编号SHAPE图3-2图书实体3.3借书实体E-R图借书信息实体图书编号借书证号借出日期借书信息实体图书编号借书证号借出日期还书日期借出状态图3-3借书实体3.4系统实体E-R图读者读者图书借阅图3-4实体E-R图3.5数据库设计由数据模型利用SQLsever2000进行数据库的详细设计,本系统设计的数据库名为shop,其基本表的设计如下:学生信息表字段名称数据类型大小学号varchar50姓名varchar20性别varchar4系别varchar5联系varchar50借书证号varchar50密码varchar15(2)图书明细表字段名称数据类型大小图书编号int50图书名称varchar20作者varchar4出版社varchar5出版日期varchar50定价varchar50类别编号varchar15状态char6(3)图书类别字段名称数据类型大小类别编号smallint2图书类别nvarchar20(4)用户字段名称数据类型大小姓名varchar20性别varchar4类型varchar50联系varchar15密码varchar50(5)借出信息字段名称数据类型大小借出编号int4图书编号int4借书证号varchar50借出日期smalldatetime4借出状态bit4第四章系统实现4.1系统数据库模型需分析关系图图4-1关系图各子系统功能分析与程序代码设计系统主界面程序运行程序以后,就可以看到如图4-2的程序的主界面,从这个界面中用户可以根据不同的身份进行不同的操作。图4-2系统主界面程序实现相关代码:procedureTfrmMain.SpeedButton1Click(Sender:TObject);beginfrmAdm.Show;end;lick(Sender:TObject);beginfrmReaderSer.Show;end;procedureTfrmMain.SpeedButton3Click(Sender:TObject);beginfrmLookBook.Show;end;procedureTfrmMain.SpeedButton4Click(Sender:TObject);varStr:string;beginStr:='图书管理系统'+#13;Str:=Str+'李丽丽(L3)'+#13;Str:=Str+'这是我的第一次编程,请大家多多指教!';ShowMessage(Str);end;procedureTfrmMain.SpeedButton5Click(Sender:TObject);beginifmessagedlg('确定要退出本系统吗?',mtinformation,[mbyes,mbno],0)=mryesthenbeginShowMessage('谢谢你的使用');//form1.DestroyWnd;frmMain.Close;end;end;procedureTfrmMain.Timer1Timer(Sender:TObject);beginStatusBar1.Panels[2].Text:='日期:'+DateToStr(Date);StatusBar1.Panels[3].Text:='时间:'+TimeToStr(Time);end;procedureTfrmMain.SkinData1FormSkin(Sender:TObject;aName:String;varDoSkin:Boolean);beginskindata1.Active:=true;end;end.4.2.2管理员登录界面主程序运行后,点击管理员登录,跳出管理员登录界面,输入用户名和密码即可进入系统管理的后台界面。功能:本模块的主要功能是对操作用户身份的验证,只有系统的合法用户才能进入系统。在进行系统登录过程中,登录模块将调用数据库里的用户表,并对用户名和密码进行验证,只有输入了正确的用户名和密码后,系统登录才会成功。否则退出登录模块。并在输入了错误的或者是不存在的用户名和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或错误操作,以便用户进行正确的登录。其窗体如图4-3所示:管理员登录窗体:图4-3管理员登录界面登录按钮代码:procedureTfrmAdm.Button1Click(Sender:TObject);beginwithDM.ADOQuery1dobeginClose;SQL.Clear;SQL.Add('select*from用户where姓名=:usernameand密码=:passand类型=:GLY');Parameters.ParamByName('username').Value:=Edit1.Text;Parameters.ParamByName('pass').Value:=Edit2.Text;Parameters.ParamByName('GLY').Value:='管理员';Open;ifRecordCount<1thenbeginShowMessage('用户名、密码错误或您不是管理员,请重新输入!');Edit2.Text:='';Exit;endelsebeginfrmAdmin.ShowModal;end;end;end;系统管理界面管理员登录成功后会进入如图4-4的系统管理界面,本模块的主要功能是实现管理员对系统的维护作用,管理员对读者进行信息查询、修改和删除,对图书进行注销和借阅归还管理。管理员输入学号或姓名可以查询读者的信息,输入图书编号或作者可以查询图书的信息。图4-4系统管理界面程序相关代码:procedureTfrmAdmin.BitBtn3Click(Sender:TObject);beginfrmAddReader.Show;end;procedureTfrmAdmin.Button1Click(Sender:TObject);beginfrmModifyReaderInfo.Show;end;procedureTfrmAdmin.Button2Click(Sender:TObject);beginfrmNewBook.Show;end;procedureTfrmAdmin.Button4Click(Sender:TObject);beginfrmLendBook.Show;end;procedureTfrmAdmin.Button5Click(Sender:TObject);beginfrmYy.Show;end;procedureTfrmAdmin.Button6Click(Sender:TObject);beginfrmModifyPsw.Show;end;procedureTfrmAdmin.Button7Click(Sender:TObject);beginifmessagedlg('确定要退出吗?',mtinformation,[mbyes,mbno],0)=mryesthenClose;end;procedureTfrmAdmin.Button9Click(Sender:TObject);beginADOTable1.Close;ADOTable1.Filtered:=false;ifComboBox1.Text='学号'thenbeginADOTable1.Filter:='学号='''+Edit1.Text+'''';ADOTable1.Filtered:=true;ADOTable1.Open;endelsebeginADOTable1.Filter:='姓名='''+Edit1.Text+'''';ADOTable1.Filtered:=true;ADOTable1.Open;end;end;procedureTfrmAdmin.Button8Click(Sender:TObject);beginfrmReturnBook.Show;end;procedureTfrmAdmin.Button10Click(Sender:TObject);beginbeginADOTable2.Close;ADOTable2.Filtered:=false;ifcombobox2.Text='图书编号'thenbeginADOTable2.Filter:='图书编号='''+Edit2.Text+'''';ADOTable2.Filtered:=true;ADOTable2.Open;endelsebeginADOTable2.Filter:='作者='''+Edit2.Text+'''';ADOTable2.Filtered:=true;ADOTable2.Open;end;end;end;Btn4Click(Sender:TObject);beginifApplication.MessageBox('确实要删除记录?该命令不可取消!','删除记录',MB_OKCANCEL)=IDOKthenelseabort;end;procedureTfrmAdmin.Button3Click(Sender:TObject);varstrBookID:string;begin//更新图书信息表注销标志ifcombobox2.Text='图书编号'thenbeginstrBookID:=Trim(Edit2.Text);DM.QueryReader.Close;DM.QueryReader.SQL.Clear;strSql:='update图书明细表set状态=''注销''where图书编号='+strBookID;DM.QueryReader.SQL.Text:=strSql;Reader.ExecSQL;DM.QueryReader.Close;ifDM.QueryReader.RowsAffected>0thenShowMessage('该书注销成功!')elseShowMessage('该书注销失败!');end;end;procedureTfrmAdmin.Button11Click(Sender:TObject);beginfrmBookType.Show;end;end.4.修改图书类型在系统管理界面中点击修改图书类型可进入如图4-5的编辑图书类别的界面,本模块主要实现管理员对图书类别进行删除和添加的管理功能。图4-5修改图书类型界面确定按钮代码:procedureTfrmBookType.btnSureClick(Sender:TObject);beginifedtTypeID.Text=''thenbeginShowMessage('类别编号不能为空!');edtTypeID.SetFocus;Exit;end;ifedtBookType.Text=''thenbeginShowMessage('类别名称不能为空!');edtBookType.SetFocus;Exit;end;DM.QueryBookType.Close;DM.QueryBookType.SQL.Clear;DM.QueryBookType.SQL.Text:='insertinto图书类别(类别编号,图书类别)'+'values(:id,:name)';DM.QueryBookType.Parameters.ParamByName('id').Value:=Trim(edtTypeID.Text);DM.QueryBookType.Parameters.ParamByName('name').Value:=Trim(edtBookType.Text);{dm.QueryBookType.SQL.Text:='update图书类别set(类别编号,图书类别)'+'values(:id,:name)';ookType.Parameters.ParamByName('id').Value:=trim(edtTypeID.Text);dm.QueryBookType.Parameters.ParamByName('name').Value:=trim(edtBookType.Text);}DM.QueryBookType.ExecSQL;DM.QueryBookType.Close;DM.QueryBookType.SQL.Clear;DM.QueryBookType.SQL.Text:='select*from图书类别';DM.QueryBookType.ExecSQL;DM.QueryBookType.Open;end;删除按钮代码:procedureTfrmBookType.btnDeleteClick(Sender:TObject);beginifApplication.MessageBox('是否删除记录?','确定',MB_OKCANCEL)=IDOKthenete;end;4.2.5图书借阅和归还本模块主要实现的功能是读者对图书的借阅和归还:(1)图书借阅模块输入图书编号按回车图书信息会自动显示,再输入借书证号按回车会显示已借书数,如图4-6所示:图4-6借阅图书界面借阅按钮代码:procedureTfrmLendBook.Button1Click(Sender:TObject);varstrBookID:string;beginifeditreaderID.Text=''thenbeginShowMessage('借书证号不能为空!');editreaderID.SetFocus;Exit;end;ifeditBookID.Text=''thenbeginShowMessage('图书编号不能为空!');editBookID.SetFocus;Exit;end;ifgetBookCount(editBookID.Text)<>0thenbeginShowMessage('此书已经被借出!');Exit;endelsebeginstrBookID:=Trim(editBookID.Text);DM.QueryBorrow.Close;DM.QueryBorrow.SQL.Clear;DM.QueryBorrow.SQL.Text:='update借出信息set借出状态=1where图书编号='+strBookID;DM.QueryBorrow.Close;ow.SQL.Clear;DM.QueryBorrow.SQL.Text:='insertinto借出信息(图书编号,借书证号,借出日期,借出状态)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.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.Close;end;ifmessagedlg('借阅成功,还有要借的书籍吗?',mtconfirmation,[mbyes,mbno],0)=mryesthenbegineditBookID.Text:='';editreaderID.Text:='';editmax.Text:='';DBEdit3.Text:='';DBEdit4.Text:='';DBEdit5.Text:='';DBEdit6.Text:='';DBEdit7.Text:='';editBookID.SetFocus;end;end;其他相关实现代码:procedureTfrmLendBook.editBookIDKeyPress(Sender:TObject;varKey:Char);beginifKey=#13thenbeginifViewBook(editBookID.Text)=falsethenbeginShowMessage('没有此书,请重新选择!');Exit;end;DM.QueryBook.Filtered:=false;DM.QueryBook.Filter:='图书编号='''+editBookID.Text+'''';DM.QueryBook.Filtered:=true;end;end;functionTfrmLendBook.ViewBook(BookID:string):boolean;varQuery:TADOQuery;beginQuery:=TADOQuery.Create(self);Query.Connection:=DM.ADOConnection1;Query.SQL.Add('select*from图书明细表where图书编号=:id');Query.Parameters.ParamByName('ID').Value:=BookID;Query.Open;ifQuery.RecordCount=0thenbeginResult:=false;;Exit;endelseResult:=true;end;er(user:string):boolean;varQuery1:TADOQuery;beginQuery1:=TADOQuery.Create(self);Query1.Connection:=DM.ADOConnection1;Query1.SQL.Add('select*from学生信息表where借书证号=:id');Query1.Parameters.ParamByName('ID').Value:=user;;ifQuery1.RecordCount=0thenbeginResult:=false;Exit;endelseResult:=true;end;procedureTfrmLendBook.editreaderIDKeyPress(Sender:TObject;varKey:Char);beginifKey=#13thenbegineditmax.Text:=IntToStr(getOwnCount(editreaderID.Text));ifviewUser(editreaderID.Text)=falsethenbeginShowMessage('没有此用户,请重新选择!');Exit;end;end;end;functionTfrmLendBook.getOwnCount(userID:string):integer;varQuery2:TADOQuery;begintryQuery2:=TADOQuery.Create(self);Query2.Connection:=DM.ADOConnection1;Query2.SQL.Add('selectcount(借书证号)from借出信息where借书证号=:id');Query2.Parameters.ParamByName('ID').Value:=userID;Query2.Open;Result:=Query2.Fields[0].Value;Query2.Close;Query2.Free;exceptResult:=0;end;end;functionTfrmLendBook.getBookCount(BookID:string):integer;varQuery2:TADOQuery;begintryQuery2:=TADOQuery.Create(self);Query2.Connection:=DM.ADOConnection1;Query2.SQL.Add('selectcount(图书编号)from借出信息where图书编号=:idand借出状态=1');arameters.ParamByName('ID').Value:=BookID;Query2.Open;Result:=Query2.Fields[0].Value;Query2.Close;Query2.Free;exceptResult:=0;end;end;(2)图书归还模块输入图书编号按回车图书信息会自动显示,再输入借书证号按回车会显示已借出日期和还书日期以及是否超期的信息提示,如图4-7所示:图4-7图书归还界面归还按钮代码:procedureTfrmReturnBook.Button2Click(Sender:TObject);varBorrowBookID:string;BookID:string;strSql:string;strBookID:string;strDate:string;beginstrDate:=trim(edtToday.Text);ifeditreaderID.Text=''thenbeginShowMessage('借书证号不能为空!');editreaderID.SetFocus;Exit;end;ifeditBookID.Text=''thenbeginShowMessage('图书编号不能为空!');editBookID.SetFocus;Exit;end;BorrowBookID:=Trim(editreaderID.Text);BookID:=Trim(editBookID.Text);if(BorrowBookID<>'')and(BookID<>'')thenbeginQueryDelete.Close;QueryDelete.SQL.Clear;strSql:='update借出信息set借出状态=0,还书日期='''+strdate+'''where图书编号='+BookID+'and借书证号='''+BorrowBookID+'''and借出状态=1';QueryDelete.SQL.Add(strSql);QueryDelete.ExecSQL;ifQueryDelete.RowsAffected>0thenbeginShowMessage('还书成功!');//更新图书信息表在库标志strBookID:=Trim(editBookID.Text);DM.QueryReader.Close;DM.QueryReader.SQL.Clear;strSql:='update图书明细表set状态=''在库''where图书编号='+strBookID;DM.QueryReader.SQL.Text:=strSql;DM.QueryReader.ExecSQL;DM.QueryReader.Close;endelseShowMessage('此书已还过!');end;end;其它相关实现代码:procedureTfrmReturnBook.editBookIDKeyPress(Sender:TObject;varKey:Char);beginifKey=#13thenbeginifViewBook(editBookID.Text)=falsethenbeginShowMessage('没有此书,请重新选择!');Exit;end;DM.QueryBook.Filtered:=false;DM.QueryBook.Filter:='图书编号='''+editBookID.Text+'''';DM.QueryBook.Filtered:=true;edtToday.Text:=datetostr(date);end;end;procedureTfrmReturnBook.editreaderIDKeyPress(Sender:TObject;varKey:Char);beginifKey=#13thenbeginADOQueryReturn.Close;ADOQueryReturn.SQL.Clear;ADOQueryReturn.SQL.Add('select借出日期from借出信息where借书证号='''+editreaderID.Text+'''');ADOQueryReturn.ExecSQL;ADOQueryReturn.Active:=true;ifADOQueryReturn.RecordCount>0thenDBEdit1.Text:=ADOQueryReturn.fieldbyname('借出日期').AsString;edtOwnDays.Text:=inttostr(Daysbetween(date,strtoDate(dbedit1.Text)));ifdaysbetween(date,strtoDate(dbedit1.Text))>30thenedtOwnDays.Font.Color:=clRed;label12.Caption:='您超期了,请下次及时归还!';end;end;functionTfrmReturnBook.ViewBook(BookID:string):boolean;varQuery:TADOQuery;beginQuery:=TADOQuery.Create(self);Query.Connection:=DM.ADOConnection1;Query.SQL.Add('select*from图书明细表where图书编号=:id');Query.Parameters.ParamByName('ID').Value:=BookID;Query.Open;ifQuery.RecordCount=0thenbeginResult:=false;;Exit;endelseResult:=true;end;4.2.6新书入库本模块主要实现的是管理员对新书的入库管理,打*号的是必填项目,置空会有信息提示该项不能为空,如图4-8所示:图4-8新书入库界面确定按钮代码:procedureTfrmNewBook.Button1Click(Sender:TObject);beginifEdit2.Text=''thenbeginShowMessage('图书名不能为空!');Edit2.SetFocus;Exit;end;ifEdit1.Text=''thenbeginShowMessage('图书编号不能为空!');Edit1.SetFocus;Exit;end;ifEdit2.Text=''thenbeginShowMessage('图书名不能为空!');Edit2.SetFocus;Exit;end;ifEdit3.Text=''thenbeginShowMessage('作者不能为空!');Edit3.SetFocus;Exit;end;ifEdit5.Text=''thenbeginShowMessage('出版社不能为空!');Edit5.SetFocus;Exit;end;ifEdit4.Text=''thenbeginShowMessage('售价不能为空!');Edit4.SetFocus;Exit;end;ifEdit7.Text=''thenbeginShowMessage('出版日期不能为空!');Edit7.SetFocus;Exit;end;ADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*from图书明细表where图书编号=:A');ADOQuery1.Parameters.ParamByName('A').Value:=Edit1.Text;ADOQuery1.Open;ifADOQuery1.RecordCount>0thenbeginShowMessage('该书已存在!');Edit2.Text:='';Edit1.Text:='';Edit3.Text:='';Edit4.Text:='';Edit5.Text:='';Edit6.Text:='';Edit7.Text:='';Edit2.Text:='';Exit;end;ifEdit6.Text=''thenbeginShowMessage('图书类型名不能为空!');Edit6.SetFocus;Exit;end;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Text:='insertinto图书明细表(图书编号,类别编号,'+'图书名称,作者,出版社,出版日期,定价)'+'values(:id,:type,:name,:author,:publish,:time,:price)';ADOQuery1.Parameters.ParamByName('id').Value:=Trim(Edit1.Text);ADOQuery1.Parameters.ParamByName('name').Value:=Trim(Edit2.Text);ADOQuery1.Parameters.ParamByName('type').Value:=trim(edit6.Text);ADOQuery1.Parameters.ParamByName('author').Value:=Trim(Edit3.Text);ADOQuery1.Parameters.ParamByName('publish').Value:=Trim(Edit5.Text);ADOQuery1.Parameters.ParamByName('time').Value:=StrToDate(Trim(Edit7.Text));ADOQuery1.Parameters.ParamByName('price').Value:=StrToFloat(Trim(Edit4.Text));ADOQuery1.ExecSQL;ADOQuery1.Close;ifmessagedlg('入库完毕,还有要入库的书籍吗?',mtconfirmation,[mbyes,mbno],0)=mryesthenbeginEdit2.Text:='';Edit1.Text:='';Edit3.Text:='';Edit4.Text:='';Edit5.Text:='';Edit6.Text:='';Edit7.Text:='';Edit2.SetFocus;end;end;4.2.7添加读者本模块主要实现的是管理员对读者的添加操作,打*号的是必填项目,置空会有信息提示该项不能为空,如图4-9所示:图4-9添加读者界面确定按钮代码:procedureTfrmAddReader.btnOKClick(Sender:TObject);beginifedtName.Text=''thenbeginShowMessage('姓名不能为空!');edtName.SetFocus;Exit;end;ifedtXh.Text=''thenbeginShowMessage('学号不能为空!');edtXh.SetFocus;Exit;end;ifedit1.Text=''thenbeginShowMessage('密码不能为空!');edit1.SetFocus;Exit;end;ADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*from学生信息表where学号=:A');ADOQuery1.Parameters.ParamByName('A').Value:=edtXh.Text;ADOQuery1.Open;ifADOQuery1.RecordCount>0thenbeginShowMessage('该学号已存在!');edtXh.Text:='';Exit;end;ifedtXb.Text=''thenbeginShowMessage('系别不能为空!');edtXb.SetFocus;Exit;end;ifedtPhone.Text=''thenbeginShowMessage('联系不能为空!');edtPhone.SetFocus;Exit;end;ifedtLendBookID.Text=''thenbeginShowMessage('借书证号不能为空!');edtLendBookID.SetFocus;Exit;end;ADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select*from学生信息表where借书证号=:A');ADOQuery1.Parameters.ParamByName('A').Value:=edtLendBookID.Text;ADOQuery1.Open;ifADOQuery1.RecordCount>0thenbeginShowMessage('该借书证号已存在!');edtLendBookID.Text:='';Exit;end;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Text:='insertinto学生信息表(姓名,学号,'+'系别,联系,借书证号,性别,密码)'+'values(:name,:xh,:depart,:phone,:jszh,:xb,:mm)';ADOQuery1.Parameters.ParamByName('name').Value:=Trim(edtName.Text);ADOQuery1.Parameters.ParamByName('xh').Value:=Trim(edtXh.Text);ADOQuery1.Parameters.ParamByName('xb').Value:=ComboBox1.Text;ADOQuery1.Parameters.ParamByName('depart').Value:=Trim(edtXb.Text);ADOQuery1.Parameters.ParamByName('phone').Value:=Trim(edtPhone.Text);ADOQuery1.Parameters.ParamByName('jszh').Value:=Trim(edtLendBookID.Text);ADOQuery1.Parameters.ParamByName('mm').Value:=Trim(edit1.Text);ADOQuery1.ExecSQL;ADOQuery1.Close;ifmessagedlg('读者已添加,还要继续添加吗?',mtconfirmation,[mbyes,mbno],0)=mryesthenbeginedtName.Text:='';edtXh.Text:='';edtXb.Text:='';edtPhone.Text:='';edtLendBookID.Text:='';edtXh.SetFocus;end;end;4.2.8系统密码修改本模块主要实现的功能是管理员进入系统管理界面后对管理员密码进行修改的操作,以保证系统的安全性,如图4-10所示:图4-10系统密码修改界面提交修改按钮代码:procedureTfrmModifyPsw.Button1Click(Sender:TObject);begintrywithDM.ADOQuery1dobeginifyhmedit.Text=''thenbeginShowMessage('用户名不能为空!');yhmedit.SetFocus;Exit;end;ifjmmedit.Text=''thenbeginShowMessage('请输入旧密码!');jmmedit.SetFocus;Exit;end;ifxmmedit.Text=''thenbeginShowMessage('请输入新密码!');xmmedit.SetFocus;Exit;end;ifqrmmedit.Text=''thenbeginShowMessage('请确认密码!');qrmmedit.SetFocus;Exit;end;Close;SQL.Clear;SQL.Add('select*from用户where姓名=:xmand密码=:mm');Parameters.ParamByName('xm').Value:=Trim(yhmedit.Text);Parameters.ParamByName('mm').Value:=Trim(jmmedit.Text);Open;ifRecordCount<1thenbeginShowMessage('旧密码不正确!');Exit;end;ifxmmedit.Text<>qrmmedit.TextthenbeginShowMessage('新密码和旧密码不一致!');Exit;end;end;withDM.ADOQuery1dobeginClose;SQL.Clear;SQL.Add('update用户set密码=:mmwhere姓名=:xm');Parameters.ParamByName('xm').Value:=Trim(yhmedit.Text);Parameters.ParamByName('mm').Value:=Trim(xmmedit.Text);ExecSQL;ShowMessage('密码修改成功!');end;exceptShowMessage('密码修改失败!');end;jmmedit.Clear;xmmedit.Clear;qrmmedit.Clear;end;4.2.9修改读者信息本模块主要实现的功能是管理员对读者信息进行修改的操作,如图4-11所示:图4-11修改读者信息界面确定按钮代码:procedureTfrmModifyReaderInfo.Button1Click(Sender:TObject);beginifEdit1.Text=''thenbeginShowMessage('学号不能为空!');Edit1.SetFocus;Exit;end;ifEdit2.Text=''thenbeginShowMessage('姓名不能为空!');Edit2.SetFocus;Exit;end;ifEdit3.Text=''thenbeginShowMessage('系别不能为空!');Edit3.SetFocus;Exit;end;ifEdit5.Text=''thenbeginShowMessage('联系不能为空!');Edit5.SetFocus;Exit;end;ifEdit6.Text=''thenbeginShowMessage('借书证号不能为空!');Edit6.SetFocus;Exit;end;if(Edit7.Text='')or(Edit8.Text='')or(Edit7.Text<>Edit8.Text)thenbeginShowMessage('请重新检查密码');abort;end;{ADOQuery1.SQL.Clear;ADOQuery1.SQL.Text:='update学生信息表(姓名,学号,'+'系别,联系,借书证号,性别)'+'values(:name,:xh,:depart,:phone,:jszh,:xb)';ADOQuery1.Parameters.ParamByName('name').Value:=trim(edit2.Text);ADOQuery1.Parameters.ParamByName('xh').Value:=trim(edit1.Text);ADOQuery1.Parameters.ParamByName('xb').Value:=ComboBox1.Text;ADOQuery1.Parameters.ParamByName('depart').Value:=trim(edit3.Text);ADOQuery1.Parameters.ParamByName('phone').Value:=trim(edit5.Text);ADOQuery1.Parameters.ParamByName('jszh').Value:=trim(edit6.Text);ADOQuery1.ExecSQL;ADOQuery1.Close;}ifmessagedlg('读者信息已修改,还要继续修改吗?',mtconfirmation,[mbyes,mbno],0)=mryesthenbeginEdit1.Text:='';Edit2.Text:='';Edit3.Text:='';Edit5.Text:='';Edit6.Text:='';Edit1.SetFocus;end;ADOTable1.Open;ADOTable1.Edit;ADOTable1.fieldbyname('姓名').AsString:=Edit2.Text;ADOTable1.fieldbyname('系别').AsString:=Edit3.Text;ADOTable1.fieldbyname('性别').AsString:=ComboBox1.Text;ADOTable1.fieldbyname('联系').AsString:=Edit5.Text;ADOTable1.fieldbyname('借书证号').AsString:=Edit6.Text;ADOTable1.fieldbyname('密码').AsString:=Edit8.Text;ADOTable1.Append;ShowMessage('修改成功!');end;4.2.10读者服务本功能实现的是读者对图书的查询、借阅及归还操作以及对密码的修改的操作,读者必须先登录以后才能进行后面的修改密码、图书查询等操作,如图4-12所示:图4-12读者服务界面登录按钮代码:procedureTfrmReaderSer.Button1Click(Sender:TObject);beginwithDM.ADOQuery1dobeginClose;SQL.Clear;SQL.Add('select*from学生信息表where学号=:usernameand密码=:pass');Parameters.ParamByName('username').Value:=Edit1.Text;Parameters.ParamByName('pass').Value:=Edit2.Text;Open;Button4.Enabled:=true;Button6.Enabled:=true;Button5.Enabled:=true;ShowMessage('欢迎继续使用!');ifRecordCount<1thenbeginShowMessage('用户名或密码错误,请重新输入!');Edit2.Text:='';Exit;endelsebeginend;end;end;修改按钮代码:procedureTfrmReaderSer.Button4Click(Sender:TObject);begintrywithDM.ADOQuery1dobeginClose;SQL.Clear;SQL.Add('select*from学生信息表where姓名=:xmand密码=:mm');Parameters.ParamByName('xm').Value:=Trim(yhmedit.Text);Parameters.ParamByName('mm').Value:=Trim(jmmedit.Text);Open;ifRecordCount<1thenbeginShowMessage('旧密码不正确!');Exit;end;ifxmmedit.Text<>qrmmedit.TextthenbeginShowMessage('新密码和旧密码不一致!');Exit;end;end;withDM.ADOQuery1dobeginClose;SQL.Clear;SQL.Add('update学生信息表set密码=:mmwhere姓名=:xm');Parameters.ParamByName('xm').Value:=Trim(yhmedit.Text);Parameters.ParamByName('mm').Value:=Trim(xmmedit.Text);ExecSQL;ShowMessage('密码修改成功!');end;exceptShowMessage('密码修改失败!');end;jmmedit.Clear;xmmedit.Clear;qrmmedit.Clear;end;4.2.11书目检索界面本模块主要实现的是管理员和读者对图书信息的查询操作,如图4-13所示:图4-13书目检索界面查询按钮代码:procedureTfrmYy.Button1Click(Sender:TObject);beginADOTable1.Close;ADOTable1.Filtered:=false;ifComboBox1.Text='图书编号'thenbeginADOTable1.Filter:='图书编号='''+Edit1.Text+'''';ADOTable1.Filtered:=true;ADOTable1.Open;endelsebeginADOTable1.Filter:='借书证号='''+Edit1.Text+'''';ADOTable1.Filtered:=true;ADOTable1.Open;end;end;

结束语1.认识体会:通过系统的在校学习和对外界的认识,我对软件开发的大致过程有了一些基本的了解,有了一些体会:程序没有最好,只有更好,程序没有十全十美,只有更完美;在编程的过程中,会遇到各种各样的问题,优秀的编程大师正是在解决了遇到的这些问题而积累经验的成果,提升了编程能力和丰富了编程思维。深入的体会:编程总会深入内部,深究根源,一个程序只有不断地测试和修改才能减少错误,才能提高质量,才能做得更好,程序是在不断地壮大的。编程需要严谨的思维,程序是一个逻辑产品,它存储在磁盘等物理介质中,它看不见,摸不着,它运行时一环接一环,一丝扣一丝,一旦出错,有可能导致难以预料的严重后果。而严谨的思维能使程序逻辑出错的可能性大大降低,也使程序易于维护。而且,保持严谨的思维总是一个好的习惯。在学习的过程中,要学会应用网络上的知识,把它变为自己的知识,应用在实际中来解决问题。因为在网络上有各种各样的资源可以供你参考。编程需要良好的编程习惯。好的编程习惯能给编程人员省去很多不必要的麻烦,提高了代码的清晰度,从而提高了程序的质量。三人行必有我师:不管你的编程水平有多高,都有不懂的地方,所以时刻都要虚心向他人学习来提高自己。连孔子都可以拜小孩为师,我们还有什么面子放不下的呢?2、感悟:计算机技术浩瀚无边,需要我们学习的知识非常之多,比如像软件编程,就有Delphi、JAVA、J2EE、JSP、ASP.Net、C#等,我们不可能一一都学会,但是我们要选择有代表性的来学,比如JAVA、J2EE。就我所使用的Delphi来说,我所使用的不过是它的很小的一方面,还有其他知识需要掌握,比如用它来做Web网页等的知识我没有学过,但需要我们在学习的过程中不断地来学习。所以

温馨提示

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

评论

0/150

提交评论