计算机学院科研管理系统.docx
- 文档编号:25314672
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:32
- 大小:489.26KB
计算机学院科研管理系统.docx
《计算机学院科研管理系统.docx》由会员分享,可在线阅读,更多相关《计算机学院科研管理系统.docx(32页珍藏版)》请在冰豆网上搜索。
计算机学院科研管理系统
摘要
科研管理系统是面向某某大学计算机科学与技术学院开发的用于科研项目信息管理的系统,主要用于管理学院的科研成果。
系统使用PowerBuilder6.5开发,数据库为Oracle,采用C/S体系结构。
系统设计的目标主要是让使用人员能高效率的完成科研项目信息以与教师根本信息的规X化管理,并达到操作过程中的直观、方便、实用和安全的要求:
为了使用户操作起来更加方便,增设了工具栏;考虑到用户对教师的名字并不是很清楚,在教师信息查询中,特设了按姓氏查询和按某某拼音的首字母查询;为了防止用户误删一些数据,在用户对数据删除前,都对用户操作进展提示。
在系统开发过程中用到的关键技术有:
自动生成序列号,自动生成拼音码,模糊查询,以与查询结果排序以与窗口居中显示等。
一.前言··································································
(1)
二.正文··································································
(1)
〔一〕系统简介·························································
(1)
〔二〕功能简介·························································
(2)
〔三〕开发工具以与开发环境简介·······························(3)
〔四〕数据库设计·····················································(4)
〔五〕系统的源代码··················································(5)
〔六〕开发中的难点和关键技术··································(24)
三.结论·································································(27)
四.谢辞·································································(27)
五.参考文献·································································(28)
科研管理系统
(一)前言
科研信息管理是高校管理工作中的重要组成局部,随着信息技术的开展和广泛应用,利用计算机实现高校中的教师信息管理和科研项目信息管理势在必行。
科研管理系统是某某大学计算机科学与技术学院98级毕业实习题目之一,由闫中敏教师指导,侯素玲和王澄澄共同开发。
本系统用于管理某某大学计算机科学与技术学院科研成果,主要实现两局部功能:
科研项目管理以与教师根本信息管理。
其中,科研项目管理局部由王澄澄负责完成。
下面,谨就整个系统功能、结构和教师根本信息管理开发过程中的一些问题进展详细阐述。
〔二〕正文
一.系统简介
1.系统目标设计
科研管理系统可以用于支持学院完成科研管理工作,有如下3个方面的目标:
●使科研信息管理实现规X化;
●使管理人员高效率完成科研管理的日常业务,包括新项目参加时资料的建立,项目完成时相关信息的删除等;
●将规定日期之前的科研项目查询出来,与时通知各项目负责人。
2.开发设计思想
●系统应符合科研信息管理的规定,满足科研管理工作的需要,并达到操作过程中的直观、方便、实用、安全等要求。
●系统采用C/S体系结构,客户端负责提供表达逻辑、显示系统界面信息,访问数据库服务器;服务器端负责提供数据。
●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
●系统应具备数据库维护功能,与时根据用户需求进展数据的添加、删除、修改等操作。
二.功能简介
现将系统功能详细介绍如下:
科研管理系统主要完成如下功能:
●教师信息的输入,包括教师某某,家庭、办公、Email、手机、备注等;教师编号和拼音码自动生成。
●教师信息的修改、删除等日常维护。
●按照某种条件,查询、统计符合条件的教师信息。
●科研项目信息的输入,项目名称,项目分类,项目负责人,截止日期,备注。
●科研项目维护:
包括信息浏览、删除记录、修改记录、以与保存所作修改等。
浏览项目信息时可以点击相应记录查看项目负责人信息。
●按照某种条件,查询、统计符合条件的项目信息。
2.系统模块图
在系统功能分析的根底上,考虑PowerBuilder程序编制的特点,得到如下列图的功能模块图:
科研信息管理系统
系统模块
教师信息管理模块
科研项目信息管理模块
关于〔帮助〕模块
●系统模块:
包括
✧登陆系统;
✧退出系统
●教师信息管理模块:
包括
✧教师信息录入
✧教师信息维护
✧教师信息查询
●科研项目信息管理模块:
包括
✧科研项目信息录入
✧科研项目信息维护
✧科研项目信息查询
●帮助模块:
✧关于系统的信息
三.开发工具以与开发环境简介
●PowerBuilder简介
PowerBuilder是Sybase的子公司PowerSoft推出的数据库应用开发工具,能够设计传统的高性能、基于客户/服务器体系结构的应用系统。
PowerBuilder支持应用系统同时访问多种数据库,包括诸如Oracle、此外,PowerBuilder开发环境随带的SybaseSQLAnywhere本身就是一个功能强大的DBMS,对小型应用来说,直接使用这个数据库就是个质优价廉的选择。
为了方便用户开发,PowerBuilder提供了大量控件,这既丰富了应用程序的表达能力,也加快了项目的开发进度。
PowerBuilder是面向对象的编程,数据窗口是PowerBuilder中功能最强大的一个对象,通过它可以操作数据库中的数据,并对数据进展各种处理,例如排序分组等,可以设计数据输入输出格式以与统计图表和多种屏幕显示风格是PowerBuilder成为客户/服务器体系数据库开发领先地位的一个重要原因。
PowerBuilder支持多种平台,并能生成机器代码的可执行文件。
●Oracle简介
Oracle数据库管理系统是目前世界上最流行的关系数据库管理系统之一,是以高级结构化查询语言(SQL)为根底的大型关系数据库。
相对于其他数据库,Oracle在性能、系统可靠性、分布式处理能力等方面有独特的优越性,并在数据库管理功能、数据完整性控制、数据库查询能力、数据安全性等方面都有重大改善。
Oracle数据库在物理上是存储于硬盘的各种文件,它是活动的,可扩大的,随着数据的添加和应用程序的增大而变化。
Oracle数据库在逻辑上是由许多表空间构成,主要分为系统表空间和非系统表空间。
非系统表空间内存储着各项应用的数据、索引、程序等相关信息。
●开发环境
软件环境:
操作系统为Windows2000,数据库管理系统为Oracle7.3,开发工具为PowerBuilder6.5。
四.数据库设计
●数据库分析
通过对高校教师管理和项目管理内容和过程的分析,设计数据项和数据结构如下:
教师根本情况。
包括有教师编号、教师某某、家庭、办公、手机、Email、拼音、备注。
项目根本情况。
包括有项目编号、项目名称、项目分类、负责人、截止日期、备注。
教师实体和项目实体之间的关系:
教师担任项目负责人。
●数据库结构
表1:
tab_teacher教师根本信息表〔主关键字teacher_id〕
列名
数据类型
可否为空
说明
teacher_id
char(10)
notnull
教师编号
teacher_name
varchar2(10)
null
教师某某
teacher_home_tel
char(12)
null
家庭
teacher_office_tel
char(13)
null
办公
teacher_mobile_tel
char(13)
null
手机
teacher_email
varchar2(30)
null
teacher_spell
varchar2(20)
null
拼音
teacher_notation
varchar2(100)
null
备注
表2:
tab_project项目根本信息表〔主关键字project_id〕
列名
数据类型
可否为空
说明
project_id
char(10)
notnull
项目编号
project_name
varchar2(100)
null
项目名称
project_classfication
varchar2(200)
null
项目分类
project_manager_id
char(10)
null
负责人〔外码〕指向tab_teacher的teacher_id
project_deadline
date
null
截止日期
project_notation
varchar2(200)
null
备注
1.创建应用程序对象a_ky
PowerBuilder中应用程序对象是应用程序的系统入口。
应用程序首先运行的脚本就是应用程序对象的open事件。
在应用对象的open事件中输入如下的程序代码:
SQLCA.DBMS="O73ORACLE7.3"
SQLCA.LogPass="******"
SQLCA.ServerName="ORAC"
SQLCA.LogId="ky"
SQLCA.Automit=False
SQLCA.DBParm=""
connect;
Open(w_login)//打开程序登陆窗口
在应用程序对象的变量定义窗口中定义科研管理系统的两个全局变量:
stringteacher_id
stringproject_id
2.登陆窗口w_login的设计
●按钮【确认】的功能是利用用户输入的用户名和口令来连接数据库。
如果连接成功,如此打开应用程序主窗口,关闭登陆窗口;如果不成功,如此会弹出一个对话框,显示用户输入有误。
其clicked事件脚本如下:
ifsle_1.text=""then
//popamessagebox
messagebox("注意!
","用户名不能为空!
")
//sle_1getthefocus
sle_1.setfocus()
elseifsle_2.text=""then
//popamessagebox
messagebox("注意!
","密码不能为空!
")
//sle_2getthefocus
sle_2.setfocus()
else
//gettheusernameandpassword
//connectthedatabase
connect;
//dealwitherror
ifSQLCA.SQLCODE=0then
open(w_main)
close(w_login)
else
MESSAGEBOX("警告","输入有误!
")
sle_1.setfocus()
endif
endif
●按钮【退出】的功能是终止应用程序的运行,其clicked事件脚本如下:
halt
3.主窗口对象w_main
系统应用程序的主要功能都是在主窗口w_main与在其下打开的众多窗口中完成的。
主窗口的类型设立为MDIFramewithMicrohelp是为了在其下以特定方式打开其他窗口。
主窗口的运行界面如下:
4.菜单对象m_mdimain的设计
“系统〞
●“重新登陆〞的clicked事件的脚本:
disconnect;
open(w_login)
close(w_main)
其功能是先断开与数据库的连接,打开登陆窗口,关闭应用程序主窗口。
●“退出系统〞的clicked事件的脚本:
close(w_main)
其功能是关闭主窗口w_main。
“教师信息管理〞
●“教师信息输入〞的clicked事件的脚本:
opensheet(w_insert_teacher,w_main,4,layered!
)
其功能是在主窗口w_main上以平铺方式层叠打开窗口w_insert_teacher,并指定在第四个菜单〔‘窗口’菜单〕标题下增加一个以w_insert_teacher命名的菜单。
●“教师信息维护〞->“逐条浏览〞的clicked事件的脚本:
opensheet(w_weihu_teacher_free,w_main,4,layered!
)
其功能是在主窗口w_main上以平铺方式层叠打开窗口w_weihu_teacher_free,并指定在第四个菜单〔‘窗口’菜单〕标题下增加一个以w_weihu_teacher_free命名的菜单。
●“教师信息维护〞->“表格浏览〞的clicked事件的脚本:
opensheet(w_weihu_teacher,w_main,4,layered!
)
其功能是在主窗口w_main上以平铺方式层叠打开窗口w_weihu_teacher,并指定在第四个菜单〔‘窗口’菜单〕标题下增加一个以w_weihu_teacher命名的菜单。
●“教师信息查询〞的clicked事件的脚本:
opensheet(w_lookfor_teacher,w_main,4,layered!
)
其功能是在主窗口w_main上以平铺方式层叠打开窗口w_lookfor_teacher,并指定在第四个菜单〔‘窗口’菜单〕标题下增加一个以w_lookfor_teacher命名的菜单。
4.3菜单“项目信息管理〞
见王澄澄毕业论文
4.4菜单“窗口〞
●菜单“窗口〞->“层叠〞的clicked事件的脚本:
w_main.ArrangeSheets(Cascade!
)
其功能是将所有打开的窗口以层叠的方式排列。
●菜单“窗口〞->“平铺〞的clicked事件的脚本:
w_main.ArrangeSheets(Layer!
)
其功能是将所有打开的窗口以平铺的方式排列。
“帮助〞
●“关于〞的clicked事件的脚本:
Open(w_about_keyan)
其功能是打开帮助窗口w_about_keyan。
5.数据窗口对象的创建
在应用程序中,根据需要共创建了三个数据窗口:
●数据窗口d_teacher_insert,选择QuickSelect数据源、Freedom形式,连接表Tab_teacher,与窗口w_insert_teacher关联。
●数据窗口d_teacher_grid,选择SQLSelect数据源,Grid形式,连接表Tab_teacher,与窗口w_lookfor_teacher和w_weihu_teacher关联。
●数据窗口d_teacher,选择QuickSelect数据源、Freedom形式,连接表Tab_teacher,与窗口w_weihu_teacher_free关联。
6.窗口对象w_insert_teacher
此窗口功能是实现教师信息的录入,由主窗口的“教师信息管理〞菜单的“教师信息录入〞调用。
运行界面如下:
●窗口w_insert的open脚本
dw_insert_teacher.settransobject(sqlca)
dw_insert_teacher.retrieve()
longrow_number
w_insert_teacher.dw_insert_teacher.reset()
row_number=insertrow(w_insert_teacher.dw_insert_teacher,0)
●【保存】按钮控件的clicked事件用于对输入信息进展保存,假如保存失败,系统会给予提示。
脚本如下:
stringvxm,vxmpy
stringvhm
selectto_char(ky.teacher_shunxuhao.nextval)
into:
vhm
fromdual;
ifsqlca.sqlcode<>0then
messagebox("错误!
!
!
","生成顺序号失败!
")
return
endif
dw_insert_teacher.SetItem(1,'teacher_id',vhm)
dw_insert_teacher.SetFocus()
vxm=dw_insert_teacher.getitemstring(1,'teacher_name')
selectgetpy(:
vxm)into:
vxmpy
fromdual;
ifsqlca.sqlcode<>0then
messagebox("错误!
!
!
","生成拼音失败!
")
return
endif
dw_insert_teacher.setitem(1,'teacher_spell',vxmpy)
ifupdate(w_insert_teacher.dw_insert_teacher,true,false)=1then
//保存修改成功,提交修改
w_insert_teacher.dw_insert_teacher.resetupdate()
mit;
w_insert_teacher.dw_insert_teacher.reset()
row_number=insertrow(w_insert_teacher.dw_insert_teacher,0)
else
//保存修改失败,取消所作的修改
rollback;
//弹出一个对话框警告
messagebox("错误!
!
!
","数据保存失败!
")
endif
●【退出】按钮控件的clicked事件用于关闭该输入窗口。
在关闭窗口之前,首先判断用户是否对数据窗口中的记录做了修改而没有保存到数据库中,如果又这样的记录,如此出现对话框询问用户是否保存所作的修改,脚本如下:
intMCount//修改后没有保存的行数
intUpdateOrNot//是否修改
//得到修改后没有保存的行数
MCount=w_insert_teacher.dw_insert_teacher.ModifiedCount()
ifMCount=0then
//没有未保存的修改
close(w_insert_teacher)
elseifMcount>0then
//询问是否保存所做的修改
UpdateOrNot=MessageBox("保存修改","您修改了数据窗口中的数据,现在是否保存?
",Question!
YesNoCancel!
)
ifUpdateOrNot=1then
//保存
ifupdate(w_insert_teacher.dw_insert_teacher,true,false)=1then
//保存修改成功,提交修改
w_insert_teacher.dw_insert_teacher.resetupdate()
mit;
close(w_insert_teacher)
else
//保存修改失败,取消所作的修改
rollback;
//弹出一个对话框警告
messagebox("错误!
!
!
","数据保存失败!
")
endif
elseifUpdateOrNot=2then
//不保存
rollback;
close(w_insert_teacher)
endif
endif
7.窗口对象w_weihu_teacher
此窗口实现教师信息的表格浏览,由主窗口的“教师信息管理〞菜单的“教师信息维护〞的“表格浏览〞调用,可对信息进展修改、删除等操作。
运行界面如下:
●.数据窗口的clicked事件,其功能是单击标题栏时实现对教师信息排序。
脚本如下:
stringcol_name//列名
stringcol_text//列标题
intlength//列标题长度
ifsortway="d"then//sortway实例变量
sortway="a"
else
sortway="d"
endif
col_text=dwo.name;//dwo系统变量
length=len(col_text);
col_name=left(col_text,length-2)
ifnotisnull(col_name)then
ifdw_weihu_teacher.setsort(col_name+sortway)=1then
dw_weihu_teacher.sort()
endif
endif
●【保存】按钮控件的clicked事件用于对修改厚的信息进展保存,假如保存失败,系统会给予提示。
脚本如下:
ifupdate(w_weihu_teacher_free.dw_weihu_teacher_free,true,false)=1then
//保存修改成功,提交修改
w_weihu_teacher_free.dw_weihu_teacher_free.resetupdate()
mit;
else
//保存修改失败,取消所作的修改
rollback;
//弹出一个对话框警告
messagebox("错误!
!
!
","数据保存失败!
")
dw_weihu_teacher_free.retrieve()
endif
●【删除】按钮控件的clicked事件用于删除当前光标所在的那条记录。
如果该教师是某项目负责人,如此根据参照完整性规如此,该记录不能被删除。
脚本如下:
longcurrent_rownumber
intUpdateOrNot//是否删除
//询问是否确定删除
UpdateOrNot=MessageBox("删除记录?
","您确定要删除数据窗口中的数据?
",Question!
YesNo!
)
ifUpdateOrNot=1then
//删除
current_rownumber=w_weihu_teacher.dw_weihu_teacher.getrow()
deleterow(w_weihu_teacher.dw_weihu_teacher,current_rownumber)
ifupdate(w_weihu_teacher.dw_weihu_teacher,true,false)=1then
//保存修改成功,提交修改
w_weihu_teacher.dw_weihu_teacher.resetupdate()
mit;
else
//保存修改失败,取消所作的修改
rollback;
//弹出一个对话框警告
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 学院 科研 管理 系统