




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京科技大学用例图:2.2功能需求:对于本系统需要实现以下基本功能。图书管理员通过用户登录界面,输入用户名和密码验证后可进入程序进行管理操作。图书管理图书录入:添加新增图书的基本信息。图书下架:将已下架图书的数量归零。.图书查询:输入图书名或图书号可获得当前图书管该书的库存量及该书的相关信息。读者管理添加读者信息:添加新增读者的信息。读者查询及修改:输入读者姓名或借书卡号可获得读者的基本信息并可修改其信息。删除读者信息:输入读者姓名删除读者信息。借还书服务借书登记:先输入借书卡号,检查是否有未还图书记录和借书数量的检查.若符合则添加借号,书号及借书时间等信息。借书记录查询及续签:输入借记卡号或书号可获得其相关信息并可办理续签手续。还书手续办理:输入借记卡号及书号,在借书记录添加还书时间。借书超期超量处理:该功能在读者还书时检索读者借书信息判断是否超期,进行相应的惩罚。2.3系统功能设计:通过对现行图书馆的业务进行调查,明确了图书馆工作由图书管理、读者管理、借书服务和还书服务4部分组成。该系统分个主要功能块,如下图所示。进入系统操作前,有用户登录和注册功能,只有注册过的用户才能进行下属操作,未注册的用户必须在获得数据库密码的情况下方可进行用户注册,之后才能进去管理流程。() 图书信息管理模块主要实现对图书基本信息的录入、查询修改、删除操作。录入图书的图书号、图书名、作者、出版社、出版时间、现有量等信息,以图书编码为唯一关键字。使用查询功能查询出需要修改删除的记录,然后进行修改删除操作,修改时要保证图书号的唯一性。图书下架功能将下架图书的基本信息删除。() 读者信息管理模块实现读者信息的录入、查询、修改和删除操作。录入读者姓名、借书卡号、电话、单位、性别等信息,以借书卡号为唯一关键字。使用查询功能查询出需要修改删除的记录,然后进行修改删除操作,修改时要保证借书卡号的唯一性。图书卡的注销是借书卡持有者将不再在此图书馆借阅书籍,其借书卡将不能继续使用,而被注销,从而删除关于此读者的全部信息。() 借还书信息管理模块实现借书、还书的手续办理、信息查询、续签及借书超期处理等操作。借书手续要先输入借书卡号,检查是否有未还图书记录和借书数量的检查.若符合则添加借书卡号,书号及借书时间等信息。借书记录查询及续签:输入借记卡号可获得其相关信息并可办理续签手续。还书手续:输入借记卡号,删除此借书记录,并将还回的图书记录到未借出类别中。3、代码设计:-录入(图书)CString strSql;CString dateTime=publishTime.Format(_T(%Y-%m-%d);strSql.Format(INSERT INTO Book_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,dateTime,introduction,book_count);-查询及修改(图书)-图书信息查询CString sqlstr;sqlstr.Format(SELECT Card_id,Book_id,Lendtime,expectBacktime FROM Borrow_card WHERE Book_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_pRecordset-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)(_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(n);m_pRecordset-MoveNext();catch(_com_error &e)AfxMessageBox(e.Description();-图书信息修改CString sqlstr;sqlstr.Format(UPDATE Borrow_card SET expectBacktime=expectBacktime+15 WHERE Book_id=%s,book_id_X);_bstr_t strCmd=(_bstr_t)sqlstr;m_pConnection-Execute(strCmd,&RecordsAffected,ADODB:adCmdText);-删除(图书)CString sqlstr;if(!D_bookname.IsEmpty()sqlstr.Format(UPDATE Book_info SET Book_count=0 WHERE Book_name=%s ,D_bookname);elsesqlstr.Format(UPDATE Book_info SET Book_count=0 WHERE Book_id=%s ,D_bookid);_bstr_t strCmd=(_bstr_t)sqlstr;m_pConnection-Execute(strCmd,&RecordsAffected,ADODB:adCmdText);-续签:CString sqlstr;sqlstr.Format(UPDATE Borrow_card SET expectBacktime=expectBacktime+15 WHERE Book_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);strSql.Format(UPDATE Borrow_card SET Backtime=%s WHERE Book_id=%s AND Card_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_info SET Book_count=Book_count+1 WHERE Book_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 now;now=COleDateTime:GetCurrentTime();CString sqlStr;sqlStr.Format(SELECT * FROM Borrow_card WHERE Card_id=%s AND Book_id=%s AND Backtime is NOT NULL AND expectBacktimeExecute(strCmd,&RecordsAffected,ADODB:adCmdText); catch(_com_error &e)AfxMessageBox(e.Description();/图书超期处理tryint days(0),tempDays(0);COleDateTime 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);expectBackday.ParseDateTime(LPCTSTR)(_bstr_t)vExpectBackDays);timeSpan=expectBackday-backDay;tempDays=timeSpan.GetDays();CString mesStr; float tempYuan=tempDays*0.1;mesStr.Format(借书卡号:%s,借书:%s,超期%d天应缴罚款%.2f元,card_id_B,book_id_B,tempDays,tempYuan);AfxMessageBox(mesStr);days+=tempDays;m_pRecordset-MoveNext();catch(_com_error &e)AfxMessageBox(e.Description(); /还书后删除借书记录tryCString strSql;CString dateTime;dateTime=back_time_B.Format(_T(%Y-%m-%d);strSql.Format(DELETE FROM Borrow_card WHERE Book_id=%sAND Card_id=%s,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();4、数据库概念结构设计借书记录查询及续签根据上面的设计规划出的实体有:图书实体、读者实体、借还书实体。它们之间的关系如下图。 借出时间 图书名 借书卡号 图书号 作者 姓名 性别图书 借还书 读者 单位 现有量 出版时间 电话号码 内容简介 出版社 归还时间5、数据库逻辑结构设计现在需要将上面的数据库概念结构转化为SQL Server 2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。在上面的实体及实体之间的基础上,形成数据库中的表及各个表之间的关系。图书管理系统数据库中各个表格的设计如下面几个表所示。每个表表示数据库中的一个数据表。图书信息表(Book_info)KEY序号字段号字段含义字段类型字段长度小数位允许空1Book_id书号Varchar14NOT NULL2Book_name书名Varchar30NOT NULL3Writer作者Varchar20NULL4Publish出版社Varchar20NULL5PublishTime出版时间DatetimeNULL6Introduction内容简介TEXT500NULL7Book_count图书数量INTEGERNOT NULL借书卡信息表(Reader_info)KEY序号字段号字段含义字段类型字段长度小数位允许空1Card_id借书卡号Varchar8NOT NULL2Name姓名Varchar30NULL3Sex性别Varchar2NULL4Unit单位Varchar20NULL5Email电子邮件Varchar20NULL6Phone电话Varchar15NULL借书登记卡信息(BorrowCard_info)序号字段号字段含义字段类型字段长度小数位允许空1Card_id借书卡号Varchar8NOT NULL2Book_id书号Varchar14NOT NULL3Lendtime借出时间DatetimeNULL4Backtime归还时间DatetimeNULL5Expect_BackTime预期归还时间DatetimeNOT NULL6、数据库及基本表结构定义-图书信息表CREATE TABLE Book_info(Book_id Varchar(14) PRIMARY KEY,Book_name Varchar(30) NOT NULL,Writer Varchar(20),Publish Varchar(20),PublishTime DATETIME,Introduction TEXT,Book_count INTEGER NOT NULL) -读者信息表CREATE TABLE Reader_info (Card_id Varchar(8) PRIMARY KEY,Name VARCHAR(8) NOT NULL,Writer Varchar(8),Sex VARCHAR(2) ,Unit VARCHAR(20),Email VARCHAR(64),Phone VARCHAR(20)-借书信息表CREATE TABLE Borrow_card (Card_id VARCHAR(8) NOT NULL,Book_id VARCHAR(14) NOT NULL,Lendtime DATETIME,expectBacktime DATETIME,Backtime DATETIME,PRIMARY KEY(Book_id,Card_id), FOREIGN KEY(Book_id) REFERENCES Book_info(Book_id) ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY(Card_id) REFERENCES Reader_info(Card_id) ON DELETE CASCADE ON UPDATE CASCADE) 7、系统总体设计在编写这个程序的时候,我们使用了OFFICE办公软件中的重要组件access创建数据库,visual studio2005的环境中编写了这个程序。在为期10天的数据库课程设计中,我们先对整个程序做了主题构思,确立各个模块,逐一完成他们,从而完成整个程序。图书管理员可以实现图书录入、查询、下架,借书记录添加、查询、修改以及还书等操作。完成主体构思以后我们正式开始制作这个程序。我们把数据库命名为BOOK(即图书管理系统),制作了三张数据表,在制作界面的时候我们尽量考虑到界面美观,在这方面基本没有遇到问题,然而在书写代码的时候却出现了很多的问题。8、总结软件特点:使用时用户必须先登录才可进行操作,未注册的用户必须先注册。操作时用户通过对话框按键来完成所需求的功能遇到问题:1)数据库创建好图书信息表,读者信息表及借书信息表后,在程序中添加创用户表时,数据库中不会创建这个表。2)创建了用户表后在对其进行修改和添加时,总是提示语法错误。 解决方法:1)自己在数据库中手动添加的用户表 2)在用户表的修改和添加语句中把用户表中属性名用 括起来。改进想法:1)对数据库进行更严格的密码保护,添
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保密形势测试题及答案
- 水利水电三类人员ABC考试试题及答案
- 北京钢材销售知识培训课件
- 交行银行面试题及答案
- 利润分配考试题及答案
- 台州船员考试试题及答案
- 脑波协调测试题及答案
- 乳品理化考试题及答案
- 2025年公路水运工程施工企业安全生产管理人员考试试题(200题)(含答案)
- 2025年VTE预防及护理考题及答案
- 公务车驾驶员安全课件
- 地铁安检培训课件
- 2025年豪华别墅室内外装饰设计及施工一体化服务合同
- 废铅酸蓄电池回收处置项目可行性研究报告
- 2025年重庆对外建设有限公司招聘考试笔试试题
- 2025年阿克苏社区专职工作人员招聘真题
- 药学教学课件下载
- 急性下壁心肌梗死患者PCI术后护理个案
- 出生缺陷防治知识课件
- 口腔门诊护理人员管理
- 通山城区污水处理厂运营维护方案
评论
0/150
提交评论