学校图书管理系统的开发
} #endregion
5.3.3 自动计算图书归还日期
在图书管理系统运行中会常常遇到这样的问题:在借阅图书时,需要自动计算图书的归还日期,而这个日期又不是固定不变的,它是需要根据系统日期和数据表中保存的各类图书的最多借阅天数来计算的,即图书归还日期=“系统日期”+“最多借阅天数”。因此本系统是这样解决问题的:首先获取系统时间,然后从数据表中查询出该类图书最多借阅天数,最后计算归还日期。计算方法如下:
首先取出所借图书的最多借阅天数,然后根据图书的最多借阅天数,使用TimeSpan.FromDays方法返回一个TimeSpan,最后使用当前时间与先返回的Timespan时间间隔相加。
自动计算图书归还日期的关键代码如下:
int days = Convert.ToInt32(btypemanage.FindBTypeByName(btypemanage, \TimeSpan tspan = TimeSpan.FromDays((double)days);
borrowandbackmanage.YGBackTime = borrowandbackmanage.BorrowTime + tspan;
5.3.4 系统登陆验证码的实现
在学校图书管理系统的开发过程中,怎么样防止某些人利用某些恶意的软件对图书管理系统进行恶意的登陆来攻击系统,增加图书管理系统的安全性是一个重要的问题。在图书管理系统的登陆模块中加入一个验证码的功能,即用户除了要输入帐号和密码还要输入系统为用户提供的验证码。验证码可以很好的解决了怎样防止恶意用户利用恶意软件对系统页面的疯狂提交、以及暴力破解密码进行登陆的问题。因此,设置一个随机函数在数字0~9和英文字母A~Z中随机抽取四个,在用户打开登陆界面的时候,系统通过随机生成器随机生成4个数字或字母或数字加字母存放在缓存内,并出现在界面上顺序是随机的,当用户登陆时输入的验证码要与缓存中的进行对比符合就进入,不符合就不能登陆。系统在提供验证码时候要加入一些干扰的条件的,不过这些人的肉眼是很容易分辨,但机器人程序不能分辨,很好的防止某人利用机器人程序对系统的恶意操作增加了系统的安全性。验证码实现的关键代码如下:
23
学校图书管理系统的开发
private string GenerateCheckCode() {
int number; char code;
string checkCode = String.Empty; System.Random random = new Random(); for (int i = 0; i < 4; i++) {
number = random.Next(); if (number % 2 == 0)
code = (char)('0' + (char)(number % 10)); else
code = (char)('A' + (char)(number % 26)); checkCode += code.ToString(); }
Response.Cookies.Add(new HttpCookie(\ return checkCode; }
private void CreateCheckCodeImage(string checkCode) {
if (checkCode == null || checkCode.Trim() == String.Empty) return;
System.Drawing.Bitmap image = new
System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22);
Graphics g = Graphics.FromImage(image); try {
//生成随机生成器
Random random = new Random(); //清空图片背景色
24
学校图书管理系统的开发
g.Clear(Color.White); //画图片的背景噪音线 for (int i = 0; i < 2; i++) {
int x1 = random.Next(image.Width); int x2 = random.Next(image.Width); int y1 = random.Next(image.Height); int y2 = random.Next(image.Height);
g.DrawLine(new Pen(Color.Black), x1, y1, x2, y2); }
6 结论
经过几个月的设计和开发,学校图书管理系统基本开发完毕。其功能基本符合用户需求。对于数据的一致性的问题也通过程序进行了有效的解决。但是该系统还有许多不尽如人意的地方,在今后有待进一步改善。通过这次毕业设计真切地体会到毕业设计的目的并不止于自己单纯任务的完成,而在于学习新的知识并掌握具体的方法,如何具体使用和具体应用你所学所用的语言。从而获得一种本领:就是融会贯通各种语言。回首整个开发设计过程,我学到了很多书本上学不到的东西。比如以前开发软件的时候,一般做的就是编码工作,实现比较简单的功能。但是这次毕业设计,我要负责图书管理系统的整个开发过程,包括系统可行性分析、系统需求分析、系统概要设计、系统详细设计等方面的工作。在每个设计阶段我都能学到一些新知识,对我的动手能力提高很大。在整个毕业设计过程中,我基本上完成了图书管理系统各个模块的功能,达到了毕业设计的要求。页面设计还有进一步改善的地方,我会在今后的学习工作中着重加强这方面的锻炼。
在以后的工作中,还会遇到很多类似的情况,此次毕业设计为我以后的工作积累了很多宝贵的经验。这几个月中,从接到设计课题到具体设计再到完成系统开发,是一个不断地遇到问题与解决问题的过程。其中包括:分析各种需求、完善各种功能、增加必要环节、对各部分及整体进行检测与维护。当然仍存在许多问题不能解决地尽善尽美,还需不断地继续与探索。在结束设计的同时也感到了劳动的艰辛与劳动成果的来之不易,明白了毕业设计是给自己提供了一个锻炼、
25
学校图书管理系统的开发
升华、提高、完善的机会。 6.1 主要研究内容及成果
介绍学校图书管理系统根据实际的需求及发展情况进行设计与开发情况,及介绍本系统设计应用平台及技术支持讲述本系统设计理念及具体设计情况,讲解本系统具体制作方法及核心代码。开发的图书管理系统基本上能完成预期的目标,大致能满足读者和管理员的要求。不过也有一些不足之处需要好好改进。 6.2 今后进一步研究方向
(1) 对页面进行美化,使界面变的更美观一点。
(2) 增加数据转换接口,使得本系统能与学校图书管理系统数据库进行无缝连接。
(3) 添加系统功能,本系统只有让读者知道还书的期限,当图书超期而读者也没注意要自己所借图书超期了,就无法及时的还书了,因此增加图书到期催还功能,能让读者在自己信息查询时候就能看到系统对自己所借图书的超期提醒以方便读者的图书归还。 参考文献
[1] 刘乃丽.精通ASP.NET2.0+SQLServer 2005项目开发.[M].北京:人民邮电出版社,
2007:100~150.
[2] 易向东,陈蓓,万英编著.C#程序员开发指南[M].北京:北京希望电子出版社,
2006:212~232.
[3] (美)内格尔,伊夫杰,格林等.C#高级编程(第四版)[M].李敏波.北京:清华大学出
版社,2006:80~100.
[4] (美)Kaili Watson .C#2005数据库编程经典教程[M].人民邮电出版社,2007:90~120. [5] (美)沃尔特,本-甘,萨卡.Microsoft SQL Server 2005技术内幕-T-SQL程序设计[M].
北京:电子工业出版社,2007:50~80.
[6] 刘烨,季石磊等.C#编程及应用程序开发教程[M].北京:清华大学出版社,2007:132~
180.
[7] 殷泰晖,张强,杨豹等C#编程从基础到实践,电子工业出版社,2007:100~120 [8]李永平.ASP.NET 2.0(C#)基础教程[M] .北京:清华大学出版社,2008:123~143. [9] 微软公司著.熊盛新,许志庆,李钦译.Visual C# .NET语言参考手册[M].北京:清华大
学出版社,2002年:160~180.
26
学校图书管理系统的开发
[10] 王珊,萨师煊.数据库系统概论(第四版)[M].高等教育出版社,2006:70~100. [11] 马军.精通ASP.NET2.0网络应用系统开发[M].人民邮电出版社,2006:110~140. [12]欧立奇,康祥顺,马煜编著.Visual C# .NET 案例开发集锦[M].北京:电子工业出版社,
2006:233~245.
致 谢
为期四年的大学本科的学习生活即将结束,在此,感谢我的家人,是他们的支持和鼓励使我有了四年美好的大学时光。我要感谢所有曾经教导过我的老师和关心过我的同学,感谢他们在我学习成长过程中所给予我的帮助。
这次毕业设计能成功完成,要特别感谢我的指导老师许德武老师,感谢许老师对我的作品提出的建议和指导。在整个设计阶段,许老师在我有困难的时候细心为我指导,给了我很大的帮助。在论文完成之际,谨向我尊敬的导师表示诚挚的谢意,感谢许老师对我的关心和帮助。在整个系统的开发过程中,同学和朋友给了我很大的帮助。感谢给予我帮助的同学和朋友们,他们在我的整个设计过程中给我提供了大量的技术指导和实践机会。
衷心的感谢你们!
27