图书管理系统_第1页
图书管理系统_第2页
图书管理系统_第3页
图书管理系统_第4页
图书管理系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、软件工程专业C#课程设计任务书题目: 图书资料管理系统 学生姓名: 学号: 班级: 题目类型:软件工程(R) 指导教师: 一C#课程设计题目简介该设计要求学生以图书资料管理业务为背景,设计、开发一套“图书资料管理信息系统”软件。通过该题目的设计、开发,使学生初步掌握使用C#进行软件开发的方法,全面培养软件开发过程中的分析、设计、编码、测试及文档规范书写的能力,得到软件开发的综合训练,提高解决实际问题的能力。二C#课程设计的任务1、查阅文献资料,一般在5篇以上;2、以图书资料管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;3、完成软件结构设计、数据库设计和算法设计;4

2、、完成图书资料管理系统的软件开发和测试工作。5、撰写设计说明书;三C#课程设计的主要内容、功能及技术指标(1)系统要实现基本信息录入、修改、查询等功能:各种信息的输入,包括图书基本信息、期刊信息、资料信息、借阅信息、员工信息等。借阅信息的处理。各种信息的修改、删除。按照某种条件,查询统计符合条件的各类信息。对查询、统计的结果打印输出。(2)系统要实现满足多种条件的统计分析功能,有些统计数据要采用图表的格式呈现;(3)数据库系统采用SQL Server,前台开发工具选用VS 2013等;(4)图书、期刊、资料管理系统所涉及的信息有: 员工基本情况;包括的数据项有:员工号、员工姓名、性别、所在部门

3、、职务、职称、学历、专业、毕业时间、毕业学校、参加工作时间、住址、联系电话、办证日期、书证编号、读者类别(不同类别的读者有不同的借书数量和借书期限限制)等。图书信息,包括的数据项有:书编号、书名、作者、版次、单价、出版社、分类等。期刊信息,包括的数据项有:期刊编号、期刊名、卷/期、单价、出版单位、分类等。资料信息,包括的数据项有:资料编号、资料名、单价、出版单位、分类等。借阅信息,包括的数据项有:借阅日期、借阅人、还回日期等。四C#课程设计提交的成果1. 设计说明书一份,内容包括:1) 中文摘要100字左右;关键词3-5个;2) 需求分析(包含需要的系统流程图、数据流程图、数据字典等);3)

4、概念结构设计;4) 逻辑结构设计;5) 系统实现;6)系统测试(包含测试方案、测试用例、测试结果等);7) 软件使用说明书(核心界面说明);8) 设计总结、参考文献、致谢等。2. 刻制光盘一张。五C#课程设计的主要参考文献1金旭亮,ASP.NET程序设计教程M,北京高等教育出版社,20009.32蒋金楠,ASP.NET MVC4框架揭秘M,北京电子工业出版社,2013.13郝冠军,ASP.NET本质论M,北京机械工业版社,2011.34郑阿奇,SQL Server实用教程(第2版) M. 电子工业出版社,2007.115熊拥军,刘卫国,数据库技术与应用实践教程SQL Server 2005M.

5、清华大学出版社,2010,46Jon Skeet,深入理解C#(第2版)M,北京人民邮电出版社 2012.17郑阿奇,C#实用教程(第2版)M,北京电子工业出版社,2013.78Daniel Solis,Illustrated C#2012,C#图解教程M,北京人民邮电出版社,2012.10六各阶段时间安排(共2周):周次日期内容地点第1周星期一教师讲解设计要求,准备参考资料教室星期二三分析系统,方案设计实验室星期四算法设计,编程实验室星期五编程实验室第2周星期一三编程实验室星期四测试程序实验室星期五检查程序,答辩实验室摘 要图书资料信息管理系统是典型的信息管理系统(MIS),其开发主要包括后

6、台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序功能完备,易使用等特点。本系统从图书馆的馆藏规模和实际操作流程程出发,针对图书馆管理的现状,经过详细的系统调查,结合效用和成本多方要素。利用Visual Studio2013和C#作为开发工具,在数据库方面采用MySQL数据库为图书馆开发出的一个实用的单机版图书资料管理信息系统。关键字:信息管理系统;C#;MySQL目录1概述11.1设计任务11.2设计目的11.3需求分析21.4设计思想32总体设计42.1系统功能结构42.2系统流程图43数据库设计

7、63.1数据字典63.2数据库概念结构设计73.3数据库逻辑结构设计84详细设计94.1系统流程分析94.2登陆界面94.3主窗体104.4 员工信息管理114.5图书信息管理134.6图书借阅信息145调试分析165.1程序调试及运行结果165.2系统开发的遇到的相关问题及解决185.2.1图书管理系统索引185.2.2如何验证输入的字符串185.2.3 自动计算图书归还日期195.3进一步改进的方向19总 结20参考文献21致 谢22附 录231概述1.1设计任务一个合格的图书馆管理系统应该具备图书馆的各种功能,其目的在于提高工作效率、降低管理成本。其应该具有以下功能:对所有图书的管理,包

8、括读者的信息,及其借阅、还书、检索查询的功能。该系统还必须能够实现自动化管理,一方面能够提高管理人员的工作效率,另一方面还可以减少管理人员,从而大大降低了图书馆管理的各种成本。 对于一个图书馆管理系统来说,它应该包括前台和后台两部分。前台是指可以直接看到的电脑操作界面,比如各种指令按钮,操作框及文本框;后台相当于一个数据库,它不断地为前台输送数据,包括操作员、各类图书的信息,以及借书者的信息等。要求完成一个具有一定实用价值的图书管理系统,主要任务包括: 在MYSQL环境下建立图书管理系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包括:数据表、视图、约束、存储过程和触发器等;

9、 掌握ADO.NET编程技术,对MSQL数据库进行连接和操纵; 掌握使用C#语言开发一个数据库应用系统的基本方法和步骤,熟悉一些基础功能的实现方法,如:数据维护(插删改等操作),数据查询、浏览和Excel导出,统计与报表,用户登录和权限管理等。 利用软件开发现有软硬件环境,及先进的管理系统开发方案,从而到达充分利用现在资源提高系统开发水平和应用效果的目的;系统应该符合软件工程开发的理论,开发方法等开发依据; 系统应满足图书馆管理工作的需要,并达到操作过程中的直观,方便,实用,安全,准确等要求。 系统应具备数据库维护功能,及时根据用户需求进行数据库的各种操作;系统采用原型,实用模块化程序设计方法

10、,便于系统功能的各种组合和修改,以及系统的测试与维护;了解C/S或B/S应用程序的多层体系结构及三层架构方案设计思想,了解迭代式开发,熟悉面向对象设计方法及其分析与设计过程,了解UML文档及其开发过程中的作用。1.2设计目的随着计算机的广泛应用,其逐步成为现代化的标志。图书馆或者一些企业内部,甚至是书店,在正常运行的过程中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息,还书信息。因此需要对读者资源,书籍资源,借书信息,还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,为了提高图书馆或者企业内部对图书存销的自动化的管理,能够更快速地满足读者的要求

11、,提高各种工作效率,现对其设计相应的系统,以达到上述的目的。 图书馆管理系统的主要功能是实现图书馆图书的借阅和归还的管理自动化,图书新增及销毁的及时化,用户及图书信息的更新,围绕这些主要功能,本系统涉及到以下核心功能:借阅管理,归还管理,图书管理,人员管理。除了这些核心功能外,还包括一些基本和辅助的功能,它们是:图书信息管理,查询功能等1.3需求分析随着互联网的爆炸性发展,人们越来越习惯于利用网络来实现所需的服务,网络已深深影响到人们生活的各个方面。另外,传统的图书馆不能满足一部分现代人的需要,而电子阅览室,由于其不受时间与空间的限制同时又具有传统图书馆的大部分功能,能够满足各类用户的常规与特

12、殊需求,而且其方便快捷,实现技术又比较成熟,因此受到当代人的喜爱。 该系统主要分为两部分:读者部分和管理员部分。为了方便读者查找自己感兴趣的主题进行阅读,要将图书按照内容进行分类。读者可以按照类别进行查找,逐级浏览、可以查看自己的信息。本系统还可对用户的账号和书目的阅读权限进行管理。管理员需要给用户分配用户名和密码,及设定用户的级别。在图书管理系统中,管理员为每个读者建立一个账户,账户内存储读者个人的详细信息,并依据读者类别的不同给每个读者发放借书卡(提供借书卡号、姓名、部门或班级等信息)。读者可以凭借书卡在图书馆进行图书的借、还、续借、查询等操作,不同类别的读者在借书限额、还书期限以及可续借

13、的次数上要有所不同。 借阅图书时,由管理员录入借书卡号,系统首先验证该卡号的有效性,若无效,则提示无效的原因;若有效,则显示卡号、姓名、借书限额、已借数量、可再借数量等信息,本次实际借书的数量不能超出可再借数量的值。完成借书操作的同时要修改相应图书信息的状态、读者信息中的已借数量、在借阅信息中添加相应的记录。 归还图书时,由管理员录入借书卡号和待归还的图书编号,显示借书卡号、读者姓名、读书编号、读书名称、借书日期、应还日期等信息,并自动计算是否超期以及超期的罚款金额,若进行续借则取消超期和罚款等信息;若图书有损坏,由管理员根据实际情况从系统中选择相应的损坏等级,系统自动计算损坏赔偿金额。完成归

14、还操作的同时,修改相应图书信息的状态、修改读者信息中的已借数量、在借书信息中对相应的借书记录做标记、在还书信息中添加相应的记录。 图书管理员不定期地对图书信息进行添加、修改和删除等操作,在图书尚未归还的情况下不能对图书信息进行删除。也可以对读者信息进行添加、修改、删除等操作,在读者还有未归还的图书的情况下不能进行删除读者信息。 系统管理员主要进行图书管理员权限的设置、读者类别信息的设置、图书类别的设置以及罚款和赔偿标准的设置、数据备份和数据恢复等处理。1.4设计思想(1)利用软件开发现有软硬件环境,及先进的管理系统开发方案,从而到达充分利用现在资源提高系统开发水平和应用效果的目的。 (2)系统

15、应该符合软件工程开发的理论,开发方法等开发依据。 (3)系统应满足图书馆管理工作的需要,并达到操作过程中的直观,方便,实用,安全,准确等要求。 (4)系统应具备数据库维护功能,及时根据用户需求进行数据库的各种操作。(5)系统采用原型,实用模块化程序设计方法,便于系统功能的各种组合和修改,以及系统的测试与维护。 (6)图书馆管理系统的设计应适合校园的发展。 (7)图书馆管理系统的设计应当遵循数据库设计规范。2总体设计2.1系统功能结构根据图书管理系统的实际需求,可以将图书管理系统划分为系统管理、图书信息管理、人员信息管理、期刊信息管理、资料信息管理、借阅信息管理6个部分各个部分的具体功能的系统功

16、能结构图如图所示。资料信息管理借阅信息管理系统管理借出信息还回信息重新登陆退出系统图书信息管理期刊信息管理录入图书信息修改图书信息检索图书信息录入期刊信息修改期刊信息检索期刊信息录入资料信息修改资料信息检索资料信息员工信息管理录入员工信息检索员工信息修改员工信息图书管理系统图2.1 系统功能图2.2系统流程图作为图书管理系统,主要管理的对象是读者信息和图书信息,二者的联系是读者信息对图书信息的需求和使用。再仔细分析调查有关图书信息管理需求的基础上,得到本系统所处理的数据流程。图书管理系统的流程是用户先输入自己的帐号密码进入系统,如有一项不符合则不能进入系统,成功登陆系统后系统根剧登陆的帐号信息

17、从数据库中的数据进行对比判断是读者还是管理员,如果是读者则能进行信息查询,及修改自己的相关信息,查询到自己所需要的图书就能通过管理员进行借阅图书、归还图书也是通过管理员完成的。如果不是读者而是管理员,那管理员可以进行相关信息的查询、添加删除图书及读者的所有信息、设置相应的权限、为图书更新排行榜的信息、以及完成读者的图书借阅与归还。图书管理系统的系统流程图如图所示。Y图3-6 图书管理系统的流程图 4 数据总体构设计N虎溪图书管理信息系统 11 图3-6 图书管理系统的流程图 4 数据总体结构设计N图3-6 图书管理系统的流程图 4 数据总体构设计N虎溪图书管理信息系统 11 图3-6 图书管理

18、系统的流程图 4 数据总体结构设计登录是否登陆成功身份判断管理员图书信息期刊信息资料信息读者信息读者图书、期刊、资料借阅图书、期刊、资料归还信息查询图2.2系统流程图 3数据库设计3.1数据字典有了系统的数据流程图后,还有相当多的数据信息如图书、借阅、归还等信息需要进一步描述,这就是需要定义数据字典,才能把现有的系统描述清楚。列出系统的主要数据字典。在本系统的设计中,要到的表主要是图书信息表(book),员工基本信息表(permessage),资料信息表(data),期刊信息表(new)等,本次设计的数据库采用mysql数据库。(1)图书信息表book:字段名字符类型说明bk_idVarcha

19、r(20)图书编号bk_nameVarchar(20)图书名称bk_authorVarchar(20)作者bk_issueVarchar(10)版次bk_priceVarchar(20)单价bk_pressVarchar(10)出版社bk_classifyVarchar(20)分类表3.1图书信息表(2)员工信息表permessage:字段名字符类型说明per_idVarchar(6)员工编号per_nameVarchar(10)员工姓名per_sexVarchar(20)性别per_eduVarchar(20)学历per_subjectVarchar(20)专业per_schoolVarch

20、ar(20)毕业学校per_grtimeVarchar(20)毕业时间per_tatimeVarchar(20)参加工作时间per_depmentVarchar(20)所在部门per_postVarchar(20)职务per_workerVarchar(20)职称per_addressVarchar(40)住址per_phoneVarchar(20)联系电话per_putimeVarchar(20)办证日期idVarchar(20)书证编号per_readerVarchar(20)读者类别表3.2员工信息表(3)资料信息表data字段名字符类型说明da_idVarchar(20)资料编号da_

21、nameVarchar(20)资料名称da_pressVarchar(10)出版社da_priceVarchar(10)单价da_classifyVarchar(20)分类表3.3资料信息表(4)期刊信息表new字段名字符类型说明idVarchar(20)期刊编号new_nameVarchar(20)期刊名称new_issueVarchar(10)版次new_pressVarchar(20)出版社new_classifyVarchar(20)分类new_priceVarchar(10)单价表3.4 期刊信息表3.2数据库概念结构设计 数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需

22、求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这个阶段不用考虑所采用的数据库管理系统、操作系统类型、机器类型等问题。这阶段可用的工具很多。用的最多的是E-R图(Entity-Relation,实体-关系图),另外还有许多计算机辅助工具(Computer Aided Software Engineering, CASE)可以帮助进行设计。本系统采用了E-R图的方法进行数据库概念结构设计。E-R图是描述数据实体关系的一种直观描述工具。这种图中有: (1)实体:用方框表示,方框内为实体的名称。 (2)实体的各种属性:用椭圆表示,椭圆内为属性名称。使用线段将其和响应的实体连接起来。

23、(3)实体之间的联系:用菱形表示,菱形内为联系的名称。 实体和实体之间的联系较多,比较常见的联系有l:1,l:N和M:N这三种。3.3数据库逻辑结构设计将概念结构转换为数据库管理系统所支持的数据模型,并对其进行优化。设计逻辑结构应该选择最适应于描述于表达相应的概念结构的数据模型,然后选择最适合的数据库管理系统。 将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转化一般遵循如下原则。 一个实体型转换为一个关系模型。实体的属性就是关系的属性。实体的码就是关系的码。 一个n:m联系转换为一个关系模式。与该联系相连的各个实体的码以及联系本身的属性均为关系的属性

24、。而关系的码为各实体码的组合。 一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。 一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。4详细设计4.1系统流程分析 根据开发图书管理系统的需求分析,本系统应该具有两种用户,分别为系统管理员、读者,但在开发过程中出现一些问题,导致本系统只有一种用户即系统管理员权限,另外由于时间仓促,也没能细化这一功能权限,后期会进一步优化这些问题。系统要求有系统管理员用户,我们设定系统管理员,当系统管理员使用帐户登录后,需要查看有关图书的一系列的信息,管理员可以通过系统导航菜单进入读者管理界面、图书管理界面、

25、图书借还界面、系统查询界面,在读者界面中,管理员添加和修改读者信息、读者可以查看自己信息,在图书管理界面管理员可以添加和修改图书信息、用户可查看图书,在图书借还界面完成读者借书还书的操作,系统查询界面管理员可以查看借出去的图书信息及库存的信息、读者可以查找自己的所需的图书。读者使用读者帐号登陆系统后,可以查询自己所需要的图书的信息、也可以查询自己个人的基本信息及图书的借还信息。读者的借书和还书过程是通过管理员完成的。 本系统为了提高代码的执行效率,将常用的数据库调用方式进行了类的封装,以便后面调用的时候之调用该类方法就行了。首先进行MySQL数据库的连接:mycon = new MySQLCo

26、nnection( new MySQLConnectionString("", "db_library", "root", "root", 3306).AsString);接下来进行各类的封装,查询、添加、删除、更新封装后的类名分别为find(),add(),del(),change(),具体的封装类代码将在附录中介绍。 4.2登陆界面 登录模块是图书馆管理系统的入口,在运行本系统后,首先进入的便是登录窗体。当用户输入用户名、密码,系统自动将输入的信息和相关数据表中的内容进行比较,如果该用户输入的

27、内容和数据表中的内容相符,则通过验证,此次登录成功;当没有输入用户名或密码时,系统将会弹出相应的提示信息,如下图所示。图4.1登录界面在登录界面中,没有使用到从数据库验证用户名和密码的方法,而是使用写死的方法只是特定一个用户名和密码,在代码过程中实现验证,代码如下: if (comB.Text = string.Empty | powtxt.Text = string.Empty) MessageBox.Show("请填写用户名或密码", "错误"); return; if (comB.Text!="user"|powtxt.Text

28、!="123456") MessageBox.Show("密码错误", "错误"); return; else main ma = new main(); ma.Show();4.3主窗体身份识别之后,进入主窗口。主界面包括员工信息管理、图书信息管理、期刊信息管理、借阅信息管理、系统管理等。在工具栏中包括日常记事、系统登录、退出登录选项。在主界面左边设计了导航栏,包括了系统所涉及到的所有功能。如果需要对相应的模块进行增删改查,可以点击相应的管理进行操作。管理员可以通过菜单的内容进行各种操作,完成自己想要的做的管理,操作很简单,不会涉及

29、太多的计算机知识,让整个界面更加简洁与清晰,增加用户的人性体验。其界面如下图所示。图4.2主窗体4.4 员工信息管理员工信息管理模块主要进行员工基本信息的录入更新操作,在员工入职和离职过程中,可进行员工基本信息的录入和删除,该模块主要包括员工基本信息的添加、更改、删除、检索。在检索功能中,用户可以通过点击检索按钮将职工信息在下方控件中以表格形式显示出来。图4.3 员工基本信息员工基本信息中,添加、更改、删除和检索按钮的后台实现是通过调用SQL语句来实现。对于员工编号使用了自动编号的方式,在添加页面里面,禁止用户对员工编号的编辑及修改。其中添加功能的实现代码如下:DataSet ds = ba.

30、find("select max(per_id) from permessage"); int a = int.Parse(ds.Tables"books".Rows00.ToString(); String ss = (a + 1) + "" a = int.Parse(ds.Tables"books".Rows00.ToString(); String s = "insert into permessage(per_id,per_name,per_sex,per_edu,per_subject,per

31、_school,per_grtime,per_tatime,per_depment,per_post,per_worker,per_address,per_phone,per_putime,id,per_reader)values('" s = s + ss + "','" + t_1.Text + "','" + c_1.Text + "','" + c_2.Text + "','" + t_3.Text + "'

32、,'" + t_4.Text + "','" + dt_1.Text +"','"+dt_2.Text+"','"+c_3.Text+"','"+t_5.Text+"','"+t_6.Text+"','"+t_7.Text+"','"+t_8.Text+"','"+dt_3.Text+&quo

33、t;','"+t_9.Text+"','"+c_4.Text+ "')" ba.add(s);4.5图书信息管理图书信息管理模块的内容包括图书入库和修改图书信息等。该功能模块主要负责图书信息的相关操作,保证数据库中的完整、规范和准确,使用户可以方便快捷地来管理图书信息。该模块主要操作针对数据库的的图书信息表进行添加、修改和删除记录。当有图书入库时可以进行图书基本信息的录入,以便日后对图书的管理;当有图书因损毁等原因而被下架时,可进行图书基本信息的删除。另外,为了防止用户在一不小心情况下误删数据,图书管理功

34、能在点击删除按钮时不会直接删除数据,点击后会出现一个删除对话框来确认用户是否真的想删除该数据内容,希望用此方法来避免用户在一定情况下的误删数据情况。图书信息管理中的更新功能的实现方法如下:int j = dataGridView1.CurrentRow.Index; String s1 = dataGridView1.Rowsj.Cells0.Value.ToString(); String s = "update book set bk_name='" + textBox2.Text + "',bk_author='" + te

35、xtBox3.Text + "',bk_issue='" + textBox4.Text + "',bk_price='" + textBox5.Text + "',bk_press='" + textBox6.Text + "',bk_classify='" + textBox7.Text + "'WHERE bk_id='"+s1+"'" ba.change(s);检索功能的实现:Da

36、taSet ds = ba.find("select * from book"); dataGridView1.DataSource = ds.Tables"books"删除功能的实现:del mod = new del(); DialogResult r = mod.ShowDialog(); if(r=DialogResult.OK) int j = dataGridView1.CurrentRow.Index; String s1 = dataGridView1.Rowsj.Cells0.Value.ToString(); s1 = "d

37、elete from book where bk_id='" + s1 + "'" ba.del(s1); 图书信息管理窗体如图所示:图4.4图书信息管理4.6图书借阅信息该功能主要解决当读者借出图书时候,需要填写的一些信息,包括借书信息的添加,借书信息的修改,借书信息的删除,借书信息的查询。借书信息的管理对于图书管理系统来说是非常有必要的,首先,利用菜单编辑器在主界面窗口中添加“借书信息管理”模块,在“借书信息管理”模块下添加子模块:添加借阅信息、修改借阅信息、删除借阅信息和查询借阅信息,再对各子模块进行设计,其界面如下图所示。图4.5借阅信息所

38、有模块的功能和实现相差不多,主要区别在于在数据库的建立中为每一个模块分别建立一个表,在调用过程中直接调用各自的表,数据的交互也在各自的表中进行。5调试分析5.1程序调试及运行结果为了使本系统达到任务要求,在开发后进行了一系列的测试和调试分析,测试主要集中在一些特定功能的实现和基本要求的实现。在员工基本信息功能中,进行员工信息的录入进行了多次测试,以便确定添加功能是否会出错,由于在数据库定义数据类型的过程中,为了防止在添加过程中出现乱码等问题,数据类型全部采用varchar类型。在测试过程中,所测试到的模块数据样本都控制在两位数,以便达到测试效果。首先进行了员工基本信息表的添加功能: 图6.1

39、添加测试图如图示,如果在表中输入正确的信息,在添加成功的同时,会弹出添加成功的提示框,提示用户信息已经添加到数据库中,如果要看到刚才添加成功地信息,可以点击检索按钮,将信息检索到表中进行查看。打开数据库可视化操作工具,打开员工信息表,可以看到刚才添加的数据全部已导入到permessage表中,信息内容如下图所示:图5.2 员工信息数据库图在输出数据中,将需要删除的员工信息用光标选择,相应的信息就会在对应的textbox中显示出来,点击删除按钮弹出确认删除对话框,点击确定后会出现删除成功的提示信息,如图示:图5.3 删除功能测试图在测试调试过程中,基本没出现太大的bug,基本符合设计要求,但实现

40、基本要求还是不够的,在后期还需要对系统进行各方面的优化以及更新,以便达到更好的功能实现,使之具备真正的管理系统的所有要求。5.2系统开发的遇到的相关问题及解决 5.2.1图书管理系统索引图书管理系统开发中存在大量的数据和信息检索,怎样更好的检索数据和信息操作是保证检索速度的提高和数据的分页显示,主要考虑了以下几个方面: (1)设计逻辑结构时充分考虑冗余量和可处理性两方面的要求,在接受冗余量的提下,尽量减少表的连接操作。 (2)关系的大小对查询的影响也是很大的,因此为了提高数据库的查询速度,减小系的大小和数据量也是必要的。 (3)建立合理的索引结构。索引相当于一个映射机构,将键值转换成相对应的

41、记录地址,形成索引文件。 索引设计是数据库物理设计的基本问题,也是较困难的问题,建立索引可以极大地提高系统的查询速度,但是同时做Insert、Update、Delete操作时会降低速度,因为做这些操作的同时需要更新索引,所以不能对数据库中所有的表都建立索引。比如满足下列条件之一的不易建立索引:不出现或很少出现的属性或表、属性分布严重不均的属性、经常更新的属性或表、过长的属性、太小的表等。 满足下列条件之一的可以考虑建立索引:主键和外键都建立索引、对于以读为主或只读的表,只要需要,且存储空间允许,可以减少连接开销、对于等值查询(即查询条件以等号为比较符),最好建立索引、对查询范围(即查询条件&g

42、t;,<,为比较符),最好建立索引、有些查询可以由检索直接得到结果,不必访问数据块。 根据实际需要,读者信息表,图书信息表,图书借还信息表,管理员信息表等都建立索引,合理使用缓冲区。5.2.2如何验证输入的字符串 在图书管理系统的开发过程中,需要对一些输入的字符串进行验证,例如金额、电话号码、E-mail等,由于许多模块都需要用到这些验证,因此可以将其写入到一个公共类中然后在其他的页面中直接调用即可。C#中对字符串进行验证时,可以使用Regex类,要使用正则表达式验证输入的字符串,如验证输入的字符串是否为E-mail的地址格式的实现方法。代码如下: #region 验证输入为Email

43、/ <summary> / 验证输入为Email / </summary> / <param name="str"></param> / <returns></returns> public bool validateEmail(string str) return Regex.IsMatch(str, "w+(-+.'w+)*w+(-.w+)*.w+(-.w+)*"); #endregion 5.2.3 自动计算图书归还日期 在图书管理系统运行中会常常遇到这样的问题:在借阅

44、图书时,需要自动计算图书的归还日期,而这个日期又不是固定不变的,它是需要根据系统日期和数据表中保存的各类图书的最多借阅天数来计算的,即图书归还日期=“系统日期”+“最多借阅天数”。因此本系统是这样解决问题的:首先获取系统时间,然后从数据表中查询出该类图书最多借阅天数,最后计算归还日期。计算方法如下: 首先取出所借图书的最多借阅天数,然后根据图书的最多借阅天数,使用TimeSpan.FromDays方法返回一个TimeSpan,最后使用当前时间与先返回的Timespan时间间隔相加。 5.3进一步改进的方向 由于时间仓促,技术方面的缺乏,本系统还有很多方面没考虑到,在接下来的时间里需要对程序的功

45、能进行进一步的完善,值得继续关注和解决的问题包括: (1)系统设计模式。由于在当前的设计中,只是解决了基本的需求问题,很多可行性方面做得不是很到位,这方面需要在接下来的开发中继续修改。 (2)信息更新数据变快,需要架构一个异构数据库之间数据信息共享,对异构数据信息共享需要进一部了解。 (3)图书管理在不同平台之间传递数据。本系统在数据库方面为了防止在数据调用过程中的乱码等一系列问题,在达到需求的情况下减少了数据表直接的链接次数,减少了表之间的链接查询等操作,这个问题在后期的更新中需要注意,以便达到更好的功能体现。 (4)图书管理实用性。本系统在开发过程中一直按照需求来进行开发,但在开发完成之后

46、发现本系统在可行性方面,表现的不是太好,如果要用到现实中,本系统还需要一定后续开发,在后续开发中,需要着重注意可行性等方面的要求。 (5)图书管理相关的安全技术,如SOAP安全性、WS-Security规范等。 总的来说,本系统符合设计要求的需求,但从全系统来看,现阶段还达不到实用软件的目的,需要后续开发来对本程序进行进一步的修改,使得本系统可以作为实用软件使用到图书馆中。当今信息技术正发生着广泛而深刻的变革,随着技术的进一步发展,图书管理技术、信息资源共享等更加完善和发展,在企事业单位发展中引入这些技术将促进其向着网络化、标准化、全球化和大众化发展。空间信息网格将在人们对空间信息的查询、综合

47、分析和辅助决策中发挥越来越大的作用,显示其强大的生命力。总 结经过这次图书管理系统的设计,使我对图书管理有较深的认识及体会。在本开发系统时,由于是本人初次接触有关图书管理领域;在知识、经验方面都存在着太多的不足。另外,在开发的整个过程中,时间也较仓促。因此,该系统必然会存在很多不足。因为对整个图书信息管理的管理模式不够了解及对整个系统的流程不够熟悉,在需求分析阶段用户的需求未能做到完全满足,如在系统功能上,还有部分问题是我还没有考虑到的,所以本系统还有继续开发一定空间。不过,我觉得学习一种新的技术能学习到运用此技术开发出一个有意义的系统是不容易的,这同时也使我增强对知识的渴望和追求的欲望。在整

48、个软件的设计开发过程中真实感受到设计开发的长期和艰辛,同时也获得设计开发的经验和感受,首先就是始终要有对项目开发的兴趣、爱好、激情和积极追求的思维;其次必须要有广博的知识、文献和技术书籍,可供搜索,能去查阅,联络访问;再次要有迎难而上的决心和恒心,面对疑难要静心和细心,也要有一定的耐心和信心,才能把握关键。此外,一个大的项目的开发设计的确要有协助合作伙伴,多与人讨论,多与人交流经验,能增强团队合作意思,适应将来工作的需要。这里整个软件设计及近尾声,最大的收获就是深化了对项目的设计开发、.net结构框架和C#编程语言的学习,从基础的语法代码,上升到数据库的连接,到增删修、比较和图书管理的代码思创

49、过程。 在整个设计中我懂得了许多东西,也培养了我团队工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。虽然这个设计做得不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。参考文献1易向东,陈蓓,万英编著,C#程序员开发指南M.北京希望电子出版社,2006年4月2Hersh Bhasin著,高健、英宇译,ASP.NET专业项目实例开发M,北京中国水利水电出版社,2007年1月 3朱印宏编著,ASP.net 基础与案例教程M,北京中国水利水电出版社,2007年6月 4李勇平、陈峰波

50、编著,ASP.NET(C#)基础教程M,北京清华大学出版社,2006年2月 5刘烨,季石磊等,C#编程及应用程序开发教程M,北京清华大学出版社,2007年2月6萨师煊、王珊编著,数据库系统概论(第三版)M,北京高等教育出版社,2000年2月 7牛丽平、郭新志等编著,UML面向对象设计与分析基础教程M,北京清华大学出版社,2007年7月 8杨选辉编著,信息系统分析与设计M,北京清华大学出版社,2007年7月 9李旗 编著,C#.NET 程序设计M,北京机械工业出版社,2008年1月 10Christian Nagel、Bill Evjen 与Jay Glynn 编著,李铭译, C#高级编程(第6

51、版)M,北京清华大学出版社,2008年10月 11张跃廷、王小科、张宏宇编著,#程序开发范例宝典M,北京人民邮电出版社, 2008年11月致 谢在这次课程设计的撰写过程中,我得到了许多人的帮助。首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。他无论在理论上还是在实践中,都给予我很大的帮助,使我得到很大的提高,这对于我以后的工作和学习都是巨大的帮助在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。我从指导老师身上学到很多东西,例如他那认真负责的工作

52、态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计上的难题。最后再一次感谢所有在设计中曾经帮助过我的良师益友。附 录核心代码:1.数据库连接及sql调用的封装类class basemysql MySQLConnection mycon = null; public basemysql() mycon = new MySQLConnection( new MySQLConnectionString("", "db_library", "root", "root", 3306).AsString); /检索方法 public DataSet find(string l) DataSet ljh = new DataSet(); try mycon.Open(); MySQLCommand cnd = new MySQLCommand("set names gb2312", mycon); cnd.Execute

温馨提示

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

评论

0/150

提交评论