.Uxj102 { display:none; } 摘 要 本系统采用B/S(Browser/Server)结构, ASP.NET 为开发语言,SQL Server 2005为数据库来进行设计与开发
该系统主的功能是帮助人们管理学校人文科研项目等
基本功能包括登录、项目展示、成果展示、人员展示、科研分查询等
本 论文 ,简要阐述了此次毕业设计题目“科研 管理系统 ”的开发背景与开发环境,且对系统的构架进行分析,并由此划分出各个模块,有基础管理模块、人员管理模块、部门管理模块、项目管理模块、成果管理模块、科研分管理模块
详细介绍了系统各个模块与功能的实现原理,本文详细介绍了网上系统的需求分析、功能设计和系统设计等,并通过流程图和文字加以解释说明
在系统设计中给出数据库的设计和本系统的总体设计方案,在系统实现中具体介绍了各个功能的所能实现的情况和主要代码,同时附有运行界面图,最后总结开发阶段与测试阶段所遇到的问题与解决方法
ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具
ASP的网页文件的格式是.asp,现在常用于各种动态网站中
ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序
ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等
利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序
与HTML相比,ASP网页具有以下特点: (1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术; (2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试; (3)服务器上的ASP解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页; 〖资料来源:56DOC.COM 毕业设计(论文)网〗 (4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强
例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息; (5)ASP可以使用服务器端ActiveX组建来执行各种各样的任务,例如存取数据库、发现那个Email或访问文件系统等
(6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可放置ASP程序代码被窃取
ASP.NET不仅仅是 Active Server Page (ASP) 的下一个版本,而且是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序
ASP.net提供许多比现在的Web开发模式强大的优势
1.1.2 ASP.NET的优点 ASP.NET的主要优点大概可以归纳如下: (1)ASP.NET是把基于通用语言的程序在服务器上运行
不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多
(2)ASP.NET构架是可以用Microsoft(R)公司最新的产品 Visual Studio.net开发环境进行开发,WYSIWYG(What You See Is What You Get所见即为所得)的编辑
这些仅是ASP.net强大化软件支持的一小部分
通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中
ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript
将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net
ASP.NET一般分为两种开发语言,VB.NET和C#,C#相对比较常用,因为是.NET独有的语言,VB.NET则为以前VB程序设计,适合于以前VB程序员,如果新接触.NET,没有其他开发语言经验,建议直接学习C#
(4)ASP是运行在服务器端,所以无须担心浏览器是否支持ASP所使用的编程语言,用户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容
ASP在服务器端运行,当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度
(5)Active Server Pages的程序代码隐藏,在客户端上仅可以看到由ASP输出的动态HTML文件
因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性
(7)面向对象(Object oriented),并可扩展ActiveX Server组件功能
(8)ActiveX Server Components(ActiveX服务器组件)具有无限可扩充性
可以使用任何编程语言来编写所需要的ActiveX Server 组件
(9)可以通过ADO(ActiveX Data Objects,微软的一种新的数据访问模型,是一种可以提供WEB页面开发者轻松存取Inter的数据库,并可以在用户端实现网上立即、即时更新显示的最新WEB页面数据库技术
)非常方便地访问数据库,从而使存取数据库变得轻松容易
1.2 SQL介绍 SQL是英文Structured Query Language的缩写,意思为结构化查询语言
SQL语言的主要功能就是同各种数据库建立联系,进行沟通
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等
目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准
虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select, Insert, Update, Delete, Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作
它是随着Inter技术的兴起,对C/S结构的一种变化或者改进的结构
这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)
以目前的技术看,局域网建立B/S结构的网络应用,并通过Inter/Intra模式下数据库应用,相对易于把握、成本也是较低的
它是一次性到位的开发,能实现不同的人员, 从不同的地点,以不同的接入方式(比如LAN, WAN, Inter/Intra等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全
1.4三层架构 随着软件工程的不断进步和规范以及面向对象编程思想的应用,人们对封装、复用、扩展、移置等方面的要求,使得双层架构显然更加臃肿繁琐,三层程序架构体系应运而生,可以说,三层架构体系结构是面向对象思想发展中的必然产物
所谓三层架构,是在客户/服务之间加入了一个"中间层",也叫组件层
它与客户层、服务器层共同构成了三层体系
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才有三层体系结构,三层是指逻辑上的三层
通过引入中间层,将复杂的商业逻辑从传统的双层结构(Client-Server)应用模型中分离出来,并提供了可伸缩、易于访问、易于管理的方法,可以将多种应用服务分别封装部署于应用服务器,同时增强了应用程序可用性、安全性、封装复用性、可扩展性和可移置性,使用户在管理上所花费的时间最小化,从而实现了便捷、高效、安全、稳定的企业级系统应用
三层体系架构具体包括:表示层、业务逻辑层、数据访问层
表示层运行在客户端浏览器上,产生用户视图
在业务逻辑层发生变化时通过改变表示层的组合以及做一些简单的调整就可以很好地适应新的业务逻辑层
(2) 业务逻辑层:这一层是从整个系统功能设计中抽取大量具有共性的模块,把它们统一设计成为系统公共的可重用的组件
由COM+组件服务管理器统一配置管理组件
(3) 数据访问层:用来管理和存储数据,实现数据访问功能,设计数据库,定义数据表结构、表的索引、数据表之间的关联,定义数据库中的视图以及操作数据的存储过程,设计数据库的安全等等
该层由数据库管理系统如SQL Server来管理和控制
第二章 需求分析和系统功能设计 信息系统的开发不仅仅是一个应用程序的编写过程,最重要的是在系统分析和系统设计的阶段所做的的工作,科研管理系统是基于Microsoft Visual Studio 2008系统开发的Web应用程序,它针对有关目标设计系统开发背景,运行环境等进行分析,通过数据库需求分析、系统功能模块设计等实现系统及功能模块
科研水平逐渐成为衡量一个高校的重要指标,高校作为重要的科研机构,如何对学校大量的科研信息进行高效、安全的保存、处理、统计、加工等管理操作,将日常的科研管理工作更加规范化、科学化,建立高校科研管理系统进行科研管理工作是每一个高校必由之路
高校科研管理系统数据库设计是高校科研管理系统设计中的一项核心工作,所有的管理工作都必须以数据库为中心,进而建立高校科研管理系统
该系统既满足学院领导和科研决策者对科研活动的宏观管理与决策的需要,满足科研管理部门对教师科研分的统计、汇总和查询,也满足各系部单位或本人对科研项目的查询和管理工作,同时也便于和教育厅的科研管理系统的数据进行对接
系统项目内容: 1. 实现对科研日常事务的管理:科研项目、科研成果、完成情况等信息管理
2. 实现对科研信息的查询、教师科研分的查询
3. 提供全方位的科研管理服务,为学校各项科研管理业务提供信息化支持
4. 辅助科研负责人或科研管理者管理相应的科研工作,及时掌握、了解学院教师的科研情况,方便且高效地完成科研管理工作
系统目标及要解决的问题: 系统能及时为学校提供科研信息,辅助管理人员制定科研计划;分析科研计划及合同完成情况,实现对科研任务、科研计划、合同执行的管理和控制;完成科研工作量的计算、统计、审核;构建系统的安全解决方案,确保系统的安全性和保密性;实现对科研工作人员的管理及登录系统时的权限分配
1. 项目管理功能 项目申报查询:用于按时间段、申报单位、项目名称、项目编号等条件下进行项目申报信息的总体信息查询;项目申报编辑:用于对个人申报的信息进行增、删、改等编辑操作;项目日常管理:用于对项目进程过程中日常信息的编辑管理工作
2. 成果管理功能 提供科研成果信息的输入,编辑,查询等功能
3. 经费管理功能 提供科研经费信息的输入,编辑,查询等功能
4. 部门及人员管理功能 部门管理:设置相关部门名称;人员管理:查询或设置科研人员的基础资料
5. 科研分管理功能 科研分的审核、统计、查询和报表等功能
6. 角色管理功能 角色分配:建立系统操作中各类人员角色信息,用于进行权限控制,系统中角色分为四个层次:校管理级别、系部等二级部门级别、普通教师级别和系统维护级别
7. 综合查询功能 用于查询本级及本级以下角色用户的项目信息
2.2系统功能模型的建立 通过 对安徽财贸职业学院科研管理的需求调研、分析,将科研管理系统分为科研项目管理、科研成果管理、学校机构管理、部门人员管理、科研信息查询、基础数据维护、权限管理等几个主要的模块,使用该系统的人员可以分为系统维护员、系管理员、校管理员、一般教师等几种角色
(2) 系管理员: (3 ) 校管理员: (4 ) 一般教师: 不同的角色完成不同的功能
系统功能模型如图所示 第三章 系统规划和概要设计 3.1 系统功能模块 学校科研管理系统的主要任务是用计算机对各种科研信息进行日常的管理,如查询、修改、增加、删除以及存储等,迅速准确地完成各种科研信息的统计计算和汇总工作,快速打印出科研信息报表,针对系统服务对象的具体要求,设计了学校科研管理系统
系统主要包括基础管理、部门管理、人员管理、项目管理、成果管理、科研分管理六大模块
各模块之间并非各个独立,而是相互联系,相互关联在一起的,从而使本系统能够很好的完成所设计的功能
系统有四种不同角色:普通教员、系管理员、校管理员
不同角色可做不同的操作
该系统功能模块及其子模块如图3-1: 1.普通教员登录:可以浏览、查看基础管理中的所有信息、可以编辑个人信息,可以浏览、查看所在系信息和系中所有教研室信息,可以浏览、查看、编辑本人的项目、项目工作量信息,申报项目、项目经费,浏览查看本人成果、成果获奖信息,申报成果、成果经费,科研分根据项目和成果自动添加,可以查看、编辑本人的科研分
3.校管理员登录:可以浏览、查看基础管理中的所有信息、可以新增和编辑,可以编辑个人信息,可以浏览、查看所有系信息和系中所有教研室信息以及研究机构,可以新增、编辑系部、研究机构和教研室,可以浏览、查看、编辑校内所有项目、项目工作量信息,申报项目、项目经费以及审核申报的项目,浏览查看校内所有成果、成果获奖信息,申报成果、成果经费以及审核申报的成果,科研分根据项目和成果自动添加
,可以查看、编辑本校的科研分
3.2 方法概要 科研管理系统是采用面向对象的程序设计思想进行编制的
用户可以通过主菜单调用系统的各项功能
(1)面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性,便于程序的维护与扩展
一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一
对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理
用户无需知道其任何细节,操作是封闭的,对象之间能通过方法调用相互通信
(3)类可视为一个产品模具、一个模块
在面向对象设计中,类是对象的原型,是对象的制作器
类的概念是面向对象程序设计最重要的特征
所谓类,是指由数据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性质相同的对象的程序描述,概括了对象的共同性质和数据
3.3系统流程图 3.3.1系统的逻辑体系结构 本系统采用当前流行的B/S设计模式,基于Windows.NET平台构建Web应用程序,把系统划分为数据层、业务逻辑层和表示层
逻辑体系结构如图3-2所示: 3.3.2系统流程图 本系统分为三个角色:教员、系管理员、校管理员,每个角色具有自己不同的权限
下面会通过流程图一一做出分析介绍
(1) 教师角色:教师登录系统后可以操作属于自己的信息,可以浏览查看学校的公共信息
可以申报自己的项目和成果、项目经费和成果经费、浏览查看自己的项目和成果信息、浏览查看自己的科研分情况等权限
此外系管理员还可以浏览本系的所有教研室及教研室人员,编辑、新增、删除教研室人员
浏览和编辑本系的所有项目和成果信息
浏览戏中科研分信息等
(3) 校管理员角色:校管理员亦可以操作自己的信息
可以浏览、编辑、新增、删除学校的公共信息
审核申报的项目和成果,浏览和编辑项目和成果信息、项目经费和成果经费、科研分等信息
流程图如图3-3和图3-4: 3.4系统解决方案项目构成 为了用B/S设计模式的三层体系结构实现本电子商务系统的设计,本人用Visual Studio.NET 2008简体中文企业版设计了一个名为“kyglSystem”的科研管理系统解决方案,用VC#语言在该解决方案中建立了四个项目,如图3-5所示,这四个项目的有机结合,构成了本科研管理系统
这四个项目分别和B/S设计模式的三层体系结,如图4-4
图3-5 解决方案 这四个项目分别为:Web表示层、BLL业务逻辑类、DAL数据访问类、Model实体类
各层之间互相的引用联系是:首先要将实体类(Model)命名空间在其它各层全部引用,表示层(Web)命名空间中再引用业务逻辑类(BLL),业务逻辑类(BLL)再引用数据访问类(DAL)
图4-1 学术期刊E-R图 (2)集成E-R图,下图为人员信息表的部分关联信息,如图4-2
图4-2 学术期刊集成E-R图 4.2数据库表结构设计 数据库是所有系统设计中的灵魂部分,没有数据库的系统是毫无价值的,是个残废的系统,所以,数据库是个很重要的部分
下面就详细介绍数据库的设计
主管单位表:Charge_Unit_Code Chage_unit_code(主管单位表):用来存储主管单位的详细信息,主键为主管单位编号Id,其为标识列,主管单位名称charge_unit_name
表各字段设计如表4-1 序号 列名 数据类型 长度 小数位 标识 主键 允许空 默认值 说明 1 id int 4 0 是 是 否 2 charge_unit_name nvarchar 30 0 否 表4-1 可以看出,主管单位表里主管单位名称不可以为空,因为员工编号是主键,主键不可以为空
其中学术期刊涉及到的表有:期刊等级表、出版周期表、学科分类表、主管单位表
学校信息表涉及到的表有:主管单位表
科研管理部门表涉及到的表有:学校信息表
特殊人才表涉及到的表有:特殊人才类型表、学校信息表
学科建设表涉及到的表有:学科表、年度表
然后根据表的结构依次建立主外键的关系
4.3 存储过程设计 数据库中的存储过程对应高级语言中的子程序,存储过程的内容是SQL语句,与高级语言的子程序一样,存储过程也有输入输出形参
存储过程在服务器运行,存储过程执行一次后,就被编译为二进制代码且驻留在高速缓冲存储器中,在以后的操作中,只需从高速缓冲中调用已编译好的二进制代码,提高了系统性能
图4-3 存储过程 下面举例说明其他几个重要的存储过程: (1)增加学术期刊的存储过程:这个存储过程是将Magazne表里面的所有字段作为参数,通过前台的添加数据,将记录添加到数据库中
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go --项目名称:科研管理系统 --说明: --时间:-10-26 10:37:57 ALTER PROCEDURE [dbo].[UP_Magazine_ADD] @Id int output, @magazine_name nvarchar(30), @publishUnit nvarchar(30), @magazine_grade int, //…… AS INSERT INTO [Magazine]( [magazine_name],[publishUnit],[magazine_grade],[subject_id],[subjectName] )VALUES( @magazine_name,@publishUnit,@magazine_grade,@subject_id,@subjectName (2)显示所有学术期刊的记录:这个存储过程主要是提取Magazine表里面的所有记录
4.4 数据库安全设计 在本系统中,数据库的安全主要通过数据库的存取控制机制实现的
首先定义各类管理人员的操作权限即角色,然后依据用户表将登录分配为相应的角色
由于人员的复杂性,角色分系统维护员、系管理员、校管理员、一般教师等几种角色
在用户登录时,提取出用户的角色,不同的角色进入系统后,主页中的菜单是不同的,从而保证每种角色的用户,只能看到的操作到自己权限范围内的数据,其他的数据根本看不到,从而基于角色,实现数据的存取控制的安全性
每一张表都对应了一个实体类,故实体类层共包括了:主管单位类、学术期刊类、期刊等级类、主管单位类、主管单位人员类、特殊人才类、特殊人才类型类、发行周期类、学校信息类、学科建设类、学科类、年度类
5.2数据访问层设计 数据访问层主要是系统采用的数据库管理系统(DBMS),在整套企业级数据库应用系统中,它是最重要的一环,其中主要的对象有表、视图、存储过程、函数、触发器等,数据的许多处理都应该由数据库本身去完成,例如将复杂的查询或者数据写入,都封装为存储过程和函数,将数据写入前后要进行的附加操作用触发器实现等等
对于表的创建一般应以数据库原理的第三范式规范来创建,允许一定的冗余
表及视图的创建规范直接影响到代码编写的难易度
public int Delete(int id) { SqlParameter[] parameters = { new SqlParameter("@id", SqlDbType.Int,4)}; parameters[0].Value = id; return DBHelper.spExecuteCommand("UP_Magazine_Delete",parameters); } 5.3业务逻辑层设计 由于组件项目中每个类都设计有一个对后台数据库进行连接的连接字符串成员,为了统一管理,把这个连接字符串成员提取到BLL类中
如学术期刊信息业务逻辑层,其主要代码如下: using System; ……// namespace kygl.BLL { ///
第六章 界面表示层设计 界面表示层主要是页面接受用户的请求,以及数据的返回,为客户端提供应用程序的访问
如果出现有错误,系统将提示错在什么位置,便于修改
测试一:在学术期刊添加页添加学术期刊信息,按保存按钮,跳转到列表页面,看看是否有该新增的记录
测试二:删除一条学术期刊信息,跳转到列表页面,看看是否有该条记录
测试三:修改一条学术期刊信息,跳转到详情页面,看看该条记录是否修改过
测试四:在查询页面里,随机填写几个查询条件,点击查询按钮,跳转到查询结果页面,看看有没有符合查询条件的记录
7.2系统维护 软件投入使用后就进入软件维护阶段
系统如果没有维护,在遭到破坏时将造成不可收回的损失,任何一个系统都会有维护,维护工作是软件生存周期中时间最长的一个阶段,也所花费的精力和费用是最多的一个阶段,没有问题时可以很轻松,有问题时,将会很繁重
因此,系统维护一定要很完善
软件维护的内容有四种:校正性维护,适应性维护,完善性维护和预防性维护
如下: 校正性维护:软件使用后,由于软件开发过程中产生错误没有完全在测试中发现,因此有一部分隐含错误被带到维护阶段上来
这些隐含错误在特定使用环境下暴露出来
完善性维护:在软件漫长的运行时间中,用户往往会对软件提出新 的功能要求
由于开发系统的时间比较紧,系统维护方面的工作还没有做,这是本系统最欠缺的部分
但是以后会逐步完成系统的维护功能
7.3系统安全 因不同角色登录后的权限不同,如系管理员在添加期刊信息、修改期刊信息、删除期刊信息、查看期刊详细信息,如图8-1
图8-1 人员信息新增 而普通教员登录的时候只能查看期刊信息列表和查看期刊详细信息
如图8-2和8-3
本系统基本实现了:基础信息管理、部门管理、人员管理、项目管理、成果管理、科研分管理
虽然这些功能看起来不是很难,但是在毕业设计过程中却也是要花一番功夫的,并不是很容易就可以完成的
所以,本系统还是有很多可取之处的
科研管理系统虽然说是利用了网络进行管理,但是,这只是大型系统的雏形,而且开发人员少,周期短等各方面因素造成系统的维护方面并不是很好,而且这个系统只能给较小的场所作为管理系统,并不是很适应大型系统开发,因为,大型系统要求的方面要更加精准,不可以存在什么漏洞,此次开发的科研管理系统必然存在漏洞或者是没有考虑全面的方面
而且,系统界面做的并不是很美观,有些地方很不适合科研管理系统
可是,总得来说,还是可以说是一个完整的系统
上面也分析了,因为开发系统时各方面的原因,在将来可能会提出进一步完善系统,将可能发生的问题缩减到最小,并且进一步开发系统,使系统适应各种类型、各种方面的数据管理,并且把系统做到最完美,界面舒服大方
其中主要的可行性分析、需求分析、总体设计,它们都是比较重要的组成部分,也是后期设计软件的基础与必备
需求分析文档编辑的好坏直接影响整个软件设计工作
本系统基本能够实现学校对科研管理部门的管理的功能,在进一步完善的基础上,将可以投入实际的应用
此次所作课题是科研管理系统,由于我的编程水平和经验不足,有些功能的实现并不完美、并不理想
在已经完成的程序中,也存在许多不尽人意的算法,也没有统一优化,系统有待进一步改善,而这些问题也让我充分认识到了软件开发的困难程度
通过这次毕业设计,使我对管理类的网站的开发有了一定的了解
对软件开发方法和手段,我都有了一定的认识;丰富了我的软件开发的经验,提高了程序编写的水平
加深理解了在课程中、书本上学到的知识和理论,并使其在实际开发中得到运用
同时通过编写毕业设计论文,掌握了软件文档的书写方法和书写格式
在很多老师的关心帮助支持下,经过很长的辛勤探索、不懈努力,终于顺利完成了本次毕业设计任务
并为我今后继续学习、深造奠定了基础,我非常感谢各位老师、同学的支持与帮助
感谢我的班主任房丙午老师,他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我
从系统设计的指导到系统的测试,房老师都始终给予我们这个小组细心的指导和不懈的支持
两年多来,房老师不仅在学业上给我以精心指导,同时还在思想、生活上给我以无微不至的关怀,在此谨向房老师致以诚挚的谢意和崇高的敬意
在此,我还要感谢在一起完成这个项目的其他组员,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成
特别要感谢组长张学用同学,在我遇到困难的时候,积极帮我解决问题