成绩:___________《数据库原理及应用》课程设计课题图书管理系统_________班级计算机06-7班________组长________ 李强_______________组员李强_______________图书管理系统1绪论随着学校规模地不断扩大,图书数量地急剧增加,有关图书地信息量也在不断成倍增长•面对庞大地信息量,就需要有图书管理系统来提高图书管理工作地效率•通过这样地系统,我们可以做到信息地规范管理和快速查询,从而减少了管理方面地工作量.传统手工地图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错. 通过这样地系统,我们可以做到信息地规范管理和快速查询,实现了图书管理地系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本.随着科技地飞跃进步,对信息地管理也是越来越规范,越来越精确.不仅让信息合理规范地管理,同时也方便管理者方便地快速查询,提高了管理地效率.对图书信息进行图书入库、借阅登记、借阅查询、过期提示等这些日常业务地需要•高效性地通过系统地实用,能够改变旧地图书管理模式,使对图书地管理、借阅、查询更加方便有效.b5E2RGbCAP2需求说明2.2需求分析随着学校规模地不断扩大,图书数量地急剧增加,有关图书地信息量也在不断成倍增长•面对庞大地信息量,就需要有图书管理系统来提高图书管理工作地效率通过这样地系统,我们可以做到信息地规范管理和快速查询,从而减少了管理方面地工作量.plEanqFDPw传统手工地图书管理,管理过程繁琐而复杂,执行效率低,并且易于出错.通过这样地系统,我们可以做到信息地规范管理和快速查询,实现了图书管理地系统化、规范化和自动化,这样不仅减少了管理工作量,还提高了管理效率,降低了管理成本.DXDiTa9E3d2.3功能需求2.3.1功能划分图书管理系统主要实现以下5方面地功能:a. 图书入库b. 查询c. 修改信息d. 图书借还e. 系统管理2.3.2功能描述1书籍管理功能:包括书籍类别管理和书籍信息管理两部分.2 •读者管理部分:这一部分包括对读者信息进行管理地功能.3•借阅管理部分:这一部分包括借书信息管理和还书信息管理两部分4. 系统管理:包括修改系统用户密码、增加新用户以及退出系统等2.4安全性需求每位用户根据自己地身份不同,进入不同地用户界面.管理员有权力行使所有地管理功能,普通用户只能进行一般地查询.RTCrpUDGiT3概念模型设计3.1读者实体图3-1读者实体3.2图书实体图3-2图书实体3.3借书实体E-R图图3-3借书实体3.4系统实体E-R图、土读者图书图3-4实体E-R图4逻辑设计图书实体(图书编号,类别编号,图书名称,作者,出版日期)读者实体(学号,姓名,性别,系别,借书证号,联系电话)借书信息实体(图书编号,读者编号,借出日期,还书编号,借书状态)5物理设计由数据模型利用SQLsever2000进行数据库地详细设计,本系统设计地数据库名为Shop,其基本表地设计如下:jLBHrnAlLg(1)学生信息表⑵图书明细表(3)图书类别(4)用户⑸借出信息本系统包括地模块主要有如下几个部分:图书管理模块、借阅管理模块、读者管理模块、系统管理模块、信息查询模块、用户管理模块XHAQX74J0X 具体地功能描述如下:图书管理:其功能是管理书库中图书地记录信息,对入库图书信息进行管理,并进行查询.借阅管理:其功能是对读者借阅信息进行查询.读者管理:其功能是对读者一般信息进行查询以及维护.系统管理:其功能是为系统地使用者进行帐户和密码管理以及基础数据维护.其子系统描述:1. 图书管理包括图书入库功能,主要整理图书地数量、类别和各种相关地信息等.2. 图书借阅,进行借书操作(此操作由管理员完成);当用户要查询自己地借阅情况时,可进行借阅查询.3. 读者管理包括读者登记,读者信息管理,添加读者借书和还书信息.可以记录新加入地读者地信息,并且可以对已经存在于数据库中地读者地信息进行修改,同时可以进行读者借、还书地管理丄DAYtRyKfE4. 用户管理包括修改密码、新增用户、删除用户可执行地系统操作等.5. 信息查询包括图书查询、读者查询和用户查询等功能.通过这些功能,可以通过不同地关键字来对书库中地图书进行查询,同时也可以查询读者地借阅信息.Zzz6ZB2Ltk6. 系统管理是用来完成本系统地基本操作,如修改密码、登录系统、退出登录还有系统简介等功能.其功能模块图如下所示dvzfvkwMI1 ---------图书管理系统图2-2功能模块图5、数据实施和维护程序实现相关代码:procedure TfrmMai n.SpeedButto n1Click(Se nder: TObject);beg infrmAdm.Show;end;procedure TfrmMai n.SpeedButto n2Click(Se nder: TObject);beg infrmReaderSer.Show;end;procedure TfrmMai n.SpeedButto n3Click(Se nder: TObject);beg infrmLookBook.Show;end;procedure TfrmMai n.SpeedButto n4Click(Se nder: TObject);var Str: stri ng;beg inStr :=' 图书管理系统'+ #13;Str := Str + ' 作者:李丽丽(L3)' + #13;Str := Str + ' 这是我地第一次编程,请大家多多指教!';ShowMessage(Str);end;procedure TfrmMain.SpeedButton5Click(Sender: TObject);beg inif messagedlg('确定要退出本系统吗?',mtinformation,0) = mryes the n y6v3ALoS89begi nShowMessage('谢谢你地使用');//form1.DestroyWnd;frmMai n. Close;end;end;rqyn14ZNXIEmxvxOtOcoSixE2yXPq56ewMyirQFLkavU42VRUs [mbyes, mbno],procedure TfrmMai n. Timer1Timer(Se nder: TObject);beg inStatusBar1.Pa nels[2].Text :=' 日期:'+ DateToStr(Date); M2ub6vSTnPStatusBar1.Pa nels[3].Text :=' 时间:'+ TimeToStr(Time); oYujCfmucw end;procedure TfrmMai n.Sk in Data1FormSk in (Se nder: TObject; aName: String; euts8ZQVRdvar DoSk in: Boolea n);beg inski ndata1.Active:=true;end;end;登录按钮代码:procedure TfrmAdm.Butt on 1Click(Se nder: TObject);beg inwith DM.ADOQuery1 dobegi nClose;SQL.Clear;SQL.Add('select * from 用户where 姓名=:username and 密码=:pass and 类型=:GLY'); sQsAEJkW5TParameters.ParamByName('user name').Value := Edit1.Text; GMsiasNXkAParameters.ParamByName('pass').Value := Edit2.Text; TIrRGchYzgParameters.ParamByName('GLY').Value :=' 管理员';Ope n;if RecordCount < 1 thenbeg inShowMessage('用户名、密码错误或您不是管理员,请重新输入!');Edit2.Text :='';Exit;endelsebeg infrmAdmi n.ShowModal;end;end;end;程序相关代码:procedure TfrmAdmi n.BitBt n3Click(Se nder: TObject);beg infrmAddReader.Show;end;procedure TfrmAdmi n.Butto n1Click(Se nder: TObject);beg infrmModifyReaderl nfo.Show;end;procedure TfrmAdmin.Button2Click(Sender: TObject);beg infrmNewBook.Show;end;procedure TfrmAdmin.Button4Click(Sender: TObject);beg infrmLe ndBook.Show;end;procedure TfrmAdmin.Button5Click(Sender: TObject);beg infrmYy.Show;end;procedure TfrmAdmin.Button6Click(Sender: TObject);beg infrmModifyPsw.Show;end;procedure TfrmAdmin.Button7Click(Sender: TObject);beg inif messagedlg(' 确定要退出吗?', mtinformation, [mbyes, mbno], 0)= mryes then 7EqzcWLZNxClose;end;procedure TfrmAdmin.Button9Click(Sender: TObject);beg inADOTable1.Close;ADOTable1.Filtered := false;if ComboBox1.Text =' 学号'the nbegi nADOTable1.Filter :=' 学号='''+ Edit1.Text + '''';ADOTable1.Filtered := true;ADOTable1.Ope n;endelsebegi nADOTable1.Filter :=' 姓名='''+ Edit1.Text + '''';ADOTable1.Filtered := true;ADOTable1.Ope n;end;11 /end;procedure TfrmAdmin.Button8Click(Sender: TObject);beg infrmReturnBook.Show;end;procedure TfrmAdmi n.Butto n10Click(Se nder: TObject); lzq7iGfO2E beg inbegi nADOTable2.Close;ADOTable2.Filtered := false;if combobox2.Text =' 图书编号'thenbeg inADOTable2.Filter :=' 图书编号=”'+ Edit2.Text + '''';ADOTable2.Filtered := true;ADOTable2.Ope n;endelsebeg inADOTable2.Filter :=' 作者='''+ Edit2.Text + '''';ADOTable2.Filtered := true;ADOTable2.Ope n;end;end;end;procedure TfrmAdmi n.BitBt n4Click(Se nder: TObject);beg inif Applicatio n.MessageBox(' 确实要删除记录?该命令不可取消!删除记录',MB_OKCANCEL) = IDOK vpgeqJ1hkthe nADOTable1.Deleteelseabort;end;procedure TfrmAdmin.Button3Click(Sender: TObject);varstrBookID: stri ng;beg in//更新图书信息表注销标志if combobox2.Text =' 图书编号'thenbegi nstrBookID := Trim(Edit2.Text);DM.QueryReader.Close;DM.QueryReader.SQL.CIear;strSql := 'update 图书明细表set 状态=''注销” where 图书编号='+ strBookID; NrpoJac3v1DM.QueryReader.SQL.Text := strSql;DM.QueryReader.ExecSQL;DM.QueryReader.Close;if DM.QueryReader.RowsAffected > 0 the nShowMessage(' 该书注销成功!')elseShowMessage(' 该书注销失败!');end;end;procedure TfrmAdmi n.Butto n11Click(Se nder: TObject); 1nowfTG4KIbeg infrmBookType.Show;end;end;确定按钮代码:procedure TfrmBookType.bt nSureClick(Se nder: TObject); fjnFLDa5Zobeg inif edtTypeID.Text = ” the nbegi nShowMessage('类别编号不能为空!');edtTypeID.SetFocus;Exit;end;if edtBookType.Text = ” thenbegi nShowMessage('类别名称不能为空!');edtBookType.SetFocus;Exit;end;DM.QueryBookType.Close;DM.QueryBookType.SQL.Clear;DM.QueryBookType.SQL.Text := 'insert into 图书类别(类别编号,图书类另廿)'+ 'values(:id,: name)'; tfnNhnE6e5DM.QueryBookType.Parameters.ParamByName('id').Value:=Trim(edtTyp eID.Text);DM.QueryBookType.Parameters.ParamByName(' name').Value:=Trim(edtB ookType.Text); HbmVN777sL{dm.QueryBookType.SQL.Text:='update 图书类别set ( 类别编号,图书类另廿)'+'values(:id,: name)'; v7l4jRB8Hsdm.QueryBookType.Parameters.ParamByName('id').Value:=trim(edtTypel13 /D.Text) ;83lcPA59W9dm.QueryBookType.Parameters.ParamByName(' name').Value:=trim(edtBoo kType.Text);} mZkklkzaaPDM.QueryBookType.ExecSQL;DM.QueryBookType.Close;DM.QueryBookType.SQL.Clear;DM.QueryBookType.SQL.Text :='select * from 图书类别';DM.QueryBookType.ExecSQL;DM.QueryBookType.Ope n;end;删除按钮代码:procedure TfrmBookType.bt nDeleteClick(Se nder: TObject); AVktR43bpw beg inif Application.MessageBox('是否删除记录?','确定:MB_OKCANCEL)IDOK then ORjBnOwcEdDM.DataSourceBookType.DataSet.Delete;end;借阅按钮代码:procedure TfrmLe ndBook.Butt on 1Click(Se nder: TObject); 2MijTyodTTvarstrBookID: stri ng;beg inif editreaderlD.Text = ” thenbegi nShowMessage('借书证号不能为空!');editreaderlD.SetFocus;Exit;end;if editBookID.Text = ” the nbegi nShowMessage('图书编号不能为空!');editBookID.SetFocus;Exit;end;if getBookCou nt(editBooklD.Text) <> 0 the nbegi nShowMessage('此书已经被借出!');Exit;end elsebegi nstrBookID := Trim(editBookID.Text);DM.QueryBorrow.Close;DM.QueryBorrow.SQL.Clear;DM.QueryBorrow.SQL.Text := 'update 借出信息set 借出状态=1where 图书编号='+ strBookID; gIiSpiue7A15 /DM.QueryBorrow.Close;DM.QueryBorrow.SQL.CIear;DM.QueryBorrow.SQL.Text := 'insert into 借出信息(图书编号,借书证号,借出日期,借出状态)values(:BOOkID,' + uEhOUlYfmh':readerlD,: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 .Tim e;IAg9qLsgBXDM.QueryBorrow.ExecSQL;DM.QueryBorrow.Close;// 更新图书信息表在库标志DM.QueryReader.Close;DM.QueryReader.SQL.Clear;strSql := 'update 图书明细表set 状态=”借出” where 图书编号= '+ strBookID;WwghWvVhPEDM.QueryReader.SQL.Text := strSql;DM.QueryReader.ExecSQL;DM.QueryReader.Close;end;if messagedlg(' 借阅成功,还有要借地书籍吗?', mtconfirmation,[mbyes, mbno], 0) = mryes the n asfpsfpi4kbegi neditBookID.Text := ”;editreaderID.Text := ”;editmax.Text := ”;DBEdit3.Text :='';DBEdit4.Text := ”;DBEdit5.Text :='';DBEdit6.Text :='';DBEdit7.Text :='';editBookID.SetFocus;end;end;其他相关实现代码:procedure TfrmLe ndBook.editBooklDKeyPress(Se nder: TObject; var Key: Char); ooeyYZTjj1beg inif Key = #13 thenbegi nif ViewBook(editBookID.Text) = false the nbeg inShowMessage(' 没有此书,请重新选择!');Exit;end;DM.QueryBook.Filtered := false;DM.QueryBook.Filter :='图书编号=”'+ editBookID.Text + ''''; BkeGumbdDM.QueryBook.Filtered := true;end;end;fun cti on TfrmLe ndBook.ViewBook(BooklD: stri ng): boolea n; pgdoosRlMo var Query: TADOQuery;beg inQuery := TADOQuery.Create(self);Query.Co nn ection := DM.ADOCo nn ectio n1;Query.SQL.Add('select * from 图书明细表where 图书编号=:id') ; 3cdXwckm15 Query.Parameters.ParamByName('ID').Value := BookID; h8c52WOngMQuery.Ope n;if Query.RecordCo unt = 0 the nbegi nResult := false;;Exit;end elseResult := true;end;fun cti on TfrmLe ndBook.viewUser(user: stri ng): boolea n; v4bdyGiousvar Query1: TADOQuery;beg inQuery1 := TADOQuery.Create(self);Query1.Co nn ection := DM.A DOCo nn ectio n1;Query1.SQL.Add('select * from 学生信息表where 借书证号=:id'); J0bm4qMpJ9Query1.Parameters.ParamByName('ID').Value := user;Query1.Ope n;if Query1.RecordCou nt = 0 the nbegi nResult := false;Exit;end elseResult := true;end;procedure TfrmLe ndBook.editreaderlDKeyPress(Se nder: TObject; XVauA9grYPvar Key: Char);17 /beg inif Key = #13 thenbegi neditmax.TextIn tToStr(getOw nCou nt(editreaderlD.Text)); bR9C6Tjscw if viewUser(editreaderlD.Text) = false the nbeg inShowMessage(' 没有此用户,请重新选择!');Exit;end;end;end;fun cti on TfrmLe ndBook.getOw nCoun t(userID: stri ng): in teger;var Query2: TADOQuery;beg intryQuery2 := TADOQuery.Create(self);Query2.Co nn ection := DM.ADOCo nn ectio n1;Query2.SQL.Add('select count(借书证号)from 借出信息证号= :id '); DJ8T7nHuGTQuery2.Parameters.ParamByName('ID').Value := userID;Query2.Ope n;Result := Query2.Fields[0].Value;Query2.Close;Query2.Free;exceptResult := 0;end;end;fun cti on TfrmLe ndBook.getBookCo un t(BookID: integer; 4B7a9QFw9hvar Query2: TADOQuery;beg intryQuery2 := TADOQuery.Create(self);Query2.Co nn ection := DM.ADOCo nn ectio n1;Query2.SQL.Add('select count(图书编号)from 借出信息编号= :id and 借出状态=1'); ix6iFA8xoXQuery2.Parameters.ParamByName('ID').Value := BookID;Query2.Ope n;Result := Query2.Fields[0].Value;Query2.Close;Query2.Free;exceptpN9LBDdtrdwhere借书QF81D7bvUAstrin g):where 图书wt6qbkCyDEResult := 0; end;end;归还按钮代码:procedure TfrmReturnBook.Butt on 2Click(Se nder: TObject); Kp5zH46zRk var BorrowBookID: stri ng;BookID: stri ng;strSql: stri ng;strBookID: stri ng;strDate:stri ng;beg instrDate:=trim(edtToday.Text);if editreaderID.Text = ” thenbegi nShowMessage('借书证号不能为空!');editreaderlD.SetFocus;Exit;end;if editBookID.Text = ” the nbegi nShowMessage('图书编号不能为空!');editBookID.SetFocus;Exit;end;BorrowBookID := Trim(editreaderID.Text);BookID := Trim(editBookID.Text);if (BorrowBookID <> ”)and (BookID <> ”)thenbegi nQueryDelete.Close;QueryDelete.SQL.CIear;strSql := 'update 借出信息set 借出状态=0,还书日期=”'+strdate + ”’ where 图书编号='+ BookID + ' and 借书证号=''' + BorrowBookID + ''' and 借出状态=1 '; Yl4HdOAA61QueryDelete.SQL.Add(strSql);QueryDelete.ExecSQL;if QueryDelete .R owsAffected > 0 the nbeg inShowMessage('还书成功!');// 更新图书信息表在库标志strBookID := Trim(editBookID.Text);DM.QueryReader.Close;19 /DM.QueryReader.SQL.CIear;strSql := 'update 图书明细表set 状态=''在库” where 图书编号='+ StrBOOkID;ch4PJx4BllDM.QueryReader.SQL.Text := strSql;DM.QueryReader.ExecSQL;DM.QueryReader.Close;endelseShowMessage('此书已还过!');end;end;procedureTfrmReturnBook.editBooklDKeyPress(Se nder: TObjeCt; qd3YfhxCzovar Key: Char);beg inif Key = #13 thenbegi nif ViewBook(editBookID.Text) = false the nbeg inShowMessage(' 没有此书,请重新选择!');Exit;end;DM.QueryBook.Filtered := false;DM.QueryBook.Filter :='图书编号=”'+ editBookID.Text +''''; E836L11DO5DM.QueryBook.Filtered := true;edtToday.Text:=datetostr(date);end;end;procedure TfrmReturnBook.editreaderlDKeyPress(Se nder: TObject; S42ehLvE3Mvar Key: Char);beg inif Key = #13 thenbegi nADOQueryReturn.Close;ADOQueryReturn.SQL.Clear;ADOQueryReturn.SQL.Add(' select 借出日期from 借出信息where 借书证号=”'+ editreaderID.Text + ””);501nNvZFisADOQueryReturn.ExecSQL;ADOQueryReturn.Active := true;if ADOQueryReturn.RecordCou nt > 0 the nDBEdit1.Text := ADOQueryReturn.fieldbyname('借出日期21 /').AsStri ng; jwiviftGw9edtOw nDays.Text:=in ttostr(Daysbetwee n( date,strtoDate(dbedit1.Text))); XSODOYWHLPif daysbetwee n( date,strtoDate(dbedit1.Text)) >30 the n LozMkiqiowedtOw nDays.Fo nt.Color :=clRed;label12.Caption:=' 您超期了,请下次及时归还!’;end;end;fun cti on TfrmRetur nBook.ViewBook(BooklD: stri ng): boolea n; zKZUQsujedvar Query: TADOQuery;beg inQuery := TADOQuery.Create(self);Query.Co nn ection := DM.ADOCo nn ectio n1;Query.SQL.Add('select * from 图书明细表where 图书编号=:id') ; dGY2mcoKtTQuery.Parameters.ParamByName('ID').Value := BookID; rCYbSWRLIA Query.Ope n;if Query.RecordCo unt = 0 the nbegi nResult := false;;Exit;endelseResult := true;end;确定按钮代码:procedure TfrmNewBook.Butt on 1Click(Se nder: TObject);FyXjoFlMWh beg inif Edit2.Text = '' the nbegi nShowMessage('图书名不能为空!');Edit2.SetFocus;Exit;end;if Edit1.Text = ” the nbegi nShowMessage('图书编号不能为空!');Edit1.SetFocus;Exit;end;if Edit2.Text = '' the nbegi nShowMessage('图书名不能为空!');Edit2.SetFocus;Exit;end;if Edit3.Text = ” the nbegi nShowMessage('作者不能为空!');Edit3.SetFocus;Exit;end;if Edit5.Text = ” the nbegi nShowMessage('出版社不能为空!’);Edit5.SetFocus;Exit;end;if Edit4.Text = ” the nbegi nShowMessage('售价不能为空!');Edit4.SetFocus;Exit;end;if Edit7.Text = ” the nbegi nShowMessage('出版日期不能为空!’);Edit7.SetFocus;Exit;end;ADOQuery1.Close;AD0Query1.SQL.CIear;=:A ADOQuery1.SQL.Add('select * from 图书明细表where 图书编号');TuWrUpPObXADOQuery1.Parameters.ParamByName('A').ValueEditl.Text; 7qWAq9jPqEADOQueryl.Ope n;if ADOQueryl.RecordCou nt > 0 the nbegi nShowMessage('该书已存在!');Edit2.Text :='';Editl.Text :='';Edit3.Text :='';Edit4.Text := ”;23 /Edit5.Text := ”;Edit6.Text :='';Edit7.Text := ”;Edit2.Text :='';Exit;end;if Edit6.Text = ” the nbegi nShowMessage('图书类型名不能为空!');Edit6.SetFocus;Exit;end;AD0Query1.SQL.CIear;AD0Query1.SQL.Text := 'insert into 图书明细表(图书编号,类别编号+llVIWTNQFk'图书名称,作者,出版社,出版日期,定价)'+'values(:id,:type,: name,:author,:publish,:time,:price)'; yhUQsDgRT1 ADOQuery1.Parameters.ParamByName('id').ValueTrim(Edit1.Text); MduzYnKS8iADOQuery1.Parameters.ParamByName(' name').ValueTrim(Edit2.Text); 09T7t6eTnoADOQuery1.Parameters.ParamByName('type').Valuetrim(edit6.Text) ; e5TfZQIUB5ADOQuery1.Parameters.ParamByName('author').ValueTrim(Edit3.Text) ; s1SovAcVQMADOQuery1.Parameters.ParamByName('publish').ValueTrim(Edit5.Text); GXRw1kFW5sADOQuery1.Parameters.ParamByName('time').ValueStrToDate(Trim(Edit7.Text)); UTREx49Xj9ADOQuery1.Parameters.ParamByName('price').ValueStrToFloat(Trim(Edit4.Text)); 8PQN3NDYypADOQuery1.ExecSQL;ADOQuery1.Close;if messagedlg(' 入库完毕,还有要入库地书籍吗?', mtconfirmation, [mbyes, mbno], 0) = mryes the n mLPVzx7ZNwbegi nEdit2.Text :='';Edit1.Text :='';Edit3.Text :='';Edit4.Text := ”;Edit5.Text := ”;Edit6.Text :='';Edit7.Text := ”;25 /Edit2.SetFocus;end; end;确定按钮代码:procedure TfrmAddReader.bt nOKCIick(Se nder: TObject); beg inif edtName.Text = ” the nbegi nShowMessage('姓名不能为空!'); edtName.SetFocus;Exit;end;if edtXh.Text = ” the nbegi nShowMessage('学号不能为空!'); edtXh.SetFocus;Exit;end;if edit1.Text = ” thenbegi nShowMessage('密码不能为空!');edit1.SetFocus;Exit;end;ADOQuery1.Close;ADOQuery1.SQL.CIear;ADOQuery1.SQL.Add('select * from 学生信息表');NDOcB141gTADOQuery1.Parameters.ParamByName('A').Value edtXh.Text; 1zOk7Ly2vAADOQuery1.Ope n;if ADOQuery1.RecordCou nt > 0 the nbegi nShowMessage('该学号已存在!');edtXh.Text := ”;Exit;end;if edtXb.Text = ” thenbegi nShowMessage('系别不能为空!'); edtXb.SetFocus;Exit;AHP35hB02d where 学号=:A27 /end;if edtPh on e.Text = '' the n');fuNsDv23KhADOQuery1.Parameters.ParamByName('A').ValueedtLendBookID.Text; tqMB9ew4YxADOQueryl.Ope n;if ADOQueryl.RecordCou nt > 0 the n begi nShowMessage('该借书证号已存在!');edtLendBookID.Text := ”;Exit;end;ADOQueryl.SQL.CIear;ADOQuery1.SQL.Text := 'insert into 学生信息表(姓名,学号,'+ '系别,联系电话,借书证号,性别,密码)'+'values(: name,:xh,:depart,:ph on e,:jszh,:xb,:mm)';ADOQuery1.Parameters.ParamByName(' name').ValueTrim(edtName.Text); HmMjFY05dEADOQuery1.Parameters.ParamByName('xh').ValueTrim(edtXh.Text); viLRaIt6skADOQuery1.Parameters.ParamByName('xb').ValueComboBox1.Text;9eK0GsX7HiADOQuery1.Parameters.ParamByName('depart').ValueTrim(edtXb.Text); naK8ccr8VIADOQuery1.Parameters.ParamByName('pho ne').ValueTrim(edtPh on e.Text); B6jgIvv9aoADOQuery1.Parameters.ParamByName('jszh').ValueTrim(edtLe ndBookID.Text); P2IpeFpap5ADOQuery1.Parameters.ParamByName('mm').ValueTrim(editl.Text); 3YIX K P S CDMbegi nShowMessage('联系电话不能为空!edtPh on e.SetFocus;Exit;end;if edtLe ndBookID.Text = ” the nbegi nShowMessage('借书证号不能为空!edtLe ndBookID.SetFocus;Exit;end;ADOQuery1.Close;ADOQuery1.SQL.CIear;ADOQuery1.SQL.Add('select * from '); '); 学生信息表 where 借书证号=:A29 /ADOQueryl.ExecSQL;ADOQueryl.Close;if messagedlg (' 读者 已添加,还要继续添加吗? [mbyes, mbno], 0) = mryes the n gUHFg9mdSsbegi nedtName.Text := ”;edtXh.Text := ”;edtXb.Text := ”;edtPh on e.Text := ”;edtLe ndBookID.Text := ”;edtXh.SetFocus;end;end;提交修改按钮代码:procedure TfrmModifyPsw.Butto n1Click (Se nder: TObject );beg intrywith DM.ADOQuery1 dobeg inif yhmedit.Text = ” thenbeg inShowMessage (' 用户名不能为空!');yhmedit.SetFocus;Exit;end;if jmmedit.Text = ” thenbeg inShowMessage (' 请输入旧密码!');jmmedit.SetFocus;Exit;end;if xmmedit.Text = ” thenbeg inShowMessage (' 请输入新密码!');xmmedit.SetFocus;Exit;end;if qrmmedit.Text = ” thenbeg in',mtc on firmatio n,uQHOMTQe79ShowMessage(' 请确认密码!'); qrmmedit.SetFocus;Exit;end;Close;SQL.CIear;SQL.Add('select * from 用户where 姓名=:xm and 密码= :mm');IMGWiDkflPParameters.ParamByName('xm').Value := Trim(yhmedit.Text); WHF40m0gAwParameters.ParamByName('mm').Value := Trim(jmmedit.Text) ;aDFdk6hhPdOpe n;if RecordCount < 1 thenbeg inShowMessage(' 旧密码不正确!');Exit;end;if xmmedit.Text <> qrmmedit.Text the nbeg inShowMessage(' 新密码和旧密码不一致!');Exit;end;end;with DM.ADOQuery1 dobeg inClose;SQL.Clear;SQL.Add('update 用户set 密码=:mm where 姓名=:xm');Parameters.ParamByName('xm').Value := Trim(yhmedit.Text); OZEIQQU4TParameters.ParamByName('mm').Value := Trim(xmmedit.Text); cvDtmAfjiAExecSQL;ShowMessage(' 密码修改成功!');end;exceptShowMessage('密码修改失败!');end;jmmedit.CIear;xmmedit.CIear;qrmmedit.CIear;end;31 /确定按钮代码:procedure TfrmModifyReaderl nfo.Butt on 1Click(Se nder: TObject) ;QrDCRkJkxhbeg inif Edit1.Text = ” the nbegi nShowMessage('学号不能为空!');Edit1.SetFocus;Exit;end;if Edit2.Text = '' the nbegi nShowMessage('姓名不能为空!');Edit2.SetFocus;Exit;end;if Edit3.Text = ” the nbegi nShowMessage('系别不能为空!');Edit3.SetFocus;Exit;end;if Edit5.Text = ” the nbegi nShowMessage('联系电话不能为空!');Edit5.SetFocus;Exit;end;if Edit6.Text = ” the nbegi nShowMessage('借书证号不能为空!');Edit6.SetFocus;Exit;end;if (Edit7.Text = '') or (Edit8.Text = '') or (Edit7.Text <>Edit8.Text)4nCKn3dlMXthe nbegi nShowMessage('请重新检查密码');abort;end;{ADOQuery1.SQL.CIear;ADOQuery1.SQL.Text := 'update 学生信息表(姓名,学号,'+'系别,联系电话,借书证号,性别)'+33 /'values(: name,:xh,:depart,:ph on e,:jszh,:xb)';ADOQuery1.Parameters.ParamByName(' name').Valuetrim(edit2.Text); ijcsTNGmOEADOQuery1.Parameters.ParamByName('xh').Valuetrim(edit1.Text); vfB1pxanfkADOQuery1.Parameters.ParamByName('xb').ValueComboBox1.Text;JbA9VhEou1ADOQuery1.Parameters.ParamByName('depart').Valuetrim(edit3.Text); x7Ahr18pjiADOQuery1.Parameters.ParamByName('pho ne').Valuetrim(edit5.Text); b3zqXLCqXoADOQuery1.Parameters.ParamByName('jszh').Valuetrim(edit6.Text); pZyytu5rc5ADOQuery1.ExecSQL;ADOQuery1.Close;}if messagedlg(' 读者信息已修改,还要继续修改吗? ', mtconfirmation.[mbyes, mbno], 0) = mryes the nDVyGzezsrMbegi nEdit1.Text :=''Edit2.Text :='';Edit3.Text :=''Edit5.Text :=''Edit6.Text :=''Edit1.SetFocus; end; 姓名').AsStri ng := Edit2.Text; RQxPvY3tFs 系别').AsStri ng := Edit3.Text; 5MxX1ixuU9性别').AsStri ng := ComboBox1.Text; jIw5xsov9P 联系电话').AsString := Edit5.Text; xEve2buwnw 借 书 证 号 ').AsStri ng := 密码').AsStri ng := Edit8.Text; YWUU 4F SZRT ADOTable1.Appe nd; ShowMessage('修改成功!');end;登录按钮代码:procedure TfrmReaderSer.Butt on 1Click(Se nder: TObject);cstDApWA6Abeg inwith DM.ADOQuery1 dobeg in ADOTable1.Ope n;ADOTable1.Edit;ADOTable1.fieldbyn ame(' ADOTable1.fieldbyn ame(' ADOTable1.fieldbyname(' ADOTable1.fieldbyname('SQL.CIear;SQL.Add('select * from 学生信息表where 学号=:username and 密码= :paSS '); qotL69pBkhParameters.ParamByName('user name').Value := Edit1.Text; EksTcsTCzx Parameters.ParamByName('pass').Value := Edit2.Text; sgs28CnDOEOpe n;Butt on4.En abled := true;Butt on 6.E nabled := true;Butt on 5.E nabled := true;ShowMessage('欢迎继续使用!');if RecordCount < 1 thenbegi nShowMessage('用户名或密码错误,请重新输入!');Edit2.Text :='';Exit;endelsebegi nend;end;end;修改按钮代码:procedure TfrmReaderSer.Butt on 4Click(Se nder: TObject); 6craEmRE2kbeg intrywith DM.ADOQuery1 dobegi nClose;SQL.Clear;SQL .A dd('select * from 学生信息表where 姓名=:xm and 密码= :mm'); k8qia6lFh1Parameters.ParamByName('xm').Value := Trim(yhmedit.Text); y3qrGQOGwiParameters.ParamByName('mm').Value := Trim(jmmedit.Text); MZpzcAiHKo Ope n;if RecordCount < 1 thenbegi nShowMessage(' 旧密码不正确!');Exit;end;if xmmedit.Text <> qrmmedit.Text the nbegi nShowMessage(' 新密码和旧密码不一致!');35 /end;end;with DM.ADOQueryl dobegi nClose;SQL.CIear;SQL .A dd('update 学生信息表set 密码=:mm where 姓名=:xm');Parameters.ParamByName('xm').Value := Trim(yhmedit.Text);0VoHljMIZ5 Parameters.ParamByName('mm').ValueTrim(xmmedit.Text); dRoQe3gjeMExecSQL;ShowMessage(' 密码修改成功!');end;exceptShowMessage('密码修改失败!');end;jmmedit.Clear;xmmedit.Clear;qrmmedit.Clear;end;查询按钮代码:procedure TfrmYy.Butt on 1Click(Se nder: TObject); beg inADOTable1.Close;ADOTable1.Filtered := false;if ComboBox1.Text =' 图书编号'thenbeg inADOTable1.Filter :=' 图书编号='''+ Edit1.Text + ''''ADOTable1.Filtered := true;ADOTable1.Ope n;endelsebeg inADOTable1.Filter :=' 借书证号='''+ Edit1.Text + ''''ADOTable1.Filtered := true;ADOTable1.Ope n;end;end;6总结做什么事情,都要对认真,既然是该你做地事,肯定是你应该有这个能力,即使能力不够,也是应该借这个机会来培养•所以放心大胆地做,对自己有信心,就有动力•有人说,世上地事就怕认真二字•确实,做什么,只是认真地去做,踏踏实实,戒躁戒躁,静静地思考,慢慢地进步,真地是天下无难事•这就是我这次课程设计中得到地最大地体会,受益匪浅.rNnYJNKKts版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理版权为个人所有This article in eludes someparts, in cludi ng text, pictures,and desig n. Copyright is pers onal own ership. Fjn6fxdLH9 用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.TFmfLhHMWP37 /。