图书管理系统需求设计---数据库---课程设计_第1页
图书管理系统需求设计---数据库---课程设计_第2页
图书管理系统需求设计---数据库---课程设计_第3页
图书管理系统需求设计---数据库---课程设计_第4页
图书管理系统需求设计---数据库---课程设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、北京科技大学图书管理系统沖帮助图书管理员实现_些服务而设计图书管理员可通过该程序实现图书录入查询、 下架,借书记录添加、査询、悸改以及还书的相关眼势-h需求分析2丄系统蠡求二屮通辿建立一个基于ere系址的图书管理系韓 使得图书管理工作系统你 规范优和自动 仏 从而提高了萤理的薮率,也方便了读看的借圖 Sffivc十十编程,实现对数据库信息 的管理.系磁符合图书谊信息管理及处理的规定 淸話书管理员对图书及借阅信息进行 管理的需求,并这到操作过程中00直瓢方便*康用、安全等要求.系统用模块化程序设计 的方袪,即使于系统功能的组合和修改,又便干琴与技术人员补充和维护.-用例图:22功能需求: 对于本

2、系统需要实现 图书管理员通过用户 图书管理 图书录入: 图书下架: 图书查询: 读者管理 添加读者信息:添加 读者查询及修改:输添加新增 将已下架 输入图书以下基本功能。登录界面,输入用户名和密码验证后可进图书的基本信息。图书的数量归零。名或图书号可获得当前图书管该书的库存新增读者的信息。入读者姓名或借书卡号可获得读者的基本入程序进行管理操作。量及该书的相关信息。信息并可修改其信息。删除读者信息:输入读者姓名删除读者信息。借还书服务借书登记:先输入借 号,书号及借书时间等 借书记录查询及续签 还书手续办理:输入卡号,检查是否有未还图书记录和借书数量的检查.若符合则添加借 信息。:输入借记卡号或

3、书号可获得其相关信息并可办理续签手续。借记卡号及书号,在借书记录添加还书时间。借书超期超量处理:该功能在读者还书时检索读者借书信息判断是否超期,进行相应的惩罚。2.3系统功能设计:通过对现行图书馆的和还书服务4部分组成。该系统分3个主要功能块,如下图所 进入系统操作前,有 用户登录和注册功能,只有注册过的用户 的用户必须在获得数 据库密码的情况下方可进行用户注册,之业务进行调查,明确了图书馆工作由图书管理、读者管理、借书服务 示。才能进行下属操作,未注册 后才能进去管理流程。匿PR晟入书馆管理系统办理2站怦卡尸惟书卡改fg-HSiE(1)图书信息管理模块主要实现对图书基本 录入图书的图书号、

4、一关键字。使用查询功能查询出 书号的唯一性。图书下架功能将下架左借还书管理信息的录入、查询修改、删除操作。 图书名、作者、出版社、出版时间、现有需要修改/删除的记录,然后进行修改/图书的基本信息删除。(2) 读者信息管理模块实现读者信息的录入、查询、修改和删除操作。录入读者姓名、借书 卡号、电话、单位、性别等信息,以借书量等信息,以图书编码为唯删除操作,修改时要保证图卡号为唯一关键字。使用查询功能查询出需要修改/删除的记录,然后进行修改/删除操作,修改时要保证借书卡号的唯一性。图书卡的注销是借书 卡持有者将不再在此图书馆借阅书籍,其 借书卡将不能继续使用,而 被注销,从而删除关 于此读者的全部

5、信息。(3)借还书信息管理模块实现借书、还书的手 续办理、信息查询、续签及借书超期处理 等操作。借书手续要先输入借 书卡号 ,检查是否有未还图书记录 和借书数量的检查 .若符合则添加借书 卡号 ,书号及借书时间 等信息。借书记录查询及续签 :输入借记卡号可获得 其相关信息并可办理续签手续。 还书手续 :输入借 记卡号 ,删除此借书记录 ,并将还回的图书记录到未借出 类别中。3、代码设计:-录入 ( 图 书)CString strSql;CString dateTime=publishTime.Format(_T( %Y-%m-%d);strSql.Format( INSERT INTO Boo

6、k_info(Book_id,Book_name,Writer,Publish,PublishTime,Introduction,Book_count) VALUES(%s,%s,%s,%s,%s,%s,%s) ,book_id,book_name,writer,publish,date Time,introduction,book_count);-查询 及修 改(图 书)- 图书信息查询CString sqlstr;sqlstr.Format( SELECT Card_id,Book_id,Lendtime,expectBacktime FROMBorrow_card WHERE Book_

7、id=%s ,book_id_Bo);m_pRecordset.CreateInstance( ADODB.Recordset ); / 为 Recordset 对象创建实例 _bstr_t strCmd=(_bstr_t)sqlstr;m_pRecordset=m_pConnection-Execute(strCmd,&RecordsAffected,ADODB:adCmdText); _variant_t vCard_id,vBook_id,vLendtime,vexpectBacktime;trywhile (!m_pRecordset-adoEOF) vCard_id=m_pRecor

8、dset-GetCollect(_variant_t( long )0); vCard_id=m_pRecordset-GetCollect(Card_id );vBook_id=m_pRecordset-GetCollect(Book_id );vLendtime=m_pRecordset-GetCollect( Lendtime ); vexpectBacktime=m_pRecordset-GetCollect( expectBacktime ) CString strtemp;if (vCard_id.vt!=VT_NULL)strtemp+= ; strtemp+=(LPCTSTR)

9、(_bstr_t)vCard_id; if (vBook_id.vt!=VT_NULL) strtemp+= ;strtemp+=(LPCTSTR)(_bstr_t)vBook_id;if (vLendtime.vt!=VT_NULL) strtemp+= ;strtemp+=(LPCTSTR)(_bstr_t)vLendtime;if (vexpectBacktime.vt!=VT_NULL) strtemp+= ; strtemp+=(LPCTSTR)(_bstr_t)vexpectBacktime;list_Bo.AddString(strtemp);list_Bo.AddString(

10、 n ); m_pRecordset-MoveNext();catch (_com_error &e) AfxMessageBox(e.Description();-图书信息修改CString sqlstr;sqlstr.Format( UPDATEBorrow_card SET expectBacktime=expectBacktime+15 WHEREBook_id=%s ,book_id_X); _bstr_t strCmd=(_bstr_t)sqlstr;m_pConnection-Execute(strCmd,&RecordsAffected,ADODB:adCmdText);-删除

11、 (图书)CString sqlstr;if (!D_bookname.IsEmpty()sqlstr.Format( UPDATE Book_info SET Book_count=0 WHEREBook_name=%s ,D_bookname);elsesqlstr.Format( UPDATE Book_info SET Book_count=0 WHEREBook_id=%s ,D_bookid);_bstr_t strCmd=(_bstr_t)sqlstr;m_pConnection-Execute(strCmd,&RecordsAffected,ADODB:adCmdText);-

12、续签:CString sqlstr;sqlstr.Format( UPDATEBorrow_card SET expectBacktime=expectBacktime+15 WHEREBook_id=%s ,book_id_X); _bstr_t strCmd=(_bstr_t)sqlstr;m_pConnection-Execute(strCmd,&RecordsAffected,ADODB:adCmdText);-还书 手续办理:tryCString strSql;CString dateTime;dateTime=back_time_B.Format(_T( %Y-%m-%d);str

13、Sql.Format( UPDATEBorrow_card SET Backtime=%s WHEREBook_id=%s ANDCard_id=%s ,dateTime,book_id_B,card_id_B);_bstr_t strCmd=(_bstr_t)strSql; m_pConnection-Execute(strCmd,&RecordsAffected,ADODB:adCmdText);catch (_com_error &e)AfxMessageBox(e.Description();tryCString sqlstr;sqlstr.Format( UPDATE Book_in

14、fo SET Book_count=Book_count+1 WHEREBook_id=%s ,book_id_B);_bstr_t strCmd=(_bstr_t)sqlstr; m_pConnection-Execute(strCmd,&RecordsAffected,ADODB:adCmdText);catch (_com_error &e)AfxMessageBox(e.Description();/ 图书超期检测trym_pRecordset.CreateInstance( ADODB.Recordset ); / 为 Recordset 对象创建实例 COleDateTime no

15、w;now=COleDateTime:GetCurrentTime();CString sqlStr;sqlStr.Format( SELECT * FROM Borrow_card WHERECard_id=%s ANDBook_id=%s ANDBacktime is NOT NULL AND expectBacktimeExecute(strCmd,&RecordsAffected,ADODB:adCmdText);catch (_com_error &e)AfxMessageBox(e.Description();/ 图书超期处理tryint days(0),tempDays(0);C

16、OleDateTime backDay,expectBackday;COleDateTimeSpan timeSpan;_variant_t vBackDays,vExpectBackDays;while (!m_pRecordset-adoEOF)vBackDays=m_pRecordset-GetCollect(_variant_t( long )3); vExpectBackDays=m_pRecordset-GetCollect(_variant_t( long )4); backDay.ParseDateTime(LPCTSTR)(_bstr_t)vBackDays); expect

17、Backday.ParseDateTime(LPCTSTR)(_bstr_t)vExpectBackDays); timeSpan=expectBackday-backDay;tempDays=timeSpan.GetDays();CString mesStr;float tempYuan=tempDays*0.1;mesStr.Format(借书卡号:s,借书:s,超期天应缴罚款 .2f元,card_id_B,book_id_B,tempDays,tempYuan);AfxMessageBox(mesStr);days+=tempDays; m_pRecordset-MoveNext();c

18、atch (_com_error &e)AfxMessageBox(e.Description();/ 还书后删除借书记录tryCString strSql;CStri ng dateTime;dateTime=back_time_B.Format(_T(%Y-%m-%c);strSql.Format( DELETE FROMBorrow_card WHERE Book_id=%sANDCardl_i d=%s ,book_id_B,cardl_i d_B);_bstr_t strCmd=(_bstr_t)strSql;m_pCo nn ectio n-Execute(strCmd,&Reco

19、rdsAfected,ADODB:adCmdText);catch (_com_error &e)AfxMessageBox(e.Descripti on();4、数据库概念结构设计借书记录查询及续签 根据上面的设计规划出的实体有:图书实体、读者实体、借还书实体。它们之间的关系如下 图。Book infoBorrovvCatd. infoReader infoPKidPKCard idBook nameFK2FK1Card id Book id l.pridttni*?Expect. Sac 灯 inwiNameWriter Publish PubtKhTime Introduction Bo

20、ok ccunl弋綽 Unit Email Phone5、数据库逻辑结构设计现在需要将上面的数 据库概念结构转化为SQL Server 2000数据库系统所支持的实际数据模型,也就是数据 库的逻辑结构。在上面的实体及实体之间的基础上,形成数据库中的表及各个表之间的关系。图书管理系统数据库中各个表格的设计如下面几个表所示。每个表表示数据库中的一 个数据表。图书信息表Book info)序号字段号字段含义字段类型字段长度小数位允许空KEYLJ1Book id书号Varchar14NOT NULL2Book name书名Varchar30NOT NULL3Writer作者Varchar20NULL4

21、Publish出版社Varchar20NULL5PublishTime出版时间DatetimeNULL6In troductio n内容简介TEXT500NULL7Book co unt图书数量INTEGERNOT NULL借书卡信息表(Readernfo)KEY序号字段号字段含义字段类型字段长度小数位允许空1Cardd借书卡号Varchar8NOT NULL2Name姓名Varchar30NULL3Sex性别Varchar2NULL4Unit单位Varchar20NULL5Email电子邮件Varchar20NULL6Phone电话Varchar15NULL借书登记卡信息(BorrowCar

22、dnfo)序号字段号字段含义字段类型字段长度小数位允许空1Cardd借书卡号Varchar8NOT NULL2Book id书号Varchar14NOT NULL3Len dtime借出时间DatetimeNULL4Backtime归还时间DatetimeNULL5Expect_Ba ckTime预期归还时间DatetimeNOT NULL屈户豊录信宜(Admirinfo )序号字段号P字段含舅心宇縊英婪小速位ait杵空口Adminch理员IK号aVarcharIO*1AMOTMULM2Passwordvarchar14MOTNULL6、数据库及基本表结构定义-图书信息表CREATE TABL

23、 田ook_info(Book_id Varchar(14) PRIMARYKEY,Book_name Varchar(30) NOT NULL,Writer Varchar(20),Publish Varchar(20),PublishTime DATETIME,Introduction TEXT,Book_count INTEGERNOTNULL)- 读者信息表CREATE TABLEReader_info(Card_id Varchar(8) PRIMARYKEY,Name VARCHAR(8)NOTNULL,Writer Varchar(8),Sex VARCHAR(2) ,Unit

24、VARCHAR(20),Email VARCHAR(64),Phone VARCHAR(20)- 借书信息表CREATE TABLEBorrow_card(Card_id VARCHAR(8) NOTNULL,Book_id VARCHAR(14) NOTNULL,Lendtime DATETIME,expectBacktime DATETIME,Backtime DATETIME,PRIMARY KEY(Book_id,Card_id),FOREIGN KEY(Book_id) REFERENCEBSook_info(Book_id) ON DELETECASCADEON UPDATE CA

25、SCADE,FOREIGN KEY(Card_id) REFERENCERSeader_info(Card_id) ONDELETECASCADEON UPDATE CASCADE)7、系统总体设计在编写这个程序的时 候,我们使用了 OFFICE办公软件中的重要组件 access创建数据库,visual studio2005 的环境中编写了这个程 序。在为期 10 天的数据库课程设计中,我们先 对整个程序做了主题构思,确立各个模 块,逐一 完成他们,从而完成 整个程序。图书管理员可以实现图书录入 、查询、下架,借书记录添 加、 查询、修改以及 还书等操作。完成主体构思以后我们正式 开始制作这个

26、程序。我们把 数据库 命名为BOOK即图书管理系统),制作了三张数据表,在制作界面的时候我们尽量考虑到界面美观,在这 方面基本没有遇到问题,然而在书写代码 的时候却出现了很多的问题。8、总 结软件特点:使用时用 户必须先登录才可进行操作,未注册的用 户必须先注册。操作时用户通过对话 框按键来完成所需求的功能遇到问题: 1)数据库创建好图书信息表,读者信息表及借书信息表后,在程序中 添加创用户表时,数据库中 不会创建这个表。2)创建了用户表后在对其进行修改和添加时,总是提示语法错误。2)在用户表的修改和添加语句中把用户表中属性名用 括起来。改进想法:1)对数据库进行更严格的密码 保护,添加数据库密码。解决方法:

温馨提示

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

最新文档

评论

0/150

提交评论