科研管理系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
摘要 (1)
第一章系统开发理论依据 (2)
1.1 概述 (2)
1.2 SQL介绍 (2)
1.3 B/S结构介绍 (2)
第二章需求分析和系统功能设计 (4)
2.1 系统项目依据及目标 (4)
2.2 系统功能模型的建立 (5)
第三章系统规划和概要设计 (7)
3.1 系统功能模块 (7)
3.2 方法概要 (9)
3.3 系统流程图 (9)
3.4 系统解决方案项目构成 (10)
第四章数据库的设计与实现 (12)
4.1 数据库概念结构设计 (12)
4.2 数据库表的设计 (13)
4.3 数据库的安全 (14)
第五章业务逻辑层设计与实现 (16)
5.1 科研成果的实现 (16)
5.2 数据库访问类 (17)
第六章界面表示层设计 (19)
6.1 科研成果模块的设计 (19)
6.2 模块的实现 (19)
第七章系统测试,维护以及安全 (22)
7.1 系统测试 (22)
7.2 系统维护 (22)
7.3 系统安全 (23)
第八章系统总结 (24)
心得体会 (25)
参考文献 (26)
摘要
本系统采用B/S(Browser/Server,浏览器/服务器)结构, 为开发语言,SQL Server 2005为数据库来进行设计与开发。
本系统功能包括登录、项目管理、成果管理、科研人员管理、科研分查询等。
本论文简要阐述了此次毕业设计题目“江西现代学院科研管理系统”的开发环境,同时对本系统的构架进行分析,通过分析结果划分出部门管理模块、项目管理模块、成果管理模块、科研管理模块、个人信息管理模块五大功能模块。
详细介绍了本系统各个模块与功能的实现原理,本文介绍了本系统的需求分析、功能设计和系统设计,并通过流程图和文字加以解释说明。
在本系统设计中给出数据库的设计和总体设计方案,在系统实现中具体介绍了各个功能的所能实现的情况和主要代码,同时附有运行界面图。
关键词:、SQL Server2005
第一章系统开发理论依据
1.1 概述
是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序
优点:
●安全
●国际化
●可管理性
●易于部署
●增强的性能
●扩展性和可用性
1.2 SQL介绍
SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言包含4个部分:
●数据定义语言,例如:CREATE、DROP等语句。
●数据操作语言,例如:INSERT(插入)、UPDATE(修改)等语句
●数据查询语言,例如:SELECT语句。
●数据控制语言
1.3 B/S结构介绍
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起,对C/S(客户机/服务器)结构的一种变化或者改进的结构。
在这种结构下,用户工作界面是通过浏览器来实现。
这样就大大简化了客户端电脑载荷,减轻了系
统维护与升级的成本和工作量。
B/S结构的优点
●具有分布性特点,可以随时随地进行查询、浏览等业务处理。
●业务扩展简单方便,通过增加网页即可增加服务器功能。
●维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
●开发简单,共享性强
第二章需求分析和系统功能设计
系统的开发不仅仅是一个应用程序的编写过程,最重要的是在系统分析和系统设计的阶段所做的工作,本系统是基于Microsoft Visual Studio 2005系统开发的Web应用程序,它针对有关目标设计系统,运行环境等进行分析,通过数据库需求分析、系统功能模块设计等实现系统及功能模块。
科研水平逐渐成为衡量一个高校的重要指标,高校作为重要的科研机构,如何对学校大量的科研信息进行高效、安全的保存、处理、统计、加工等管理操作,将日常的科研管理工作更加规范化,建立高校科研管理系统进行科研管理工作是每一个高校必由之路。
高校科研管理系统数据库设计是高校科研管理系统设计中的一项核心工作,所有的管理工作都必须以数据库为中心,进而建立高校科研管理系统。
2.1系统项目依据及目标
本系统是以科研项目流程为核心,全方位通过计算机来管理科研项目申报、项目开题、项目结题、科研成果、分类汇总分析和科研分计算等科研活动,以达到方便、高效地管理和控制,提高管理效能。
本系统既满足学院领导和科研决策者对科研活动的宏观管理与决策的需要,满足科研管理部门对教师科研分的统计、汇总和查询,也满足各系部单位或本人对科研项目的查询和管理工作,同时也便于和教育厅的科研管理系统的数据进行对接。
系统项目内容:
(1) 实现对科研日常事务的管理:科研项目、科研成果、完成情况等信息管理。
(2) 实现对科研信息的查询、教师科研分的查询。
(3) 提供全方位的科研管理服务,为学校各项科研管理业务提供信息化支持。
(4) 辅助科研负责人或科研管理者管理相应的科研工作,及时掌握、了解学院教师的科研情况,方便且高效地完成科研管理工作。
系统目标及要解决的问题:
系统能及时为学校提供科研信息,辅助管理人员制定科研计划;分析科研计划
及项目完成情况,实现对科研任务、科研计划、项目执行的管理和控制;构建系统的安全解决方案,确保系统的安全性和保密性;实现对科研工作人员的管理及登录系统时的权限分配。
本系统需要解决的功能包括项目申报、成果管理、综合查询、科研分管理、角色管理、部门及人员管理等。
(1) 项目管理功能
项目申报查询:用于按时间段、申报单位、项目名称、项目编号等条件下进行项目申报信息的总体信息查询;项目申报编辑:用于对个人申报的信息进行增、删、改等编辑操作;项目日常管理:用于对项目进程过程中日常信息的编辑管理工作。
(2) 成果管理功能提供科研成果信息的输入,编辑,查询等功能。
(3) 部门及人员管理功能
部门管理:设置相关部门名称;人员管理:查询或设置科研人员的基础资料。
(4) 科研分管理功能科研分的审核、统计、查询和报表等功能。
(5) 角色管理功能
角色分配:建立系统操作中各类人员角色信息,用于进行权限控制,系统中角色分为三个层次:系统管理人员、科研管理人员、普通教师。
2.2系统功能模型的建立
通过对江西现代学院科研管理的需求调研、分析,将科研管理系统分为科研项目管理、科研成果管理、科研管理、部门管理、个人信息管理等几个主要的模块,使用本系统的人员可以分为教师、科研管理员、系统管理员三种角色。
(1) 系统管理员:整个系统的管理者,主要完成用户角色信息的管理、部门信息的管理、系统基础数据的维护等。
(2) 科研管理员:可对科研项目或科研成果进行审核,可对院系部门进行设置。
(3) 教师:仅具有项目申报、科研成果添加和个人信息修改、查询科研分等功能。
不同的角色完成不同的功能。
系统功能模型如表2-1所示
表2-1:系统功能模型
第三章系统规划和概要设计
3.1系统功能模块
本系统的主要任务是用计算机对各种科研信息进行日常的管理,如查询、修改、增加、删除等,迅速准确地完成各种科研信息的统计计算和汇总工作。
针对系统服务对象的具体要求,设计了本系统。
本统主要包括综合管理、项目管理、成果管理、科研管理、个人信息管理五大模块。
各模块之间并非各个独立,而是相互联系,相互关联在一起的,从而使本系统能够很好的完成所设计的功能。
本统有三种不同角色:教师、科研管理员、系统管理员。
不同角色可做不同的操作。
本系统功能模块及其子模块如图3-1所示
图3-1:功能模块
(1) 教师登录:可以浏览、查看科研成果管理中的所有信息、可以编辑个人信息,可以浏览、查看本人的项目、项目信息,申报项目、浏览查看本人成果、申报成果、科研分根据项目和成果自动添加,可以查看、本人以及各部门的科研分。
(2) 科研管理员登录:可以浏览、查看科研成果管理中的所有信息、可以编辑个人信息,可以浏览、查看本人的项目、项目信息,申报项目、浏览查看本人成果、
申报成果、科研分根据项目和成果自动添加,可以查看、本人以及各部门的科研分,对各项目、项目成果进行审核。
(3) 系统理员登录:可以浏览、查看科研成果管理中的所有信息、可以编辑个人信息,可以浏览、查看本人的项目、项目信息,申报项目、浏览查看本人成果、申报成果、科研分根据项目和成果自动添加,可以查看、本人以及各部门的科研分,对部门和科研人员以及对著作、论文、获奖、鉴定、岗位类进行管理。
3.2 方法概要
本系统是采用面向对象的程序设计思想进行编制的。
用户可以通过主菜单调用系统的各项功能。
(1)面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性,便于程序的维护与扩展。
(2)所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西”。
一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一。
对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。
用户无需知道其任何细节,操作是封闭的,对象之间能通过方法调用相互通信。
(3)类可视为一个产品模具、一个模块。
在面向对象设计中,类是对象的原型,是对象的制作器。
类的概念是面向对象程序设计最重要的特征。
所谓类,是指由数据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性质相同的对象的程序描述,概括了对象的共同性质和数据。
3.3系统流程图
3.3.1 系统流程图
本系统分为三个角色:普通教师、系统管理员、科研管理员,每个角色具有自己不同的权限。
下面会通过流程图一一做出分析介绍。
流程图如图3-2所示
图3-2:系统流程图
3.4 系统解决方案项目构成
为了用B/S设计模式的三层体系结构实现本系统的设计,本人用Visual Studio 2005简体中文企业版设计了一个名为“JXXDXYTSSM”的科研管理系统解决方案,用VC#语言在该解决方案中建立了三个项目,这三个项目的有机结合,构成了本科研管理系统。
这四个项目分别和B/S设计模式的三层体系结如图3-3所示
图3-3:解决方案构成图
这三个项目分别为:UI表示层、BLL业务逻辑类、DAL数据访问类。
各层之间互相的引用联系是:表示层(UI)命名空间中要引用业务逻辑类(BLL),业务逻辑类(BLL)再引用数据访问类(DAL)。
第四章数据库的设计与实现4.1 数据库概念结构设计
(1)局部E-R图,下图为科研项目的E-R图,如图4-1所示
图4-1:科研项目E-R图
(2)集成E-R图,下图为教师信息表的部分关联信息,如图4-2所示
图4-2:教师信息集成E-R图
4.2数据库表的设计
数据库是所有系统设计中的灵魂部分,没有数据库的系统是毫无价值的,是个残废的系统,所以,数据库是个很重要的部分。
下面就详细介绍数据库的设计。
(1) Book(著作表):用来存储著作信息,主键期刊编号number,其同时也为标识列,还有著作名称、作者、课题来源、著作类、出版时间、出版社单位、状态、所属项目、分数。
表各字段设计如表4-3所示
表4-3 :著作表
在著作表中著作编号和著作名称都不可以为空,因为这两个在数据库中都是起到关键的作用,所以,不可以为空。
(2) Paper(论文表)用来存储论文信息,主键论文编号number,其同时也为标识列。
表各字段设计如下表4-4所示
表4-4:论文表
在论文表中论文编号和论文名称都不可以为空,因为这两个在数据库中都是起到关键的作用,所以,不可以为空。
(3)Prize(获奖成果)用来储存获奖成果的信息,主键为获奖成果的编号number,其同时也为标识列。
表的详细字段如下表4-5所示
表4-5:获奖成果表
4.3 数据库的安全
在本系统中,数据库的安全主要通过数据库的存取控制机制实现的。
首先定义各类管理人员的操作权限即角色,然后依据用户表将登录分配为相应的角色。
由于人员的复杂性,角色分教师、科研管理员、系统管理员三种角色。
在用户登录时,提取出用户的角色,不同的角色进入系统后,对应页面初始化时的角色检查会判断改角色可不可以使用该页面,从而保证每种角色的用户,只能看到的操作到自己权限范围内的数据,其他的数据根本看不到,从而基于角色,实现数据的存取控制的安全性。
主外键约束的关系图和项目所涉及的各表间关系图,如图4-6所示
图4-6:系统关系图
第五章业务逻辑层设计与实现
5.1 科研成果的实现
添加论文的代码如下:(sql方法)
///<summary>
///返回论文添加的结果
///</summary>
///<param name="str">论文添加字符串</param>
///<returns></returns>
public int ADDpaper(string str)
{
string str1 = "insert into
Paper(name,author,paperdate,publish,state,scienceclass,paperclass,words,pro
ject,score) values (" + str + ",0)";
return PDB.ExeSql(str1);
}
添加按钮下的事件
///<summary>
///添加论文信息
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
string str = "'" + TextBox1.Text + "','" + erObj.number + "','" + TextBox3.Text + "','" + TextBox2.Text + "','审核中','" +
DropDownList1.SelectedValue + "','" + DropDownList2.SelectedValue + "','" +
TextBox4.Text + "','" + DropDownList3.SelectedValue + "'";
int a = PPC.ADDpaper(str);
if (a != 0)
{
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
DropDownList1.DataBind();
DropDownList2.DataBind();
GridView1.DataBind();
System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "asd", "alert('提交成功');", true);
}
else
{
System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "asd", "alert('添加失败');", true);
}
ChangeButton();
}
其他科研成果类(著作、鉴定成果、获奖成果)如此类似在此不一一列举。
5.2 数据库访问类
数据访问层主要是系统采用的数据库管理系统(DBMS),在整套企业级数据库应用系统中,它是最重要的一环,其中主要的对象有表、视图、存储过程、函数、触发器等,数据的许多处理都应该由数据库本身去完成,例如将复杂的查询或者数据写入,都封装为存储过程和函数,将数据写入前后要进行的附加操作用触发器实现等等。
访问类的实现:
SqlConnection DBconnection;
SqlDataAdapter DBadapter;
SqlCommand DBcommand;
DataSet DBds;
DataTable DBtb;
///<summary>
///数据库连接命令
///</summary>
public void SqlDBConnection()
{
string strConnection = "Data Source=.;Initial Catalog=JXXDXYSMDB;Integrated Security=true";
DBconnection = new SqlConnection(strConnection);
}
///<summary>
///传入sql语句返回一个DataTable
///</summary>
///<param name="str"></param>
///<returns></returns>
public DataTable GetDetaTable(string str)
{
SqlDBConnection();
DBconnection.Open();
DBds = new DataSet();
DBadapter = new SqlDataAdapter(str, DBconnection); DBadapter.Fill(DBds, "DBtable");
DBtb = new DataTable();
DBtb = DBds.Tables["DBtable"];
DBconnection.Close();
return DBtb;
}
///<summary>
///传入sql语句返回执行行数
///</summary>
///<param name="str"></param>
///<returns></returns>
public int ExeSql(string str)
{
int a = 0;
SqlDBConnection();
DBconnection.Open();
DBcommand = new SqlCommand();
DBcommand.Connection = DBconnection;
mandText = str;
a = DBcommand.ExecuteNonQuery();
DBconnection.Close();
return a;
}
第六章界面表示层设计
界面表示层主要是页面接受用户的请求,以及数据的返回,为客户端提供应用程序的访问。
6.1科研成果模块的设计
科研成果模块主要分为:论文、著作、获奖成果、鉴定成果几个小模块。
如下图6-1所示
图6-1:科研成果模块
6.2 模块的实现
论文功能模块:主要分为:查看和添加。
如图6-2,图6-3所示
图6-2:论文列表
图6-3:论文添加
论文列表代码如下:
///<summary>
///论文审批
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) {
if (mandName == "MySelect")
{
Session["a"] = mandArgument.ToString();
System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "exclamation", "window.open ('LookDetail.aspx')", true); }
if (mandName == "MyUpdate1")
{
Paperview.UpdateParameters.Clear();
Paperview.UpdateParameters.Add("state", TypeCode.String, "审核通过"); Paperview.UpdateParameters.Add("number", TypeCode.String,
mandArgument.ToString());
Paperview.Update();
GridView1.DataBind();
}
if (mandName == "MyUpdate2")
{
Paperview.UpdateParameters.Clear();
Paperview.UpdateParameters.Add("state", TypeCode.String, "审核未通过"); Paperview.UpdateParameters.Add("number", TypeCode.String,
mandArgument.ToString());
Paperview.Update();
GridView1.DataBind();
}
if (mandName == "Delete")
{
Paperview.DeleteParameters.Clear();
Paperview.DeleteParameters.Add("number",TypeCode.String,mandArgument
.ToString());
Paperview.Delete();
GridView1.DataBind();
}
论文添加代码如下:
///<summary>
///返回论文添加的结果
///</summary>
///<param name="str">论文添加字符串</param>
///<returns></returns>
public int ADDpaper(string str)
{
string str1 = "insert into
Paper(name,author,paperdate,publish,state,scienceclass,paperclass,words,pr
oject,score) values (" + str + ",0)";
return PDB.ExeSql(str1);
}
///<summary>
///添加论文信息
///</summary>
///<param name="sender"></param>
///<param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
string str = "'" + TextBox1.Text + "','" + erObj.number + "','" + TextBox3.Text + "','" + TextBox2.Text + "','审核中','" +
DropDownList1.SelectedValue + "','" + DropDownList2.SelectedValue + "','" +
TextBox4.Text + "','" + DropDownList3.SelectedValue + "'";
int a = PPC.ADDpaper(str);
if (a != 0)
{
TextBox1.Text = "";
TextBox2.Text = "";
TextBox3.Text = "";
DropDownList1.DataBind();
DropDownList2.DataBind();
GridView1.DataBind();
System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "asd", "alert('提交成功');", true);
}
else
{
System.Web.UI.ScriptManager.RegisterStartupScript(UpdatePanel1,
this.GetType(), "asd", "alert('添加失败');", true);}
其他科研成果类(著作、鉴定成果、获奖成果)如此类似在此不一一列举。
第七章系统测试,维护以及安全
7.1系统测试
7.1.1 系统运行
系统数据库连接上之后就可以运行了,在Microsoft Visual Studio中的工具栏中有一个绿三角图标,点击后就可以运行系统了。
如果出现有错误,系统将提示错在什么位置,便于修改。
7.1.2单元测试
以后上所有功能实现后,就要对本统进行测试,测试主要是单元测试。
测试一:在项目申报页添加新项目信息,按提交,跳转到列表页面,看看是否有该新增的记录。
测试二:查询一条项目信息,通过编号和项目名称各查询一次查看是否查询正确。
测试三:申请一次项目中检,查看项目中检审批页面是否有该项目的中检信息。
7.2 系统维护
软件投入使用后就进入软件维护阶段。
系统如果没有维护,在遭到破坏时将造成不可收回的损失,任何一个系统都会有维护,维护工作是软件生存周期中时间最长的一个阶段,也所花费的精力和费用是最多的一个阶段,没有问题时可以很轻松,有问题时,将会很繁重。
因此,系统维护一定要很完善。
软件维护的内容有四种:校正性维护,适应性维护,完善性维护和预防性维护。
如下:
校正性维护:软件使用后,由于软件开发过程中产生错误没有完全在测试中发现,因此有一部分隐含错误被带到维护阶段上来。
这些隐含错误在特定使用环境下暴露出来。
修改软件性能上的缺陷,应进行确定和修改错误的过程,叫校正性维护适应性维护:为了使应用软件适应这种变化而修改的过程为使应性修改。
完善性维护:在软件漫长的运行时间中,用户往往会对软件提出新的功能要求。
由于开发系统的时间比较紧,系统维护方面的工作还没有做,这是本系统最欠缺的部分。
但是以后会逐步完成系统的维护功能。
7.3 系统安全
系统分为不同的角色登录、角色的不同所使用的权限也是不一样的、这就保证了登录者不能越权使用。
如图7-1所示
图7-1:不同身份登录
第八章系统总结
本系统是使用及SQL Server 2005数据库来进行设计与开发而成,该系统可以有效的实现科研信息的管理,有助于学校科研部门对信息的管理。
本系统基本实现了:基础信息管理、部门管理、人员管理、项目管理、成果管理、科研分管理。
虽然这些功能看起来不是很难,但是在毕业设计过程中却也是要花一番功夫的,并不是很容易就可以完成的。
所以,本系统还是有很多可取之处的。
本系统虽然说是利用了网络进行管理,但是,这只是大型系统的雏形,而且开发人员少,周期短等各方面因素造成系统的维护方面并不是很好,而且这个系统只能给较小的场所作为管理系统,并不是很适应大型系统开发,因为,大型系统要求的方面要更加精准,不可以存在什么漏洞,此次开发的本系统必然存在漏洞或者是没有考虑全面的方面。
而且,系统界面做的并不是很美观,有些地方很不适合科研管理系统。
可是,总得来说,还是可以说是一个完整的系统。
上面也分析了,因为开发系统时各方面的原因,在将来可能会提出进一步完善系统,将可能发生的问题缩减到最小,并且进一步开发系统,使系统适应各种类型、各种方面的数据管理,并且把系统做到最完美,界面舒服大方。
心得体会
在这次毕业设计中,在王平华老师的指导下完成了科研管理系统的系统调研、平台论证、需求分析、总体设计、详细设计、界面设计。
其中主要的可行性分析、需求分析、总体设计,它们都是比较重要的组成部分,也是后期设计软件的基础与必备。
需求分析文档编辑的好坏直接影响整个软件设计工作。
本系统基本能够实现学校对科研管理部门的管理的功能,在进一步完善的基础上,将可以投入实际的应用。
此次所作课题是科研管理系统,由于我的编程水平和经验不足,有些功能的实现并不完美、并不理想。
在已经完成的程序中,也存在许多不尽人意的算法,也没有统一优化,系统有待进一步改善,而这些问题也让我充分认识到了软件开发的困难程度。
通过这次毕业设计,使我对管理类的网站的开发有了一定的了解。
对软件开发方法和手段,我都有了一定的认识;丰富了我的软件开发的经验,提高了程序编写的水平。
加深理解了在课程中、书本上学到的知识和理论,并使其在实际开发中得到运用。
同时通过编写毕业设计论文,掌握了软件文档的书写方法和书写格式。
在老师的关心帮助支持下,经过很长的辛勤探索、不懈努力,终于顺利完成了本次毕业设计任务。
并为我今后继续学习、深造奠定了基础,我非常感谢各位老师、同学的支持与帮助。
参考文献
[1]杜兆将郭鲜凤刘占文《SQL Server 数据库管理与开发》,北京大学出版社2006-1
[2] 郑阿奇《 2.0 实用教程》,电子工业出版社2009-1
[3] 郑阿奇,《C# 实用教程》,电子工业出版社2008-1
[4]林义正蔡文龙吴昱欣主编,《Visual C# 2005 完全开发指南》,北京科海电子出版社2008-7
[5] Jsmes Foxall 著陈秋萍译,《Visual C# 2005 入门经典》,人民邮电出版社2007-3
[6] 温谦著《CSS设计彻底研究》人民邮电出版社2008-2。