科研信息管理系统的设计与实现doc文档格式.docx
- 文档编号:20052464
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:23
- 大小:785.83KB
科研信息管理系统的设计与实现doc文档格式.docx
《科研信息管理系统的设计与实现doc文档格式.docx》由会员分享,可在线阅读,更多相关《科研信息管理系统的设计与实现doc文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
是功能强大并易于使用的第4代编程语言(4GL),它内置了包括数据窗口在内的多种对象类,可以方便地访问数据库。
相对于其他应用工具,PowerBuilder具有工作效率高、成本低、质量高、功能强的特点。
4系统设计
4.1系统功能划分和设计
根据科研部需求,本系统主要满足各专家技术人才的查分需求,科研部普通工作人员,科研部管理人员的录入统计功能。
科研部人员需要录入课题,成果,论文,著作,专利,经费能内容,每一个项目都录入所属课题或是论文等的级别,科室,负责人等。
并需要根据各项目的级别和人员参与顺序等计算出该人员的得分、科室的得分。
科研评估部分,需要能计算出单位时间段内所有人员的所有项目的得分总和并排名,所有科室的得分总和及排名。
本系统还得增加备份数据库和还原数据库的功能。
软件还需要满足不同权限的设置。
由科研部管理人员设置,每个科研部人员的权限,可以分别让某个工作人员只负责某个项目的录入。
系统设置只让科研部管理人员进入,进行项目级别的分数设置,如课题等级,成果得奖级别等参数设置。
科研部一般人员可以在每个项目中进行统计,另存,添加,删除,打印,添加得分人员,察看得分情况,察看经费,过滤,查找等功能。
4.2系统功能模块
系统功能图
4.3数据流图
该科研管理系统得分层数据流图如图:
顶层图
第一层图
4.4数据库设计
4.4.1设计局部ER模式
实体和属性的定义:
课题(课题编号,课题名称,课题科室,课题负责人,发表日期,课题等级,课题类型,课题经费,操作员,操作时间,其他立项,备注)
成果,新技术,专利,著作等表和课题表相似。
技术人才表(人员序号,姓名,性别,科室,拼音码,学历,职称,身份证,学术兼职,备注)
专利类型表(专利类别编号,专利类别,专利系数)
科室表(科室编号,科室名称,拼音码)
参数设置(参数编号,项目类型,人员序号,得分系数)
ER模型的“联系”用于刻画实体之间的关联。
一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。
若有联系,进一步确定是1:
N,M:
N,还是1:
1等。
还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。
解释如下:
一个项目可以有多个得分人员,一个人员可以有多个项目
一个项目有多笔经费,一笔经费只能在属于一个项目
一个项目只能属于一种项目类别,而一种项目类别可以包含 多个项目;
一个人员只能在一个科室,一个科室可以有多个人员
4.4.2全局ER模式
所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。
全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。
“图书管理系统”的全局ER模式如下所示。
n
4.4.3关系数据库的逻辑设计
由于概念设计的结果是ER图,DBMS一般采用关系型(本人所使用的MSSQLServer就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。
由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。
设计结果是一组关系模式的定义。
(1)导出初始关系模式
课题(课题编号#,课题名称,课题科室,课题负责人,发表日期,课题等级,课题类型,课题经费,操作员,操作时间,其他立项,备注)
技术人才表(人员序号#,姓名,性别,科室,拼音码,学历,职称,身份证,学术兼职,备注)
专利类型表(专利类别编号#,专利类别,专利系数)
科室表(科室编号#,科室名称,拼音码)
参数设置(参数编号#,项目类型,人员序号,得分系数)
(2)产生子模式
子模式是用户所用到的那部分数据的描述。
除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。
经费表(经费编号#,经费类别#,课题编号#,金额,费用日期,操作员,操作时间,备注)
分数表(分数编号#,分数类型,所在科室#,项目编号#,项目时间,项目名称,其他信息,得分人员#,人员序号,得分,操作员,操作时间)
(3)根据设计中出现的问题本人在写系统时还加入了关系模式:
1、管理员表:
用于存储工作人员和管理员的用户名和密码及权限,以便工作人员或管理员进入相应的功能模块时进行验证用户的身份。
4.4.4数据库的实现
我选用MicrosoftSQLServer2000(个人版)数据库来进行数据库的逻辑设计。
首先创建数基本据库表下:
管理员表(Admin),参数设置表(canshu_set),课题表(keti),成果表(chengguo)论文表(lunwen)著作表(zhuzuo)专利表(zhuanli)新技术表(xinjishu)分数表(fenshu)经费表(jingfei)技术人员表(oper)
还有一些其他的小表,如科室表(keshi),课题类型表(ketixishu),论文类型表(lunwen_leixing),论文类别表(lunwen_leibie),专利类型表(zhuanli_type),著作类型表(zhuanzhu_type),著作编者表(zhuzuo_bianzhe),著作积分设置表(zhuzuo_jifen_set),著作类别表(zuozhuo_leibie),经费类别表(jinfei_type)等,共计30张表。
5科研管理系统实施
5.1Powerbuilder9.0应用程序开发的基本步骤
我们要开发应用程序时,首先要对它进行分析。
无论哪种、哪方面的应用程序,都要先建立一个应用对象。
下面我们介绍以下PowerBuilder9.0应用程序开发的基本步骤:
(1)首先要建立应用对象。
(2)创建窗口。
在窗口里放置各种控件和编写事件响应的脚本。
(3)创建菜单。
窗口里的菜单可包括菜单条,下拉式菜单,级联菜单和弹出式菜单为菜单编写事件响应的脚本。
(4)创建用户对象。
如果想要重复使用某个控件的功能,可以把窗口上经常放置的控件定义为用户对象。
(5)创建数据窗口。
数据窗口可以检索数据库中的数据,可以建立各种报或统计表,可以修改数据库。
(6)创建函数、结构、事件。
为了能够更好地支持脚本,编写自定义的函数,定义结构类型变量,也可以为对象和控件定义自己的事件。
(7)运行与调试。
可以在开发环境中随时运行应用程序,发现错误后,可以用调试工具进行调试。
(8)当应用程序开发完毕后,可以把它编译成可执行的文件,让用户比较容易地建立应用系统的运行环境。
5.2创建祖先窗口和全局函数
为充分利用PB的面向对象的特性。
程序开发时一般创建几个模板窗口。
将功能窗口上的某些常用功能封装在模板窗口中。
然后将这些模板窗口作为祖先窗口。
所有的子孙窗口都可以通过继承的方法来生成。
这样就减少了代码的书写量。
使得整个程序界面保持整齐。
当修改祖先窗口时,所有的子孙窗口都会自动修改。
所以,祖先窗口的确定要十分谨慎。
本系统就在祖先窗口中的open事件中的代码为:
gf_SetSkin(this,'
.\Web-II.skn'
)//设置界面的统一皮肤
全局变量有登陆的操作员等
5.5人机界面
图5.1
(1)登录窗口(图5.1)
功能介绍:
本窗口主要是用户登录,并检查操作员输入的用户名及密码是否正确,如果正确,允许登录。
如果错误,显示出错误提示。
登录同时,会根据该用户的权限,进入相应得界面。
代码分析:
确定按钮的clicked事件代码为:
stringa1,id,oper,a2,a3,a4
inta5,a6,a7,a8,a9,a10,a11,a12,a13,a14
stringkey
id=sle_1.text;
selectadmin_key,admin_no,admin_nameinto:
key,:
admin_no,:
admin_name
fromadmin
whereadmin_no=:
id;
ifsle_2.text='
'
orisnull('
sle_2.text'
)then
messagebox('
'
请输入密码'
)
elseifkey=sle_2.textorsle_2.text='
then
open(w_main)
//菜单权限设置
selectketi,chengguo,lunwen,zhuzuo,zhuanli,xinjishu,jingfei,pinggu,system_set
into:
a5,:
a6,:
a7,:
a8,:
a9,:
a10,:
a11,:
a12,:
a13
fromadmin
whereadmin_no=:
danwei=Pro("
.\keyan.ini"
"
database"
'
danwei'
"
"
ifa5=1then
m_main.m_课题管理.enabled=true
else
m_main.m_课题管理.enabled=false
w_main.cb_1.enabled=false
endif
ifa6=1then
m_main.m_成果管理.enabled=true
w_main.cb_2.enabled=true
m_main.m_成果管理.enabled=false
w_main.cb_2.enabled=false
ifa7=1then
m_main.m_论文管理.enabled=true
w_main.cb_3.enabled=true
m_main.m_论文管理.enabled=false
w_main.cb_3.enabled=false
ifa8=1then
m_main.m_著作管理.enabled=true
w_main.cb_4.enabled=true
m_main.m_著作管理.enabled=false
w_main.cb_4.enabled=false
ifa9=1then
m_main.m_专利管理.enabled=true
w_main.cb_5.enabled=true
m_main.m_专利管理.enabled=false
w_main.cb_5.enabled=false
ifa10=1then
w_main.cb_6.enabled=true
w_main.cb_6.enabled=false
ifa11=1then
m_main.m_经费管理.enabled=true
w_main.cb_7.enabled=true
m_main.m_经费管理.enabled=false
w_main.cb_7.enabled=false
ifa12=1then
m_main.m_科研评估.enabled=true
m_main.m_科研评估.enabled=false
ifa13=1then
m_main.m_系统设置.enabled=true
m_main.m_系统设置.enabled=false
close(parent)
else
messagebox('
输入密码错误,请重新输入'
endif
图5.2
(2)主窗口界面和菜单(图5.2)
主窗口设计为菜单于快捷按钮集中的混合界面,打开相应得窗口。
菜单主要有:
打印机设置,课题设置,论文设置专利设置,科室设置,人员设置,费用类别设置,管理员设置,背景设置(可以更改主窗口的图片背景),参数设置,注销,退出等。
操作方法:
点击各菜单和快捷按钮
每个相应的菜单项的clicked事件都使用open方法来打开相应的功能窗口,如“课题管理”的菜单项下的clicked事件的处理代码为:
open(w_keti_guanli)
图5.3
(3)管理员窗口(图5.3)
添加管理员账号,密码,并设置每个管理员的不同权限。
建完用户,在相应的权限上选取即可。
图5.4
(4)参数设置窗口(图5.4)
设置课题,论文等人员序号和得分系数
图5.5
(5)技术人员管理窗口(图5.5)
技术人员管理库。
添加人员库的各项信息,包括学历,职称,科室等内容,窗口按钮有查找,另存,打印,添加,删除,提取拼音码等。
点击查找按钮出来查找窗口,可按各种条件查找;
点击另存按钮可以导出EXCEL表格;
点击添加出人员添加窗口;
删除按钮是删除所选中的人员;
提取拼音码是按照姓名提取拼音字头;
双击每个人员,可以修改。
图5.6
(6)课题管理窗口(图5.6)
管理所有课题,具有添加得分人员,察看积分,察看经费,添加经费,过滤等功能。
图5.7
(7)课题录入窗口(图5.7)
录入课题窗口,选中不同课题类型,课题等级对应的选项窗口不相同。
输入负责人之后,科室自动出来,点击保存之后,经费自动插入经费表。
支持回车前进功能,负责人,科室输拼音码即可,输入完后点击保存。
可全键盘操作!
保存的click()事件代码如下
dw_1.accepttext()
decimalketi_type,ketixishu_no,jingfei,keti_keshi,one_person,two_person
stringketixishu_name
datetimebegin_date
keti_type=dw_1.getitemdecimal(dw_1.getrow(),'
type'
ketixishu_no=dw_1.getitemdecimal(dw_1.getrow(),'
ketixishu_no'
ketixishu_name=dw_1.getitemstring(dw_1.getrow(),'
ketixishu_name'
one_person=dw_1.getitemdecimal(dw_1.getrow(),'
one_person'
two_person=dw_1.getitemdecimal(dw_1.getrow(),'
two_person'
keti_name=dw_1.getitemstring(dw_1.getrow(),'
keti_name'
begin_date=dw_1.getitemdatetime(dw_1.getrow(),'
begin_date'
jingfei=dw_1.getitemdecimal(dw_1.getrow(),'
jingfei'
keti_keshi=dw_1.getitemdecimal(dw_1.getrow(),'
keti_keshi'
ifketi_type=0orisnull(keti_type)then
课题类别不能为空'
return
ifketixishu_name='
orisnull(ketixishu_name)then
课题类型不能为空'
)
endif
ifketi_name='
orisnull(keti_name)then
课题名称不能为空'
ifone_person=0orisnull(one_person)then
第一负责人不能为空'
ifketi_keshi=0orisnull(keti_keshi)then
科室不能为空'
ifisnull(begin_date)then
立项时间不能为空'
ifisnull(jingfei)then
经费不能为空'
ifcc=1then
do
longaa
stringbb,dd
selectnointo:
keti_nofromnowheretype='
1'
;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 科研 信息管理 系统 设计 实现 doc