1、2.1数据库分析通过对本校图书馆的图书管理系统的功能分析和实际调查,所设计的数据库系统包括以下几个数据库信息:(1)管理员(adminstrator):工作号、密码、姓名、性别、电话、住址、备注(2)读者(reader):学号、姓名、性别、联系电话、邮箱、所在院系、生效时间、失效时间、密码(3)借还表(borrow):学号、条形码、借书日期、应还日期、续借次数、是否归还、归还日期、扣费、借阅次数(4)图书(book):条形码、索引号、书名、作者、出版社、出版日期、简介、入库日期、馆藏地址、是否在馆、借阅次数、续借次数2.2数据库功能分析各模块的功能取决于用户的身份,以管理员登陆具有以下功能:(
2、1)增加新书(2)删除无用、过期图书(3)增加、修改读者信息(4)把图书借出给读者(5)删除过期用户(6)对图书逾期未换进行扣费以用户账号登录具有以下权限:(1)查看正在借阅的图书(2)查看已经借阅过的图书(3)具有一次续借权限所有用户有以下权限:(1)按不同条件查看图书信息(2)查看借阅量前10名的图书图书馆借阅的业务流程图见下:借阅过程:还书过程:续借过程:2.3数据字典数据项数据项名数据类型长度值域范围说明工作号字符型20不为空密码30姓名12性别男或女联系电话住址50备注ntext学号邮箱所在系生效时间时间型失效时间条形码索引号16书名作者出版社出版日期简介200入库日期馆藏地址是否在
3、馆借阅次数整型续借次数借书日期应还日期是否归还归还日期扣费浮点型数据结构编号:ID01 名称:读者 别名:简述:读者的基本信息组成:ID02 名称:图书 别名:图书的基本信息D03 名称:管理员 别名:管理员的基本信息ID04 名称:借还 别名:读者借阅图书生成的记录信息数据流F101 名称:读者相关信息 别名:ID01 ID02 ID03若为数据流来源:读者相关信息去向:借阅处理F102 名称:借阅相关信息 别名:借阅的基本信息ID01 ID02 ID04借阅信息F103 名称:归还相关信息 别名:归还的基本信息ID01 ID02 IDO4借还相关信息还书处理数据存储S1 名称:借还记录 别
4、名:读者借书,续借,还书形成的记录D01关键字:记录长度:记录数:数据量:处理过程P1 名称:借阅 输入信息:读者信息,图书信息数据存储:图书记录输出信息:图书记录 简要说明:读者借阅图书,输入读者信息和图书信息 P2 名称:续借 读者信息或图书信息借书记录借书记录 读者续借图书,输入读者信息或图书信息,由系统判断是否能够续借,每本书用户一旦续借只可续借一次P3 名称:还书 图书信息读者还书,输入图书信息判断是否超过期限,是否需要罚款,还书是否成功P4 名称:是否允许借阅 借书记录,预约记录读者确定要借的图书,由系统根据读者的借阅记录判断读者是否允许借阅P5 名称:是否允许续借 借书记录 :读
5、者所借图书是否能够续借P6 名称:是否超过期限 读者是借阅的图书是否超过了借书期限P7 名称:罚款 借书记录,罚款金额读者是借阅的图书超过了借书期限需要罚款3、概念设计E-R图4、逻辑结构设计管理员(adminstrator):读者(reader):借还表(borrow):图书(book):说明:下划线为主键,黑体字为外键5、物理结构设计管理员:读者:图书:借阅:6、系统主要查询功能及SQL语句应用程序的界面及功能如下:开始界面:此界面是起始界面,没有用到任何数据源。读者空间:此界面是读者登录界面,数据源是reader,通过输入的“用户名”和“密码”与表中的“学号”和“密码”进行对比,如果匹配
6、成功则可以进入读者用户界面,否则,提示用户名或密码输入错误。当前正借阅的书:此界面是读者用户界面,通过对borrow表进行检查,对已往借过的图书和正在阅读的图书进行分类,并且可以对正在借阅进行续借,但是续借是有条件的,一个用户借的每本图书只有一次续借的机会。以往借过的书:续借:管理员空间:采用多选项卡的界面:管理员具有最多的权限。管理员管理着图书、读者,可以对这些表的信息进行增、删、改操作,并进行硬件的管理。硬件管理:书目按多条件查询:最受欢迎的图书:重要的查询语句:按照书名进行模糊查询:select 条形码,索引号,书名,作者,出版社,出版日期,简介,入库日期,馆藏地址,是否在馆,借阅次数,
7、续借次数 from book where 书名like % + textBox1.Text.ToString() + %查询借阅数量前10的图书:select distinct 书名,作者,book.条形码,索引号,馆藏地址,是否在馆,cs2.借阅总次数,cs2.续借总次数,cs2.总借阅次数 from book,borrow,(select top 10 borrow.条形码 as 条码,sum(借阅次数) as 借阅总次数,sum(续借次数) as 续借总次数,sum(借阅次数)+sum(续借次数) as 总借阅次数 from borrow group by borrow.条形码 orde
8、r by 总借阅次数 desc)cs2 where cs2.条码=book.条形码 and book.条形码=cs2.条码这句查询语句重点在于利用了top n来查询前n个数据。这条语句涵盖了整个程序的重点查询,所以其他语句不再赘述。7、总结通过这次课程设计,加深了我对数据库知识的理解,提高了应用能力,也对C#语言的掌握更深了一步。原来总是写一些控制台程序,也总是在与黑框程序打交道,最多涉及文本存储,没有涉及数据库的存储管理的程序,更不知道如何连接数据库。通过这次一个星期的课程设计,我掌握了ADO.NET的基本应用,能够对数据库进行查找、增加和删除,对数据库的应用有了一定的了解,能够熟练的应用S
9、QL Sever等工具进行数据库创建和开发。在开始进行这个系统的初步规划阶段,我对我们学校的图书馆管理系统进行了细致的观察,并结合平时自己使用图书馆网站的习惯,对这个系统的功能做了设计,我就是想要把网站做成单机版的应用程序,后来在进行数据库的建立过程中,我结合本校图书的管理模式进行了逻辑分析,后来决定用4个表对信息进行存储,在应用程序实现过程中,对单表的增、删、改操作没有出现太大问题,但是对多表进行操作时确实花了许多的精力,比如列出借书次数排名前10的图书的信息就设计borrow表、reader表,其中还用到group by 进行分类,再者,在C#中将SQL语句变成一串字符串,还涉及textB
10、ox,comoBox中的文字,对引号,空格的掌握实在有些繁琐。后来在基本功能完成之后,在测试过程中发现每次这样输入图书编号、学号太麻烦,我又想到近期做的一个项目中用到RFID读写器,所以就在程序中加了硬件实现代码,把C语言实现的硬件代码进行了移植,后来发现能够很好地完成工作。在这个系统中当然也存在一些问题需要没来得及解决,其中在调试过程中发现对时间类型的操作,比如在1月31日借的图书,在一个月后还,这个系统只是将月份加1,那么就到2月31日,把这个日期类型存到数据库就会出现问题,我已经初步想好了如何解决这个问题,采用最繁琐方法就是每个月份就行判断,1、3、5、7、8、10、12月是有31天的,闰年二月29天,准备采用一个switch语句进行处理,其中具体过程还没来得及在程序中反应,但我相信这个方法可以完成这个功能。通过这个课设,我收获了新的知识,发现了自己不足,为以后更好更快地学习和发展奠定了基础。科生课程设计成绩评定表序号评分项目满分实得分学习态度认真、遵守纪律102设计分析合理性3设计方案正确性、可行性、创造性4设计结果正确性405设计报告的规范性6设计验收总得分/等级评语:注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下为不及格指导教师签名:2013 年1月9日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1