1
XX学院信息科学与工程学院
数据结构课程设计
题 目:知识库管理系统
学生姓名:
学 号:
专 业:计算机科学与技术
班 级:XX级(X)班
指导教师姓名及职称:
起止时间: 20** 年 3 月—— 20** 年 6 月
2
一、 需求分析
1.1 课题背景及意义
知识库管理系统软件将来自工作中、生活中、培训中、组织内的各类资料和领域知识进行管理维护并提供关联分析和综合查询服务。
系统是一个b/s结构的底层服务软件,其中的服务端均部署在服务器上后台运行,并提供配置web管理界面,以达到知识辅助管理的目的。
1.2 课题要求
知识库管理系统包括文件集中存储上传、文档链接、关联文档、规则使用、智能检索等主要功能。
文件集中存储上传:支持文件的批量上传及压缩包导入,支持Office文档、PDF、图像、音视频和图纸等各类型文件。
文档链接:支持将文档发送至常用文档,用户无需每次在打开各个目录中查找; 支持将文档发送至目录,方便其他用户查阅;
关联文档:文档新建或上传后,系统会自动或手动为文件生成唯一编号,支持文档的批量关联。支持通过文件唯一编号,实现文档与相关文档、图纸、图片及其它格式附件进行关联,点击链接即可一键快速查看。系统支持为图片、音、视频类文件增加摘要及缩略图。
规则使用:系统支持为文件设定规则,指定动作(组合)、条件和操作,当动作触发符合设定的条件,系统则自动执行规则的操作。
智能检索:快速从海量资料中精准检索所需文件,可根据依据文件类型、文件关键信息、时间等,也可在完成检索操作后对信息进行接受、判断、提取、分析和概括之后形成自己的知识,然后保存,成为下一次分析、概括的依据和基础。可以直接在系统中预览各类格式的图片、播放视频、音频以及浏览各类Office文件,包括Word、Excel、PowerPoint、WPS、Visio等格式
.
1.3 设计目标
(1) 名称:知识库管理系统
(2) Web主页:
(3) 开发工具、搭建环境:visual studio 2015,windows server 2012R,sql server 2008。
(4) 运行环境:IE,chrome,firefox,opera
(5) Web特点:
1. 图形化且易于导航,具有同一页可以显示丰富的色彩,图形和文本的功能。
2. 提供将图形,音频,视频信息集合于一体的特征。
3. 与平台无关,无论什么系统,只要通过Internet访问www。
4. Web是分布式的,使在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息是一体的。
5. Web是动态的,经常更新内容信息。
6. Web是交互的,主要表现在超链接,另外通过FORM的形式可以从服务器方获得动态的信息。用户通过填写FORM可以向服务器提交请求,服务器可以根据用户的请求返回相应信息。
(6)功能:文件上传,文件检索,文件下载,系统简介 3
二、 概要设计
2.1 问题解决的思路概述
首先是确定了系统设计的流程图,选定较成熟的bootstrap sql server技术进行开发,利用已经存在的数据结构和函数方法来构造系统的结构,接着把系统实现分为3个步骤:数据库的设计,前台页面的设计,后台程序逻辑的设计。
2.2 前端界面介绍说明
前端界面运用的目前很成熟的bootstrap框架,可以快速搭建系统的前端页面。该系统总共有7个页面(index.html about.html viewer.html lib_flieList.aspx lib_upload.aspx login.aspx video.aspx)
2.3 主要程序函数调用说明
数据库操作类:
///
/// 获取数据库链接
///
/// webconfig的数据库链接名称
///
public static string GetConnSting(string connName)
{
return ConfigurationManager.ConnectionStrings[connName].ConnectionString.ToString();
}
///
/// 一个有效的数据库连接对象
///
///
public static SqlConnection GetConnection(string connName)
{
SqlConnection Connection = new SqlConnection(SqlHelper.GetConnSting(connName));
return Connection;
}
///
/// 执行指定数据库连接对象的命令
///
///
/// 示例:
/// int result = ExecuteNonQuery(conn, CommandType.StoredProcedure, "PublishOrders", new
SqlParameter("@prodid", 24));
///
/// 一个有效的数据库连接对象
/// 命令类型(存储过程,命令文本或其它.) 4
/// T存储过程名称或T-SQL语句
/// SqlParamter参数数组
///
public static int ExecuteNonQuery(SqlConnection connection, CommandType commandType,
string commandText, params SqlParameter[] commandParameters)
{
if (connection == null) throw new ArgumentNullException("connection");
// 创建SqlCommand命令,并进行预处理
SqlCommand cmd = new SqlCommand();
bool mustCloseConnection = false;
PrepareCommand(cmd, connection, (SqlTransaction)null, commandType, commandText,
commandParameters, out mustCloseConnection);
// Finally, execute the command
int retval = cmd.ExecuteNonQuery();
// 清除参数,以便再次使用.
cmd.Parameters.Clear();
if (mustCloseConnection)
connection.Close();
return retval;
}
///
/// 执行指定数据库连接字符串的命令,返回DataSet.
///
///
/// 示例:
/// DataSet ds = ExecuteDataset(connString, CommandType.StoredProcedure, "GetOrders",
new SqlParameter("@prodid", 24));
///
/// 一个有效的数据库连接字符串
/// 命令类型 (存储过程,命令文本或其它)
/// 存储过程名称或T-SQL语句
/// SqlParamters参数数组
///
public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string
commandText, params SqlParameter[] commandParameters)
{
if (connectionString == null || connectionString.Length == 0) throw new
ArgumentNullException("connectionString");
// 创建并打开数据库连接对象,操作完成释放对象.
using (SqlConnection connection = new SqlConnection(connectionString))
{