校园图书馆管理系统方案_第1页
校园图书馆管理系统方案_第2页
校园图书馆管理系统方案_第3页
校园图书馆管理系统方案_第4页
校园图书馆管理系统方案_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

..校园图书馆管理系统1产品主要功能和特色〔1本图书馆管理系统的主要功能如下表:表1-1功能名称功能说明使用对象用户登录功能不同用户登录系统,拥有不同的使用权限图书馆管理员、学生、员工图书信息管理图书入库功能图书馆的现有图书及后来购入的图书进行图书的入库〔增添图书的编码、书名、购买日期、价格等图书信息图书馆管理员图书信息编辑功能对系统内的图书信息〔出版社、版次、作者、内容简介等进行编辑处理借阅证管理借阅证办理功能办理新的借阅证图书馆管理员借阅证查询功能查询已办理的借阅证列表,查看借阅证的状态图书馆管理员、学生、员工借阅证挂失功能挂失借阅证图书馆管理员、学生、员工借阅证补办功能补办借阅证图书馆管理员借阅证注销功能注销借阅证图书馆管理员图书借阅管理图书借阅功能借阅者满足借阅条件,借阅图书时,管理员对图书状态进行修改图书馆管理员图书归还功能借阅者按要求归还图书时,管理员对图书状态进行修改借阅者未按要求归还图书时,管理员对图书状态进行修改,并对借阅者进行相应罚款和记录图书馆管理员图书挂失功能借阅者不能归还图书时,对图书进行挂失,修改图书库存记录图书馆管理员、学生、员工图书续借功能借阅者满足续借条件,需要续借图书时,可通过系统对图书进行续借,图书借阅期限自动进行修改图书馆管理员、学生、员工图书催还功能自动生成逾期未归还图书的书目和借阅记录,便于打印催还图书馆管理员信息查询统计功能图书查找功能输入图书的名字、关键字、作者等对图书进行查找;也可以分类查找图书图书馆管理员、学生、员工图书信息查询功能可查询图书的相关信息〔作者、出版社、内容简介、版次、存放地点、图书状态〔在馆/出借和最快可借阅时间图书馆管理员、学生、员工借书历史查询功能登录图书馆管理系统后,可以个人查询图书的借阅历史情况,以及图书借出时间和应归还时间,并提醒借阅者应立即归还的图书图书馆管理员、学生、员工最新入库的图书查询功能查询显示最新入库的图书信息图书馆管理员、学生、员工最热借阅的图书查询功能查询显示最热借阅的图书信息图书馆管理员、学生、员工图书借阅统计功能对一段时间里的这各种图书借阅信息进行分类汇总,显示每一类的热门图书和借阅需求,也可统计借阅时间信息图书馆管理员、学生、员工图书的收藏评论图书的收藏功能借阅者可以对想要借阅,但受条件限制,必须下次借阅的图书进行收藏,以便下次借阅图书馆管理员、学生、员工图书的评论功能对阅读过的图书可以发表读后感,与他人分享对某本图书的心得感想,也方便其他借阅者对图书有更为全面直观的了解2.产品中的角色角色名称职责描述管理员除了具有普通用户的对图书信息的查询浏览功能,还具有管理权限。主要负责图书馆管理系统的基本管理,如图书信息管理、借阅证管理、图书借阅管理。学生、员工是图书馆管理系统前台的使用者,可以进行图书信息的查询浏览、图书评论、图书续借、挂失,图书借阅证查询和挂失,查询自己的借阅历史。3.产品的功能性需求功能3.1功能类别子功能图书信息统计查询图书信息查询功能最热借阅的图书查询功能图书借阅分类统计功能功能3.2功能类别子功能图书借阅管理功能〔特殊情况下的续借功能挂失图书功能催还图书功能功能3.3功能类别子功能图书信息管理图书入库功能图书信息编辑功能功能类别子功能信息查询统计功能图书查找功能最新入库的图书查询功能功能3.4功能类别子功能图书借阅管理功能〔一般情况下的图书借阅功能图书归还功能用户登录功能登录功能密码修改功能功能3.5功能类别子功能借阅证管理借阅证办理功能借阅证查询功能借阅证挂失功能借阅证补办功能借阅证注销功能借书历史查询功能功能3.1.1名称、标识符图书信息查询功能功能描述管理员或学生可查询图书的相关信息〔作者、出版社、内容简介、版次、存放地点、图书状态〔在馆/出借和最快可借阅时间优先级一般输入索书号或图书名操作序列1.获取查询者输入的索书号或图书名;2.查询图书表,找到匹配记录;3.提取图书信息,包括作者、出版社、内容简介、版次、存放地点、图书状态和最快可借阅时间输出图书信息,包括作者、出版社、内容简介、版次、存放地点、图书状态和最快可借阅时间补充说明名称、标识符最热借阅的图书查询功能功能描述管理员或学生查询显示最热借阅的图书信息优先级一般输入查询最热借阅的图书信息请求操作序列1.选定一段时间内的借阅记录,得到每本书及其借阅次数的视图;2.将记录按照书的借阅次数进行排序,并选取前20名的图书进行显示。输出一段时间内借阅次数排在前20名的图书进行显示补充说明名称、标识符图书最热借阅分类统计功能功能描述对一段时间里的这各种图书借阅信息进行分类汇总,显示每一类的热门图书优先级一般输入欲查询的图书的类别操作序列1.选定一段时间内特定类别的图书借阅记录,得到该类别每本书及其借阅次数的视图;2.将记录按照书的借阅次数进行排序,并选取前20名的图书进行显示。输出将特定类别的图书,一段时间内借阅次数排在前20名的进行显示补充说明功能3.2.1名称、标识符续借功能功能描述普通借阅时间上限为从图书馆借书之日起的30天,但借阅者如若对本书很感兴趣,想多借几天,就可以登录本系统,查看自己已借书目并在相应书目后选择"续借",其借阅时间就可以在原基础上延长15天。优先级中输入借阅证件号,系统登录密码操作序列进入系统;查看已借阅未归还书单;在欲续借书目后点击"续借"按钮,并确认输出弹出提示续借成功对话框补充说明若没有已借阅未归还的图书,则不可完成此功能名称、标识符挂失功能功能描述当借阅者借阅的图书遗失后,带着借阅证去图书馆管理台由管理员登录本系统完成挂失。管理员用其自己的账号及密码登录系统,输入该借阅者的借阅证号,看到已借阅的图书,点击"挂失"按钮,将这本书存储在数据库中的状态信息改为"挂失",并更改借阅证的状态为"不可借",直到借阅者支付了丢失本书应赔偿的全部金额后,借阅证的状态才可恢复为"可借"。优先级高输入管理员账号、密码,借阅证件号操作序列管理员登陆系统;输入借阅证号;查找已丢失书目;点击"挂失"按钮,确认挂失;输出弹出提示已挂失对话框补充说明若无管理员账号、密码则不可完成此功能;若借阅证件号无效,则不可完成此功能;若没有该书目项,则不可完成此功能。名称、标识符催还功能功能描述如若借阅者未申请续借而已经借书超过30天,或申请了续借而已经借书超过45天,系统就会在管理员登录后做出相应提醒,列出名单告知有哪些借阅证所借图书应当催还,并根据超期时间长短算出借阅者应缴费用。优先级高输入管理员账号、密码操作序列管理员登陆系统;点击"查看催还名单"按钮查看近日应催还图书以及借阅证件号输出生成近日催还名单补充说明若无管理员账号、密码则不可完成此功能名称、标识符图书入库功能功能描述图书馆的现有图书及后来购入的图书进行图书的入库〔增添图书的编码、书名、购买日期、价格等图书信息优先级输入图书的编码、图书名、购买日期、价格操作序列1.对图书进行编码2.将图书编码、书名、购买日期、价格等图书信息输入数据库3.输出图书的编码、图书名、购买日期、价格补充说明名称、标识符图书信息编辑功能功能描述对系统内的图书信息〔出版社、版次、作者、内容简介等进行编辑处理优先级输入查询最热借阅的图书信息请求图书的编码操作序列1.输入图书的编码2.找到需要编辑的信息3.对信息进行编辑4.保存编辑后的信息输出编辑后的图书信息补充说明名称、标识符图书查找功能功能描述输入图书的名字、关键字、作者等对图书进行查找;也可以分类查找图书优先级输入欲查找的图书的类别或图书编号或图书名称操作序列1.选定整个数据库的信息;2.按照用户输入的信息进行查找3.将查找的图书进行排序输出与用户输入信息相一致的有关图书补充说明功能3.3.4名称、标识符最新入库的图书查询功能功能描述查询显示最新入库的图书信息优先级输入欲查找最新入库的图书操作序列1.选定一段时间内的图书入库记录,得到每本书入库时间的视图;2.将记录按照书的入库时间进行排序,并选取前20名的图书进行显示。输出最新入库的有关图书补充说明名称、标识符图书借阅功能功能描述借阅者满足借阅条件,借阅图书时,管理员对图书状态进行修改优先级输入借阅证号、图书编号操作序列1.输入借阅者的借阅证号2.查询该借阅证号的借阅记录,是否满足借阅条件〔是否还可以借书,是否有到期但尚未归还的图书,借阅证的状态是否正确;3.输入图书编号,添加至该借阅证的当前借阅记录中,记录借阅时间,更改图书的状态——由在馆变为借出,借阅证的还可借书的本数减14.完成图书借阅输出借阅证号,借阅记录,可借书的本数,借到图书的信息〔图书编号、图书名称、借阅时间、应归还时间、实际归还时间补充说明名称、标识符图书归还功能功能描述借阅者按要求归还图书时,管理员对图书状态进行修改借阅者未按要求归还图书时,管理员对图书状态进行修改,并对借阅者进行相应罚款和记录优先级输入借阅证号、图书编号操作序列1.输入借阅者的借阅证号2.查询该借阅证号的当前借阅记录,查看图书编号的借阅和应归还时间,3.记录实际归还时间,更改图书的状态——由借出变为在馆,借阅证的还可借书的本数加14.完成图书归还输出借阅证号,借阅记录,可借书的本数,借到图书的信息〔图书编号、图书名称、借阅时间、归还时间补充说明若实际归还时间在应归还时间之内,则无其他记录若实际归还时间超出应归还时间,则有管理者对借阅者进行相应罚款和记录名称、标识符登录功能功能描述不同用户登录系统,拥有不同的使用权限优先级高输入用户名〔学生为学号,员工为员工号,管理员为用户名,密码〔初始密码与用户名相同操作序列1.输入用户名与密码2.点击登录按钮,登录图书馆管理系统输出登录成功补充说明用户名与密码输入错误,则不能成功登录管理员和用户登录后现实的界面不同功能3.4.4名称、标识符密码修改功能功能描述用户登录之后,可以对密码进行修改优先级中输入原始密码,2次新密码操作序列1.用户进行图书馆管理系统登录2.点击修改密码3.输入原始密码,2次新密码4.点击确定按钮输出修改密码成功补充说明原始密码输入错误或密码不合规范,则密码修改不成功名称、标识符借阅证办理功能功能描述办理新的借阅证,新的借阅证注册,信息入库优先级一般输入新借阅证的所有必备信息,如:借阅证编号,用户的一些基本信息操作序列1.生成新借阅证编号2.输入用户基本信息3.储存于数据库中输出无补充说明名称、标识符借阅证查询功能功能描述查询已办理的借阅证列表,查看借阅证的状态〔及已经借了几本书优先级一般输入借阅证查询的必备信息,如:借阅证编号,或用户的一些基本信息操作序列1.获得用户输入的信息2.查询数据库中借阅证表3.获得借阅证的相关信息。如现借图书数量,是否有未及时归还图书等输出借阅证的相关信息。如现借图书数量,是否有未及时归还图书等。补充说明名称、标识符借阅证挂失功能功能描述挂失借阅证优先级一般输入挂失证查询的必备信息,用户的学号操作序列1.获得用户输入的信息2.查询数据库中借阅证表3.修改借阅证的状态为已挂失输出借阅证的状态改为已挂失补充说明名称、标识符借阅证补办功能功能描述补办借阅证优先级一般输入补办借阅证的必备信息,用户的学号操作序列1.获得用户输入的信息,并生成新借阅证编号2.储存于数据库中输出用户有新的借阅证补充说明名称、标识符借阅证注销功能功能描述注销借阅证优先级一般输入注销借阅证的必备信息,如用户的学号或借阅证的编号操作序列1.获得用户输入的信息2.给用户补办借阅证,将原借阅证信息转移到新借阅证3.删除老借阅证信息。输出用户老的借阅证信息转移到新借阅证上。补充说明名称、标识符借阅证历史查询功能功能描述登录图书馆管理系统后,可以个人查询图书的借阅历史情况,以及图书借出时间和应归还时间,并提醒借阅者应立即归还的图书优先级一般输入借阅证历史查询的必备信息,如:借阅证编号,或用户的一些基本信息操作序列1.获得用户输入的信息2.查询数据库中借阅证表3.获得借阅证的相关信息。如个人查询图书的借阅历史情况,以及图书借出时间和应归还时间,并提醒借阅者应立即归还的图书等输出借阅历史的相关信息。如个人查询图书的借阅历史情况,以及图书借出时间和应归还时间,并提醒借阅者应立即归还的图书等。补充说明4.系统总体结构[画出系统的包图,并简单说明每个包的功能以及负责人]图1:系统包图:包名称包功能Inquiry图书信息查询、最热借阅的图书查询、图书借阅分类统计功能BorrowCard借阅证密码修改、借阅证注销功能bookMAXNumber表示某书的复本数Book实现书的各种功能BookSort指明书是哪种类型,例如哲学、文学等BorrowExtend图书续借、图书催还、图书挂失功能BorrowRecord完成图书馆的基本功能——书籍的借阅归还,以及用户的借阅历史查询、当前借阅情况查询Administration管理者的登录、修改密码表1:包图的简单说明5.1识别类[场景描述、识别出的概念类]场景描述:借阅者凭借阅证<BorrowCard>的借阅证号和密码登录系统,通过图书查询<Inquiry>找到预借图书<Book>,若该书状态显示为"在馆"且"可借",则本借阅证可以在借阅管理员<Administration>处将此书借走,同时生成相应的借阅记录<BorrowRecord>,存入系统。借阅记录加载后,管理员和借阅证持有者都可以浏览已保存的借阅记录,并拥有借阅记录的部分修改权限。借阅证持有者可以管理借阅证,如修改借阅证密码等,也可以在所借图书应当归还日期前续借图书,修改特殊情况下的借阅记录<BorrowExtend>。若借阅记录中已到期图书尚未归还,则管理员可通过系统打印出超期借阅证号名单。若某借阅证持有者在借阅过程中遗失图书,就要告知管理员并由管理员完成图书挂失。对于图书,管理员要在图书入馆前定义其索书号,并确定相同索书号图书的复本数<BookMAXNumber>,还要将图书分类<BookSort>。有关图书借阅或管理的操作结束后,借阅证持有者和管理员都可以退出本系统。过滤后的概念类:用户可以在登陆系统后进行借阅证密码修改;用户也可以查询借阅记录,查看用户现在借了几本书及每本书借出时间和应归还时间;用户登陆系统后,亦可进行借阅历史查询;后台管理员在用户离校后,登陆后台进行用户注销。识别出的概念类:用户,借阅证,借阅记录,管理员。用户登录系统,对书目进行简单检索,选择检索类型,输入关键字进行检索,可获得书的详细信息〔作者、出版社、内容简介、版次、存放地点、图书状态〔在馆/出借和最快可借阅时间。另外用户可以查询最热借阅图书,此排行以2个月内借阅记录为依据。最后用户可以按照图书类别,查询某类别图书的最热借阅排行,此排行同样以2个月内借阅记录为依据。识别出的概念类:用户,查询,借阅记录,图书类别。管理员将现有及后来购入的图书进行图书入库〔增添图书的编码、书名、购买日期、价格等图书信息。管理员对系统内的图书信息〔出版社、版次、作者、内容简介等进行编辑处理。用户输入图书的名字、关键字、作者等对图书进行查找;也可以分类查找图书。用户查询显示最新入库的图书信息。识别出的概念类:用户,图书,管理员。场景描述1:图书馆管理员登录图书管理系统之后,借阅者告诉图书管理员其借书证卡号,图书馆管理员点击新增借阅记录后,输入相应的借阅证号、图书编号和当前借阅时间,系统会首先查询书籍的状态和借阅证的状态,及是否有到期应还而未还的图书,判断是否可借,如果条件都符合,则显示新增的借阅记录,其中应归还时间是在当前借阅时间加30天后自动生成的,若有条件不满足,则显示为什么不能进行书籍正常借阅的原因。场景描述2:图书馆管理员登录图书管理系统之后,借阅者告诉图书管理员其借书证卡号,图书馆管理员点击图书归还后,输入相应的借阅证号、图书编号找到相应的借阅记录,更新数据库,输入归还时间,系统会根据归还时间与应归还时间作比较,判断是否超期,若超期,则需借阅者缴纳相应的罚款,同时,将图书的状态更新为在馆。场景描述3:图书馆管理员或借阅者可根据借阅证号查询,该借阅者的所有借阅历史记录。场景描述4:图书馆管理员或借阅者可根据图书编号查询,该图书被借阅的所有借阅历史记录。场景描述5:图书馆管理员或借阅者可根据借阅证号查询该借阅者当前的借阅记录,反映借阅者当前借阅的书籍信息,借阅时间和借出应还时间,提醒借阅者按时归还图书。识别出的概念类:管理员,借书证,借阅记录,图书。2.2域模型[域模型简单说明、画域模型图]添加了关系和属性的域模型如下图:在场景描述中共抽出了8个概念类,依次为BorrowCard、Inquiry、Book、Administration、BorrowRecord、BorrowExtend、BookMAXNumber、BookSort.3.类图设计3.1以数据库模式的实体类图[画出整个系统所有的实体类的类图,并简单说明,小组成员可共同完成]3.1子功能类图由于子功能只有2个,故合并之画在如下类图中。图2:1.表现层BorrowCardForm:与用户进行交互,供用户进行密码修改及管理员注销离校用户。用于接收用户输入的新密码或管理员检索用户命令及点击注销用户按钮进行用户注销。2.中间业务层BorrowCardBLL:受Form层的调用进行业务处理,业务处理通过调用DAL层的数据库访问函数实现。3.数据访问层BorrowCardDAL:直接访问数据库,实现对信息的读取和修改。访问数据库中的表BorrowCard表获取和修改信息。图2:图书信息查询、最热借阅的图书查询、图书借阅分类统计功能类图表现层InquiryForm:位于最外层〔最上层,供用户进行简单检索、最热借阅、分类最热借阅的查询。用于接收用户输入的检索数据或按钮的点击及呈现书目信息。中间业务层InquiryBLL:负责据Form层的要求进行数据检索。调用DAL层的数据库访问函数实现业务。数据访问层InquiryDAL:实现对信息的读取操作。访问数据库中的表BorrowRecord及Book表获取信息。3.2子功能一类图图2-1:图书信息查询功能类图表现层InquiryForm:接收用户输入的检索数据。中间业务层InquiryBLL:负责据Form层的要求进行数据检索。数据访问层InquiryDAL:实现对信息的读取操作。访问数据库中的表Book表获取书本详细信息,访问BorrowRecord表进行书目借出应还时间信息获取。3.2子功能二类图图2-2:最热借阅的图书查询功能类图表现层InquiryForm:接收用户点击按钮时提交的类别数据。中间业务层InquiryBLL:负责据Form层的要求进行数据检索。数据访问层InquiryDAL:实现对信息的读取操作。访问BorrowRecord表进行特定类别书目借阅量的查询,获取访问数据库中的表Book表获取书本详细信息,供用户查看。3.2子功能三类图图2-3:图书最热借阅分类统计功能类图表现层InquiryForm:接收用户点击按钮时提交的类别数据。中间业务层InquiryBLL:负责据Form层的要求进行数据检索。数据访问层InquiryDAL:实现对信息的读取操作。访问BorrowRecord表进行书目借阅量的查询,获取访问数据库中的表Book表获取书本详细信息,供用户查看。1.表现层BookInformationForm:与用户和管理员进行交互,供用户根据信息查找图书及分类查找图书,管理员对图书进行入库及修改图书信息的操作。2.中间业务层BookInformationBLL:受Form层的调用进行业务处理,业务处理通过调用DAL层的数据库访问函数实现。3.数据访问层BookInformationDAL:直接访问数据库,实现对信息的读取和修改。访问数据库中的表Book、BookSort、BookMAXNumber表获取和修改信息。1.表现层BookRecordForm:用户和管理员通过图书管理系统和网上平台的界面类直观的进行相关的操作,供用户输入卡号查询自己所有的借阅历史或是查询自己当前的借阅情况,看看自己是否有书快到归还期,管理员则通过界面进行书籍的借阅归还,修改相应的状态记录。2.中间业务层BookRecordBLL:受Form层的调用进行业务处理,业务处理通过调用DAL层的数据库访问函数实现,当触发了BookRecordForm上的一个按钮时,就调用BookRecordBLL进行相关的业务处理,进一步调用BookRecordDAL层的数据库的进行数据库的增改查询。3.数据访问层BookRecordDAL:直接访问数据库,实现对信息的读取和修改。访问数据库中的表BorrowRecord、Book、BorrowCard表获取和修改信息。图中BorrowExtend、BorrowExtendDAL、BorrowExtendBLL、BorrowExtendForm依次为实体类、数据访问类、业务逻辑类和界面类。主要实现续借、借阅超期和图书挂失记录的管理。数据库逻辑设计4.物理设计4.0表汇总表名功能说明表A:Book存储具体的一本书特有的信息表B:BookDetail存储某种书共有的信息表C:BookMAXNumber存储某种书所拥有的本数表D:BookSort存储书的每种类型的具体信息表E:BorrowCard存储借阅证卡号和借阅者信息表F:BorrowExtend主要实现续借、借阅超期和图书挂失记录的管理表G:BorrowRecord存储图书馆借阅图书的基本信息的表,进行图书馆的借阅管理和借阅信息的记录,方便对借阅信息进行查询统计表H:Administration存储图书馆管理系统的管理员的信息,是管理员可以登入系统进行相应权限的操作视图A:BookInfo用于显示相同索书号的图书的基本信息,如书名、作者、出版机构等。视图B:BookDetailInfo用于显示每本书的条码号,具体存放地点,副本数,状态<是否在馆,借出应还日期>。系统各功能模块实现的说明2.1.模块A提示:开发人员根据"编程计划"编写软件的代码,并随时记录编程技术、问题与对策、心得体会等等,产生《编程文档》〔类似于编程日记。程序名称图书借阅功能描述图书管理员在登录图书馆管理系统之后,可以帮助借阅者进行图书借阅记录编程技术、问题与对策、心得体会等等UI层newborrowusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingWindowsFormsApplication_BookManagement.BLL;usingWindowsFormsApplication_BookManagement.Model;usingSystem.Data.SqlClient;namespaceWindowsFormsApplication_BookManagement.UI{publicpartialclassnewborrow:Form{BorrowRecordBLLborrowRecordBLL;BorrowCardBLLborrowCardBLL;BookBLLbookBLL;BorrowRecordborrRecord;publicnewborrow<>{InitializeComponent<>;borrowRecordBLL=newBorrowRecordBLL<>;borrowCardBLL=newBorrowCardBLL<>;bookBLL=newBookBLL<>;label4.Text=DateTime.Now.ToString<>;label6.Text=DateTime.Now.AddDays<30>.ToString<>;}privatevoidnewborrow_Load<objectsender,EventArgse>{//TODO:这行代码将数据加载到表"bookManageDataSet4.BorrowRecord"中。您可以根据需要移动或移除它。//this.borrowRecordTableAdapter1.Fill<this.bookManageDataSet4.BorrowRecord>;//TODO:这行代码将数据加载到表"bookManageDataSet3.BorrowRecord"中。您可以根据需要移动或移除它。//this.borrowRecordTableAdapter.Fill<this.bookManageDataSet3.BorrowRecord>;}privatevoidbutton1_Click<objectsender,EventArgse>{stringcardID=textBox1.Text.ToString<>.Trim<>;stringbookCode=textBox2.Text.ToString<>.Trim<>;DateTimeborrowTime=DateTime.Now;DateTimeshouldReturnTime=DateTime.Now.AddDays<30>;DateTimereturnTime=DateTime.MinValue;borrRecord=newBorrowRecord<cardID,bookCode,borrowTime,returnTime,shouldReturnTime>;intins1=borrowRecordBLL.insertBorrowRecord<borrRecord>;intins2=borrowCardBLL.delBorrowedCount<cardID>;intins3=bookBLL.updateBookState<bookCode,"已借出">;intins4=bookBLL.addBorrowCount<bookCode>;if<ins1==1&&ins2==1&&ins3==1&&ins4==1>MessageBox.Show<"已成功新增借阅记录!">;elseMessageBox.Show<"新增借阅记录失败!">;}privatevoidbutton3_Click<objectsender,EventArgse>{textBox1.Text="";textBox2.Text="";}privatevoidbutton2_Click<objectsender,EventArgse>{BorrowCardChangeborrcardchange=newBorrowCardChange<>;borrcardchange.Show<>;}privatevoidbookreturnTooStripMenuItem_Click<objectsender,EventArgse>{bookreturnbookreturn1=newbookreturn<>;bookreturn1.Show<>;this.Hide<>;}privatevoidnewborrowToolStripMenuItem_Click<objectsender,EventArgse>{newborrownewborrow1=newnewborrow<>;newborrow1.Show<>;this.Hide<>;}privatevoid图书催还ToolStripMenuItem_Click<objectsender,EventArgse>{reminderremind=newreminder<>;remind.Show<>;}privatevoid图书挂失ToolStripMenuItem_Click<objectsender,EventArgse>{lossreportlossreport=newlossreport<>;lossreport.Show<>;this.Hide<>;}privatevoid退出ToolStripMenuItem1_Click<objectsender,EventArgse>{MessageBox.Show<"已退出!">;Homeh=newHome<>;h.Show<>;this.Hide<>;}privatevoid图书入库ToolStripMenuItem_Click<objectsender,EventArgse>{AddBook_1ad1=newAddBook_1<>;ad1.Show<>;this.Hide<>;}privatevoid办理借阅证ToolStripMenuItem_Click<objectsender,EventArgse>{BorrowCardManageboorowcardnew=newBorrowCardManage<>;boorowcardnew.Show<>;this.Hide<>;}privatevoid注销借阅证ToolStripMenuItem_Click<objectsender,EventArgse>{BorrowCardCancelboorowcardcal=newBorrowCardCancel<>;boorowcardcal.Show<>;this.Hide<>;}privatevoid编辑借阅证状态ToolStripMenuItem_Click<objectsender,EventArgse>{BorrowCardChangeborrcardchange=newBorrowCardChange<>;borrcardchange.Show<>;this.Hide<>;}}}BLL层BorrowRecordBLL中的usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingWindowsFormsApplication_BookManagement.DAL;usingSystem.Data;usingSystem.Data.SqlClient;usingWindowsFormsApplication_BookManagement.Model;namespaceWindowsFormsApplication_BookManagement.BLL{classBorrowRecordBLL{privateBorrowRecordDALborrowRecordDAL;publicBorrowRecordBLL<>{borrowRecordDAL=newBorrowRecordDAL<>;}publicintinsertBorrowRecord<BorrowRecordborrRecord>{returnborrowRecordDAL.insertBorrowRecord<borrRecord>;}}}BookBLL中的publicintaddBorrowCount<stringbookCode>{returnbookDAL.addBorrowCount<bookCode>;}publicintupdateBookState<stringbookCode,stringbookState>{returnbookDAL.updateBookState<bookCode,bookState>;}BorrowCardBLL中的publicintdelBorrowedCount<stringcardID>{returnborrowCardDAL.delBorrowedCount<cardID>;}DAL层BorrowRecordDAL中的usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingWindowsFormsApplication_BookManagement.Model;usingSystem.Data;namespaceWindowsFormsApplication_BookManagement.DAL{classBorrowRecordDAL{DBHelperdbHelper;publicBorrowRecordDAL<>{dbHelper=newDBHelper<>;}publicintinsertBorrowRecord<BorrowRecordborrRecord>{stringsql=string.Format<"insertinto[BorrowRecord]<CardID,BookCode,BorrowTime,ShouldReturnTime>values<'{0}','{1}','{2}','{3}'>",borrRecord.CardID,borrRecord.BookCode,borrRecord.BorrowTime,borrRecord.ShouldReturnTime>;//DateTime.Now.Date.ToShortDateString<>,DateTime.Now.AddDays<7>.ToShortDateString<>returndbHelper.ExecuteNonQuery<sql>;}}}BookDAL中的publicintgetBorrowCount<stringbookCode>{intborrowCount=0;stringqueryStr=string.Format<"select[BookDetail].BorrowCountfrom[BookDetail],[Book]where[BookDetail].BookNumber=[Book].BookNumberand[Book].BookCode='{0}'",bookCode>;DataTabledt=dbHelper.ExecuteQuery<queryStr>;if<dt.Rows.Count!=0>{borrowCount=Convert.ToInt32<dt.Rows[0]["BorrowCount"].ToString<>.Trim<>>;}returnborrowCount;}publicintaddBorrowCount<stringbookCode>{intborrowCount=getBorrowCount<bookCode>+1;stringupdateSql=string.Format<"update[BookDetail]set[BookDetail].BorrowCount='{0}'from[Book]where[BookDetail].BookNumber=[Book].BookNumberand[Book].BookCode='{1}'",borrowCount,bookCode>;returndbHelper.ExecuteNonQuery<updateSql>;}publicintupdateBookState<stringbookCode,stringbookState>{stringupdateSql2=string.Format<"update[Book]setBookState='{0}'whereBookCode='{1}'",bookState,bookCode>;returndbHelper.ExecuteNonQuery<updateSql2>;}BorrowCardDAL里的publicintgetBorrowedCount<stringcardID>{intborrowedCount=0;stringqueryStr=string.Format<"select*from[BorrowCard]whereCardID='{0}'",cardID>;DataTabledt=dbHelper.ExecuteQuery<queryStr>;if<dt.Rows.Count!=0>{borrowedCount=Convert.ToInt32<dt.Rows[0]["BorrowedCount"].ToString<>.Trim<>>;}returnborrowedCount;}publicintdelBorrowedCount<stringcardID>{intborrowedCount=getBorrowedCount<cardID>-1;stringupdateSql=string.Format<"update[BorrowCard]setBorrowedCount='{0}'wherecardID='{1}'",borrowedCount,cardID>;returndbHelper.ExecuteNonQuery<updateSql>;}MODEL层BorrowRecordusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceWindowsFormsApplication_BookManagement.Model{publicclassBorrowRecord{privatestringcardID;privatestringbookCode;publicDateTimeborrowTime;publicDateTimereturnTime;publicDateTimeshouldReturnTime;publicBorrowRecord<>{}publicBorrowRecord<stringcardID,stringbookCode,DateTimeborrowTime,DateTimereturnTime,DateTimeshouldReturnTime>{this.cardID=cardID;this.bookCode=bookCode;this.borrowTime=borrowTime;this.returnTime=returnTime;this.shouldReturnTime=shouldReturnTime;}//属性publicstringCardID{get{returncardID;}set{cardID=value;}}publicstringBookCode{get{returnbookCode;}set{bookCode=value;}}publicDateTimeBorrowTime{get{returnborrowTime;}set{borrowTime=value;}}publicDateTimeReturnTime{get{returnreturnTime;}set{returnTime=value;}}publicDateTimeShouldReturnTime{get{returnshouldReturnTime;}set{shouldReturnTime=value;}}}}新增借阅记录,首先需要满足一定的条件,这就需要点击查询借阅证状态按钮,输入借阅证号,显示借阅者的借阅证状态及可借书数〔初始是借阅证的可借书数都为5,注销和欠费时,会将可借书数置为0,当借阅证状态为可借,可借书数>=1时,即可在newborrow中办理借阅,这里我没有查询图书状态是因为考虑到实际情况,借阅者拿着图书办理借阅,图书的借阅状态应为在馆,于是省略了这一功能。因为新增借阅功能是图书馆管理系统中比较重要和基本的功能,因此新增图书功能的实现,并不单一是对数据库中BorrowRecord这张表进行,在界面中按下一个新增借阅按钮,就要在后台对多张表进行操作,首先是在BorrowRecord中会新增一条借阅证号与书号做复合主键的记录,利用DateTime.Now将系统当前时间插入borrowTime列中,利用DateTime.Now.AddDays<30>将系统当前时间加上30天之后的时间插入shouldReturnTime列中,利用DateTime.MinValue将NULL插入returnTime列中,其次需要引用BookBLL和BorrowCardBLL完成借阅记录新增的同时,将BookState改为借出,同时在BookDetail表中将书的借阅次数加1,方便最热借阅功能的实现,将BorrowCard这张表中的可借书数减1,。因为一次执行的SQL语句较多而且之间牵扯的很多数据是datetime类型的,因此在一开始进行调试的时候,出现了错误,并不知道是哪,一条语句出现了错误,必须对数据库改变的4张表同时进行查看,看哪一张表未出现变化,在查看对应的语句,最容易出现错误的是stringupdateSql=string.Format<"update[BookDetail]set[BookDetail].BorrowCount='{0}'from[Book]where[BookDetail].BookNumber=[Book].BookNumberand[Book].BookCode='{1}'",borrowCount,bookCode>,因为需要通过BookCode将Book和BookDetail表连起来然后通过BookCode查询到对应的记录在BookDetail表中更改BorrowCount,前面变成的时候sql语句中一直没有写from[Book],程序怎么调都不对,之间还将语句改成过select嵌套的形式,也没能实现,sql语句改了又改,最终调试时出现新增借阅记录成功的时候,非常兴奋,又看了看数据库的4张表,也都实现了更改,知道终于完成了图书借阅的操作。模块B提示:开发人员根据"编程计划"编写软件的代码,并随时记录编程技术、问题与对策、心得体会等等,产生《编程文档》〔类似于编程日记。程序名称图书归还功能描述管理员使用图书馆管理系统可以帮助借阅者实现图书归还的操作记录编程技术、问题与对策、心得体会等等UI层bookreturnusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingWindowsFormsApplication_BookManagement.BLL;usingWindowsFormsApplication_BookManagement.Model;usingSystem.Data.SqlClient;namespaceWindowsFormsApplication_BookManagement.UI{publicpartialclassbookreturn:Form{BorrowRecordBLLborrowRecordBLL;BorrowCardBLLborrowCardBLL;BookBLLbookBLL;publicbookreturn<>{InitializeComponent<>;borrowRecordBLL=newBorrowRecordBLL<>;borrowCardBLL=newBorrowCardBLL<>;bookBLL=newBookBLL<>;}privatevoidbookreturn_Load<objectsender,EventArgse>{//TODO:这行代码将数据加载到表"bookManageDataSet2.BorrowRecord"中。您可以根据需要移动或移除它。//this.borrowRecordTableAdapter.Fill<this.bookManageDataSet2.BorrowRecord>;}privatevoidbutton1_Click<objectsender,EventArgse>{stringcardID=textBox1.Text.ToString<>;stringbookCode=textBox2.Text.ToString<>;DateTimereturnTime=DateTime.Now;DataTablebookreturnDT;borrowRecordBLL.updateReturnTime<cardID,bookCode,returnTime>;intins2=borrowCardBLL.addBorrowedCount<cardID>;intins3=bookBLL.updateBookState<bookCode,"可借">;if<ins2==1&&ins3==1>MessageBox.Show<"已成功归还图书!">;elseMessageBox.Show<"更新借阅记录失败!">;bookreturnDT=borrowRecordBLL.getBorrowRecordDT<textBox1.Text.Trim<>,textBox2.Text.Trim<>>;if<bookreturnDT!=null>dataGridView1.DataSource=bookreturnDT.DefaultView;elsedataGridView1.DataSource=null;}privatevoidbutton2_Click<objectsender,EventArgse>{DataTablebookreturnDT;if<!string.IsNullOrEmpty<textBox1.Text.Trim<>>&&!string.IsNullOrEmpty<textBox2.Text.Trim<>>>{bookreturnDT=borrowRecordBLL.getBorrowRecordDT<textBox1.Text.Trim<>,textBox2.Text.Trim<>>;}else{MessageBox.Show<"请输入借书证号及书号!">;bookreturnDT=null;}if<bookreturnDT!=null>dataGridView1.DataSource=bookreturnDT.DefaultView;elsedataGridView1.DataSource=null;}privatevoidnewborrowToolStripMenuItem_Click<objectsender,EventArgse>{newborrownewborrow1=newnewborrow<>;newborrow1.Show<>;this.Hide<>;}privatevoidbookreturnTooStripMenuItem_Click<objectsender,EventArgse>{bookreturnbookreturn1=newbookreturn<>;bookreturn1.Show<>;this.Hide<>;}privatevoid图书催还ToolStripMenuItem_Click<objectsender,EventArgse>{reminderremind=newreminder<>;remind.Show<>;}privatevoid图书挂失ToolStripMenuItem_Click<objectsender,EventArgse>{lossreportlossreport=newlossreport<>;lossreport.Show<>;this.Hide<>;}privatevoid退出ToolStripMenuItem1_Click<objectsender,EventArgse>{MessageBox.Show<"已退出!">;Homeh=newHome<>;h.Show<>;this.Hide<>;}privatevoid图书入库ToolStripMenuItem_Click<objectsender,EventArgse>{AddBook_1ad1=newAddBook_1<>;ad1.Show<>;this.Hide<>;}privatevoid办理借阅证ToolStripMenuItem_Click<objectsender,EventArgse>{BorrowCardManageboorowcardnew=newBorrowCardManage<>;boorowcardnew.Show<>;this.Hide<>;}privatevoid注销借阅证ToolStripMenuItem_Click<objectsender,EventArgse>{BorrowCardCancelboorowcardcal=newBorrowCardCancel<>;boorowcardcal.Show<>;this.Hide<>;}privatevoid编辑借阅证状态ToolStripMenuItem_Click<objectsender,EventArgse>{BorrowCardChangeborrcardchange=newBorrowCardChange<>;borrcardchange.Show<>;this.Hide<>;}}}BLL层BorrowRecordBLL中的usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingWindowsFormsApplication_BookManagement.DAL;usingSystem.Data;usingSystem.Data.SqlClient;usingWindowsFormsApplication_BookManagement.Model;namespaceWindowsFormsApplication_BookManagement.BLL{classBorrowRecordBLL{privateBorrowRecordDALborrowRecordDAL;publicBorrowRecordBLL<>{borrowRecordDAL=newBorrowRecordDAL<>;}publicDataTablegetBorrowRecordDT<stringcardID,stringbookCode>{returnborrowRecordDAL.getBorrowRecordDT<cardID,bookCode>;}publicintupdateReturnTime<stringcardID,stringbookCode,DateTimeReturnTime>{returnborrowRecordDAL.updateReturnTime<cardID,bookCode,ReturnTime>;}}}BookBLL中的publicintupdateBookState<stringbookCode,stringbookState>{returnbookDAL.updateBookState<bookCode,bookState>;}BorrowCardBLL中的publicintaddBorrowedCount<stringcardID>{returnborrowCardDAL.addBorrowedCount<cardID>;}DAL层BorrowRecordDAL中的usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingWindowsFormsApplication_BookManagement.Model;usingSystem.Data;namespaceWindowsFormsApplication_BookManagement.DAL{classBorrowRecordDAL{DBHelperdbHelper;publicBorrowRecordDAL<>{dbHelper=newDBHelper<>;}publicDataTablegetBorrowRecordDT<stringcardID,stringbookCode>{stringqueryStr=string.Format<"selecttop1CardIDas借阅证,BookCodeas书号,BorrowTimeas借阅时间,ShouldReturnTimeas借出应还时间,ReturnTimeas归还时间fromBorrowRecordwherecardID='{0}'andBookCode='{1}'orderbyBorrowIDdesc",cardID,bookCode>;DataTabledt=dbHelper.ExecuteQuery<queryStr>;if<dt.Rows.Count==0>{returnnull;}else{returndt;}}publicintupdateReturnTime<stringcardID,stringbookCode,DateTimereturnTime>{stringupdateSql=string.Format<"update[BorrowRecord]setReturnTime='{0}'wherecardID='{1}'andbookCode='{2}'",returnTime,cardID,bookCode>;returndbHelper.ExecuteNonQuery<updateSql>;}publicintupdateShouldReturnTime<stringcardID,DateTimeshouldReturnTime>{stringupdateSql=string.Format<"update[BorrowRecord]setShouldReturnTime='{0}'wherecardID='{1}'",shouldReturnTime,cardID>;returndbHelper.ExecuteNonQuery<updateSql>;}}}BookDAL中的publicintupdateBookState<stringbookCode,stringbookState>{stringupdateSql2=string.Format<"update[Book]setBookState='{0}'whereBookCode='{1}'",bookState,bookCode>;returndbHelper.ExecuteNonQuery<updateSql2>;}BorrowCardDAL中的publicintgetBorrowedCount<stringcardID>{intborrowedCount=0;stringqueryStr=string.Format<"select*from[BorrowCard]whereCardID='{0}'",cardID>;DataTabledt=dbHelper.ExecuteQuery<queryStr>;if<dt.Rows.Count!=0>{borrowedCount=Convert.ToInt32<dt.Rows[0]["BorrowedCount"].ToString<>.Trim<>>;}returnborrowedCount;}publicintaddBorrowedCount<stringcardID>{intborrowedCount=getBorrowedCount<cardID>+1;stringupdateSql=string.Format<"update[BorrowCard]setBorrowedCount='{0}'wherecardID='{1}'",borrowedCount,cardID>;returndbHelper.ExecuteNonQuery<updateSql>;}MODEL层BorrowRecordusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceWindowsFormsApplication_BookManagement.Model{publicclassBorrowRecord{privatestringcardID;privatestringbookCode;publicDateTimeborrowTime;publicDateTimereturnTime;publicDateTimeshouldReturnTime;publicBorrowRecord<>{}publicBorrowRecord<stringcardID,stringbookCode,DateTimeborrowTime,DateTimereturnTime,DateTimeshouldReturnTime>{this.cardID=cardID;this.bookCode=bookCode;this.borrowTime=borrowTime;this.returnTime=returnTime;this.shouldReturnTime=shouldReturnTime;}//属性publicstringCardID{get{returncardID;}set{cardID=value;}}publicstringBookCode{get{returnbookCode;}set{bookCode=value;}}publicDateTimeBorrowTime{get{returnborrowTime;}set{borrowTime=value;}}publicDateTimeReturnTime{get{returnreturnTime;}set{returnTime=value;}}publicDateTimeShouldReturnTime{get{returnshouldReturnTime;}set{shouldReturnTime=value;}}}}图书归还功能也是图书馆管理系统中比较重要和基本的功能,图书归还功能的实现与新增图书借阅功能是

温馨提示

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

评论

0/150

提交评论