首页 > 哲学范文 > 邓小平理论 / 正文
图书馆信息管理系统论文
2020-05-27 15:41:02 ℃【摘要】本论文基于目前图书管理软件的迫切需求,设计并实施了该图书馆信息管理系统。首先,本论文通过对图书馆信息管理系统的背景、可行性分析、功能的需求分析,定义了本系统的开发模式,并对整个项目的技术相关资料以及开发环境做了基本的介绍;其次,本文通过已有的技术基础,根据图书馆信息管理系统的实际需求、以及各技术的优缺点,构建出适合本系统需求的解决方案:ASP.NET+C#+SQL Server2005;接着论文在分析实际功能的基础上给出系统的流程图,并定义了系统各功能模块的详细设计;最后,给出了图书馆信息管理系统的部分功能实现。
【关键词】ASP.NET,开发模式,SQL Server2005
――
Design and Implementation of Based .NET library information management system
【Abstract】Based on the requirements of the library management software, the thesis architectures and designs the system. First, this thesis on the background of library information management systems, feasibility analysis, functional needs analysis, define the development model of the system, and information technology throughout the project and the development of a basic introduction to the environment; Second, through the existing technology base library information management system based on actual demand, as well as the advantages and disadvantages of each technology, build out the system requirements for the solution: ASP.NET + C # + SQL Server2005; Then, on the basis of the function, the paper puts out the flowchart of the terrace. And according to this flowchart, the paper defines the functional modules of the terrace. Finally, a library information management system to achieve some of the features.【Keywords】ASP.NET,
Development Mode,
SQL Server2005
――
目
录
第一章 绪
论 1
1.1
系统的背景和研究意义 1
1.2
系统的现状分析 1
第二章 系统的相关技术介绍 3
2.1 ASP.NET的介绍 3
2.2
SQL Server 2005 概述 3
2.3
SQL语言的介绍 5
2.4
Web技术 6
第三章 需求分析 7
3.1
系统的可行性研究 7
3.2
系统要解决的问题 7
3.3
系统的功能需求 8
3.4
系统的开发运行环境 9
第四章 系统的总体设计 10
4.1
系统实现目标 10
4.2
系统的功能模块设计 10
4.3
系统的功能结构图 10
4.4
系统的流程图 11
第五章 数据库总体结构设计 13
5.1
数据库概念结构设计 13
5.2
数据库逻辑结构设计 13
5.3
系统的E-R图 16
5.4
数据表的设计 17
第六章
系统的详细设计及功能实现 21
6.1
登录界面的实现 21
6.2
图书管理模块的实现 23
6.3
读者管理模块的实现 25
6.4
管理员设置模块的实现 27
――
第七章 系统测试 28
7.1
测试用例的设计 28
7.2
系统开发时遇到的相关问题及解决 28
第八章
结
论 30
后
记 31
参考文献 32
附录一:
33
――
第一章 绪
论
1.1
系统的背景和研究意义
随着信息技术的不断发展计算机被广泛的应用。计算机的最大好处在于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性,为了更好的对信息数据的处理,设计了很多的信息管理系统。图书馆信息管理系统就是为了更好、更方便的管理图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理。以往图书馆对信息处理使用手工操作方式,由于信息比较多,因此图书借阅信息的管理工作混乱复杂,而且容易出错;图书馆信息管理系统本着让图书馆管理做到快捷、方便、简单、摆脱用手工操作处理图书借阅的问题,而设计,它可以使管理员从繁重的手工操作中解脱出来。管理员通过系统可以添加、修改、删除图书信息,可以添加、修改、删除用户信息,可以快速查找图书等。通过系统查询,可以让用户方便的了解图书馆与图书的相关信息。基于这些问题,有必要建立一个图书馆信息管理系统,提高图书馆信息处理的速度和准确性,能够及时、准确、有效的管理和维护图书馆的信息。
1.2
系统的现状分析
在图书馆信息管理系统未广泛使用之前,借书和还书过程主要依靠手工。随着近些年信息技术及计算机网络技术的不断发展, 图书馆也先从传统的手工管理方式发展到自动化的管理方式,再发展到今天的数字化管理,这些变化使得图书馆的管理模式越来越现代化,人们查找资料也更加方便。对于一些学校图书馆来说,一直未能很好地开展。长期以来,图书馆的信息管理是图书馆管理员的主要工作,为提高管理效率,更好地为读者服务,利用已有的局域网或因特网条件,将图书馆信息管理系统做成基于WEB的管理系统,实现图书在一个单位的网络内甚至Internet上查询和管理,可使图书查询和借阅变得更加方便快捷,从而使图书馆的管理工作效率得到明显提高。
在试用了一些图书馆信息管理系统,在查阅了大量相关资料文献的基础上,发现那些系统在几个方面已经不符合时代的要求,由于设计人员及其所用的工具的不同,有Visual Basic6.0、Visual ForPro6.0等,再加上这些图书管理系统设计的时间也不一样,所用具体场合也有区别,因此在功能上除了图书资料管理所需的基本功能之外也有所不同。经过比较总结他们都实现了以下图书管理的基本功能:1.书检索模块:是图书管理系统的重要模块之一,是读者快速查询图书的途径。2.图书管理模块:是图书管理员操作模块,读者是
--
无权进入的。本模块由借出图书登记、归还图书登记子模块构成。3.数据维护模块:是由图书管理员控制的模块,它由增加、修改和删除读者,增加、修改删除图书,浏览修改读者、浏览修改图书等程序组成。
4.数据统计模块:由读者统计、图书统计、借出图书分类统计、到期末归还图书读者统计几部分组成。这些系统解决了以前的那种管理方式所存在着的诸如手续繁琐、工作量大、效率低下、出错率高等缺点,设计出的系统能使读者快速检索到自己喜爱的书,图书管理员能减轻工作量。
但是鉴于开发工具和开发当时的科技发展水平所限,再加上历史发展到今天,人们的生活环境已经发生了改变,大家对于图书查询这方面的要求也更高。比如在一个局域网内,大家希望能在本台电脑上就能查找自己想要的图书,而不用跑到图书馆或图书室里去用那里的电脑查询,这就需要一个网络化的图书馆信息管理系统。
--
第二章 系统的相关技术介绍
2.1
ASP.NET的介绍
ASP.NET技术是微软公司提出的创建网站的技术。ASP.NET可完全利用.NET架构的强大,安全,高效的平台特性。ASP.NET是运行在服务器后端,编译后的普通语言运行时代码,运行时早绑定,即时编译,本地优化,缓存服务,无需安装配置,基于运行时代码受管与验证的安全机制等都为ASP.NET带来卓越的性能。Internet标准的强健支持为ASP.NET在异构网络里提供了强大的扩展性。ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个.NET框架。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。在创建 ASP.NET 应用程序、Web 窗体和 Web服务时,开发人员可以选择下列两个功能,或者以他们认为合适的任何方式将它们结合起来使用。每个功能都能得到相同结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义,这里只是列出几种可能性而已。“Web 窗体”用于生成功能强大的基于窗体的 Web 页。生成这些页时,可以使用 ASP.NET 服务器控件来创建公共 UI元素,以及对它们进行编程以用于执行常见的任务。这些控件使您能够用可重复使用的内置或自定义组件生成 Web 窗体,从而简化页面的代码。XML Web services 提供了远程访问服务器功能的途径。通过使用 Web服务,可以公开其数据或业务逻辑的编程接口,然后客户端和服务器应用程序就可以获得这些编程接口,并且可以对这些编程接口进行操作。这些模型中的每一个模型都可以充分利用所有 ASP.NET 功能,以及 .NET 框架和运行库的强大功能。
ASP.NET的特点是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。通过现有的或新引入的ASP.NET服务器控件,开发者创建ASP.NET、WEB 页面和应用程序的过程变得更加简单高效。包括成员关系,个性化,以及外观主题在内的新特征可以提供系统级别的服务,通常实现这些服务需要开发大量的代码。核心开发方案,特殊数据等被封装到了新的数据控件,非编码绑定,以及只能数据显示空间中。ASP.NET的大部分特征都可以扩展,开发者很容易将自定义特征合并到应用程序中去。
2.2
SQL Server 2005 概述
SQL Server 是一个关系数据库管理系统它是由Microsoft推出的。SQL Server 是一个具备完全 Web 支持的数据库产品,提供了对可扩展标记语言 (XML) 的核心支持以及在
--
Internet 上和防火墙外进行查询的能力,提供了以 Web 标准为基础的扩展数据库编程功能。丰富的 XML 和 Internet 标准支持允许使用内置的存储过程以 XML 格式轻松存储和检索数据。
SQL Server 提供强大的开发工具和各类开发特性,在大大提高开发效率的同时,进一步拓展应用空间,带来新的商业应用机遇。例如,XML数据库与Web Service的支持将使您的应用实现Internet数据互联,.NET极大的扩展了开发空间,异构数据集成、Service Broker使您的数据和其它应用无缝集成,各种新数据类型和T-SQL扩展带来了诸多灵活性。C#、XML、ADO.NET等都将成为SQL Server数据平台上开发数据相关应用的有力工具。它具有以下特点:
1.容易掌握、学习
大多数的中小企业日常的数据应用是建立在Windows平台上的。由于SQL Server与Windows界面风格完全一致,都是图形化操作,且有许多“向导(Wizard)“帮助,因此易于安装和学习,有关SQL Server的资料、和书籍也非常丰富随处可得。
2.兼容性良好
由于今天Windows操作系统仍然占领着主导地的位,所以SQL Server一定会在兼容性方面取得一些优势。另外,SQL Server 2005 除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存贮 XML 数据,可以将搜索结果以 XML格式输出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。这些特点在.NET 战略中发挥着重要的作用。
3.电子商务
在使用由Microsoft SQL Server 2005关系数据库引擎的情况下,XML数据可在关系表中进行存储,而查询则能以XML格式将有关结果返回。此外,XML支持还简化了后端系统集成和数据转换的整合。并实现了跨防火墙的无缝数据传输。你还可以使用超文本传输协议(HTTP)来访问SQL Server 2005,以实现面向SQL Server 2005数据库的安全Web连接和无须额外编程的联机分析处理(OLAP)多维数据集。
4.数据仓库
Microsoft SQL Server 2005非常明显的改进就是增加了OLAP(联机分析处理)功能,这可以让很多中小企业用户也可以使用数据仓库的一些特性进行分析。使用联机分析处理和数据开采工具满足了用户所有的商业分析需求,对使用多维存储方式的复杂数据进行快捷有效的分析。在不同的数据源之间自动提取、转换和加载数据,对数据仓库的数据进行数据挖掘,发现商业的模式与趋势,为科学决策提供支持,通过把查询结果存储在数据库中,
--
以减少查询响应时间,大大改善了系统的性能。
2.3
SQL语言的介绍
SQL是一个功能强大的数据库语言。SQL通常使用于数据库的通讯。SQL是关系数据库管理系统的标准语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:Oracle、 Microsoft SQL Server、 access等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如“select“、 “insert“、 “update“、 “delete“、 “create“和 “drop“常常被用于完成绝大多数数据库的操作。
SQL语言有着非常突出的优点,主要是:非过程化语言,统一的语言,是所有关系数据库的公共语言。
非过程化语言:SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
统一的语言:SQL可用于所有用户的db活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。
SQL为许多任务提供了命令,其中包括:查询数据, 在表中插入、修改和删除记录,建立、修改和删除数据对象, 控制对数据和数据对象的存取, 保证数据库一致性和完整性。以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。
SQL功能强大,是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,概括起来,它可以分成以下几组:
dml(data manipulation language,数据操作语言):用于检索或者修改数据;
ddl(data definition language,数据定义语言):
用于定义数据的结构,比如 创建、修改或者删除数据库对象;
dcl(data control language,数据控制语言):用于定义数据库用户的权限。
dml组可以细分为以下的几个语句:
select:用于检索数据;
insert:用于增加数据到数据库;
update:用于从数据库中修改现存的数据;
--
delete:用于从数据库中删除数据。
ddl语句可以用于创建用户和重建数据库对象。
2.4
Web技术
随着Web和Internet网络环境的快速发展,将使企业能够以更快的速度、更低的费用去创建和布置企业的应用系统,因而,普遍认为C/S架构将会被B/S结构取代。Internet为数据库应用系统提供了新的机会,采用B/S结构,客户机上只要安装一个浏览器(Browser),如Internet Explores;中间层采用Web服务器,它接受客户端的请求,将其转换为SQL语句,通过ODBC或其他手段传给数据库服务器,并将数据库服务器返回的结果用HTML文件格式传回给客户机。客户机的要求大大降低,大部分程序在服务器端执行。采用3层体系结构的Web应用程序由Web浏览器、Web服务器和数据库3部分组成。Web浏览器与Web服务器之间的通信仍然遵循HTTP,Web服务器与数据库之间的通信遵守CGI(Common Gateway Interface)或者Server API规范。在采用三层体系结构的Web应用程序中,Web浏览器向Web服务器请求某个HTML文档或者请求执行某个CGI脚本程序。Web服务器根据Web浏览器请求的是某个CGI程序或者API程序,Web服务器则执行(或调用外部程序执行)该程序,然后将程序执行结果返回给Web浏览器。习惯上,我们把采用这种体系结构的Web网站称作“动态网站”。目前,互联网中绝大部分网站和大多数Web应用系统都采用了这种体系结构。
--
第三章
需求分析
3.1
系统的可行性研究
本次毕业设计题目:“基于.NET图书馆信息管理系统的设计与实现”主要目的是利用数据库软件设计一个管理软件,以实现图书、读者以及日常工作等方便管理。同时对整个系统的分析、设计过程给出一个完整论证。图书馆信息管理系统是一种规划的数据库数据管理模式。在图书和读者的管理上是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书馆管理提供极大的帮助。本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计等。作这些工作需对数据库知识有一定的认识,并深入的了解ASP.NET、Visual C#的使用和管理系统的相关知识。在信息时代的今天,人类需要对在生活、学习等各领域产生的海量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都是以数据库技术作为核心。
以前大多数的图书馆管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,图书馆信息管理系统的使用能否可以很好的解决这些问题,要根据系统的可行性分析来判断系统是否可以投入开发,可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。系统的可行性分析有以下几个方面:
1.技术可行性:计算机硬件和软件技术的飞速发展,为系统的建设提供了有利的技术条件。
2.经济可行性:系统建设不需要很大的投入、可缩减资金和人力投入。
3.运行上可行性:本系统作为一个小型的图书馆信息管理系统,所耗费的资源非常的小,处理速度快、准确通过权限的设置,数据的安全性好、方便管理,降低工作人员工作强度,提高效率。
4.从各种社会因素可行性分析:在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新,图书馆完全有能力采用这样先进的管理技术。
综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。
3.2
系统要解决的问题
1.网站系统采用B/S结构,及浏览器/服务器,主要开发前台浏览器界面的搭建,后台和服务器连接代码的编程,以及数据库的合理设计。
2.网站系统的整体运行环境采用Windows XP, SQL Server 2005作为系统数据库,选用
--
B/S架构技术。
3.要使用ASP.NET、C#语言作为开发语言,利用Microsoft Visual Studio 2005作为开发平台。
图书馆信息管理系统直接用户是在校的学生及图书馆管理员,因此在开发网站的过程中,本着人性化的设计,界面美观,操作方便快捷,网页效果清晰的要求而设计,只要用户有网络的环境就可以通过本网站进行在线查询,快捷方便、使用简单;管理员管理方便简单,容易上手,使系统更加的人性化。
该系统的设计主要分为两部分:读者部分和管理员部分。为了方便读者查找自己感兴趣的书籍进行阅读,要将图书按照内容进行分类。读者可以按照类别进行查找,可以查看自己的信息。本系统还可对读者的用户名和书目的阅读权限进行管理。管理员需要给用户分配用户名和密码,及设定用户的级别,还为用户提供图书的排行榜能使用户知道哪些图书受到大家的欢迎。
3.3
系统的功能需求
系统要求有系统管理员用户,我们设定系统管理员,当系统管理员使用用户名登录后,可以通过导航菜单中的系统设置修改图书馆的信息,也可以对管理员进行设置,需要查看有关图书和读者的一系列的信息,管理员可以通过系统导航菜单进入读者管理界面、图书管理界面、图书借还界面、系统查询界面、排行榜界面,在读者界面中,管理员添加和修改读者信息、用户可以进行系统信息查询和查看排行榜,在图书管理界面管理员可以添加和修改图书信息、用户可查看图书,在图书借还界面完成读者借书还书的操作,系统查询界面管理员可以查看借出去的图书信息及库存的信息、用户可以查找自己的所需的图书,排行榜界面主要是可以让用户知道哪些图书受到读者的喜爱。读者通过用户名登录系统后,可以查询自己所需要的图书的信息及图书的借还信息,还能查看排行榜的信息。读者的借书和还书过程是通过管理员完成的。
1.读者信息管理
管理员通过数据库管理和维护系统可以对读者进行管理和维护。管理员可以对读者信息表中的信息进行删除、修改、更新等基本操作以管理和维护读者信息。
在管理和维护这一部分时因为涉及到读者信息表,因此要使用存储过程和触发器来保证数据的一致性。
2.图书信息管理
图书入库、图书删除、图书信息的修改。图书入库是指对需求比较大的图书,如果数库中有,则增大其库存量,如果没有,则进购新书。图书删除指因为人为因素(如借阅后
--
丢失、损坏等)致使图书不能被继续借阅的,应从书库中清除掉。图书入库和图书删除时,应对该图书信息表的内容进行更新,尤其是当图书删除后,若该书总数为零时,应自动将该书信息记录删除。我们还对图书进行了分类,如果因为某书的减少,导致该类图书的减少,则当该类图书总数为零时,系统也应自动将该图书类别信息删除。
3.管理员管理
管理员可以对管理员表中的信息进行添加、删除、修改、等基本操作以管理和维护读者信息。
3.4
系统的开发运行环境
系统开发环境:Microsoft Visual Studio 2005
系统开发语言:ASP.NET + C#
运行平台:Windows XP
数据库:SQL Server 2005
Web服务器:
IIS5.1
--
第四章
系统的总体设计
4.1
系统实现目标
图书管信息管理系统的开发主要实现的目标有以下几个方面:
1. 大量数据信息的快速检索,保证数据查询的灵活性。
2. 实现对图书借阅和归还过程的全程数据信息跟踪。
3. 提供图书借阅排行榜,为图书管理员提供了真实的数据信息。
4. 提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
5. 界面设计友好、美观。
6. 具有易维护性和易操作性。
7. 数据存储安全、可靠。
8. 信息分类清晰、准确。
4.2
系统的功能模块设计
1.系统设置模块:添加图书馆信息、添加删除管理员、设置管理员的权限、说明图书存放书架信息添加删除书架信息。
2.读者管理模块:添加删除不同类型的读者及注明可借图书的数量、添加删除读者的档案。
3.图书管理模块:添加删除不同类型的图书及注明图书可借的天数库存数量、添加删除图书的档案。
4.图书借还模块:可查询读者借阅和归还图书的信息及图书的现有库存量。
5.系统查询模块:可根据不同的条件(条形码、书名、类别、作者、书架、出版社)查询读者需要的图书、读者可根据不同的条件(图书条形码、图书名称、读者编号、读者名字、到期时间)查询自己已借阅图书信息。
6.排行榜模块:可以让读者知道图书借阅的排行及读者借阅的排行,方便知道哪本图书最受读者的喜爱。
4.3
系统的功能结构图
根据图书馆信息管理系统的实际需求,可以将图书馆信息管理系统划分为系统设置、读者管理、图书管理、图书借还、系统查询、排行榜等6个部分各个部分的具体功能的系统功能结构图如图4-1所示。
--
图4-1系统功能结构图
4.4
系统的流程图
图书馆信息管理系统的流程是用户先输入自己的用户名和密码进入系统如有一项不符合则不能进入系统,成功登录系统后系统根据登录的用户信息从数据库中的数据进行对比判断是读者还是管理员,如果是读者则能进行信息查询,查询到自己所需要的图书就能通过管理员进行借阅图书,归还图书也是通过管理员完成的。如果不是读者而是管理员,那管理员可以进行相关信息的查询、添加图书、删除图书及读者的所有信息、设置相应的权限、为图书更新排行榜的信息、以及完成读者的图书借阅与归还。图书馆信息管理系统的系统流程图如图4-2所示。
--
图4-2图书馆信息管理系统的系统流程图
--
第五章
数据库总体结构设计
5.1
数据库概念结构设计
数据库概念结构设计是在需求分析的基础上设计的,是能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。这个阶段不用考虑所采用的数据库系统、操作系统类型、机器配置等问题。这阶段可用的表示方式有很多。用的最多的是E-R图(Entity-Relation,实体-关系图),另外还有许多辅助工具可以帮助进行设计。本系统采用了E-R图的方法进行数据库概念结构设计。E-R图是描述数据实体关系的一种直观描述工具。这种图中有:
1.实体:用方框表示,方框内为实体的名称。
2.实体的各种属性:用椭圆表示,椭圆内为属性名称。使用线段将其和响应的实体连接起来。
3.实体之间的联系:用菱形表示,菱形内为联系的名称。
实体和实体之间的联系有很多种,比较常见的实体联系有l:1,l:N和M:N这三种关系。
5.2
数据库逻辑结构设计
概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化成为数据库系统中所支持的实际数据模型。
第一种转化是将实体转化为关系表。这种转化较简单,需要将实体的属性定义为表的属性即可。
第二种转化是联系的转化。即将各个实体之间的联系转化为表格之间的关系,如外部键的定义。
在上面工作的基础上归纳出人员管理数据库表格的组成之间的联系等等。该数据库系统具有以下方面的特点:
结构合理,对一个人员建立多条记录。
所建立的数据冗余度小,独立性强。
建档、修改、查询、统计快速而准确。
保密性好、可靠性好。
图书馆信息管理系统中要有图书,图书是图书馆信息管理系统中密不可分的部分,因此要创建一个图书信息实体,用来保存图书的详细信息。图书信息实体属性图如图5-1所示。
--
图5-1图书信息实体属性图
读者是图书馆信息管理系统重要组成部分,管理员就是通过图书馆信息管理系统对读者的借阅信息、类型等进行管理;这里创建了一个读者信息实体,用来存储读者的详细信息。读者信息实体属性图如图5-2所示。
图5-2读者信息实体属性图
图书馆信息管理系统为了增加系统的安全性,管理员只有在系统登陆模块验证通过后才能进入管理员的操作界面,因此在数据库中创建一个存放登录用户信息的管理员实体。管理员实体属性图如图5-3所示。
--
图5-3管理员实体属性图
图书馆信息管理系统中为了区分不同用户的不同权限,管理员之间有不同的管理权限用户也有用户的权限,用户登录系统后只能进行系统查询和查看排行榜,而管理员可以有不同的权限,通过总管理员来进行分配;因此数据库中应存放一个权限信息的实体,权限信息实体属性图如图5-4所示。
图5-4权限信息实体属性图
图书馆管理员对图书信息管理时可以添加图书,可以按照图书的类型将图书进行分类,以方便读者对图书的查找,因此数据库中应有一个图书类型的实体,图书类型实体属性图如图5-5所示。
--
图书类型
图书类型编号
图书类型名称
可借天数
图5-5图书类型实体属性图
5.3
系统的E-R图
图书馆信息管理系统的系统E-R图如图5-6所示。
图5-6图书馆信息管理系统的系统E-R图
在图书馆信息管理系统中,管理员在登录系统后可以对读者进行相应的操作,基本包括添加、修改、删除读者信息等操作。其管理员与读者间的关系E-R图,如图5-7所示。
--
图5-7管理员与读者间关系E-R图
管理员登录系统后可以查看图书的详细信息,并且能添加、修改和删除图书的信息,管理员与图书之间的关系E-R图,如图5-8所示。
图5-8管理员与图书之间关系E-R图
5.4
数据表的设计
本系统使用的数据库管理系统为SQL Server 2005。数据库中的表有管理员信息表、图书信息表、读者信息表、管理员权限表等。图书信息表tb_bookinfo,如表5-1所示。
--
表5-1 tb_bookinfo(图书信息表)
字段名
数据类型
长度
主键
描述
bookcode
varchar
30
是
图书条形码
bookname
varchar
50
否
图书名称
type
varchar
50
否
图书类型
author
varchar
50
否
作者
translator
varchar
50
否
译者
pubname
varchar
100
否
出版社
price
money
8
否
价格
page
int
4
否
页码
bcase
varchar
50
否
书架
storage
bigint
8
否
存储数量
inTime
smalldatetime
4
否
入馆时间
oper
varchar
30
否
操作员
borrownum
int
4
否
被借次数
读者详细信息表tb_reader,如表5-2所示。
表5-2 tb_reader(读者信息表)
字段名
数据类型
长度
主键
描述
id
varchar
30
是
读者编号
name
varchar
50
否
读者名称
sex
char
4
否
性别
type
varchar
50
否
读者类型
birthday
smalldatetime
4
否
生日
paperType
varchar
20
否
证件类型
paperNum
varchar
30
否
证件号码
tel
varchar
20
否
电话
varchar
50
否
createDate
smalldatetime
4
否
注册日期
oper
varchar
30
否
操作员
--
remark
text
16
否
备注
borrownum
int
4
否
借阅次数
图书管理员基本信息表tb_admin,如表5-3所示。
表5-3 tb_admin(管理员信息表)
字段名
数据类型
长度
主键
描述
id
varchar
50
是
管理员编号
name
varchar
50
否
管理员名称
pwd
varchar
30
否
管理员密码
权限信息表tb_purview,如表5-4所示。
表5-4 tb_purview(权限信息表)
字段名
数据类型
长度
主键
描述
id
varchar
50
是
用户编号
sysset
bit
1
否
系统设置
readset
bit
1
否
读者管理
bookset
bit
1
否
图书管理
borrowback
bit
1
否
图书借还
syaquery
bit
1
否
系统查询
图书类型信息表tb_booktype,如表5-5所示。
表5-5 tb_booktype(图书类型信息表)
字段名
数据类型
长度
主键
描述
id
int
4
否
图书类型编号
typename
varchar
30
是
图书类型名称
days
int
4
否
可借天数
书架信息表tb_bookcase,如表5-6所示。
表5-6 tb_bookcase(书架信息表)
字段名
数据类型
长度
主键
描述
id
varchar
30
是
书架编号
name
varchar
30
否
书架名称
读者类型信息表tb_readertype,如表5-7所示。
--
表5-7 tb_readertype(读者类型信息表)
字段名
数据类型
长度
主键
描述
id
int
4
否
读者类型编号
name
varchar
50
是
读者类型名称
number
int
4
否
可借数量
--
第六章
系统的详细设计及功能实现
6.1
登录界面的实现
当管理员或用户输入用户名、密码,系统自动将输入的信息和数据库中的管理员或读者数据表中的内容进行比较,如果该用户输入的内容和数据表中的内容相符,则通过验证,此次登录成功,进入到图书馆信息管理系统的主界面;否则登录失败。比较的过程是由浏览器将指令数据发送到Web服务器,Web服务器通过对数据库进行查询将结果返回到浏览器,从而显示成功的消息,管理员或用户只有成功登陆系统后才能进行一系列的操作,登录界面如下图6-1所示。
图6-1图书馆信息管理系统登陆界面
在图书馆信息管理系统的开发过程中,考虑到防止某些人恶意的登录对系统数据进行破坏和任意删改信息,增加图书馆信息管理系统的安全性是必要的问题。所以管理员或读者在登录是需要输入自己的用户名和密码,总管理员用户名和密码是在创建系统时分配的,存储在数据库表中,总管理员可以添加不同权限的管理员,也可以添加不同的读者。在管理员或读者登录系统时,系统会对输入的用户名和密码跟数据库中的信息进行比对,如果跟数据库中的管理员信息表或读者信息表中的内容匹配,登录成功、进入系统的主页面;登录界面的关键实现代码如下:
if (txtAdmin.Text == string.Empty)
{
--
Response.Write(“<script>alert('管理员名称不能为空!')</script>“);
return;
}
else
{
DataSet adminds = null;
DataSet readerds = null;
adminmanage.Name = txtAdmin.Text;
adminmanage.Pwd = txtPwd.Text;
adminds = adminmanage.Login(adminmanage);
readermanage.ID=txtPwd.Text;
readermanage.Name=txtAdmin.Text;
readerds=readermanage.ReaderLogin(readermanage);
if (adminds.Tables[0].Rows.Count > 0)
{
Session[“Name“] = txtAdmin.Text;
Response.Redirect(“Default.aspx“);
}
else if (readerds.Tables[0].Rows.Count > 0 )
{
Session[“Name“] = txtAdmin.Text;
Session[“readid“] = txtPwd.Text;
Session[“role“] = “Reader“;
Response.Redirect(“Default.aspx“);
}
else
{
Response.Write(“<script>alert('登录名或密码不正确!')</script>“);
}
}
管理员或用户在登录页面进行登录,如果用户名和密码正确,直接跳转到图书馆信息
--
管理系统的主页面。管理员登录的主页面后,可以进行一系列的操作,可以通过菜单对系统进行设置,对图书进行管理,在图书管理中可以添加、删除和修改图书的类型,也可以添加、删除和修改图书的信息,对读者进行管理,在读者管理中,可以添加和修改读者的类型,可以对读者的信息进行设置,管理员还可以更新排行榜等。读者登录到主页面后,可以查看系统信息,可以对图书进行查询,以便找到需要借阅的书籍,也可以通过排行版查看那些书籍是借阅的热点。主页面是由一个Menu菜单控件和两个GridView控件组成,使用Menu控件来显示权限信息,它的样式跟Windows应用程序中菜单栏类似。使用GridView控件分别来显示图书借阅排行榜和读者借阅排行榜,显示图书借阅排行榜的GridView控件和数据库中的图书信息表tb_bookinfo相绑定,并按照表中的图书借阅次数字段进行降序排列,显示读者借阅排行榜的GridView控件与数据库中的读者信息表tb_reader相绑定,并按照表中的借阅数量降序排列。图书馆信息管理系统的主界面如下图6-2所示。
图6-2图书馆信息管理系统主界面
6.2
图书管理模块的实现
图书管理模块主要分为图书类型管理页面和图书档案管理页面。管理员可以在图书类型管理页面查看图书类型的基本信息,也可以修改和删除图书类型的信息,并且可以通过单击“添加图书类型信息”超级链接转到添加图书类型信息界面,并在该页中添加图书类
--
型信息,如图6-3与6-4所示。
图6-3查看图书类型管理界面
图6-4查看添加图书类型信息界面
管理员可以在图书档案管理页面查看图书的基本信息和详细的信息,也可以删除图书的信息,单击“添加图书信息”超级连接转到添加图书信息界面,并在该页面中添加图书信息和修改图书信息,如图6-5与6-6所示。
图6-5查看图书档案管理界面
--
图6-6查看添加修改图书界面
6.3
读者管理模块的实现
读者管理模块主要分为读者类型管理页面和读者档案管理页面,管理员可以在读者类型管理页面查看读者类型的基本信息,也可以修改和删除读者类型的信息,并且可以通过单击“添加读者类型信息”超级链接转到添加读者类型信息界面,并在该页中添加读者类型信息,如图6-7与6-8所示。
图6-7查看读者类型管理界面
图6-8查看添加读者类型信息界面
管理员可以在读者档案管理页面查看读者的基本信息和详细的信息,也可以删除读者
--
的信息,单击“添加读者信息”超级连接转到添加读者信息界面,并在该页面中添加读者信息和修改读者信息,如图6-9与6-10所示。
图6-9查看读者档案管理界面
图6-10查看添加修改读者界面
图书管理模块和读者管理模块的实现,主要是使用了ADO.NET技术来对数据库进行操作。
通过对数据库的操作来完成对图书管理模块和读者管理模块的各项操作。在使用ADO.NET技术操作数据库时,主要用到了Connection、Command、DataAdaper和DataSet 4个对象;其中Connection对象主要负责连接数据库,Command对象主要负责生成并执行SQL语句,DataAdaper对象主要负责在Command对象执行完SQL语句后生成并填充
--
DataSet和DataTable,而DataSet对象主要负责存取和更新数据。
6.4
管理员设置模块的实现
管理员可以在管理员设置页面查看每个用户和每个用户具有的不同权限,点击权限设置可以修改每个用户现有的权限,单击“添加管理员”超级连接转到添加管理员界面,并在该页面中添加管理员的用户名和密码的信息,如图6-11与6-12所示。
图6-11查看管理员设置界面
图6-12查看添加管理员信息界面
图书馆信息管理系统在设计时设立一个总管理员,总管理的权限信息不可以删除和修改,通过总管理员来添加和删除不同的管理员用户,并且可以设置不同管理员用户的不同权限。
--
第七章
系统测试
7.1
测试用例的设计
软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。根据对软件产品的测试关注点不同,可以将测试方法划分为黑盒测试和白盒测试。在此我采用黑盒测试来测试系统的功能,测试用例设计如下:
首先对系统的登录进行测试,输入正确的管理员或用户的用户名和密码,登录成功,进入系统的首页,可以进行相应的操作,而登录失败,系统会给一个登录错误的反馈信息,进而提示用户输入正确的用户名和密码。
进入管理员设置界面,可以修改管理员的权限,也可以添加管理员,进入读者管理界面,可以修改和添加读者的信息,进入图书管理界面,可以修改和添加图书的信息,操作完成后数据就会保存到数据库表里面,如果操作中途放弃操作,就不会保存信息到数据库中。测试操作数据如表7-1所示。
表7-1 测试数据表
测试用例
输入(选择)测试数据
预期结果
输入管理员用户名和密码
Admin正确
登录到图书馆信息管理系统的主页
错误
提示:登录名和密码不正确!
添加管理员,和修改权限
添加和修改管理员nzw的信息成功
将修改和添加后的信息存储到数据库表
操作失败
放弃对数据库的更新。
添加、删除和修改读者信息
添加 删除和修改读者lhy的信息成功
将修改处理后的信息更新到数据库表中
操作失败
放弃对数据库表的更新操作
添加、删除和修改图书信息
添加、删除和修改图书MFC 的信息成功
将更新后的结果存储到数据库表中,并更新数据库。
操作失败
放弃对数据库的更新。
我通过采用黑盒测试对系统的各个功能模块进行测试;最后对照需求分析,满足预期的各项要求,保证了软件配置的完整性、正确性。系统基本运行稳定、正常,可以投入运行。
7.2
系统开发时遇到的相关问题及解决
在图书管理系统的开发过程中,需要对一些输入的字符串进行验证,例如电话号码、
--
E-mail等,由于许多的模块都需要用到这些验证,因此可以将其写入到一个公共类中然后在其他的页面中直接调用这个公共类即可。C#中对字符串进行验证时,可以使用Regex类,要使用正则表达式验证输入的字符串,如验证输入的字符串是否为E-mail的地址格式的实现方法。代码如下:
#region
验证输入为Email
/// 验证输入为Email
/// <param name=“str“></param>
/// <returns></returns>
public bool validateEmail(string str)
{
return Regex.IsMatch(str, @“\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*“);
}
#endregion
--
第八章
结
论
在这几个月的毕业设计过程中,我负责图书馆信息管理系统的图书管理和读者管理两个模块的研发过程,包括模块的可行性分析、需求分析、总体设计、数据库的设计、详细设计。在每个设计阶段我都能学到新的知识,对我的动手能力有了很大的提高。在整个毕业设计过程中,我基本上完成了图书管理和读者管理的相应功能,达到了毕业设计的要求。页面设计还有需要改善的地方,我会在今后的学习工作中对这方面的锻炼着重加强。
在以后的学习和工作中,还会遇到很多这样的情况,此次毕业设计为我以后的工作积累了很多宝贵知识和经验。从接到毕业设计课题到设计再到完成系统功能开发,是一个不断地遇到问题与解决问题的过程。其中包括:分析各种需求、完善各种功能、对各部分及整体进行检测与维护。当然仍存在一些问题不够完善,还需不断地继续与探索。在结束设计的同时也感到了劳动的艰辛与劳动成果的来之不易,明白了毕业设计是给自己提供了一个锻炼、提高的机会。
--
后
记
经过几个月的设计和开发,图书馆信息管理系统基本开发完毕。其功能基本符合需求。对于数据的一致性的问题也通过程序进行了有效的解决。但是该系统还有许多不够完善的地方,在今后有待进一步改进。通过这次毕业设计真切地体会到毕业设计的目的并不止于自己单纯任务的完成,而在于学习新的知识并掌握具体的方法,如何具体应用你所学所用的语言。在整个毕业设计过程中,我基本上完成了图书馆信息管理系统下的读者管理和图书管理的功能,达到了毕业设计的要求。页面设计还有进一步改善的地方,我会在今后的学习工作中着重加强这方面的锻炼。通过这次毕业设计,我不但巩固了以前所学的知识,增强了知识间的联系,而且学到了好多新的理论知识,同时,也增强了我的思维和动手能力。另外在这次毕业设计过程中,我系统地学习了有关ASP.NET方面和SQL的一些新知识,收益良多。
此次毕业设计是在指导老师的悉心指导和支持鼓励下完成的,特别是张老师从课题的选择、方案论证,都尽其所能给予了我很多的指导与帮助。同时,也得到了同学们的大力帮助,在此向始终关心、支持和帮助我的老师和同学致以诚挚的谢意。
--
参考文献
[1] 刘乃丽.精通ASP.NET2.0+SQL Server 2005项目开发.[M].北京:人民邮电出版社,
2009.
[2] 易向东,陈蓓,万英编著.C#程序员开发指南[M].北京:北京希望电子出版社,2007
[3] (美)内格尔,伊夫杰,格林等.C#高级编程(第四版)[M].李敏波.北京:清华大学
出版社,2008.
[4] (美)Kaili Watson .C#2005数据库编程经典教程[M].人民邮电出版社,2007.
[5] (美)沃尔特,本-甘,萨卡.Microsoft SQL Server 2005技术内幕-T-SQL程序设计[M].
北京:电子工业出版社,2007.
[6] 刘烨,季石磊等.C#编程及应用程序开发教程[M].北京:清华大学出版社,2007.
[7] 殷泰晖,张强,杨豹等.C#编程从基础到实践[M].电子工业出版社,2007.
[8] 李永平.ASP.NET 2.0(C#)基础教程[M] .北京:清华大学出版社,2008.
[9] 微软公司著.熊盛新,许志庆,李钦译.Visual C# .NET语言参考手册[M].北京:清
华大学出版社,2009.
[10] 王珊,萨师煊.数据库系统概论(第四版)[M].高等教育出版社,2007.
[11] 马军.精通ASP.NET2.0网络应用系统开发[M].人民邮电出版社,2007
[12] 欧立奇,康祥顺,马煜编著.Visual C# .NET 案例开发集锦[M].北京:电子工业出
版社,2009.
[13] 张超钦,胡光武,甘铮.基于.NET的通用数据访问模型与实现[J].信阳师范学院学报
(自然科学版),2009.
[14] 朱连章,田超.改进Web应用性能方法及性能测试分析[J].计算机工程与设计,2008.
[15] Glynn. Professional C# 2008[M]. WROX PR/PEER INFORMATION ING. March, 2008.
--
附录一:
对数据库操作的实现代码如下:
public class DataBase:IDisposable
{
private SqlConnection con;
//创建连接对象
#region
打开数据库连接
private void Open()
{ // 打开数据库连接
if (con == null)
{
con = new SqlConnection(ConfigurationManager.AppSettings[“ConnectionString“]);
}
if (con.State == System.Data.ConnectionState.Closed)
con.Open();
}
#endregion
#region
关闭连接
public void Close()
{
if (con != null)
con.Close();
}
#endregion
#region 释放数据库连接资源
public void Dispose()
{// 确认连接是否已经关闭
if (con != null)
{
con.Dispose();
--
con = null;
}
}
#endregion
#region
传入参数并且转换为SqlParameter类型
/// <summary>
/// 转换参数
/// </summary>
/// <param name=“ParamName“>存储过程名称或命令文本</param>
/// <param name=“DbType“>参数类型</param></param>
/// <param name=“Size“>参数大小</param>
/// <param name=“Value“>参数值</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
/// <summary>
/// 初始化参数值
/// </summary>
/// <param name=“ParamName“>存储过程名称或命令文本</param>
/// <param name=“DbType“>参数类型</param>
/// <param name=“Size“>参数大小</param>
/// <param name=“Direction“>参数方向</param>
/// <param name=“Value“>参数值</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;
--
if (Size > 0)
param = new SqlParameter(ParamName, DbType, Size);
else
param = new SqlParameter(ParamName, DbType);
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value;
return param;
}
#endregion
#region
执行参数命令文本(无数据库中数据返回)
/// <summary>
/// 执行命令
/// </summary>
/// <param name=“procName“>命令文本</param>
/// <param name=“prams“>参数对象</param>
/// <returns></returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
//得到执行成功返回值
return (int)cmd.Parameters[“ReturnValue“].Value;
}
/// <summary>
/// 直接执行SQL语句
/// </summary>
/// <param name=“procName“>命令文本</param>
/// <returns></returns>
public int RunProc(string procName)
--
{
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.ExecuteNonQuery();
this.Close();
return 1;
}
#endregion
#region
执行参数命令文本(有返回值)
/// <summary>
/// 执行查询命令文本,并且返回DataSet数据集
/// </summary>
/// <param name=“procName“>命令文本</param>
/// <param name=“prams“>参数对象</param>
/// <param name=“tbName“>数据表名称</param>
/// <returns></returns>
public DataSet RunProcReturn(string procName, SqlParameter[] prams, string tbName)
{
SqlDataAdapter dap = CreateDataAdaper(procName, prams);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
this.Close();
//得到执行成功返回值
return ds;
}
/// <summary>
/// 执行命令文本,并且返回DataSet数据集
/// </summary>
/// <param name=“procName“>命令文本</param>
/// <param name=“tbName“>数据表名称</param>
/// <returns>DataSet</returns>
--
public DataSet RunProcReturn(string procName, string tbName)
{
SqlDataAdapter dap = CreateDataAdaper(procName, null);
DataSet ds = new DataSet();
dap.Fill(ds, tbName);
this.Close();
//得到执行成功返回值
return ds;
}
#endregion
#region 将命令文本添加到SqlDataAdapter
/// <summary>
/// 创建一个SqlDataAdapter对象以此来执行命令文本
/// </summary>
/// <param name=“procName“>命令文本</param>
/// <param name=“prams“>参数对象</param>
/// <returns></returns>
private SqlDataAdapter CreateDataAdaper(string procName, SqlParameter[] prams)
{
this.Open();
SqlDataAdapter dap = new SqlDataAdapter(procName, con);
dap.SelectCommand.CommandType = CommandType.Text;
//执行类型:命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
dap.SelectCommand.Parameters.Add(parameter);
}
//加入返回参数
dap.SelectCommand.Parameters.Add(new SqlParameter(“ReturnValue“, SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
--
string.Empty, DataRowVersion.Default, null));
return dap;
}
#endregion
#region
将命令文本添加到SqlCommand
/// <summary>
/// 创建一个SqlCommand对象以此来执行命令文本
/// </summary>
/// <param name=“procName“>命令文本</param>
/// <param name=“prams“命令文本所需参数</param>
/// <returns>返回SqlCommand对象</returns>
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
// 确认打开连接
this.Open();
SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.Text; //执行类型:命令文本
// 依次把参数传入命令文本
if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
// 加入返回参数
cmd.Parameters.Add(
new SqlParameter(“ReturnValue“, SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return cmd;
}
#endregion
}
--
--
- 上一篇:农民工工资支付情况自查自纠报告
- 下一篇:年轻干部成长要走“三自三要”之路
猜你喜欢
- 2024-01-14 2024坚持用党创新理论引导青年成长成才(精选文档)
- 2024-01-14 理论宣讲工作研讨交流:当好新时代理论宣讲“青骑兵”
- 2024-01-13 (10篇)有关理论宣讲活动方案(全文完整)
- 2024-01-13 心得体会:习近平经济思想理论逻辑
- 2024-01-12 (2合集)主题教育以学正风理论合集(理论党课、心得研讨发言参考)【优秀范文】
- 2024-01-12 中国式现代化理论与实践(范文推荐)
- 2024-01-01 心得体会:习近平经济思想理论逻辑
- 2023-12-31 2024年(33篇)主题教育以学增智理论合集(理论党课、心得研讨发言参考)
- 2023-12-31 (2合集)主题教育以学正风理论合集(理论党课、心得研讨发言参考)【优秀范文】
- 2023-12-31 中国式现代化理论与实践(范文推荐)
- 搜索
-
- 用党的创新理论解决实际问题的具体案例 05-12
- 民警“坚持政治建警,全面从严治警”整 10-11
- 环保先进个人材料 03-09
- 【领导会议主持词】 有上级领导参加的 12-09
- [简单的辞职报告] 个人原因辞职信20字 12-11
- 2020对照党章党规“五个方面”找差距个 08-07
- 个人廉洁从业和作风建设情况总结 07-10
- 小学教务处工作人员职责及分工安排 06-28
- 银行如何做好市场营销 05-28
- 支部委员会组织生活会会议记录 07-15
- 网站分类
-
- 标签列表
-