1、 科研信息化管理的全方位整体解决方案:系统针对学校的日常管理需要,提出的是一个包括信息发布、办公自动化和科研管理等多方面的整体解决方案.这样避免了临时的不完整的信息化建设,一次性的满足了科研管理中多方面的需要。2。1 可行性分析系统基于windows操作系统环境,在单机上进行测试和使用,主要功能完备,可以运行。2 基本功能需求1 系统分成三级用户,不同用户登录界面相同,但是具有的功能不同2 超级管理员能够进行所有的增删查修操作,一般管理员可以对项目等进行增删查修,但是不能对和自己高级同级的用户进行操作3 实现基本信息的各种操作(如学院,部门,委托单位,论文级别,专家等),需要超级管理员的权限4
2、 管理员以上可以实现各种项目、论文、著作、专利的输入工作5 普通用户可以实现项目信息的查询工作第四章数据流图树形结构的数据流图如下所示:第五章 系统模块结构图1登陆界面:主要功能点:1从数据库中读取数据,看用户名和密码的正确性;2如果用户名输入不正确,提示用户名输入错误;3如果密码输入不正确,提示密码输入错误;4如果登陆次数多于五次,自动退出系统;5用户名和密码正确,则进入系统主界面。主要代码:if(m_strUsername.IsEmpty()|m_strPassword.IsEmpty() AfxMessageBox(请将资料填写完整再登录!”); return; theApp.id=m_
3、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_strPassword)
4、 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); this-ShowWindow(SW_HIDE); maindlg-ShowW
5、indow(SW_SHOW); maindlg-Initial(theApp.m_pRS.GetFieldString(2),power,npower); else错误的用户名!2系统主界面主要功能点:1系统功能采用树形菜单映射的方式,分为设置和管理两大部分;2设置主要是设置一些基础信息,比如在下拉框中需要选择的信息,比如学院,委托单位,论文等级等等,需要超级管理员权限;3管理是系统主要功能在管理菜单下,普通用户只能查看相关信息,管理员以上可以增删查改相关信息;4主界面分成三个部分,树形目录是不会发生改变的,始终显示在界面上;列表也是始终显示在界面上的,根据用户单击树形目录选择相关的信息显示在
6、其中;第三部分,则是根据用户单击的选项来动态变化的,若单击用户管理,则显示用户管理的界面,如下示:5系统配有相应的菜单项,工具栏,和状态栏,前两者用来映射树形目录功能,后者则是用来显示用户ID和用户权限以及当前系统时间的。主要代码如下:1List表格刷新函数 m_ctrlList。GetClientRect(&rect);/获取列表控件的矩形DeleteAllItems(); while ( m_ctrlList。DeleteColumn (0); /先插入列号 try for(i=0;id or name =s,power,name); userinfo.ShowWindow(SW_SHOW
7、); horizproj.ShowWindow(SW_HIDE); vertiproj。ShowWindow(SW_HIDE); article.ShowWindow(SW_HIDE); compose。 patent.ShowWindow(SW_HIDE); else if(strText=横向管理”) userinfo.ShowWindow(SW_HIDE); horizproj。ShowWindow(SW_SHOW);ShowWindow(SW_HIDE); else if(strText=”纵向管理 strSQL = select from vertiproj; userinfo.Sh
8、owWindow(SW_HIDE); article.ShowWindow(SW_HIDE);论文管理”) userinfo。 vertiproj.ShowWindow(SW_HIDE); article.ShowWindow(SW_SHOW); patent.ShowWindow(SW_HIDE); else if(strText=”专著管理”) compose.ShowWindow(SW_SHOW); else if(strText=”专利管理”) horizproj.ShowWindow(SW_HIDE); compose.ShowWindow(SW_HIDE); patent。Show
9、Window(SW_SHOW); theApp.m_pRS。ADOExcute(strSQL); RefreshList();3单击list控件中相应项在下面的子窗体中显示详细信息的函数:CString id; int cur=m_ctrlList。GetSelectionMark(); int all=m_ctrlList.GetItemCount(); if(cur=0&curall) /先查看选中的是否在显示的范围之内 id=m_ctrlList。GetItemText(cur,0); if(userinfo.IsWindowVisible()/判断窗口是否是显示的 userinfo。D
10、isplay(id); else if(vertiproj.IsWindowVisible() vertiproj.Display(id); else if(horizproj.IsWindowVisible() horizproj。Display(id); else if(article.IsWindowVisible() article。 else if(compose.IsWindowVisible() compose.Display(id); else if(patent。IsWindowVisible() patent。4主窗口初始化函数:状态栏数据结构:static UINT in
11、dicators= ID_INDICATOR_USER, ID_INDICATOR_TIME, ID_INDICATOR_POWER,;初始化状态栏: UINT nID; CRect rect; GetClientRect(rect); thism_nwndStatusBar。Create(this); thism_nwndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT); m_nwndStatusBar。MoveWindow(0,rect。bottom-20,rect。right,20); m_nwndSta
12、tusBar.SetPaneStyle(2,SBPS_STRETCH); m_nwndStatusBar.SetPaneInfo(0,nID,SBPS_STRETCH|SBPS_NOBORDERS,rect.right/3-20);SetPaneText(0,”当前用户:”+user);SetPaneInfo(1,nID,SBPS_STRETCH|SBPS_NOBORDERS,rect.right/3-20); m_nwndStatusBar.SetPaneText(1,”用户权限:”+spower); m_nwndStatusBar.SetPaneInfo(2,nID,SBPS_STRETC
13、H|SBPS_NOBORDERS,rect。right/3); SetTimer(1,1000,NULL);树形目录的初始化: 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.Ins
14、ertItem(学院设置”,2,2,hsetup,TVI_LAST); HTREEITEM hset_task_type=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
15、_ctrltree。委托单位设置,2,2,hsetup,TVI_LAST); HTREEITEM hma_horizinal=m_ctrltree。横向管理,2,2,hmanage,TVI_LAST); HTREEITEM hma_verticle=m_ctrltree.InsertItem(纵向管理 HTREEITEM hma_article=m_ctrltree。论文管理”,2,2,hmanage,TVI_LAST); HTREEITEM hma_monography=m_ctrltree。InsertItem(”专著管理”,2,2,hmanage,TVI_LAST); HTREEITEM
16、 hma_patent=m_ctrltree。专利管理”,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。专家管理”,2,2,hmanage,TVI_LAST); HTREEITEM hma_basinfo=m_ctrltree。基
17、本信息管理”,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; time = CTime::GetCurrentTime(); we
18、ek=time。GetDayOfWeek(); /获取星期几,注意1为星期天,7为星期六 CString s = time.Format(当前时间:%Ym%d H:%M:S 星期”);/月份是小写的,分钟是大写的 switch(week) case 1:s+=”日break; case 2:s+=一 case 3:二 case 4:三break; case 5:四 case 6:s+=”五”; case 7:s+=”六SetPaneText(2,s);第六章 测试与调试1测设用例设计用例ID问题描述输入数据预期输出实际输出1登陆界面,用户名错误用户名:aaaa密码:提示用户名错误弹出提示框,提
19、示用户名错误(图c_1)2登陆界面,没有任何信息空提示为空弹出提示框,提示填写完整后再登陆(图c_2)3登陆界面,密码错误admin密码:admi提示密码错误弹出提示框,提示密码错误(图c_3)4登陆界面,全部正确,超级管理员进入主界面状态栏显示“超级管理员”进入主界面状态栏显示“超级管理员5登陆界面,全部正确,一般管理员rsq342601进入主界面状态栏显示“管理员,沿树形目录打开“用户管理”时,用户权限位是“普通用户”6登陆界面,全部正确,普通用户用户名:PT进入主界面状态栏显示“普通用户”进入主界面状态栏显示“普通用户”,沿树形目录打开“用户管理”时,用户权限位是“普通用户”,且没有增加
20、和删除功能7主功能模块,增加用户,以超级管理员身份登陆ren用户姓名:用户权限:普通用户提示:增加用户成功,数据库中用户记录增加一条增加用户成功(图c_4),数据库中用户记录增加一条8sheng用户姓名:资料不完整,增加用户失败提示:增加失败,资料不完整(图c_5)9主功能模块,删除用户,管理员身份登陆在list框中选择一条要删除的记录,单击删除删除成功,数据库中减少一条记录成功删除(图c_6)10主功能模块,修改用户信息,普通用户登陆列表框中之后自己的信息,单击选中,修改信息后,选择“修改修改成功,数据库中的数据发生相应改变修改成功,数据库中的书库发生相应变化(图c_7)11列表框中之后自己的信息,单击选中,修改信息,使得用户姓名不全,单击“修改”按钮修改失败修改失败,资料不完整(图c_8);12主功能模块,单击树形控件中的其他项目,检查界面发生的变化在界面为用户管理界面时,单击“纵向管理”界面发生改变,详细信息部分变成纵向管理的界面,同时,列表框中的数据变成纵向项目的数据13主功能界面初始化数据单击“纵
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2