资源描述
图书管理系统 罗生存组,李建武,何月甫
———————————————————————————————— 作者:
———————————————————————————————— 日期:
13
ASP.NET课程设计报告
图书管理系统
题目:图书管理系统
组长:罗生存成员:李建武、何月甫
开发日期:2011-12-30
图书管理网站
团队构成及分工:
职能
成员
任务分工
组长
罗生存
数据库表的建立及数据的整理
组员
李建武
前台代码的编写及后台部分代码的编写
何月甫
后台代码的编写和文档的整理
1.系统总体分析
实训意义:
本文主要介绍这套基于ASP.NET的图书管理系统,详细介绍了系统分析、系统设计和数据库设计的一些思路和方法。另外,在系统设计这一章节列出了实现图书管理过程的详细算法。该系统凭借WEB服务器和客户的浏览器,利用电子工具高效率、低成本的特点,为客户提供交易平台,使用户可以查阅图书、搜索各类图书,为用户提供便捷的服务。
关键词:图书管理、校园图书查询、ASP.NET
实训目标、内容、准备解决的问题:
1、目标:针对传统图书浏览模式中耗费人力、物力的弊端,开发出基于ASP.NET的图书管理系统,实现用户对图书的快速查询。
( 1 ). 提供良好的用户界面,减少了用户及网站管理员的工作量;
(2)系统代码精简,运行效率高;
(3)系统扩展性强;
(4)锻炼队伍,提高团队的开发能力和项目管理能力;
2、内容:对基于图书查询过程进行分析,列出逻辑实现过程,对系统进行逻辑设计和数据库设计,模拟出包括对图书进行浏览、搜索、添加、修改以及对用户信息进行查看、添加、修改等管理功能。
3.准备解决的问题:减少以往借书时出现的种种尴尬局面(价格、详细信息的不了解)进行的系统的改善,使用户可以轻轻松松地看到自己想要用的图书。
拟采取的方法、技术或设计(开发)工具:
课题的开发环境采用Microsoft Visual Studio 2008 + Microsoft Sql Server 2005的开发模式,开发语言是C#。
设计要求
1、认真分析图书系统实现的功能,熟悉其主要操作,充分做好需求分析、设计的内容;依据数据库设计的原则对数据库进行设计。
2、本系统完成后应该初步模拟出对图书管理等功能的全部过程,对于图书信息能够方便快速地录入,以及对不同类别的信息进行相应的管理。通过本系统,最终实现图书管理的便利化和快捷化。
3、依据所开发的系统撰写相应论文。
2系统功能需求分析
为了实现校园里学生借书时出现的种种尴尬局面,所以开发出了图书管理系统,本系统可以让读者方便地查看到所需图书的详细信息。
根据图书管理系统的逻辑过程,同时参考、分析目前高校里已有的相关图书管理系统,本系统的主要功能需求分为图书查询和系统管理两大模块。其中图书查询模块的功能由读者使用,可以进行各类图书信息的浏览,如果是注册会员那么可以对本系统进行相应的操作。系统管理功能由管理员使用,可以实现注册会员管理、图书信息管理。
3.系统设计
3.1 总体结构设计
系统结构和功能是系统设计的核心部分,通过系统结构图可以清楚的看出整个系统的结构。针对每个结构模块分别做分析,为以后的设计和实现打下基础。根据功能需求,本系统总体上图书查询和系统管理模块,图书查询模块功能读者使用,系统管理模块功能供管理员使用。系统总体结构如图3-1所示。
图书管理系统
图书管理模块
系统管理模块
图3-1系统总体结构图
3.2 模块功能设计
本系统分图书管理模块和系统管理模块,每个模块又有若干个子模块构成,其中图书管理模块主要包括:图书浏览、图书查询等子模块。系统管理模块主要包括:用户信息浏览、用户信息管理等子模块。
3.3 数据库设计
系统分析结束后进入设计阶段,抽象地分析数据,理解数据之间的关系,建立E-R模型,然后对数据库进行概念结构设计和逻辑结构设计。由于SQL Server 2005能够以极高的效率完成各种数据库查询,并能方便的使用存储过程,同时它的图形化用户界面,使系统管理和数据库管理更加直观、简单。另外由于对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。所以本系统采用了SQL Server 2005进行数据库的存储管理与维护。
3.3.1概念结构设计
将需求分析得到的用户需求抽象为信息结构即概念结构设计,这一步是数据库设计的关键。一般采用自底向上的方法进行数据抽象和结构设计。在本系统中涉及到的实体如下所示:
1. 图书表(ID、Bookname、Author、Publisher、Email、bookType、price、hyprice、imgurl)
2. 会员表(userName、Pwd、Email)
3.3.2逻辑结构设计
系统数据库设计的优劣直接影响到以后网站与数据连接的速度和更新查询的复杂度。本节介绍本系统基于关系数据库的数据库总体结构设计及数据表的设计。
本系统的数据库设计是在系统功能分析后,依据系统的需求目标而做出的设计。本系统为基于ASP.NET的图书管理系统,所以最重要的数据表就是存放图书信息数据表、注册会员信息表。表3-1为本系统所涉及到的数据表
3.3.3数据表详细设计
各个数据表之间主键和外键之间存在某种关系
4章系统实现
总体设计阶段完成了软件的结构设计,划分了模块,并规定了各个模块的功能及他们之间的联系。在此之后,按软件开发工程化的观点,应进入系统的详细设计阶段,即系统实现。该阶段的根本目标是确定应该怎样实现所要求的系统,给出软件模块结构中各个模块的内部过程描述。本章将分模块对系统的实现给予介绍。
4.1 系统公共类的实现
本节介绍系统使用的公共类,如数据库访问通用类(用于返回数据集、对象、受影响行数等)。编写公共类可以在其他页面中直接调用公共类的方法、属性,避免重复代码的编写,有利于系统代码的维护和日后系统的升级。
4.1.1数据库操作类的实现
<connectionStrings>
<add name="constr" connectionString="Data Source=PC-201110271548\SQLEXPRESS;Initial Catalog=Book;Integrated Security=True"/>
<add name="BookConnectionString" connectionString="Data Source=PC-201110271548\SQLEXPRESS;Initial Catalog=Book;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="BookConnectionString2" connectionString="Data Source=PC-201110271548\SQLEXPRESS;Initial Catalog=Book;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
4.3.1系统登录功能的实现
为了系统的安全性,系统书库模块必须由成功输入用户信息的用户才能进入,同时在用户成功登录后将其登录信息存入Session会话变量。同时在系统管理模块的非登录页面,当页面第一次加载的时候判断Session中是否存在用户的登录信息,这样就可防止用户通过在地址栏中直接键入系统管理页面的地址、绕过登录页面直接进入系统管理模块。系统登录页面的设计如图4-3示。
4.3.2系统图书管理功能的实现
在此模块中,可以实现实现图书按ID,bookname,auther三个关键字段进行查询。并且可以增加,修改,删除图书。
对ID编号进行查询:
对图书名进行查询:
对作者进行查询:
选择图书,可以显示图书的相关信息,并且可以对图书进行编辑,删除,并且可以新建图书:
4-3系统图书模块管理界面图
4.3.3系统用户管理功能的实现
在此模块中,可以实现用户信息的修改和删除。
总结
从本系统的开发过程中,我受益匪浅。首先,我认识到了代码规范的重要性,特别是在一些大型项目中,用到的函数可能有数百个,如果编写的代码不规范会给后期的检查带来极大的麻烦。而且完整的代码测试也非常重要,有些错误可能在很久以后才能发现。其次,我意识到了软件设计的重要性,原来接触的项目往往是快速开发类型的,几乎不需要在软件的逻辑设计上花费太多时间,往往可以边开发边进行下一步的设计。但是这一次我们意识到做软件设计很重要,当初一个设计没注意,可能造成后来的编码大面积的返工。最后就是调试方法的重要性,系统的调试过程要比开发过程繁琐的多。每个操作、每次向服务器提交请求,其实都包括了很多小段代码的执行,如果不能够采用正确的调试方法,就很难找出程序中的错误。
系统开发过程中主要遇到了下列问题:忽略了每次向服务器提交请求后客户端页面都将重新加载的情况,以致无法将预期的数据提交到服务器。
在本系统编写的过程中主要遇到的问题有:
第一设计文档的重要性。在系统开发之前一定要把系统的设计做好,包括系统数据库设计、系统的架构、业务逻辑分析、抽象出基本类和他们的关系、系统的功能模块划分等。由于时间比较紧张,前期设计工作没有做到位,导致开发工程中重复修改,系统代码有点冗余,部分代码没有有效重用。
第二,测试的尴尬。我们三人在做完每个功能块后,一定测试一下,由于时间比较紧张,后来的部分代码没来得及测试,,由于我们前期设计方面的工作没做到位,竟然发现有的功能还没有实现,比如为老师分配课程和某些验证。痛定思痛,一是由于前期系统设计考虑不到位,另一方面也是自己没有做好测试,没有对系统的设计做测试,对于系统的测试有惯性思维,用自己的开发思路测试,结果发现不了一些问题。测试最好还是让别人来做,这就是旁观者清吧。应该对自己的整体设计做好测试之后再进行开发,尽量避免后期因为系统设计的不足带来的难题。
展开阅读全文