软件工程实验报告-科研管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程上机实验》
实验报告书
——科研管理系统
专业班级
学号
姓名
指导教师
安徽工业大学
第一章简介
此次试验,要求完成可视化的科研管理系统。将自己在软件工程课程中学习到的软件设计的知识运用的实际中,加深对知识的理解,也增强自己动手的实践能力。
开发环境和开发工具:WINDOWS操作平台上,使用MS vc6.0+sql server 2000
第二章试验步骤
1.需求分析:分析该系统需要完成的功能,需要什么开发工具和数据库管理软件
2.数据库设计:分析系统的数据,画出数据库的E-R图,并在此基础上完成数据库表的设计和初始数据的输入
3.数据流图的设计:仿照用户的使用习惯,分析从系统启动到系统退出系统数据的使用4.系统功能模块的设计:按照数据流图的需要,分析出系统需要哪些模块来完成需求分析中提出的功能需求
5.实现和编码:在选定的平台上上运用开发工具和数据库管理软件进行系统的开发
6.测试:每完成一个模块和重要函数,进行相应的单元测试;系统完成之后,需要系统测试
7.迭代:根据测试的结果进行迭代,从而形成一个完整可用的系统
第三章需求分析
系统将采用先进的信息化技术,并有效结合现代科研管理理念和学校科研管理实际情况。系统的成功建设将能够轻松解决传统科研管理中难以解决的系列问题,并在多个方面实现突破:
实现标准化的科研信息系统:系统将采用了国家教育部信息化标准,完全兼容了“全国普通高等学校人文社会科学研究管理系统”,同时也充分体现学校的科研管理办法和有关精神。系统将采集和管理标准完整的科研机构、人员、项目和成果等基础数据,避免了数据的无效性和不规范性,为以后的管理工作打下坚实基础。
构建开放式的科研管理体系:系统将向全校所有从事科研活动或者科研辅助工作的老师开放,并和学校人事处等业务部分建立数据共享机制。系统将彻底改变以前封闭式的管理模式,解决系统数据对内对外的开放性问题。
科学分析和决策支持:系统能够及时收集到学校最新的科研项目、科研成果和学术活动等业务数据,并在大量的数据基础上进行数据挖掘分析工作。既方便学校进行各种查询,也可以提供各种分析报表。系统能够为学校科研管理决策提供科学有效的辅助支持。
科研信息化管理的全方位整体解决方案:系统针对学校的日常管理需要,提出的是一个包括信息发布、办公自动化和科研管理等多方面的整体解决方案。这样避免了临时的不完整的信息化建设,一次性的满足了科研管理中多方面的需要。
2.1 可行性分析
系统基于windows操作系统环境,在单机上进行测试和使用,主要功能完备,可以运行。
2.2 基本功能需求
1.系统分成三级用户,不同用户登录界面相同,但是具有的功能不同
2.超级管理员能够进行所有的增删查修操作,一般管理员可以对项目等进行增删查修,但是不能对和自己高级同级的用户进行操作
3.实现基本信息的各种操作(如学院,部门,委托单位,论文级别,专家等),需要超级管理员的权限
4.管理员以上可以实现各种项目、论文、著作、专利的输入工作
5.普通用户可以实现项目信息的查询工作
第四章数据流图
树形结构的数据流图如下所示:
第五章系统模块结构图
1.登陆界面:
主要功能点:
1.从数据库中读取数据,看用户名和密码的正确性;
2.如果用户名输入不正确,提示用户名输入错误;
3.如果密码输入不正确,提示密码输入错误;
4.如果登陆次数多于五次,自动退出系统;
5.用户名和密码正确,则进入系统主界面。
主要代码:
if(m_strUsername.IsEmpty()||m_strPassword.IsEmpty())
{
AfxMessageBox("请将资料填写完整再登录!");
return;
}
theApp.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_strPassword)
{
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->ShowWindow(SW_SHOW);
maindlg->Initial(theApp.m_pRS.GetFieldString(2),power,npower);
}
}
else
{
AfxMessageBox("错误的用户名!");
}
2.系统主界面