图书馆管理系统 罗磊.docx
- 文档编号:5396754
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:17
- 大小:142.79KB
图书馆管理系统 罗磊.docx
《图书馆管理系统 罗磊.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统 罗磊.docx(17页珍藏版)》请在冰豆网上搜索。
图书馆管理系统罗磊
《MS实训》报告
图书馆管理信息系统
实训方式校内
班级计本0601
姓名罗磊
学号200611149
指导老师卢东方、张佳
一、设计目的
通过对图书管理信息系统的系统分析、系统设计、编码、调试等工作的实践,了解管理信息系统的一般设计和实现思路,从Windows或Web两个不同切入点熟悉和掌握软件设计和实现的一般方法,深入了解SQLServer2005数据库设计的基本理论及方法。
该软件系统的编写要求具备C#、SQLServer、XML、ADO.NET等多种程序设计工具和技术,并能熟练地加以综合应用。
通过此次具有较强的系统性和综合性,以软件工程的标准来规范编程行为,掌握多种开发和测试工具,熟练灵活地应用所学的知识,为将来走向社会打下良好的基础。
2、开发环境介绍
(1)开发环境:
VisualStudio.NET2005+SQLServer2005
(2)SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
SQLServer2005数据引擎是本企业数据管理解决方案的核心。
此外SQLServer2005结合了分析、报表、集成和通知功能。
与MicrosoftVisualStudio、MicrosoftOfficeSystem以及新的开发工具包(包括BusinessIntelligenceDevelopmentStudio)的紧密集成使SQLServer2005与众不同。
无论您是开发人员、数据库管理员、信息工作者还是决策者,SQLServer2005都可以为您提供创新的解决方案,帮助您从数据中更多地获益。
(3)S.NET2005是一个相当复杂的开发工具,几乎可以满足所有的开发需要。
此外还有智能提示,错误跟踪等功能和一些不为人知的功能。
.NET整合了许多资源和技术(包括Microsoft的和非Microsoft的),形成一个功能众多的开发平台;令人瞩目的时.NET的创新功能,除了新的产品以外,.NET一系列新技术将对未来的软件和软件模式和技术产生重大影响。
建立在.NETFramework之上的众多程序设计语言除了可以获得.NET中庞大的资源以外,.ENT还支持创建混合语言的解决方案。
(4)C#可以说是.ENT下的开发利器, C#是可用于创建运行在.NETCLR上的应用程序语言之一,它从C和C++语言演化而来,是microsoft专门为使用.NET平台而创建的。
因为C#是近期发展起来的,所以吸取了以前的教训,考虑了其他语言的许多有点,并解决了它们的问题。
使用C#开发应用程序比使用C++简单,因为其语法比较简单。
但是,C#是一种强大的语言,在C++中能完成的任何利用C#也能完成。
二、需求分析
(1)设计要求
1.实现读者的借阅/归还/续借图书功能,包含超期罚款,考虑软件的负荷要求和操作简便。
2.实现图书信息管理,包括书号,图书编号,书名,作者,出版社,图书类别
3.实现用户管理,包括系统管理员,图书管理员,读者,借阅管理员,读者管理员,不同用户类别的权限管理。
4.实现信息浏览,不同的身份查询的内容应该有所差异。
5.读者的简单管理功能,读者查询,修改个人信息功能。
6.实现统计功能,按不同分类对图书馆书籍流动进行统计。
(2)功能模块设计
整体模块设计
图一
功能模块设计
图二
图三
4、总体设计
(1)数据库的设计
数据库命名为DBLibrary,具有主数据文件和日志文件各一个。
数据库具有七个表对象,分别为读者类别表(tb_ReaderType)、读者信息表(tb_Reader)、读书信息表(tb_Books)、借阅信息表(tb_Borrow)、用户表(tb_User)、罚款缴纳表(tb_CaptureFine)和权限表(tb_UserPriv)。
其中tb_ReaderType和tb_Reader有主外键约束,tb_Reader和tb_Borrow有主外键约束,tb_UserPriv和tb_User有主外键约束,tb_Books和tb_Borrow有主外键约束,tb_CaptureFine和tb_Borrow及tb_Reader有主外键约束。
createdatabaseDBLibrary
onprimary
(NAME='Library',
FILENAME='D:
\DBLibrary.mdf',
SIZE=2mb,
FILEGROWTH=1
)
LOGON
(NAME='Library_log',
FILENAME='D:
\DBLibrary.ldf',
SIZE=2mb,
FILEGROWTH=10%
)
Go
--创建读者类别表
createtableReaderType
(TypeNamenvarchar(10)notnull,
CanLendQtyintnotnull,
CanLendMonthintnotnull,
CanContinueTimesintnotnull,
FineRatenumeric(10,2)notnull,
DateValidsmallIntnotnull,
primarykey(TypeName)
)
--创建读者还信息表
createtableReader
(rdIDchar(8)notnull,
rdNamenvarchar(20)notnull,
rdPwdchar(32)notnulldefault'123456',
rdSexnchar
(1)notnulldefault'男',
rdTypenvarchar(8)notnull,
rdDeptnvarchar(20)notnull,
rdDateRegsmalldatetimenotnull,
IsValidbitnotnulldefault0,
primarykey(rdID)
)
--创建图书信息表
createtableBooks
(bkCodechar(10)notnull,
bkISBNchar(16)notnull,
bkNamenvarchar(50)notnull,
bkClassvarchar(20)notnull,
bkLanguagesmallInt,
bkAuthornvarchar(30)notnull,
bkPressnvarchar(50)notnull,
bkDatePresssmalldatetime,
bkPagesint,
bkPricenumeric(10,2)notnull,
bkDateInsmalldatetimenotnulldefaultGetDate(),
bkCoverimage,
bkBrieftext,
IsExistbitdefault1,
primarykey(bkCode)
)
--创建借阅信息表
createtableBorrow
(rdIDchar(8)notnull,
bkCodechar(10)notnull,
ContinueTimesintdefault0,
DateLendsmalldatetimedefaultGetDate(),
DateReturnsmalldatetime,
OverDaysintdefault0,
FineMoneynumeric(10,2)default0,
IsReturnbitdefault0,
OperatorLendnvarchar(20),
OperatorRetnvarchar(20),
primarykey(rdID,bkCode),
foreignkey(bkCode)referencesBooks(bkCode),
foreignkey(rdID)referencesReader(rdID)
)
--创建用户表
createtableUsers
(UserIDchar(8)notnull,
UserNamenvarchar(20)notnull,
UserPwdchar(32)notnull,
UserRolenvarchar(20)notnull,
primarykey(UserID)
)
--创建罚款缴纳表
createtableCaptureFine
(DateReturnsmalldatetimenotnull,
rdIDchar(8)notnull,
bkCodechar(10)notnull,
bkNamenvarchar(50)notnull,
OverDaysintnotnull,
FineMoneynumeric(10,2)notnull,
DateCapturesmalldatetime,
OperatorFinenvarchar(20),
IsCapturebitdefault0,
primarykey(DateReturn,rdID,bkCode)
)
--创建权限表
createtableUserPriv
(UserRolenvarchar(20)notnull,
UserPrivvarchar(100),
primarykey(UserRole)
)
(2)系统流程图的初步实现
(1)借书初步流程图
图四
(2)还书初步流程图
图五
(3)修改密码初步流程图
图六
5、详细设计和实现
(1)添加图书部分
publicstaticvoidAddBook(Bookbook)
{
stringaddStr="INSERTINTOtb_Books(bkCode,bkISBN,bkName,bkClass,bkLanguage,bkAuthor,bkPress,bkDatePress,bkPage,bkPrice,bkDateIn,bkCover,bkBrief,IsExist)VALUES(@Code,@ISBN,@Name,@Class,@Language,@Author,@Press,@DatePress,@Page,@Price,@DateIn,@Cover,@Brief,@isExist)";
SqlParameter[]pars={
Database.ProductParameter("@Code",SqlDbType.Char,book.BKCode),
Database.ProductParameter("@ISBN",SqlDbType.Char,book.BKISBN),
Database.ProductParameter("@Name",SqlDbType.NVarChar,book.BKName),
Database.ProductParameter("@Class",SqlDbType.VarChar,book.BKClass),
Database.ProductParameter("@Language",SqlDbType.SmallInt,book.BKLanguage),
Database.ProductParameter("@Author",SqlDbType.NVarChar,book.BKAuthor),
Database.ProductParameter("@Press",SqlDbType.NVarChar,book.BKPress),
Database.ProductParameter("@DatePress",SqlDbType.SmallDateTime,book.BKDatePress),
Database.ProductParameter("@Page",SqlDbType.Int,book.BKPage),
Database.ProductParameter("@Price",SqlDbType.Decimal,book.BKPrice),
Database.ProductParameter("@DateIn",SqlDbType.SmallDateTime,book.BKDateIn),
Database.ProductParameter("@Cover",SqlDbType.Image,book.BKCover),
Database.ProductParameter("@Brief",SqlDbType.Text,book.BKBrief),
Database.ProductParameter("@isExist",SqlDbType.Bit,book.IsExist?
1:
0)
};
Databasedb=newDatabase();
db.ExecuteCmd(addStr,pars);
db.Dispose();
}
(2)借阅图书部分
publicvoidBorrowBook(Bookbook)
{
//计算是否欠款或超过借书最大限度值
if(this.borrowedList.Count { stringupdateTxt="UPDATEtb_BookInfoSETIsLend=1WHEREBookID=@bookId"; stringinsertTxt="INSERTINTOtb_LendListVALUES(@accNum,@bookId,@borrowTime,@returnTime,0)"; SqlParameter[]updateParC={Database.ProductParameter("@bookId",SqlDbType.Int,book.BookId)}; SqlParameter[]insertParC={ Database.ProductParameter("@accNum",SqlDbType.VarChar,this.AccountNumber), Database.ProductParameter("@bookId",SqlDbType.Int,book.BookId), Database.ProductParameter("@borrowTime",SqlDbType.DateTime,DateTime.Now), Database.ProductParameter("@returnTime",SqlDbType.DateTime,DateTime.Now.AddDays(30)), }; Databasedb=newDatabase(ConfigurationManager.ConnectionStrings["LibrarySystem"].ConnectionString); db.OpenDatabase(); db.UpdateRecord(updateTxt,updateParC); db.UpdateRecord(insertTxt,insertParC); db.Dispose(); this.borrowedList.Add(book); } } (3)续借图书部分 publicvoidDelayReturnTime(Bookbook) { //计算是否欠款或超过续借最大次数或借书最大限度值 if(book.IsDelayed||this.needCost>2.0f||book.ReturnTime return; Databasedb=newDatabase(ConfigurationManager.ConnectionStrings["LibrarySystem"].ConnectionString); db.OpenDatabase(); stringselectTxt="SELECTReturnTimeFROMLendListWHEREBookId=@bookId"; SqlParameter[]selectParC={Database.ProductParameter("@bookId",SqlDbType.Int,book.BookId)}; DateTimenewTime; newTime=DateTime.Parse(db.GetDataRow(selectTxt,selectParC)[0].ToString()); newTime=newTime.AddDays(30); stringupdateTxt="UPDATELendListSETReturnTime=@newTimeWHEREBookId=@bookId"; SqlParameter[]updateParC={ Database.ProductParameter("@newTime",SqlDbType.DateTime,newTime), Database.ProductParameter("@bookId",SqlDbType.Int,book.BookId) }; db.UpdateRecord(updateTxt,updateParC); db.Dispose(); } (4)归还图书部分 publicvoidReturnBook(Bookbook) { //计算超期天数和罚款 this.CalculateCost(book); stringupdateTxt="UPDATEtb_BookInfoSETIsLend=0WHEREBookID=@bookId"; SqlParameter[]updatePar={Database.ProductParameter("@bookId",SqlDbType.Int,book.BookId)}; stringdeleteTxt="DELETEFROMLendListWHEREBookId=@bookId"; SqlParameter[]deletePar={Database.ProductParameter("@bookId",SqlDbType.Int,book.BookId)}; Databasedb=newDatabase(ConfigurationManager.ConnectionStrings["LibrarySystem"].ConnectionString); db.UpdateRecord(updateTxt,updatePar); db.UpdateRecord(deleteTxt,deletePar); db.Dispose(); this.borrowedList.Remove(book); } #region查询书籍 publicstaticList { Databasedb=newDatabase(); DataTabledt=db.GetDataTable(selectTxt,pars); if(dt! =null) { List foreach(DataRowdrindt.Rows) { books.Add(newBook(dr["bkCode"].ToString())); } returnbooks; } else returnnull; } //按书名进行模糊查询 publicstaticList { if(isHazyQuery) bookName="%"+bookName+"%"; stringselectBooks="SELECTbkCodeFORMtb_BooksWHERE(bkNameLIKE'" +bookName+"'ANDIsExist=1)"; returnPickBooks(selectBooks,null); } //按isbn进行模糊查询 publicstaticList { if(isHazyQuery) isbn="%"+isbn+"%"; stringselectBooks="SELECTbkCodeFORMtb_BooksWHERE(bkISBNLIKE'" +isbn+"'ANDIsExist=1)"; returnPickBooks(selectBooks,null); } ////按分类进行模糊查询 publicstaticList { if(isHazyQuery) category="%"+category+"%"; stringselectBooks="SELECTbkCodeFORMtb_Books" +"WHERE(bkClassLIKE'"+category+"'ANDIsExist=1)"; returnPickBooks(selectBooks,null); } publicstaticList { if(isHazyQuery) author="%"+author+"%"; stringselectBooks="SELECTbkCodeFROMtb_BooksWHERE(bkAuthorLIKE'" +author+"'ANDIsExist=1)"; returnPickBooks(selectBooks,null); } //按出版社进行模糊查询 publicstaticList
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆管理系统 罗磊 图书馆 管理 系统