1、软件工程实验报告科研管理系统软件工程上机实验实验报告书科研管理系统专业班级学 号姓 名指导教师 安徽工业大学第一章简介此次试验,要求完成可视化的科研管理系统。将自己在软件工程课程中学习到的软件设计的知识运用的实际中,加深对知识的理解,也增强自己动手的实践能力。开发环境和开发工具:WINDOWS操作平台上,使用MS vc6。0+sql server 2000第二章试验步骤1需求分析:分析该系统需要完成的功能,需要什么开发工具和数据库管理软件2数据库设计:分析系统的数据,画出数据库的E-R图,并在此基础上完成数据库表的设计和初始数据的输入3数据流图的设计:仿照用户的使用习惯,分析从系统启动到系统退
2、出系统数据的使用4系统功能模块的设计:按照数据流图的需要,分析出系统需要哪些模块来完成需求分析中提出的功能需求5实现和编码:在选定的平台上上运用开发工具和数据库管理软件进行系统的开发6测试:每完成一个模块和重要函数,进行相应的单元测试;系统完成之后,需要系统测试7迭代:根据测试的结果进行迭代,从而形成一个完整可用的系统第三章需求分析系统将采用先进的信息化技术,并有效结合现代科研管理理念和学校科研管理实际情况。系统的成功建设将能够轻松解决传统科研管理中难以解决的系列问题,并在多个方面实现突破: 实现标准化的科研信息系统:系统将采用了国家教育部信息化标准,完全兼容了“全国普通高等学校人文社会科学研
3、究管理系统”,同时也充分体现学校的科研管理办法和有关精神。系统将采集和管理标准完整的科研机构、人员、项目和成果等基础数据,避免了数据的无效性和不规范性,为以后的管理工作打下坚实基础. 构建开放式的科研管理体系:系统将向全校所有从事科研活动或者科研辅助工作的老师开放,并和学校人事处等业务部分建立数据共享机制。系统将彻底改变以前封闭式的管理模式,解决系统数据对内对外的开放性问题。 科学分析和决策支持:系统能够及时收集到学校最新的科研项目、科研成果和学术活动等业务数据,并在大量的数据基础上进行数据挖掘分析工作.既方便学校进行各种查询,也可以提供各种分析报表。系统能够为学校科研管理决策提供科学有效的辅
4、助支持。 科研信息化管理的全方位整体解决方案:系统针对学校的日常管理需要,提出的是一个包括信息发布、办公自动化和科研管理等多方面的整体解决方案。这样避免了临时的不完整的信息化建设,一次性的满足了科研管理中多方面的需要。2。1 可行性分析系统基于windows操作系统环境,在单机上进行测试和使用,主要功能完备,可以运行。2。2 基本功能需求1 系统分成三级用户,不同用户登录界面相同,但是具有的功能不同2 超级管理员能够进行所有的增删查修操作,一般管理员可以对项目等进行增删查修,但是不能对和自己高级同级的用户进行操作3 实现基本信息的各种操作(如学院,部门,委托单位,论文级别,专家等),需要超级管
5、理员的权限4 管理员以上可以实现各种项目、论文、著作、专利的输入工作5 普通用户可以实现项目信息的查询工作第四章数据流图树形结构的数据流图如下所示:第五章 系统模块结构图1登陆界面:主要功能点:1从数据库中读取数据,看用户名和密码的正确性;2如果用户名输入不正确,提示用户名输入错误;3如果密码输入不正确,提示密码输入错误;4如果登陆次数多于五次,自动退出系统;5用户名和密码正确,则进入系统主界面。主要代码:if(m_strUsername。IsEmpty()|m_strPassword.IsEmpty()) AfxMessageBox(请将资料填写完整再登录!); return; theApp
6、。id=m_strUsername; theApp。m_pRS。ADOExcute(select password,uright,name from userinfo where id =”+m_strUsername+”); if(theApp.m_pRS。nFieldRows=1) str=theApp.m_pRS.GetFieldString(0); str.TrimLeft(); str.TrimRight(); if(theApp.trytime=5) /如果登录次数超过五次不成功的话,则退出系统 PostQuitMessage(WM_QUIT); if(str!=m_strPass
7、word) theApp.trytime+; AfxMessageBox(错误的密码!); else npower=theApp。m_pRS。GetFieldNumber(1); theApp.power=npower; if(npower=1) power=超级管理员”; else if(npower=2) power=”管理员”; else power=普通用户”; CMainDlg *maindlg; maindlg = new CMainDlg(); maindlg-Create(IDD_MAINDLG_DIALOG); thisShowWindow(SW_HIDE); maindlg
8、ShowWindow(SW_SHOW); maindlg-Initial(theApp。m_pRS.GetFieldString(2),power,npower); else AfxMessageBox(错误的用户名!”); 2系统主界面主要功能点:1系统功能采用树形菜单映射的方式,分为设置和管理两大部分;2设置主要是设置一些基础信息,比如在下拉框中需要选择的信息,比如学院,委托单位,论文等级等等,需要超级管理员权限;3管理是系统主要功能在管理菜单下,普通用户只能查看相关信息,管理员以上可以增删查改相关信息;4主界面分成三个部分,树形目录是不会发生改变的,始终显示在界面上;列表也是始终显示在界
9、面上的,根据用户单击树形目录选择相关的信息显示在其中;第三部分,则是根据用户单击的选项来动态变化的,若单击用户管理,则显示用户管理的界面,如下示:5系统配有相应的菜单项,工具栏,和状态栏,前两者用来映射树形目录功能,后者则是用来显示用户ID和用户权限以及当前系统时间的。主要代码如下:1List表格刷新函数 m_ctrlList.GetClientRect(rect);/获取列表控件的矩形 m_ctrlList。DeleteAllItems(); while ( m_ctrlList。DeleteColumn (0); /先插入列号 try for(i=0;icolums;i+) strText
10、=theApp.m_pRS.GetFieldName(i); lvColumn.mask=LVCF_TEXTLVCF_FMTLVCF_WIDTH; lvColumn.fmt=LVCFMT_LEFT; lvColumn.cx=rect。right/colums; if(lvColumn。cxd or name =s”,power,name); userinfo.ShowWindow(SW_SHOW); horizproj.ShowWindow(SW_HIDE); vertiproj。ShowWindow(SW_HIDE); article。ShowWindow(SW_HIDE); compose
11、.ShowWindow(SW_HIDE); patent.ShowWindow(SW_HIDE); else if(strText=”横向管理”) userinfo.ShowWindow(SW_HIDE); horizproj.ShowWindow(SW_SHOW); vertiproj.ShowWindow(SW_HIDE); article.ShowWindow(SW_HIDE); compose.ShowWindow(SW_HIDE); patent.ShowWindow(SW_HIDE); else if(strText=”纵向管理”) strSQL = ”select * from
12、vertiproj”; userinfo。ShowWindow(SW_HIDE); horizproj.ShowWindow(SW_HIDE); vertiproj.ShowWindow(SW_SHOW); article.ShowWindow(SW_HIDE); compose。ShowWindow(SW_HIDE); patent.ShowWindow(SW_HIDE); else if(strText=”论文管理”) userinfo。ShowWindow(SW_HIDE); horizproj.ShowWindow(SW_HIDE); vertiproj.ShowWindow(SW_H
13、IDE); article。ShowWindow(SW_SHOW); compose。ShowWindow(SW_HIDE); patent.ShowWindow(SW_HIDE); else if(strText=”专著管理”) userinfo。ShowWindow(SW_HIDE); horizproj。ShowWindow(SW_HIDE); vertiproj.ShowWindow(SW_HIDE); article。ShowWindow(SW_HIDE); compose.ShowWindow(SW_SHOW); patent.ShowWindow(SW_HIDE); else i
14、f(strText=”专利管理) userinfo.ShowWindow(SW_HIDE); horizproj。ShowWindow(SW_HIDE); vertiproj.ShowWindow(SW_HIDE); article.ShowWindow(SW_HIDE); compose.ShowWindow(SW_HIDE); patent.ShowWindow(SW_SHOW); theApp.m_pRS。ADOExcute(strSQL); RefreshList();3单击list控件中相应项在下面的子窗体中显示详细信息的函数:CString id; int cur=m_ctrlLi
15、st.GetSelectionMark(); int all=m_ctrlList.GetItemCount(); if(cur=0&curall) /先查看选中的是否在显示的范围之内 id=m_ctrlList.GetItemText(cur,0); if(userinfo.IsWindowVisible())/判断窗口是否是显示的 userinfo.Display(id); else if(vertiproj.IsWindowVisible()) vertiproj.Display(id); else if(horizproj.IsWindowVisible()) horizproj.Di
16、splay(id); else if(article。IsWindowVisible()) article.Display(id); else if(compose.IsWindowVisible() compose.Display(id); else if(patent.IsWindowVisible()) patent。Display(id); 4主窗口初始化函数:状态栏数据结构:static UINT indicators= ID_INDICATOR_USER, ID_INDICATOR_TIME, ID_INDICATOR_POWER,;初始化状态栏: UINT nID; CRect
17、rect; GetClientRect(rect); thism_nwndStatusBar.Create(this); this-m_nwndStatusBar。SetIndicators(indicators,sizeof(indicators)/sizeof(UINT); m_nwndStatusBar。MoveWindow(0,rect.bottom20,rect.right,20); m_nwndStatusBar.SetPaneStyle(2,SBPS_STRETCH); m_nwndStatusBar.SetPaneInfo(0,nID,SBPS_STRETCH|SBPS_NOB
18、ORDERS,rect。right/320); m_nwndStatusBar.SetPaneText(0,当前用户:”+user); m_nwndStatusBar。SetPaneInfo(1,nID,SBPS_STRETCHSBPS_NOBORDERS,rect。right/3-20); m_nwndStatusBar。SetPaneText(1,”用户权限:”+spower); m_nwndStatusBar。SetPaneInfo(2,nID,SBPS_STRETCHSBPS_NOBORDERS,rect.right/3); SetTimer(1,1000,NULL);树形目录的初始化
19、: hRootItem=m_ctrltree。InsertItem(科研管理系统”,0,2,TVI_ROOT,TVI_LAST); HTREEITEM hsetup=m_ctrltree.InsertItem(”设置”,1,2,hRootItem,TVI_LAST); HTREEITEM hmanage=m_ctrltree。InsertItem(”管理,1,2,hRootItem,TVI_LAST); HTREEITEM hset_school=m_ctrltree.InsertItem(”学院设置”,2,2,hsetup,TVI_LAST); HTREEITEM hset_task_typ
20、e=m_ctrltree.InsertItem(课题类型设置,2,2,hsetup,TVI_LAST); HTREEITEM hset_article_type=m_ctrltree。InsertItem(”论文类型设置,2,2,hsetup,TVI_LAST); HTREEITEM hset_embody_level=m_ctrltree.InsertItem(级别收录设置,2,2,hsetup,TVI_LAST); HTREEITEM hset_submit_cor=m_ctrltree.InsertItem(委托单位设置”,2,2,hsetup,TVI_LAST); HTREEITEM
21、hma_horizinal=m_ctrltree。InsertItem(”横向管理,2,2,hmanage,TVI_LAST); HTREEITEM hma_verticle=m_ctrltree。InsertItem(”纵向管理,2,2,hmanage,TVI_LAST); HTREEITEM hma_article=m_ctrltree.InsertItem(论文管理”,2,2,hmanage,TVI_LAST); HTREEITEM hma_monography=m_ctrltree。InsertItem(”专著管理”,2,2,hmanage,TVI_LAST); HTREEITEM h
22、ma_patent=m_ctrltree.InsertItem(专利管理”,2,2,hmanage,TVI_LAST); HTREEITEM hma_identification=m_ctrltree。InsertItem(”鉴定管理”,2,2,hmanage,TVI_LAST); HTREEITEM hma_reward=m_ctrltree.InsertItem(”获奖管理”,2,2,hmanage,TVI_LAST); HTREEITEM hma_expert=m_ctrltree.InsertItem(专家管理,2,2,hmanage,TVI_LAST); HTREEITEM hma_
23、basinfo=m_ctrltree。InsertItem(基本信息管理”,2,2,hmanage,TVI_LAST); HTREEITEM hma_store=m_ctrltree.InsertItem(”转储管理”,2,2,hmanage,TVI_LAST); HTREEITEM hma_user=m_ctrltree。InsertItem(”用户管理”,2,2,hmanage,TVI_LAST);时间刷新定时器设置:/ TODO: Add your message handler code here and/or call default CTime time; int week; ti
24、me = CTime:GetCurrentTime(); week=time。GetDayOfWeek(); /获取星期几,注意1为星期天,7为星期六 CString s = time。Format(当前时间:Y%m-d H:M:%S 星期);/月份是小写的,分钟是大写的 switch(week) case 1:s+=”日;break; case 2:s+=”一”;break; case 3:s+=二”;break; case 4:s+=三;break; case 5:s+=四;break; case 6:s+=”五;break; case 7:s+=六”;break; m_nwndStatu
25、sBar。SetPaneText(2,s);第六章 测试与调试1测设用例设计用例ID问题描述输入数据预期输出实际输出1登陆界面,用户名错误用户名:aaaa密码:aaaa提示用户名错误弹出提示框,提示用户名错误(图c_1)2登陆界面,没有任何信息用户名:空密码:空提示为空弹出提示框,提示填写完整后再登陆(图c_2)3登陆界面,密码错误用户名:admin密码:admi提示密码错误弹出提示框,提示密码错误(图c_3)4登陆界面,全部正确,超级管理员用户名:admin密码:admin进入主界面状态栏显示“超级管理员”进入主界面状态栏显示“超级管理员”5登陆界面,全部正确,一般管理员用户名:rsq密码:
26、342601进入主界面状态栏显示“管理员”进入主界面状态栏显示“管理员”,沿树形目录打开“用户管理”时,用户权限位是“普通用户6登陆界面,全部正确,普通用户用户名:PT密码:PT进入主界面状态栏显示“普通用户”进入主界面状态栏显示“普通用户”,沿树形目录打开“用户管理时,用户权限位是“普通用户,且没有增加和删除功能用例ID问题描述输入数据预期输出实际输出7主功能模块,增加用户,以超级管理员身份登陆用户名:ren密码:ren用户姓名:ren用户权限:普通用户提示:增加用户成功,数据库中用户记录增加一条提示:增加用户成功(图c_4),数据库中用户记录增加一条8主功能模块,增加用户,以超级管理员身份
27、登陆用户名:sheng密码:sheng用户姓名:sheng用户权限:普通用户资料不完整,增加用户失败提示:增加失败,资料不完整(图c_5)9主功能模块,删除用户,管理员身份登陆在list框中选择一条要删除的记录,单击删除删除成功,数据库中减少一条记录提示:成功删除(图c_6)10主功能模块,修改用户信息,普通用户登陆列表框中之后自己的信息,单击选中,修改信息后,选择“修改”修改成功,数据库中的数据发生相应改变提示:修改成功,数据库中的书库发生相应变化(图c_7)11主功能模块,修改用户信息,普通用户登陆列表框中之后自己的信息,单击选中,修改信息,使得用户姓名不全,单击“修改”按钮修改失败提示:修改失败,资料不完整(图c_8);12主功能模块,单击树形控件中的其他项目,检查界面发生的变化在界面为用户管理界面时,单击“纵向管理”界面发生改变,详细信息部分变成纵向管理的界面,同时,列表框中的数据变成纵向项目的数据界面发生改变,详细信息部分变成纵向管理的界面,同时,列表框中的数据变成纵向项目的数据
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1